[02/16] Eliminate literal line numbers in dbx.exp

Message ID 1414598446-13831-2-git-send-email-arnez@linux.vnet.ibm.com
State New, archived
Headers

Commit Message

Andreas Arnez Oct. 29, 2014, 4 p.m. UTC
  Remove literal line numbers from the commands and regexps in dbx.exp.
Add appropriate eye-catchers to average.c and sum.c and refer to those
instead.

gdb/testsuite/ChangeLog:

	* gdb.base/average.c: Add eye-catchers.
	* gdb.base/sum.c: Likewise.
	* gdb.base/dbx.exp: Use eye-catchers to determine line numbers for
	regexps dynamically.
---
 gdb/testsuite/gdb.base/average.c |  4 ++--
 gdb/testsuite/gdb.base/dbx.exp   | 16 ++++++++++------
 gdb/testsuite/gdb.base/sum.c     |  2 +-
 3 files changed, 13 insertions(+), 9 deletions(-)
  

Comments

Yao Qi Nov. 13, 2014, 1:18 p.m. UTC | #1
Andreas Arnez <arnez@linux.vnet.ibm.com> writes:

> gdb/testsuite/ChangeLog:
>
> 	* gdb.base/average.c: Add eye-catchers.
> 	* gdb.base/sum.c: Likewise.
> 	* gdb.base/dbx.exp: Use eye-catchers to determine line numbers for
> 	regexps dynamically.

Please mention the affected functions and procedures in the changelog
entry.  It is OK with this fixed.
  
Andreas Arnez Nov. 13, 2014, 2:16 p.m. UTC | #2
On Thu, Nov 13 2014, Yao Qi wrote:

> Andreas Arnez <arnez@linux.vnet.ibm.com> writes:
>
>> gdb/testsuite/ChangeLog:
>>
>> 	* gdb.base/average.c: Add eye-catchers.
>> 	* gdb.base/sum.c: Likewise.
>> 	* gdb.base/dbx.exp: Use eye-catchers to determine line numbers for
>> 	regexps dynamically.
>
> Please mention the affected functions and procedures in the changelog
> entry.  It is OK with this fixed.

Hm, after yesterday's OK from Pedro I asked Andreas Krebbel to push the
series, and he did so earlier today.  I can provide a patch for the
ChangeLog if needed, but this will not help with the existing commit
messages of course.
  
Yao Qi Nov. 14, 2014, 12:26 a.m. UTC | #3
Andreas Arnez <arnez@linux.vnet.ibm.com> writes:

> Hm, after yesterday's OK from Pedro I asked Andreas Krebbel to push the
> series, and he did so earlier today.  I can provide a patch for the
> ChangeLog if needed, but this will not help with the existing commit
> messages of course.

The changelog entries are incomplete but correct, so let us leave them there.
  

Patch

diff --git a/gdb/testsuite/gdb.base/average.c b/gdb/testsuite/gdb.base/average.c
index e1695ce..99c28cf 100644
--- a/gdb/testsuite/gdb.base/average.c
+++ b/gdb/testsuite/gdb.base/average.c
@@ -35,12 +35,12 @@  main ()
 #endif
 {
     char c;
-    int first = 0, last = 0;
+    int first = 0, last = 0;	/* stop-in-main */
     last = num-1;
 
     /* Try two test cases. */
     print_average (my_list, first, last);
-    print_average (my_list, first, last - 3);
+    print_average (my_list, first, last - 3); /* stop-at-call */
 
     exit(0);
 }
diff --git a/gdb/testsuite/gdb.base/dbx.exp b/gdb/testsuite/gdb.base/dbx.exp
index 4383e79..20d21d1 100644
--- a/gdb/testsuite/gdb.base/dbx.exp
+++ b/gdb/testsuite/gdb.base/dbx.exp
@@ -243,10 +243,12 @@  proc gdb_file_cmd {arg} {
 #test_breakpoints
 #
 proc test_breakpoints { } {
-    gdb_test "stop in main" "Breakpoint.*at.*: file.*average\.c, line 38\."
-    gdb_test "status" "Num.*Type.*Disp.*Enb.*Address.*What\r\n1\[ \r\]+breakpoint\[ \r\]+keep y.*in main at.*average\.c:38.*"
-    gdb_test "stop at average.c:43" "Breakpoint.*at.*: file.*average\.c, line 43.*"
-    gdb_test "stop in average.c:43" "Usage: stop in <function . address>"
+    set stop_line [gdb_get_line_number "stop-in-main"]
+    gdb_test "stop in main" "Breakpoint.*at.*: file.*average\.c, line $stop_line\."
+    gdb_test "status" "Num.*Type.*Disp.*Enb.*Address.*What\r\n1\[ \r\]+breakpoint\[ \r\]+keep y.*in main at.*average\.c:$stop_line.*"
+    set stop_line [gdb_get_line_number "stop-at-call"]
+    gdb_test "stop at average.c:$stop_line" "Breakpoint.*at.*: file.*average\.c, line $stop_line.*"
+    gdb_test "stop in average.c:$stop_line" "Usage: stop in <function . address>"
     gdb_test "stop at main" "Usage: stop at <line>"
 }
 
@@ -287,16 +289,18 @@  proc test_whereis { } {
 #test_func
 #
 proc test_func { } {
+    global srcfile2
     gdb_test "cont" ".*" "cont 1"
     gdb_test "step" ".*"
     # This always fails, but it's not clear why. -sts 1999-08-17
     setup_xfail "*-*-*"
     gdb_test "func sum" "'sum' not within current stack frame\."
-    gdb_test "stop in sum" "Breakpoint.*at.*: file.*sum\.c, line 11\."
+    set stop_line [gdb_get_line_number "stop-in-sum" $srcfile2]
+    gdb_test "stop in sum" "Breakpoint.*at.*: file.*sum\.c, line $stop_line\."
     gdb_test "cont" ".*" "cont 2"
     # This always fails, but it's not clear why. -sts 1999-08-17
     setup_xfail "*-*-*"
-    gdb_test "func print_average" ".*in print_average.*\\(list=.*, low=0, high=6\\).*at.*average\.c:24\r\n24\[ \t\]+total = sum\\(list, low, high\\);"
+    gdb_test "func print_average" ".*in print_average.*\\(list=.*, low=0, high=6\\).*at.*average\.c:\[0-9\]+\r\n\[0-9\]+\[ \t\]+total = sum\\(list, low, high\\);"
 }
 
 # Start with a fresh gdb.
diff --git a/gdb/testsuite/gdb.base/sum.c b/gdb/testsuite/gdb.base/sum.c
index f5a5dbf..6dd7a75 100644
--- a/gdb/testsuite/gdb.base/sum.c
+++ b/gdb/testsuite/gdb.base/sum.c
@@ -8,7 +8,7 @@  int sum(list, low, high)
 int *list, low, high;
 #endif
     {
-        int i = 0, s = 0;
+        int i = 0, s = 0;	/* stop-in-sum */
         for (i = low; i <= high; i++)
             s += list[i];
         return(s);