On Tue, 07 Jul 2026 01:32, Pierrick Bouvier <[email protected]>
wrote:
One of our test requires to make sure output does not contain a specific
string. An example is system multiarch test run-gdbstub-untimely-packet.
Signed-off-by: Pierrick Bouvier <[email protected]>
---
Reviewed-by: Manos Pitsidianakis <[email protected]>
tests/tcg/meson.build | 3 +++
.../scripts/run_and_check_forbidden_output.sh | 19 +++++++++++++++++++
2 files changed, 22 insertions(+)
create mode 100755 tests/tcg/scripts/run_and_check_forbidden_output.sh
diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build
index 1dd0e492810..adb11af7acb 100644
--- a/tests/tcg/meson.build
+++ b/tests/tcg/meson.build
@@ -8,6 +8,9 @@ endif
gdb = find_program(gdb_progs, required: false)
prog_gdb_test = find_program('../guest-debug/run-test.py')
prog_run_and_diff = find_program('./scripts/run_and_diff.sh')
+prog_run_and_check_forbidden_output = find_program(
+ './scripts/run_and_check_forbidden_output.sh'
+)
tcg_tests = {}
# tcg_tests is a dictionary with following structure:
diff --git a/tests/tcg/scripts/run_and_check_forbidden_output.sh
b/tests/tcg/scripts/run_and_check_forbidden_output.sh
new file mode 100755
index 00000000000..4486ca8ef83
--- /dev/null
+++ b/tests/tcg/scripts/run_and_check_forbidden_output.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set -euo pipefail
+
+if [ $# -lt 2 ]; then
+ echo "run_and_check_forbidden_output: 'forbidden string' cmd [args]..."
1>&2
+ exit 1
+fi
+forbidden="$1";shift
+output=$("$@" 2>&1)
+set -x
+if ! echo "$output" | grep -Fi "$forbidden"
+then
+ echo "output does not contain forbidden string: $forbidden"
+ exit 0
+fi
+echo "found forbidden string: $forbidden" 1>&2
+exit 1
--
2.47.3