gst-validate-launcher: Stop in --gdb by default, add --gdb-non-stop
authorAlicia Boya García <ntrrgc@gmail.com>
Thu, 24 May 2018 16:25:59 +0000 (18:25 +0200)
committerThibault Saunier <tsaunier@igalia.com>
Fri, 25 May 2018 10:59:38 +0000 (12:59 +0200)
This patch modifies the default behavior of --gdb to not run and quit
automatically the test, but rather wait for user input. This is
usually much more convenient to debug all kinds of bugs.

The automatic run behavior has been moved to a new command switch:
--gdb-non-stop

https://bugzilla.gnome.org/show_bug.cgi?id=796389

validate/launcher/baseclasses.py
validate/launcher/main.py

index 944aad0..a1d209c 100644 (file)
@@ -385,7 +385,11 @@ class Test(Loggable):
         if self.hard_timeout is not None:
             self.hard_timeout *= GDB_TIMEOUT_FACTOR
         self.timeout *= GDB_TIMEOUT_FACTOR
-        return ["gdb", "-ex", "run", "-ex", "backtrace", "-ex", "quit", "--args"] + command
+        args = ["gdb"]
+        if self.options.gdb_non_stop:
+            args += ["-ex", "run", "-ex", "backtrace", "-ex", "quit"]
+        args += ["--args"] + command
+        return args
 
     def use_valgrind(self, command, subenv):
         vglogsfile = self.logfile + '.valgrind'
index 6590f29..35e8a6f 100644 (file)
@@ -237,6 +237,9 @@ class LauncherConfig(Loggable):
         else:
             self.output_dir = os.path.abspath(self.output_dir)
 
+        if self.gdb_non_stop:
+            self.gdb = True
+
         if self.gdb:
             self.logsdir = "stdout"
             self.debug = True
@@ -457,6 +460,9 @@ Note that all testsuite should be inside python modules, so the directory should
                         action="store_true",
                         help="Run the tests inside gdb (implies"
                         " --output-dir=stdout and --jobs=1)")
+    parser.add_argument("--gdb-non-stop", dest="gdb_non_stop",
+                        action="store_true",
+                        help="Run the test automatically in gdb (implies --gdb)")
     parser.add_argument("-nd", "--no-display", dest="no_display",
                         action="store_true",
                         help="Run the tests without outputting graphics"