* gdb.threads/gcore-thread.exp: Use gdb_gcore_cmd.
authorTom Tromey <tromey@redhat.com>
Tue, 6 Nov 2012 15:21:24 +0000 (15:21 +0000)
committerTom Tromey <tromey@redhat.com>
Tue, 6 Nov 2012 15:21:24 +0000 (15:21 +0000)
* gdb.python/py-strfns.exp (test_strfns_core_file): Use
gdb_gcore_cmd.
* gdb.cell/gcore.exp: Use gdb_gcore_cmd.
* gdb.base/gcore.exp: Use gdb_gcore_cmd.
* gdb.base/gcore-relro.exp: Use gdb_gcore_cmd.
* gdb.base/gcore-buffer-overflow.exp: Use gdb_gcore_cmd.
* gdb.base/auxv.exp: Use gdb_gcore_cmd.
* gdb.arch/vsx-regs.exp: Use gdb_gcore_cmd.
* gdb.arch/system-gcore.exp: Use gdb_gcore_cmd.
* gdb.arch/pa-nullify.exp (test_core_bt): Use gdb_gcore_cmd.
* lib/gdb.exp (gdb_gcore_cmd): New proc.

12 files changed:
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/pa-nullify.exp
gdb/testsuite/gdb.arch/system-gcore.exp
gdb/testsuite/gdb.arch/vsx-regs.exp
gdb/testsuite/gdb.base/auxv.exp
gdb/testsuite/gdb.base/gcore-buffer-overflow.exp
gdb/testsuite/gdb.base/gcore-relro.exp
gdb/testsuite/gdb.base/gcore.exp
gdb/testsuite/gdb.cell/gcore.exp
gdb/testsuite/gdb.python/py-strfns.exp
gdb/testsuite/gdb.threads/gcore-thread.exp
gdb/testsuite/lib/gdb.exp

index 80aac5bd379d70f5973729b981e97971614c43d8..be01765e44a2b6fefbfe9bf9305a3a287b4f527c 100644 (file)
@@ -1,3 +1,18 @@
+2012-11-06  Tom Tromey  <tromey@redhat.com>
+
+       * gdb.threads/gcore-thread.exp: Use gdb_gcore_cmd.
+       * gdb.python/py-strfns.exp (test_strfns_core_file): Use
+       gdb_gcore_cmd.
+       * gdb.cell/gcore.exp: Use gdb_gcore_cmd.
+       * gdb.base/gcore.exp: Use gdb_gcore_cmd.
+       * gdb.base/gcore-relro.exp: Use gdb_gcore_cmd.
+       * gdb.base/gcore-buffer-overflow.exp: Use gdb_gcore_cmd.
+       * gdb.base/auxv.exp: Use gdb_gcore_cmd.
+       * gdb.arch/vsx-regs.exp: Use gdb_gcore_cmd.
+       * gdb.arch/system-gcore.exp: Use gdb_gcore_cmd.
+       * gdb.arch/pa-nullify.exp (test_core_bt): Use gdb_gcore_cmd.
+       * lib/gdb.exp (gdb_gcore_cmd): New proc.
+
 2012-11-05  Pedro Alves  <palves@redhat.com>
 
        * gdb.base/foll-vfork.exp (vfork_relations_in_info_inferiors): New
index e3223d98000080e5a6d3883b6cbf96ad7fd29442..2ad3af680bc15dc4a13652b57138afd73e690c1a 100644 (file)
@@ -107,26 +107,8 @@ gdb_test "stepi" "in main.*" "stepi to main"
 
 proc gen_core { test } {
   global gcorefile
-  global gdb_prompt
-  set gcore_works 0
-  set escapedfilename [string_to_regexp $gcorefile]
-
-  # gcore is not yet implemented for HPUX
-  setup_xfail hppa*-*-hpux*
-
-  gdb_test_multiple "gcore $gcorefile" "$test: gcore" {
-    -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
-      pass "$test: gcore"
-      set gcore_works 1
-    }
-    -re "Undefined command.*$gdb_prompt $" {
-      fail "$test: gcore (undefined command)"
-    }
-    -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
-      fail "$test: gcore (can't create corefile)"
-    }
-  }
 
+  set gcore_works [gdb_gcore_cmd $gcorefile "$test: gcore"]
   return $gcore_works
 }
 
index ab97f6969e5d68fdf54a7176f80410fb1b473d00..f631b4584019b7cca544bdb79a7e084cd3413988 100644 (file)
@@ -95,23 +95,8 @@ set pre_corefile_local_array \
 set pre_corefile_extern_array \
        [capture_command_output "print extern_array" "$print_prefix"]
 
-set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore.test]
-
-set core_supported 0
-gdb_test_multiple "gcore ${objdir}/${subdir}/gcore.test" \
-       "save a corefile" \
-{
-  -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
-    pass "save a corefile"
-    global core_supported
-    set core_supported 1
-  }
-  -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
-    unsupported "save a corefile"
-    global core_supported
-    set core_supported 0
-  }
-}
+set core_supported [gdb_gcore_cmd "${objdir}/${subdir}/gcore.test" \
+                       "save a corefile"]
 
 if {!$core_supported} {
   return -1
index d015787763ac5aa026152ab5883f310d3f0a0d97..5f234444be05000ca4dfa9a98ba53789701679cb 100644 (file)
@@ -128,24 +128,8 @@ for {set i 0} {$i < 32} {incr i 1} {
 # later when loading the core file (i.e., different register values for different
 # vector register banks).
 
-set escapedfilename [string_to_regexp ${objdir}/${subdir}/vsx-core.test]
-
-set core_supported 0
-
-gdb_test_multiple "gcore ${objdir}/${subdir}/vsx-core.test" \
-        "Save a VSX-enabled corefile" \
-{
-  -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
-    pass "Save a VSX-enabled corefile"
-    global core_supported
-    set core_supported 1
-  }
-  -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
-    unsupported "Save a VSX-enabled corefile"
-    global core_supported
-    set core_supported 0
-  }
-}
+set core_supported [gdb_gcore_cmd "${objdir}/${subdir}/vsx-core.test" \
+                       "Save a VSX-enabled corefile"]
 
 # Now run the F32~F63/VR0~VR31 tests.
 
index 16f12c7f93d4abbad44af86296743240b3906899..0c7bac4a50559fe283ddc73b1a00428ed0a5ab24 100644 (file)
@@ -127,20 +127,7 @@ proc fetch_auxv {test} {
 set live_data [fetch_auxv "info auxv on live process"]
 
 # Now try gcore.
-set gcore_works 0
-set escapedfilename [string_to_regexp $gcorefile]
-gdb_test_multiple "gcore $gcorefile" "gcore" {
-    -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
-       pass "gcore"
-       set gcore_works 1
-    }
-    -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
-       unsupported "gcore"
-    }
-    -re "Undefined command: .*\[\r\n\]+$gdb_prompt $" {
-       unsupported "gcore"
-    }
-}
+set gcore_works [gdb_gcore_cmd "$gcorefile" "gcore"]
 
 # Let the program continue and die.
 gdb_test continue ".*Program received signal.*"
index 7736bb8b578f0510187caae7092ba5792603b578..13c3e75a33c463152862d808b8887f9d5ad26c0d 100644 (file)
@@ -55,17 +55,4 @@ if { ! [ runto_main ] } then {
     return -1
 }
 
-set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore-buffer-overflow.test]
-
-set test "save a corefile"
-gdb_test_multiple "gcore ${objdir}/${subdir}/gcore-buffer-overflow.test" $test {
-    -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
-       pass $test
-    }
-    -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
-       unsupported $test
-    }
-    eof {
-       fail $test
-    }
-}
+gdb_gcore_cmd "${objdir}/${subdir}/gcore-buffer-overflow.test" "save a corefile"
index 5b8d6c77eb6edf20a2da170699b37e8a19631b63..b35126db1a9c27190c97fa72d73388de4f79be78 100644 (file)
@@ -55,17 +55,8 @@ if ![runto lib] {
     return -1
 }
 
-set escapedfilename [string_to_regexp ${gcorefile}]
-
-set test "save a corefile"
-gdb_test_multiple "gcore ${gcorefile}" $test {
-    -re "Saved corefile ${escapedfilename}\r\n$gdb_prompt $" {
-       pass $test
-    }
-    -re "Can't create a corefile\r\n$gdb_prompt $" {
-       unsupported $test
-       return -1
-    }
+if {![gdb_gcore_cmd $gcorefile "save a corefile"]} {
+    return -1
 }
 
 # Now restart gdb and load the corefile.
index faa8fa7f5204a8cd8400bbe189717a4bcff7d108..a6db867f92292885972333be5cd5034d672e764a 100644 (file)
@@ -85,24 +85,8 @@ set pre_corefile_local_array \
 set pre_corefile_extern_array \
        [capture_command_output "print extern_array" "$print_prefix"]
 
-set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore.test]
-
-set core_supported 0
-gdb_test_multiple "gcore ${objdir}/${subdir}/gcore.test" \
-       "save a corefile" \
-{
-  -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
-    pass "save a corefile"
-    global core_supported
-    set core_supported 1
-  }
-  -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
-    unsupported "save a corefile"
-    global core_supported
-    set core_supported 0
-  }
-}
-
+set core_supported [gdb_gcore_cmd "${objdir}/${subdir}/gcore.test" \
+                       "save a corefile"]
 if {!$core_supported} {
   return -1
 }
index c05bc4ab525bf33b77f111e88c022e3fb79561f2..c6c8d8c768a04350ef619a9451867f3c123472ae 100644 (file)
@@ -69,21 +69,11 @@ delete_breakpoints
 
 gdb_test "continue" ".*Aborted.*"
 
-set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore.test]
-
-gdb_test_multiple "gcore ${objdir}/${subdir}/gcore.test" \
-        "save a corefile" \
-{
-  -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
-    pass "save a corefile"
-  }
-  -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
-    unsupported "save a corefile"
+if {![gdb_gcore_cmd "${objdir}/${subdir}/gcore.test" \
+         "save a corefile"]} {
     return -1
-  }
 }
 
-
 # Now restart gdb and load the corefile.
 gdb_exit
 gdb_start
index 88d6cdf8134d736d8e224a60099a1e50866f5c23..ddc384f4a697ee677d71e2856057cce8fed2a158 100644 (file)
@@ -67,20 +67,11 @@ proc test_strfns_core_file { } {
     global objdir subdir gdb_prompt testfile
 
     set filename "${objdir}/${subdir}/py-strfns.core"
-    set escapedfilename [string_to_regexp $filename]
 
-    gdb_test_multiple "gcore $filename" \
-       "save a corefile" \
-       {
-           -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
-               pass "save a corefile"
-           }
-           -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
-               unsupported "save a corefile"
-               # No use proceeding from here.
-               return
-           }
-       }
+    if {![gdb_gcore_cmd "$filename" "save a corefile"]} {
+       # No use proceeding from here.
+       return
+    }
 
     clean_restart $testfile
 
index 37eadd3864b9561f350f323eddd5242f8a8caf26..97189b9b055af088f22bbc7584884b2ba1932e3f 100644 (file)
@@ -91,20 +91,8 @@ delete_breakpoints
 gdb_breakpoint "thread2"
 gdb_test "continue" "Continuing.*Breakpoint.* thread2 .*" "thread 2 is running"
 
-set escapedfilename [string_to_regexp $corefile]
 # Drop corefile
-set core_supported 0
-gdb_test_multiple "gcore $corefile" "save a corefile" \
-{
-  -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
-    pass "save a corefile"
-    global core_supported
-    set core_supported 1
-  }
-  -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
-    unsupported "save a corefile"
-  }
-}
+set core_supported [gdb_gcore_cmd "$corefile" "save a corefile"]
 
 if {!$core_supported} {
   return -1
index a972045090905c54b95b1a02b8bea1ca6315f528..16e8b54fc4b06a315a73131c22371227dab670d2 100644 (file)
@@ -3026,6 +3026,36 @@ proc gdb_load_cmd { args } {
     return -1
 }
 
+# Invoke "gcore".  CORE is the name of the core file to write.  TEST
+# is the name of the test case.  This will return 1 if the core file
+# was created, 0 otherwise.  If this fails to make a core file because
+# this configuration of gdb does not support making core files, it
+# will call "unsupported", not "fail".  However, if this fails to make
+# a core file for some other reason, then it will call "fail".
+
+proc gdb_gcore_cmd {core test} {
+    global gdb_prompt
+
+    set result 0
+    gdb_test_multiple "gcore $core" $test {
+       -re "Saved corefile .*\[\r\n\]+$gdb_prompt $" {
+           pass $test
+           set result 1
+       }
+
+       -re "Undefined command.*$gdb_prompt $" {
+           unsupported $test
+           verbose -log "'gcore' command undefined in gdb_gcore_cmd"
+       }
+
+       -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
+           unsupported $test
+       }
+    }
+
+    return $result
+}
+
 # Return the filename to download to the target and load on the target
 # for this shared library.  Normally just LIBNAME, unless shared libraries
 # for this target have separate link and load images.