[binutils-gdb] [gdb/testsuite] Improve quotemeta error messages

Tom de Vries vries@sourceware.org
Fri Feb 13 11:03:17 GMT 2026


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d2d785c630757d31aedf9467acd0f13b2adc9876

commit d2d785c630757d31aedf9467acd0f13b2adc9876
Author: Tom de Vries <tdevries@suse.de>
Date:   Fri Feb 13 12:03:06 2026 +0100

    [gdb/testsuite] Improve quotemeta error messages
    
    With test-case gdb.testsuite/quotemeta.exp we get:
    ...
    check_quotemeta_fail: input: @NOTHING
    check_quotemeta_fail: catch_res: 1, catch_msg: \
      can't read "::_quotemeta(NOTHING)": no such element in array
    PASS: gdb.testsuite/quotemeta.exp: no-such-subst
    check_quotemeta_fail: input: @bad-name
    check_quotemeta_fail: catch_res: 1, catch_msg: invalid quotemeta expression
    PASS: gdb.testsuite/quotemeta.exp: bad-name
    ...
    
    Improve the error messages to:
    - undefined quotemeta expression @NOTHING
    - invalid quotemeta expression @bad-name

Diff:
---
 gdb/testsuite/lib/quotemeta.exp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/lib/quotemeta.exp b/gdb/testsuite/lib/quotemeta.exp
index 5b587df754e..d2810e2c45b 100644
--- a/gdb/testsuite/lib/quotemeta.exp
+++ b/gdb/testsuite/lib/quotemeta.exp
@@ -85,7 +85,7 @@ proc quotemeta {str} {
 	    # Match the usual forms.
 	    if {![regexp -- "^(\\.\\.\\.|\[A-Z\]\[A-Z_\]*|@|/\[^/\]*/)(.*)$" \
 		      $at_text ignore at_text remainder]} {
-		error "invalid quotemeta expression"
+		error "invalid quotemeta expression @$at_text"
 	    }
 	}
 
@@ -100,6 +100,9 @@ proc quotemeta {str} {
 	    # an embedded "/".
 	    append result $rx
 	} else {
+	    if {![info exists ::_quotemeta($at_text)]} {
+		error "undefined quotemeta expression @$at_text"
+	    }
 	    append result $::_quotemeta($at_text)
 	}


More information about the Gdb-cvs mailing list