public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] [gdb/testsuite] Fix check-read1 FAILs in mi-fortran-modules.exp
@ 2020-03-14 17:03 Tom de Vries
  0 siblings, 0 replies; only message in thread
From: Tom de Vries @ 2020-03-14 17:03 UTC (permalink / raw)
  To: gdb-cvs

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

commit ab44624cea74dca3e6d19c3275d9d5a8d381c084
Author: Tom de Vries <tdevries@suse.de>
Date:   Sat Mar 14 18:03:39 2020 +0100

    [gdb/testsuite] Fix check-read1 FAILs in mi-fortran-modules.exp
    
    When running test-case gdb.mi/mi-fortran-modules.exp with check-read1, I run
    into:
    ...
    FAIL: gdb.mi/mi-fortran-modules.exp: -symbol-info-module-functions (timeout)
    FAIL: gdb.mi/mi-fortran-modules.exp: -symbol-info-module-functions \
      --name _all (unexpected output)
    FAIL: gdb.mi/mi-fortran-modules.exp: -symbol-info-module-functions \
      --module mod[123] (unexpected output)
    FAIL: gdb.mi/mi-fortran-modules.exp: -symbol-info-module-variables \
      (unexpected output)
    ...
    
    Fix this by using exp_continue.
    
    Tested on x86_64, using make target check and check-read1.
    
    gdb/testsuite/ChangeLog:
    
    2020-03-14  Tom de Vries  <tdevries@suse.de>
    
            * gdb.mi/mi-fortran-modules.exp: Use exp_continue.

Diff:
---
 gdb/testsuite/ChangeLog                     |   4 +
 gdb/testsuite/gdb.mi/mi-fortran-modules.exp | 116 ++++++++++++++++++++++++----
 2 files changed, 103 insertions(+), 17 deletions(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 520e4533fa5..07ed021aa1b 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2020-03-14  Tom de Vries  <tdevries@suse.de>
+
+	* gdb.mi/mi-fortran-modules.exp: Use exp_continue.
+
 2020-03-14  Tom de Vries  <tdevries@suse.de>
 
 	* gdb.threads/attach-many-short-lived-threads.exp: Read "info threads"
diff --git a/gdb/testsuite/gdb.mi/mi-fortran-modules.exp b/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
index 4cd67f83a34..e7ee1b96e46 100644
--- a/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
+++ b/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
@@ -52,12 +52,55 @@ mi_gdb_test "103-symbol-info-modules --name moduse" \
     "103\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"41\",name=\"moduse\"\}\\\]\}\\\]\}" \
     "-symbol-info-modules --name moduse"
 
-mi_gdb_test "104-symbol-info-module-functions" \
-    [join \
-     [list \
-      "104\\^done,symbols=\\\[(${system_module_symbols_pattern})*\{module=\"mod1\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"21\",name=\"mod1::check_all\",type=\"void \\(void\\)\",description=\"void mod1::check_all\\(void\\);\"\}\\\]\}\\\]\},\{module=\"mod2\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"30\",name=\"mod2::check_var_i\",type=\"void \\(void\\)\",description=\"void mod2::check_var_i\\(void\\);\"\}\\\]\}\\\]\},\{module=\"mod3\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"21\",name=\"mod3::check_all\",type=\"void \\(void\\)\",description=\"void mod3::check_all\\(void\\);\"\},\{line=\"27\",name=\"mod3::check_mod2\",type=\"void \\(void\\)\",description=\"void mod3::check_mod2\\(void\\);\"\}\\\]\}\\\]\}," \
-      "\{module=\"modmany\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"35\",name=\"modmany::check_some\",type=\"void \\(void\\)\",description=\"void modmany::check_some\\(void\\);\"\}\\\]\}\\\]\},\{module=\"moduse\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"44\",name=\"moduse::check_all\",type=\"void \\(void\\)\",description=\"void moduse::check_all\\(void\\);\"\},\{line=\"49\",name=\"moduse::check_var_x\",type=\"void \\(void\\)\",description=\"void moduse::check_var_x\\(void\\);\"\}\\\]\}\\\]\}\\\]" ] "" ] \
-    "-symbol-info-module-functions"
+set test "-symbol-info-module-functions"
+set cmd "104-symbol-info-module-functions"
+set mod1_re \
+    "\{module=\"mod1\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"21\",name=\"mod1::check_all\",type=\"void \\(void\\)\",description=\"void mod1::check_all\\(void\\);\"\}\\\]\}\\\]\}"
+set mod2_re \
+    "\{module=\"mod2\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"30\",name=\"mod2::check_var_i\",type=\"void \\(void\\)\",description=\"void mod2::check_var_i\\(void\\);\"\}\\\]\}\\\]\}"
+set mod3_re \
+    "\{module=\"mod3\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"21\",name=\"mod3::check_all\",type=\"void \\(void\\)\",description=\"void mod3::check_all\\(void\\);\"\},\{line=\"27\",name=\"mod3::check_mod2\",type=\"void \\(void\\)\",description=\"void mod3::check_mod2\\(void\\);\"\}\\\]\}\\\]\}"
+set modmany_re \
+    "\{module=\"modmany\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"35\",name=\"modmany::check_some\",type=\"void \\(void\\)\",description=\"void modmany::check_some\\(void\\);\"\}\\\]\}\\\]\}"
+set moduse_re \
+    "\{module=\"moduse\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"44\",name=\"moduse::check_all\",type=\"void \\(void\\)\",description=\"void moduse::check_all\\(void\\);\"\},\{line=\"49\",name=\"moduse::check_var_x\",type=\"void \\(void\\)\",description=\"void moduse::check_var_x\\(void\\);\"\}\\\]\}\\\]\}"
+set state 0
+gdb_test_multiple $cmd $test -prompt $mi_gdb_prompt$ {
+    -re "104\\^done,symbols=\\\[" {
+	if { $state == 0 } { set state 1 }
+	exp_continue
+    }
+    -re "$mod1_re" {
+	if { $state == 1 } { incr state }
+	exp_continue
+    }
+    -re "$mod2_re" {
+	if { $state == 2 } { incr state }
+	exp_continue
+    }
+    -re "$mod3_re" {
+	if { $state == 3 } { incr state }
+	exp_continue
+    }
+    -re "$modmany_re" {
+	if { $state == 4 } { incr state }
+	exp_continue
+    }
+    -re "$moduse_re" {
+	if { $state == 5 } { incr state }
+	exp_continue
+    }
+    -re ${system_module_symbols_pattern} {
+	exp_continue
+    }
+    -re "\\\]\r\n$mi_gdb_prompt$" {
+	if { $state == 6 } {
+	    pass $gdb_test_name
+	} else {
+	    fail $gdb_test_name
+	}
+    }	
+}
 
 mi_gdb_test "105-symbol-info-module-functions --name _all" \
     "105\\^done,symbols=\\\[\{module=\"mod1\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"21\",name=\"mod1::check_all\",type=\"void \\(void\\)\",description=\"void mod1::check_all\\(void\\);\"\}\\\]\}\\\]\},\{module=\"mod3\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"21\",name=\"mod3::check_all\",type=\"void \\(void\\)\",description=\"void mod3::check_all\\(void\\);\"\}\\\]\}\\\]\},\{module=\"moduse\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"44\",name=\"moduse::check_all\",type=\"void \\(void\\)\",description=\"void moduse::check_all\\(void\\);\"\}\\\]\}\\\]\}\\\]" \
@@ -69,14 +112,53 @@ mi_gdb_test "106-symbol-info-module-functions --module mod\[123\]" \
 
 set int4 [fortran_int4]
 
-mi_gdb_test "107-symbol-info-module-variables" \
-    [join \
-     [list \
-      "107\\^done,symbols=\\\[(${system_module_symbols_pattern})*\{module=\"mod1\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"18\",name=\"mod1::var_const\",type=\"$int4\",description=\"$int4 mod1::var_const;\"\},\{line=\"17\",name=\"mod1::var_i\",type=\"$int4\",description=\"$int4 mod1::var_i;\"\}\\\]\}\\\]\},\{module=\"mod2\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"28\",name=\"mod2::var_i\",type=\"$int4\",description=\"$int4 mod2::var_i;\"\}\\\]\}\\\]\}," \
-	  "\{module=\"mod3\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"18\",name=\"mod3::mod1\",type=\"$int4\",description=\"$int4 mod3::mod1;\"\},\{line=\"17\",name=\"mod3::mod2\",type=\"$int4\",description=\"$int4 mod3::mod2;\"\},\{line=\"19\",name=\"mod3::var_i\",type=\"$int4\",description=\"$int4 mod3::var_i;\"\}\\\]\}\\\]\},\{module=\"modmany\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"33\",name=\"modmany::var_a\",type=\"$int4\",description=\"$int4 modmany::var_a;\"\}," \
-	  "\{line=\"33\",name=\"modmany::var_b\",type=\"$int4\",description=\"$int4 modmany::var_b;\"\},\{line=\"33\",name=\"modmany::var_c\",type=\"$int4\",description=\"$int4 modmany::var_c;\"\},\{line=\"33\",name=\"modmany::var_i\",type=\"$int4\",description=\"$int4 modmany::var_i;\"\}\\\]\}\\\]\},\{module=\"moduse\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"42\",name=\"moduse::var_x\",type=\"$int4\",description=\"$int4 moduse::var_x;\"\},\{line=\"42\",name=\"moduse::var_y\",type=\"$int4\",description=\"$int4 moduse::var_y;\"\}\\\]\}\\\]\}\\\]" ] "" ] \
-    "-symbol-info-module-variables"
-
-
-
-
+set mod1_re \
+    "\{module=\"mod1\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"18\",name=\"mod1::var_const\",type=\"$int4\",description=\"$int4 mod1::var_const;\"\},\{line=\"17\",name=\"mod1::var_i\",type=\"$int4\",description=\"$int4 mod1::var_i;\"\}\\\]\}\\\]\}"
+set mod2_re \
+    "\{module=\"mod2\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"28\",name=\"mod2::var_i\",type=\"$int4\",description=\"$int4 mod2::var_i;\"\}\\\]\}\\\]\}"
+set mod3_re \
+    "\{module=\"mod3\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"18\",name=\"mod3::mod1\",type=\"$int4\",description=\"$int4 mod3::mod1;\"\},\{line=\"17\",name=\"mod3::mod2\",type=\"$int4\",description=\"$int4 mod3::mod2;\"\},\{line=\"19\",name=\"mod3::var_i\",type=\"$int4\",description=\"$int4 mod3::var_i;\"\}\\\]\}\\\]\}"
+set modmany_re \
+    "\{module=\"modmany\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"33\",name=\"modmany::var_a\",type=\"$int4\",description=\"$int4 modmany::var_a;\"\},\{line=\"33\",name=\"modmany::var_b\",type=\"$int4\",description=\"$int4 modmany::var_b;\"\},\{line=\"33\",name=\"modmany::var_c\",type=\"$int4\",description=\"$int4 modmany::var_c;\"\},\{line=\"33\",name=\"modmany::var_i\",type=\"$int4\",description=\"$int4 modmany::var_i;\"\}\\\]\}\\\]\}"
+set moduse_re \
+    ",\{module=\"moduse\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"42\",name=\"moduse::var_x\",type=\"$int4\",description=\"$int4 moduse::var_x;\"\},\{line=\"42\",name=\"moduse::var_y\",type=\"$int4\",description=\"$int4 moduse::var_y;\"\}\\\]\}\\\]\}"
+
+set cmd "107-symbol-info-module-variables"
+set test "-symbol-info-module-variables"
+set state 0
+gdb_test_multiple $cmd $test -prompt $mi_gdb_prompt$ {
+    -re "107\\^done,symbols=\\\[" {
+	if { $state == 0 } { set state 1 }
+	exp_continue
+    }
+    -re "$mod1_re" {
+	if { $state == 1 } { incr state }
+	exp_continue
+    }
+    -re "$mod2_re" {
+	if { $state == 2 } { incr state }
+	exp_continue
+    }
+    -re "$mod3_re" {
+	if { $state == 3 } { incr state }
+	exp_continue
+    }
+    -re "$modmany_re" {
+	if { $state == 4 } { incr state }
+	exp_continue
+    }
+    -re "$moduse_re" {
+	if { $state == 5 } { incr state }
+	exp_continue
+    }
+    -re ${system_module_symbols_pattern} {
+	exp_continue
+    }
+    -re "\\\]\r\n$mi_gdb_prompt$" {
+	if { $state == 6 } {
+	    pass $gdb_test_name
+	} else {
+	    fail $gdb_test_name
+	}
+    }	
+}


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-03-14 17:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-14 17:03 [binutils-gdb] [gdb/testsuite] Fix check-read1 FAILs in mi-fortran-modules.exp Tom de Vries

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).