[PATCH] tests: fix shell errors in detach tests

Mike Frysinger vapier at gentoo.org
Mon Aug 11 05:31:23 UTC 2014


The current detach test code does:
	set -e
	...
	cleanup() {
		set +e
		kill ...
		wait ...
	}
	...
	cleanup
	exit 0

The problem is that while `set -e` is disabled for the body of the
cleanup function, it isn't disabled in the caller scope.  So if the
return value of the cleanup func (`wait` in this case) is non-zero,
the script ends up failing overall.

Add an explicit return 0 to the cleanup func so that we don't kill
the overall test pipeline.

* tests/detach-running.test (cleanup): Add return 0.
(tests/detach-sleeping.test): Likewise.
(tests/detach-stopped.test): Likewise.
---
 tests/detach-running.test  | 1 +
 tests/detach-sleeping.test | 1 +
 tests/detach-stopped.test  | 1 +
 3 files changed, 3 insertions(+)

diff --git a/tests/detach-running.test b/tests/detach-running.test
index 16f552b..e3b33f9 100755
--- a/tests/detach-running.test
+++ b/tests/detach-running.test
@@ -24,6 +24,7 @@ cleanup()
 	set +e
 	kill $tracee_pid
 	wait $tracee_pid 2> /dev/null
+	return 0
 }
 
 rm -f $LOG
diff --git a/tests/detach-sleeping.test b/tests/detach-sleeping.test
index 92138b5..241d515 100755
--- a/tests/detach-sleeping.test
+++ b/tests/detach-sleeping.test
@@ -25,6 +25,7 @@ cleanup()
 	set +e
 	kill $tracee_pid
 	wait $tracee_pid 2> /dev/null
+	return 0
 }
 
 rm -f $LOG
diff --git a/tests/detach-stopped.test b/tests/detach-stopped.test
index 81fd303..88499bf 100755
--- a/tests/detach-stopped.test
+++ b/tests/detach-stopped.test
@@ -27,6 +27,7 @@ cleanup()
 	kill $tracee_pid
 	kill -CONT $tracee_pid
 	wait $tracee_pid 2> /dev/null
+	return 0
 }
 
 rm -f $LOG
-- 
2.0.0





More information about the Strace-devel mailing list