]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
runtests: support -gl. Like -g but for lldb.
authorDaniel Stenberg <daniel@haxx.se>
Mon, 18 Dec 2023 09:11:30 +0000 (10:11 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 18 Dec 2023 10:13:30 +0000 (11:13 +0100)
Follow-up to 63b5748

Invokes the test case via lldb instead of gdb. Since using gdb is such a
pain on mac, using lldb is sometimes less quirky.

Closes #12547

tests/runner.pm
tests/runtests.1
tests/runtests.pl

index 8b61eb4b3be3c9d112cf3594b32e38c4ae73c14c..1ee912fc7fc377034f06f5cf0d6a89f2067376d2 100644 (file)
@@ -945,9 +945,16 @@ sub singletest_run {
     if($gdbthis) {
         my $gdbinit = "$TESTDIR/gdbinit$testnum";
         open(my $gdbcmd, ">", "$LOGDIR/gdbcmd") || die "Failure writing gdb file";
-        print $gdbcmd "set args $cmdargs\n";
-        print $gdbcmd "show args\n";
-        print $gdbcmd "source $gdbinit\n" if -e $gdbinit;
+        if($gdbthis == 1) {
+            # gdb mode
+            print $gdbcmd "set args $cmdargs\n";
+            print $gdbcmd "show args\n";
+            print $gdbcmd "source $gdbinit\n" if -e $gdbinit;
+        }
+        else {
+            # lldb mode
+            print $gdbcmd "set args $cmdargs\n";
+        }
         close($gdbcmd) || die "Failure writing gdb file";
     }
 
@@ -963,11 +970,18 @@ sub singletest_run {
                           $testnum,
                           "$gdb --directory $LIBDIR " . shell_quote($DBGCURL) . " -x $LOGDIR/gdbcmd");
     }
-    elsif($gdbthis) {
+    elsif($gdbthis == 1) {
+        # gdb
         my $GDBW = ($gdbxwin) ? "-w" : "";
         runclient("$gdb --directory $LIBDIR " . shell_quote($DBGCURL) . " $GDBW -x $LOGDIR/gdbcmd");
         $cmdres=0; # makes it always continue after a debugged run
     }
+    elsif($gdbthis == 2) {
+        # $gdb is "lldb"
+        print "runs lldb -- $CURL $cmdargs\n";
+        runclient("lldb -- $CURL $cmdargs");
+        $cmdres=0; # makes it always continue after a debugged run
+    }
     else {
         # Convert the raw result code into a more useful one
         ($cmdres, $dumped_core) = normalize_cmdres(runclient("$CMDLINE"));
index 6d895d2b9b34a46eef3047880e1c25586a98f5aa..01d490b2c7f0ac1b350cd1e6b7fab921ac4588cc 100644 (file)
@@ -116,6 +116,11 @@ Run the given test(s) with gdb. This is best used on a single test case and
 curl built --disable-shared. This then fires up gdb with command line set to
 run the specified test case. Simply (set a break-point and) type 'run' to
 start.
+.IP "-gl"
+Run the given test(s) with lldb. This is best used on a single test case and
+curl built --disable-shared. This then fires up lldb with command line set to
+run the specified test case. Simply (set a break-point and) type 'run' to
+start.
 .IP "-gw"
 Run the given test(s) with gdb as a windowed application.
 .IP "-h, --help"
index e7b9f01f6a6e7dd84d91fdae3da3133eb34a0ce8..9dbe4e2d68b5c17757dd66a78a2107042114cd51 100755 (executable)
@@ -2215,6 +2215,10 @@ while(@ARGV) {
         # run this test with gdb
         $gdbthis=1;
     }
+    elsif ($ARGV[0] eq "-gl") {
+        # run this test with lldb
+        $gdbthis=2;
+    }
     elsif ($ARGV[0] eq "-gw") {
         # run this test with windowed gdb
         $gdbthis=1;