diff mbox

[2/3] Eliminate literal line numbers in mi-until.exp

Message ID 1415990846-9482-3-git-send-email-arnez@linux.vnet.ibm.com
State New
Headers show

Commit Message

Andreas Arnez Nov. 14, 2014, 6:47 p.m. UTC
Remove literal line numbers from the regexps in mi-until.exp.  Add
appropriate eye-catchers to until.c and refer to those instead.

This change fixes the test case after having disturbed the line
numbering with the previous fix for compiler warnings with -std=gnu11.

gdb/testsuite/ChangeLog:

	* gdb.mi/until.c: Add eye-catchers.
	* gdb.mi/mi-until.exp: Refer to eye-catchers instead of literal
	line numbers.
---
 gdb/testsuite/gdb.mi/mi-until.exp | 23 +++++++++++++++--------
 gdb/testsuite/gdb.mi/until.c      | 10 +++++-----
 2 files changed, 20 insertions(+), 13 deletions(-)
diff mbox

Patch

diff --git a/gdb/testsuite/gdb.mi/mi-until.exp b/gdb/testsuite/gdb.mi/mi-until.exp
index 3fabcd2..2d0bc4e 100644
--- a/gdb/testsuite/gdb.mi/mi-until.exp
+++ b/gdb/testsuite/gdb.mi/mi-until.exp
@@ -42,12 +42,13 @@  mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
 proc test_running_to_foo {} {
-    mi_create_breakpoint "10" \
+    set line [gdb_get_line_number "in-loop"]
+    mi_create_breakpoint $line \
 	"break-insert operation" \
-	-number 1 -func foo -file ".*until.c" -line 10
+	-number 1 -func foo -file ".*until.c" -line $line
 
     mi_run_cmd
-    mi_expect_stop "breakpoint-hit" "foo" "" ".*until.c" 10 \
+    mi_expect_stop "breakpoint-hit" "foo" "" ".*until.c" $line \
       { "" "disp=\"keep\"" } "run to main"
 
     mi_gdb_test "100-break-delete 1" "100\\^done" "break-delete 1"
@@ -56,17 +57,23 @@  proc test_running_to_foo {} {
 
 proc test_until {} {
     setup_kfail gdb/2104 "*-*-*"
-    mi_execute_to "exec-until" "end-stepping-range" "foo" "" ".*until.c" "12" "" \
+    set line [gdb_get_line_number "after-loop"]
+    mi_execute_to "exec-until" "end-stepping-range" "foo" "" ".*until.c" $line "" \
         "until after while loop"
 
-    mi_execute_to "exec-until 15" "location-reached" "foo" "" ".*until.c" "15" ""\
+    set line [gdb_get_line_number "until-here"]
+    mi_execute_to "exec-until $line" "location-reached" "foo" "" ".*until.c" $line ""\
         "until line number"
 
-    mi_execute_to "exec-until until.c:17" "location-reached" "foo" "" ".*until.c" "17" ""\
+    set line [gdb_get_line_number "until-there"]
+    mi_execute_to "exec-until until.c:$line" "location-reached" "foo" "" ".*until.c" $line ""\
         "until line number:file"
 
-    # This is supposed to NOT stop at line 25. It stops right after foo is over.
-    mi_execute_to "exec-until until.c:25" "location-reached" "main" "" ".*until.c" "(23|24)" ""\
+    # This is supposed to NOT stop at the return statement, but right
+    # after foo is over.
+    set line [gdb_get_line_number "at-return"]
+    mi_execute_to "exec-until until.c:$line" "location-reached" "main" ""\
+	".*until.c" "([expr $line-2]|[expr $line-1])" ""\
         "until after current function"
 }
 
diff --git a/gdb/testsuite/gdb.mi/until.c b/gdb/testsuite/gdb.mi/until.c
index 21bdeda..83beea0 100644
--- a/gdb/testsuite/gdb.mi/until.c
+++ b/gdb/testsuite/gdb.mi/until.c
@@ -8,14 +8,14 @@  foo (void)
  i = 0;
 
  while (i < 2)
-   i++;
+   i++;				/* in-loop */
 
- x = i;
+ x = i;				/* after-loop */
  y = 2 * x;
  z = x + y;
- y = x + z;
+ y = x + z;			/* until-here */
  x = 9;
- y = 10;
+ y = 10;			/* until-there */
 }
 
 int
@@ -24,5 +24,5 @@  main ()
   int a = 1;
   foo ();
   a += 2;
-  return 0;
+  return 0;			/* at-return */
 }