]> granicus.if.org Git - strace/commitdiff
tests: fix bexecve.test for the case of mixed personalities
authorDmitry V. Levin <ldv@altlinux.org>
Tue, 14 Apr 2015 16:04:08 +0000 (16:04 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Tue, 14 Apr 2015 16:04:08 +0000 (16:04 +0000)
Fix bexecve.test when the executable being run does not match the
native architecture.

* tests/bexecve.test: Use "set_ptracer_any" instead of "sh".
Allow for a personality switch notification in the strace output.

tests/bexecve.test

index c49f08b08da820a89409a02969fd5c03d12bc79e..467f370141ec816df22dc57b1b0192737c5057eb 100755 (executable)
@@ -10,19 +10,23 @@ run_strace_redir()
        $STRACE "$@" 2> "$LOG"
 }
 
-run_strace_redir -enone sh -c 'exec false'
+run_strace_redir -enone ./set_ptracer_any true ||
+       dump_log_and_fail_with "$STRACE $args: unexpected exit status"
+
+run_strace_redir -enone ./set_ptracer_any false
 [ $? -eq 1 ] ||
        dump_log_and_fail_with "$STRACE $args: unexpected exit status"
 
-run_strace_redir -bexecve -enone sh -c 'exec false' ||
+run_strace_redir -bexecve -enone ./set_ptracer_any false ||
        dump_log_and_fail_with "$STRACE $args: unexpected exit status"
 
-pattern='Process [1-9][0-9]* detached'
+pattern_detached='Process [1-9][0-9]* detached'
+pattern_personality='\[ Process PID=[1-9][0-9]* runs in .* mode. \]'
 
-LC_ALL=C grep -x "$pattern" "$LOG" > /dev/null ||
+LC_ALL=C grep -x "$pattern_detached" "$LOG" > /dev/null ||
        dump_log_and_fail_with "$STRACE $args: output mismatch"
 
-if LC_ALL=C grep -v -x "$pattern" "$LOG" > /dev/null; then
+if LC_ALL=C grep -E -v -x "($pattern_detached|$pattern_personality)" "$LOG" > /dev/null; then
        dump_log_and_fail_with "$STRACE $args: unexpected output"
 fi