The "valgrind" test cases are designed to pick up errors reported when
passt is running under valgrind. But what it actually does is just kill
the passt process, then see if it had a non-zero exit code. That means it
will equally well pick up any other problems which caused passt to exit
with an error status: either something detected within passt or as a result
of passt being killed by an unexpected signal.
The fact that the "valgrind" test is actually responsible for shutting down
the passt process is non-obvious and can lead to problems when selectively
running tests during debugging.
Rename the "valgrind" tests to "shutdown" tests and run it regardless of
whether we're using valgrind or not. This allows us to remove an ugly
speacial case in the passt_in_ns teardown code.
Signed-off-by: David Gibson
---
test/lib/setup | 2 --
test/run | 5 +++--
test/{valgrind => shutdown}/passt | 9 +++++----
test/{valgrind => shutdown}/passt_in_ns | 9 +++++----
4 files changed, 13 insertions(+), 12 deletions(-)
rename test/{valgrind => shutdown}/passt (64%)
rename test/{valgrind => shutdown}/passt_in_ns (62%)
diff --git a/test/lib/setup b/test/lib/setup
index d858c71..19ddd37 100755
--- a/test/lib/setup
+++ b/test/lib/setup
@@ -317,8 +317,6 @@ teardown_passt_in_ns() {
pane_wait GUEST
tmux send-keys -t ${PANE_GUEST} "C-d"
- [ ${VALGRIND} -eq 0 ] && tmux send-keys -t ${PANE_PASST} "C-c"
- [ ${VALGRIND} -eq 0 ] && pane_status GUEST
tmux send-keys -t ${PANE_PASST} "C-d"
pane_wait GUEST
diff --git a/test/run b/test/run
index efec955..f9792bd 100755
--- a/test/run
+++ b/test/run
@@ -84,7 +84,7 @@ run() {
test dhcp/passt
test tcp/passt
test udp/passt
- test valgrind/passt
+ test shutdown/passt
teardown passt
VALGRIND=1
@@ -94,7 +94,7 @@ run() {
test icmp/passt_in_ns
test tcp/passt_in_ns
test udp/passt_in_ns
- test valgrind/passt_in_ns
+ test shutdown/passt_in_ns
teardown passt_in_ns
VALGRIND=0
@@ -105,6 +105,7 @@ run() {
test perf/passt_udp
test perf/pasta_tcp
test perf/pasta_udp
+ test shutdown/passt_in_ns
teardown passt_in_ns
setup two_guests
diff --git a/test/valgrind/passt b/test/shutdown/passt
similarity index 64%
rename from test/valgrind/passt
rename to test/shutdown/passt
index f8bcf00..00ced61 100644
--- a/test/valgrind/passt
+++ b/test/shutdown/passt
@@ -6,16 +6,17 @@
# PASTA - Pack A Subtle Tap Abstraction
# for network namespace/tap device mode
#
-# test/valgrind/passt - Terminate passt and check valgrind exit code
+# test/shutdown/passt - Shut down passt and check exit code (will detect
+# valgrind errors amongst others)
#
# Copyright (c) 2022 Red Hat GmbH
# Author: Stefano Brivio
-test valgrind: exit code
+test shutdown: exit code
hout PASST_PID cat passt.pid
host kill __PASST_PID__
sleep 1
-pout VALGRIND_EXIT echo $?
-check [ "__VALGRIND_EXIT__" = "0" ]
+pout EXIT echo $?
+check [ "__EXIT__" = "0" ]
diff --git a/test/valgrind/passt_in_ns b/test/shutdown/passt_in_ns
similarity index 62%
rename from test/valgrind/passt_in_ns
rename to test/shutdown/passt_in_ns
index d28e251..a427bf4 100644
--- a/test/valgrind/passt_in_ns
+++ b/test/shutdown/passt_in_ns
@@ -6,16 +6,17 @@
# PASTA - Pack A Subtle Tap Abstraction
# for network namespace/tap device mode
#
-# test/valgrind/passt_in_ns - Terminate passt and check valgrind exit code
+# test/shutdown/passt_in_ns - Shut down passt and check exit code (will detect
+# valgrind errors amongst others)
#
# Copyright (c) 2022 Red Hat GmbH
# Author: Stefano Brivio
-test valgrind: exit code
+test shutdown: exit code
nsout PASST_PID cat passt.pid
ns kill __PASST_PID__
sleep 1
-pout VALGRIND_EXIT echo $?
-check [ "__VALGRIND_EXIT__" = "0" ]
+pout EXIT echo $?
+check [ "__EXIT__" = "0" ]
--
2.37.2