diff mbox series

[v1,7/9] tests/guest-debug: use the unix socket for linux-user tests

Message ID 20200430190122.4592-8-alex.bennee@linaro.org
State New
Headers show
Series gdbstub/next | expand

Commit Message

Alex Bennée April 30, 2020, 7:01 p.m. UTC
Now we have support for debugging over a unix socket for linux-user
lets use it in our test harness.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/guest-debug/run-test.py | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

Comments

Richard Henderson May 1, 2020, 2:46 p.m. UTC | #1
On 4/30/20 12:01 PM, Alex Bennée wrote:
> +    if "system" in args.qemu:
> +        gdb_cmd += " -ex 'target remote localhost:1234'"
> +    else:
> +        gdb_cmd += " -ex 'target remote %s'" % (socket_name)

Why should not system testing be moved to sockets?
Surely that has the same problem in the end.


r~
Alex Bennée May 1, 2020, 2:59 p.m. UTC | #2
Richard Henderson <richard.henderson@linaro.org> writes:

> On 4/30/20 12:01 PM, Alex Bennée wrote:
>> +    if "system" in args.qemu:
>> +        gdb_cmd += " -ex 'target remote localhost:1234'"
>> +    else:
>> +        gdb_cmd += " -ex 'target remote %s'" % (socket_name)
>
> Why should not system testing be moved to sockets?
> Surely that has the same problem in the end.

Sure - I can cook up a patch for that. I hadn't bothered because
currently we don't run any system level debug tests for the gdbstub
test.
diff mbox series

Patch

diff --git a/tests/guest-debug/run-test.py b/tests/guest-debug/run-test.py
index 2bbb8fbaa3..d9af9573b9 100755
--- a/tests/guest-debug/run-test.py
+++ b/tests/guest-debug/run-test.py
@@ -15,6 +15,8 @@  import argparse
 import subprocess
 import shutil
 import shlex
+import os
+from tempfile import TemporaryDirectory
 
 def get_args():
     parser = argparse.ArgumentParser(description="A gdbstub test runner")
@@ -41,11 +43,15 @@  if __name__ == '__main__':
         print("We need gdb to run the test")
         exit(-1)
 
+    socket_dir = TemporaryDirectory("qemu-gdbstub")
+    socket_name = os.path.join(socket_dir.name, "gdbstub.socket")
+
     # Launch QEMU with binary
     if "system" in args.qemu:
         cmd = "%s %s %s -s -S" % (args.qemu, args.qargs, args.binary)
     else:
-        cmd = "%s %s -g 1234 %s" % (args.qemu, args.qargs, args.binary)
+        cmd = "%s %s -g %s %s" % (args.qemu, args.qargs, socket_name,
+                                  args.binary)
 
     inferior = subprocess.Popen(shlex.split(cmd))
 
@@ -56,7 +62,10 @@  if __name__ == '__main__':
     # disable prompts in case of crash
     gdb_cmd += " -ex 'set confirm off'"
     # connect to remote
-    gdb_cmd += " -ex 'target remote localhost:1234'"
+    if "system" in args.qemu:
+        gdb_cmd += " -ex 'target remote localhost:1234'"
+    else:
+        gdb_cmd += " -ex 'target remote %s'" % (socket_name)
     # finally the test script itself
     gdb_cmd += " -x %s" % (args.test)