Fix gdb.base/attach.exp fails when gdb is configured --with-sysroot=/
authorYao Qi <yao.qi@linaro.org>
Thu, 1 Feb 2018 14:50:23 +0000 (14:50 +0000)
committerYao Qi <yao.qi@linaro.org>
Thu, 1 Feb 2018 14:50:23 +0000 (14:50 +0000)
I see some test fails in gdb.base/attach.exp when gdb is configured
--with-sysroot=/.

FAIL: gdb.base/attach.exp: attach2, with no file
FAIL: gdb.base/attach.exp: load file manually, after attach2 (re-read) (got interactive prompt)
FAIL: gdb.base/attach.exp: attach when process' a.out not in cwd

If gdb is configured this way, sysroot is "/" in default, and if binfile
is a absolute path, the regexp pattern $sysroot$escapedbinfile is
incorrect.

There are different ways to fix it, but I don't want to complicate the
test, so I choose this naive way.

gdb/testsuite:

2018-02-01  Yao Qi  <yao.qi@linaro.org>

* gdb.base/attach.exp (do_attach_tests): Set sysroot to
"\[^\r\n\]*".

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/attach.exp

index 00c01fde24e81d5677fdbb6d6b93fd508a71a4df..ad6c04a07159d106240529402781806a4cc957a2 100644 (file)
@@ -1,3 +1,8 @@
+2018-02-01  Yao Qi  <yao.qi@linaro.org>
+
+       * gdb.base/attach.exp (do_attach_tests): Set sysroot to
+       "\[^\r\n\]*".
+
 2018-01-31  Nikola Prica  <nikola.prica@rt-rk.com>
 
        * gdb.arch/powerpc-prologue-frame.s: New file.
index d315c2792e373c2d45fdd16d70367e1e5f6ab553..efec49e3858059caccde4f69c3e6b6935fac7038 100644 (file)
@@ -57,15 +57,12 @@ proc do_attach_tests {} {
     # Figure out a regular expression that will match the sysroot,
     # noting that the default sysroot is "target:", and also noting
     # that GDB will strip "target:" from the start of filenames when
-    # operating on the local filesystem
-    set sysroot ""
-    set test "show sysroot"
-    gdb_test_multiple $test $test {
-       -re "The current system root is \"(.*)\"\..*${gdb_prompt} $" {
-           set sysroot $expect_out(1,string)
-       }
-    }
-    regsub "^target:" "$sysroot" "(target:)?" sysroot
+    # operating on the local filesystem.  However the default sysroot
+    # can be set via configure option --with-sysroot, which can be "/".
+    # If $binfile is a absolute path, so pattern
+    # "$sysroot$escapedbinfile" below is wrong.  Use [^\r\n]* to make
+    # $sysroot simple.
+    set sysroot "\[^\r\n\]*"
 
     # Start the program running and then wait for a bit, to be sure
     # that it can be attached to.