aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2011-04-17 19:04:07 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2011-04-17 19:04:07 +0000
commit4fe85f5c276ced5f5c35f9d3ba32644e83b5dc07 (patch)
tree058cf0f094f11a44fd3f85c99338d79749ccb547
parent63524580f8372e38a6a62fd875a4252068c31150 (diff)
downloadgdb-4fe85f5c276ced5f5c35f9d3ba32644e83b5dc07.zip
gdb-4fe85f5c276ced5f5c35f9d3ba32644e83b5dc07.tar.gz
gdb-4fe85f5c276ced5f5c35f9d3ba32644e83b5dc07.tar.bz2
gdb/testsuite/
* gdb.threads/gcore-thread.exp ($testfile): Match it the .exp filename. ($srcfile): Preserve the original value. ($testfile): Match it the .exp filename. ($corefile): New variable. Substitute it around. Use clean_restart. ($prev_timeout): Remove. (load_core): Move core loading into this proc. Fix restore of $timeout if load_core fails.
-rw-r--r--gdb/testsuite/ChangeLog12
-rw-r--r--gdb/testsuite/gdb.threads/gcore-thread.exp74
2 files changed, 49 insertions, 37 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 15e8b6c..b0fd5af 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,17 @@
2011-04-17 Jan Kratochvil <jan.kratochvil@redhat.com>
+ * gdb.threads/gcore-thread.exp ($testfile): Match it the .exp
+ filename.
+ ($srcfile): Preserve the original value.
+ ($testfile): Match it the .exp filename.
+ ($corefile): New variable. Substitute it around.
+ Use clean_restart.
+ ($prev_timeout): Remove.
+ (load_core): Move core loading into this proc.
+ Fix restore of $timeout if load_core fails.
+
+2011-04-17 Jan Kratochvil <jan.kratochvil@redhat.com>
+
* gdb.base/eu-strip-infcall.c: New file.
* gdb.base/eu-strip-infcall.exp: New file.
diff --git a/gdb/testsuite/gdb.threads/gcore-thread.exp b/gdb/testsuite/gdb.threads/gcore-thread.exp
index c43e3a4..fa460bb 100644
--- a/gdb/testsuite/gdb.threads/gcore-thread.exp
+++ b/gdb/testsuite/gdb.threads/gcore-thread.exp
@@ -21,11 +21,11 @@ if $tracelevel then {
strace $tracelevel
}
-
# Single-threaded test case
-set testfile "pthreads"
-set srcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/gcore-${testfile}
+set testfile "gcore-thread"
+set srcfile pthreads.c
+set binfile ${objdir}/${subdir}/${testfile}
+set corefile ${objdir}/${subdir}/${testfile}.test
if [istarget "*-*-linux"] then {
set target_cflags "-D_MIT_POSIX_THREADS"
@@ -41,10 +41,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
# Start with a fresh gdb.
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
+clean_restart ${testfile}
# regexp for "horizontal" text (i.e. doesn't include newline or
# carriage return)
@@ -53,7 +50,6 @@ set horiz "\[^\n\r\]*"
# regexp for newline
set nl "\[\r\n\]+"
-set prev_timeout $timeout
set timeout 30
gdb_test_multiple "help gcore" "help gcore" {
@@ -92,10 +88,9 @@ delete_breakpoints
gdb_breakpoint "thread2"
gdb_test "continue" "Continuing.*Breakpoint.* thread2 .*" "thread 2 is running"
-set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore.test]
+set escapedfilename [string_to_regexp $corefile]
# Drop corefile
-gdb_test_multiple "gcore ${objdir}/${subdir}/gcore.test" \
- "save a corefile" \
+gdb_test_multiple "gcore $corefile" "save a corefile" \
{
-re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
pass "save a corefile"
@@ -114,31 +109,38 @@ if {!$core_supported} {
return -1
}
+
# Now restart gdb and load the corefile.
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-gdb_test_multiple "core ${objdir}/${subdir}/gcore.test" \
- "re-load generated corefile" {
- -re ".* is not a core dump:.*$gdb_prompt $" {
- fail "re-load generated corefile (bad file format)"
- # No use proceeding from here.
- return;
- }
- -re ".*: No such file or directory.*$gdb_prompt $" {
- fail "re-load generated corefile (file not found)"
- # No use proceeding from here.
- return;
- }
- -re ".*Couldn't find .* registers in core file.*$gdb_prompt $" {
- fail "re-load generated corefile (incomplete note section)"
- }
- -re "Core was generated by .*$gdb_prompt $" {
- pass "re-load generated corefile"
+clean_restart ${testfile}
+
+proc load_core { corefile } {
+ global gdb_prompt
+
+ gdb_test_multiple "core $corefile" \
+ "re-load generated corefile" {
+ -re " is not a core dump:.*\r\n$gdb_prompt $" {
+ fail "re-load generated corefile (bad file format)"
+ # No use proceeding from here.
+ return 0;
+ }
+ -re ": No such file or directory.*\r\n$gdb_prompt $" {
+ fail "re-load generated corefile (file not found)"
+ # No use proceeding from here.
+ return 0;
+ }
+ -re "Couldn't find .* registers in core file.*\r\n$gdb_prompt $" {
+ fail "re-load generated corefile (incomplete note section)"
+ }
+ -re "Core was generated by .*\r\n$gdb_prompt $" {
+ pass "re-load generated corefile"
+ }
}
- }
+ return 1
+}
+
+if ![load_core $corefile] {
+ return
+}
# FIXME: now what can we test about the thread state?
# We do not know for certain that there should be at least
@@ -158,5 +160,3 @@ gdb_test "info threads" ".* thread2 .*" \
gdb_test "info threads" ".*${nl}\\* ${horiz} thread2 .*" \
"thread2 is current thread in corefile"
-
-set timeout $prev_timeout