public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Andrew Burgess <aburgess@redhat.com>
To: gdb-patches@sourceware.org
Cc: Andrew Burgess <aburgess@redhat.com>, Andreas Schwab <schwab@suse.de>
Subject: [PATCHv2 5/5] gdb/testsuite: cleanup in gdb.base/args.exp
Date: Wed, 27 Sep 2023 18:27:58 +0100	[thread overview]
Message-ID: <34f347e769efca7a502b1466fa0c903c433c1f3a.1695835626.git.aburgess@redhat.com> (raw)
In-Reply-To: <cover.1695835626.git.aburgess@redhat.com>

The last few commits resolved the KFAILs in gdb.base/args.exp.  With
those out of the way we can clean up this test script a little.

In this commit I have:

  - Stopped passing 'nowarnings' flag when building the source file.
    I see no reason why this source should issue a warning,

  - Moved setup of GDBFLAGS into args_test proc, callers that passed a
    newline needed a small tweak, and also the matching code needs
    updating for newline handling, but I think this is nicer, the
    argument lists are now given just once,

  - Updated comment on args_test,

  - Updated other comments.

There should be no change in what is tested after this commit.
---
 gdb/testsuite/gdb.base/args.exp | 89 ++++++++++++++-------------------
 1 file changed, 37 insertions(+), 52 deletions(-)

diff --git a/gdb/testsuite/gdb.base/args.exp b/gdb/testsuite/gdb.base/args.exp
index 0e2dc8b1399..43ea6e5caa8 100644
--- a/gdb/testsuite/gdb.base/args.exp
+++ b/gdb/testsuite/gdb.base/args.exp
@@ -24,76 +24,61 @@ require !use_gdb_stub
 
 standard_testfile
 
-if {[build_executable $testfile.exp $testfile \
-	 $srcfile {debug nowarnings}] == -1} {
+if {[build_executable $testfile.exp $testfile $srcfile] == -1} {
     untested "failed to compile"
     return -1
 }
 
 # NAME is the name to use for the tests and ARGLIST is the list of
-# expected arguments.
+# arguments that are passed to GDB when it is started.
 
 proc args_test { name arglist } {
-    global srcdir
-    global subdir
-    global testfile
-    global hex
-    global decimal
-
-    clean_restart $testfile
-
-    runto_main
-    gdb_breakpoint [gdb_get_line_number "set breakpoint here"]
-    gdb_continue_to_breakpoint "breakpoint for $name"
-
-    set expected_len [expr 1 + [llength $arglist]]
-    gdb_test "print argc" "\\\$$decimal = $expected_len" "argc for $name"
-
-    set i 1
-    foreach arg $arglist {
-	gdb_test "print argv\[$i\]" "\\\$$decimal = $hex \"$arg\"" \
-	    "argv\[$i\] for $name"
-	set i [expr $i + 1]
+    save_vars { ::GDBFLAGS } {
+	set ::GDBFLAGS "$::GDBFLAGS --args $::binfile $arglist"
+
+	clean_restart $::binfile
+
+	runto_main
+	gdb_breakpoint [gdb_get_line_number "set breakpoint here"]
+	gdb_continue_to_breakpoint "breakpoint for $name"
+
+	set expected_len [expr 1 + [llength $arglist]]
+	gdb_test "print argc" "\\\$$::decimal = $expected_len" "argc for $name"
+
+	set i 1
+	foreach arg $arglist {
+	    if { $arg eq "\n" } {
+		set arg {\\n}
+	    }
+	    verbose -log "APB: regexp '$arg'"
+	    gdb_test "print argv\[$i\]" "\\\$$::decimal = $::hex \"$arg\"" \
+		"argv\[$i\] for $name"
+	    set i [expr $i + 1]
+	}
     }
 }
 
-#
 # Test that the --args are processed correctly.
-#
 
-save_vars { GDBFLAGS } {
-    set old_gdbflags $GDBFLAGS
+args_test basic {{1} {3}}
 
-    set GDBFLAGS "$old_gdbflags --args $binfile 1 3"
-    args_test basic {{1} {3}}
+# Test that the --args are processed correctly even if one of them is
+# empty.
 
-    #
-    # Test that the --args are processed correctly even if one of them is empty.
-    # The syntax needed is a little peculiar; DejaGNU treats the arguments as a
-    # list and expands them itself, since no shell redirection is involved.
-    #
-    set GDBFLAGS "$old_gdbflags --args $binfile 1 {} 3"
-    args_test "one empty" {{1} {} {3}}
+args_test "one empty" {{1} {} {3}}
 
-    #
-    # try with 2 empty args
-    #
-    set GDBFLAGS "$old_gdbflags --args $binfile 1 {} {} 3"
-    args_test "two empty" {{1} {} {} 3}
+# Try with 2 empty args.
 
-    # Try with arguments containing literal single quotes.
+args_test "two empty" {{1} {} {} 3}
 
-    set GDBFLAGS "$old_gdbflags --args $binfile 1 '' 3"
-    args_test "one empty with single quotes" {{1} {''} {3}}
+# Try with arguments containing literal single quotes.
 
-    set GDBFLAGS "$old_gdbflags --args $binfile 1 '' '' 3"
-    args_test "two empty with single quotes" {{1} {''} {''} {3}}
+args_test "one empty with single quotes" {{1} {''} {3}}
 
-    # try with arguments containing literal newlines.
+args_test "two empty with single quotes" {{1} {''} {''} {3}}
 
-    set GDBFLAGS "$old_gdbflags --args $binfile 1 {\n} 3"
-    args_test "one newline" {{1} {\\n} {3}}
+# Try with arguments containing literal newlines.
 
-    set GDBFLAGS "$old_gdbflags --args $binfile 1 {\n} {\n} 3"
-    args_test "two newlines" {{1} {\\n} {\\n} {3}}
-}
+args_test "one newline" {{1} "\n" {3}}
+
+args_test "two newlines" {{1} "\n" "\n" {3}}
-- 
2.25.4


  parent reply	other threads:[~2023-09-27 17:28 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-27 12:21 [PATCH] gdbserver: fix handling of single quote arguments Andrew Burgess
2023-09-27 13:01 ` Andreas Schwab
2023-09-27 17:27 ` [PATCHv2 0/5] Fixes for passing arguments to gdbserver Andrew Burgess
2023-09-27 17:27   ` [PATCHv2 1/5] gdbserver: fix handling of single quote arguments Andrew Burgess
2023-09-27 17:27   ` [PATCHv2 2/5] gdbserver: fix handling of trailing empty argument Andrew Burgess
2023-09-27 17:27   ` [PATCHv2 3/5] gdbserver: handle newlines in inferior arguments Andrew Burgess
2023-09-27 17:27   ` [PATCHv2 4/5] gdbserver: cleanup in handle_v_run Andrew Burgess
2023-10-03 19:13     ` Tom Tromey
2023-10-04 14:40       ` Andrew Burgess
2023-10-04 19:35         ` Tom Tromey
2023-09-27 17:27   ` Andrew Burgess [this message]
2023-10-05 16:17     ` [PATCHv2 5/5] gdb/testsuite: cleanup in gdb.base/args.exp Tom Tromey
2023-10-05 16:18   ` [PATCHv2 0/5] Fixes for passing arguments to gdbserver Tom Tromey
2023-10-06 12:15     ` Andrew Burgess
2023-10-06 12:56       ` Tom Tromey

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=34f347e769efca7a502b1466fa0c903c433c1f3a.1695835626.git.aburgess@redhat.com \
    --to=aburgess@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=schwab@suse.de \
    /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 read-only IMAP folder(s) and NNTP newsgroup(s).