Eliminate literal line numbers in mi-until.exp
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Fri, 14 Nov 2014 18:21:21 +0000 (18:21 +0000)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Mon, 17 Nov 2014 09:26:30 +0000 (10:26 +0100)
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/ChangeLog
gdb/testsuite/gdb.mi/mi-until.exp
gdb/testsuite/gdb.mi/until.c

index 2f7e09cdc20812b6c252ad25da01dd1dbb126fda..351d2df28b17dcd17afd1c85a9125125dea0a094 100644 (file)
@@ -1,3 +1,9 @@
+2014-11-17  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * gdb.mi/until.c: Add eye-catchers.
+       * gdb.mi/mi-until.exp: Refer to eye-catchers instead of literal
+       line numbers.
+
 2014-11-17  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
        * gdb.base/condbreak.exp: Drop references to removed non-prototype
index 3fabcd2092df4fa9dd8d4a7b572cf9b1614b26b6..2d0bc4ec821d7fbf148d5b71620123084e3043dc 100644 (file)
@@ -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"
 }
 
index 21bdedaf3e62105ca832458b594ce4e9b430df83..83beea08f41203696f7b9ccd00fb252d8c137a2e 100644 (file)
@@ -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 */
 }