On Fri, 9 Sep 2022 13:30:24 +1000
David Gibson <david(a)gibson.dropbear.id.au> wrote:
Instead of using the 'temp' and
'tempdir' DSL directives to create
temporary files, use fixed paths relative to __STATEDIR__. This has two
advantages:
1) The files are automatically cleaned up if the tests fail (and even if
that doesn't work they're easier to clean up manuall)
2) When debugging tests it's easier to figure out which of the temporary
files are relevant to whatever's going wrong
Signed-off-by: David Gibson <david(a)gibson.dropbear.id.au>
[...]
+++ b/test/passt/udp
@@ -15,9 +15,9 @@ gtools socat tee grep cat ip jq md5sum cut
htools printf dd socat tee grep cat ip jq md5sum cut
test UDP/IPv4: host to guest
-temp TEMP
-temp SC_PID
-guestb (socat -u UDP4-LISTEN:10001 STDOUT & echo $! > __SC_PID__) | tee test.bin
| (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__))
+set TEMP __STATEDIR__/data
+set SC_PID __STATEDIR__/socat.pid
+guestb (socat -u UDP4-LISTEN:10001 STDOUT & echo $! > sc.pid) | tee test.bin |
(grep -qm1 "END_OF_TEST" && kill $(cat sc.pid))
Here it's sc.pid,
sleep 1
host dd if=/dev/urandom bs=1k count=5 > __TEMP__ && printf
"\nEND_OF_TEST\n" >> __TEMP__
host socat -u OPEN:__TEMP__ UDP4:127.0.0.1:10001
diff --git a/test/passt_in_ns/tcp b/test/passt_in_ns/tcp
index 5ec95e8..a2cb667 100644
--- a/test/passt_in_ns/tcp
+++ b/test/passt_in_ns/tcp
@@ -16,7 +16,7 @@ htools dd socat ip jq md5sum cut
nstools socat ip jq md5sum cut
test TCP/IPv4: host to guest: big transfer
-temp TEMP_BIG
+set TEMP_BIG __STATEDIR__/big.img
guestb socat -u TCP4-LISTEN:10001 OPEN:test_big.bin,create,trunc
sleep 1
host dd if=/dev/urandom bs=1M count=10 of=__TEMP_BIG__
@@ -27,7 +27,7 @@ gout GUEST_MD5_BIG md5sum test_big.bin | cut -d' ' -f1
check [ "__GUEST_MD5_BIG__" = "__MD5_BIG__" ]
test TCP/IPv4: host to ns: big transfer
-temp TEMP_NS_BIG
+set TEMP_NS_BIG __STATEDIR__/big_ns.img
nsb socat -u TCP4-LISTEN:10002 OPEN:__TEMP_NS_BIG__,create,trunc
host socat -u OPEN:__TEMP_BIG__ TCP4:127.0.0.1:10002
nsw
@@ -82,7 +82,7 @@ gout GUEST_MD5_BIG md5sum test_big.bin | cut -d' ' -f1
check [ "__GUEST_MD5_BIG__" = "__MD5_BIG__" ]
test TCP/IPv4: host to guest: small transfer
-temp TEMP_SMALL
+set TEMP_SMALL __STATEDIR__/small.img
guestb socat -u TCP4-LISTEN:10001 OPEN:test_small.bin,create,trunc
sleep 1
host dd if=/dev/urandom bs=2k count=100 of=__TEMP_SMALL__
@@ -93,7 +93,7 @@ gout GUEST_MD5_SMALL md5sum test_small.bin | cut -d' ' -f1
check [ "__GUEST_MD5_SMALL__" = "__MD5_SMALL__" ]
test TCP/IPv4: host to ns: small transfer
-temp TEMP_NS_SMALL
+set TEMP_NS_SMALL __STATEDIR__/small_ns.img
nsb socat -u TCP4-LISTEN:10002 OPEN:__TEMP_NS_SMALL__,create,trunc
host socat -u OPEN:__TEMP_SMALL__ TCP4:127.0.0.1:10002
nsw
diff --git a/test/passt_in_ns/udp b/test/passt_in_ns/udp
index c22a68f..3b1e521 100644
--- a/test/passt_in_ns/udp
+++ b/test/passt_in_ns/udp
@@ -16,8 +16,8 @@ nstools socat tee grep cat ip jq md5sum cut
htools printf dd socat tee grep cat ip jq md5sum cut
test UDP/IPv4: host to guest
-temp TEMP
-temp SC_PID
+set TEMP __STATEDIR__/data
+set SC_PID __STATEDIR__/socat.pid
guestb (socat -u UDP4-LISTEN:10001 STDOUT & echo $! > sc.pid) | tee test.bin |
(grep -qm1 "END_OF_TEST" && kill $(cat sc.pid))
here, too,
sleep 1
host dd if=/dev/urandom bs=1k count=5 > __TEMP__ && printf
"\nEND_OF_TEST\n" >> __TEMP__
@@ -28,7 +28,7 @@ gout GUEST_MD5 md5sum test.bin | cut -d' ' -f1
check [ "__GUEST_MD5__" = "__MD5__" ]
test UDP/IPv4: host to ns
-temp TEMP_NS
+set TEMP_NS __STATEDIR__/data_ns
nsb (socat -u UDP4-LISTEN:10002 STDOUT & echo $! > __SC_PID__) | tee __TEMP_NS__
| (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__))
...here it's __SC_PID__.
It looks a bit random to me, but anyway all those go away with your
(much needed) patch "test: Simpler termination handling for UDP tests",
so I'm also fine to apply it like that.
It's __SC_PID__ on host and namespace, sc.pid for the guest. The
guest doesn't share a filesystem so __STATEDIR__ isn't meeaningful
there.