-# Copyright 1997, 1998, 1999, 2000, 2004, 2007, 2008, 2009, 2010
-# Free Software Foundation, Inc.
+# Copyright 1997-2016 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
#prop lib shr1.sl
#prop lib shr2.sl
-if $tracelevel then {
- strace $tracelevel
-}
-
if {[skip_shlib_tests]} {
return 0
}
-set testfile "shmain"
-set libfile1 "shr1"
-set libfile2 "shr2"
-set srcfile ${srcdir}/${subdir}/${testfile}.c
-set lib1src ${srcdir}/${subdir}/${libfile1}.c
-set lib2src ${srcdir}/${subdir}/${libfile2}.c
-set lib1 ${objdir}/${subdir}/${libfile1}.sl
-set lib2 ${objdir}/${subdir}/${libfile2}.sl
-set binfile ${objdir}/${subdir}/${testfile}
+standard_testfile shmain.c shr1.c shr2.c
+set srcfile ${srcdir}/${subdir}/${srcfile}
+set lib1src ${srcdir}/${subdir}/${srcfile2}
+set lib2src ${srcdir}/${subdir}/${srcfile3}
+set lib1 [standard_output_file shr1.sl]
+set lib2 [standard_output_file shr2.sl]
set lib_opts "debug"
set exec_opts [list debug shlib=${lib1} shlib=${lib2}]
-if [get_compiler_info ${binfile}] {
+if [get_compiler_info] {
return -1
}
# Start with a fresh gdb.
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
+clean_restart ${binfile}
gdb_load_shlibs $lib1 $lib2
gdb_test_no_output "set print sevenbit-strings"
#step -over
-gdb_test "next" "g = shr1\\(g\\);" "next to shr1"
+gdb_test "next 2" "g = shr1\\(g\\);" "next to shr1"
#print g
#step -over
if ![gdb_skip_stdio_test "next over shr1"] {
- gdb_test "next" \
- "address of sgs is $hex.*g = shr2\\(g\\);" \
+ gdb_test_stdio "next" \
+ "address of sgs is $hex" \
+ "g = shr2\\(g\\);" \
"next over shr1"
} else {
gdb_test "next" ".*" ""
#print shr1(1)
if ![gdb_skip_stdio_test "print shr1(1)"] {
- gdb_test "print shr1(1)" \
- "address of sgs is $hex.*\[0-9\]* = 2" \
+ gdb_test_stdio "print shr1(1)" \
+ "address of sgs is $hex" \
+ "\[0-9\]* = 2" \
"print shr1(1)"
}
#print shr1(g)
if ![gdb_skip_stdio_test "print shr1(g)"] {
- gdb_test "print shr1(g)" \
- "address of sgs is $hex.*\[0-9\]* = 4" \
+ gdb_test_stdio "print shr1(g)" \
+ "address of sgs is $hex" \
+ "\[0-9\]* = 4" \
"print shr1(g)"
}
"breakpoint function shr2"
gdb_test "continue" \
- "Continuing\\..*Breakpoint \[0-9\]+, shr2 \\(.*\\) at.*shr2\\.c:7.*7.*return 2.x;" \
+ "Continuing\\..*Breakpoint ${decimal}, shr2 \\(.*\\) at.*shr2\\.c:${decimal}.*shr2-return \\*\\/" \
"run until breakpoint set at a function"
#print shr1(1)
if ![gdb_skip_stdio_test "print shr1(1) 2nd time"] {
- gdb_test "print shr1(1)" \
- "address of sgs is $hex.*\[0-9\]* = 2" \
+ gdb_test_stdio "print shr1(1)" \
+ "address of sgs is $hex" \
+ "\[0-9\]* = 2" \
"print shr1(1) 2nd time"
}
gdb_test "run" "Starting program:.*Breakpoint .,.*" \
"run to bp in shared library"
- gdb_test "cont" ".*Program exited normally..*"
+ gdb_continue_to_end "" continue 1
gdb_test "run" "Starting program:.*Breakpoint .,.*" \
"re-run to bp in shared library (PR's 16495, 18213)"
- gdb_test "cont" ".*Program exited normally..*"
+ gdb_continue_to_end "" continue 1
}
return 0