qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: peter.maydell@linaro.org, richard.henderson@linaro.org
Cc: "Alex Bennée" <alex.bennee@linaro.org>,
	qemu-devel@nongnu.org,
	"Gautam Agrawal" <gautamnagrawal@gmail.com>
Subject: [PULL 25/25] tests/guest-debug: better handle gdb crashes
Date: Wed, 20 Apr 2022 19:08:32 +0100	[thread overview]
Message-ID: <20220420180832.3812543-26-alex.bennee@linaro.org> (raw)
In-Reply-To: <20220420180832.3812543-1-alex.bennee@linaro.org>

There are a number of GDB's on various distros which fail fairly hard
when attempting to talk to a cross-arch guest. The previous attempt to
catch this was incorrect as the shell will deliver signals as 128+n.
Fix the detection and while we are it improve the logging we dump into
the test output.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reported-by: Gautam Agrawal <gautamnagrawal@gmail.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220419091020.3008144-26-alex.bennee@linaro.org>

diff --git a/tests/guest-debug/run-test.py b/tests/guest-debug/run-test.py
index 2e58795a10..d865e46ecd 100755
--- a/tests/guest-debug/run-test.py
+++ b/tests/guest-debug/run-test.py
@@ -92,17 +92,18 @@ def log(output, msg):
 
     result = subprocess.call(gdb_cmd, shell=True, stdout=output)
 
-    # A negative result is the result of an internal gdb failure like
-    # a crash. We force a return of 0 so we don't fail the test on
+    # A result of greater than 128 indicates a fatal signal (likely a
+    # crash due to gdb internal failure). That's a problem for GDB and
+    # not the test so we force a return of 0 so we don't fail the test on
     # account of broken external tools.
-    if result < 0:
-        print("GDB crashed? SKIPPING")
+    if result > 128:
+        log(output, "GDB crashed? (%d, %d) SKIPPING" % (result, result - 128))
         exit(0)
 
     try:
         inferior.wait(2)
     except subprocess.TimeoutExpired:
-        print("GDB never connected? Killed guest")
+        log(output, "GDB never connected? Killed guest")
         inferior.kill()
 
     exit(result)
-- 
2.30.2



  parent reply	other threads:[~2022-04-20 18:41 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-20 18:08 [PULL 00/25] Various testing, doc and gdbstub fixes Alex Bennée
2022-04-20 18:08 ` [PULL 01/25] tests/avocado: update aarch64_virt test to exercise -cpu max Alex Bennée
2022-04-20 18:08 ` [PULL 02/25] docs/devel: add some notes on the binfmt-image-debian targets Alex Bennée
2022-04-20 18:08 ` [PULL 03/25] docs/devel: drop :hidden: and :includehidden: tags Alex Bennée
2022-04-20 18:08 ` [PULL 04/25] tests/docker: remove dead code for linux-user containers Alex Bennée
2022-04-20 18:08 ` [PULL 05/25] tests/docker: remove test targets Alex Bennée
2022-04-20 18:08 ` [PULL 06/25] tests/docker: remove dead variable Alex Bennée
2022-04-20 18:08 ` [PULL 07/25] tests/docker: remove unnecessary default definitions Alex Bennée
2022-04-20 18:08 ` [PULL 08/25] tests/docker: inline variable definitions or move close to use Alex Bennée
2022-04-20 18:08 ` [PULL 09/25] tests/docker: remove unnecessary filtering of $(DOCKER_IMAGES) Alex Bennée
2022-04-20 18:08 ` [PULL 10/25] tests/docker: simplify docker-TEST@IMAGE targets Alex Bennée
2022-04-20 18:08 ` [PULL 11/25] tests/docker: do not duplicate rules for hexagon-cross Alex Bennée
2022-04-20 18:08 ` [PULL 12/25] tests/tcg: add compiler test variables when using containers Alex Bennée
2022-04-20 18:08 ` [PULL 13/25] tests/tcg: remove CONFIG_LINUX_USER from config-target.mak Alex Bennée
2022-04-20 18:08 ` [PULL 14/25] tests/tcg: remove CONFIG_USER_ONLY " Alex Bennée
2022-04-20 18:08 ` [PULL 15/25] tests/tcg: prepare Makefile.prereqs at configure time Alex Bennée
2022-04-20 18:08 ` [PULL 16/25] tests/tcg: list test targets in Makefile.prereqs Alex Bennée
2022-04-20 18:08 ` [PULL 17/25] tests/tcg: invoke Makefile.target directly from QEMU's makefile Alex Bennée
2022-04-20 18:08 ` [PULL 18/25] tests/tcg: isolate from QEMU's config-host.mak Alex Bennée
2022-04-20 18:08 ` [PULL 19/25] tests/docker: remove SKIP_DOCKER_BUILD Alex Bennée
2022-04-20 18:08 ` [PULL 20/25] tests/tcg: fix non-static build Alex Bennée
2022-04-20 18:08 ` [PULL 21/25] tests/tcg: remove duplicate sha512-sse case Alex Bennée
2022-04-20 18:08 ` [PULL 22/25] tests/tcg: add float_convd test Alex Bennée
2022-04-20 18:08 ` [PULL 23/25] tests/tcg: add missing reference files for float_convs Alex Bennée
2022-04-20 18:08 ` [PULL 24/25] target/i386: fix byte swap issue with XMM register access Alex Bennée
2022-04-20 18:08 ` Alex Bennée [this message]
2022-04-20 19:46 ` [PULL 00/25] Various testing, doc and gdbstub fixes Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220420180832.3812543-26-alex.bennee@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=gautamnagrawal@gmail.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).