diff options
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 12 | ||||
-rw-r--r-- | gdb/testsuite/gdb.trace/unavailable.exp | 142 |
2 files changed, 154 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index bd3829c..311b528 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,17 @@ 2014-05-05 Yao Qi <yao@codesourcery.com> + * gdb.trace/unavailable.exp (gdb_collect_args_test): Save + traceframes into tfile and ctf trace files. Read data from + trace file and test collected data. + (gdb_collect_locals_test): Likewise. + (gdb_unavailable_registers_test): Likewise. + (gdb_unavailable_floats): Likewise. + (gdb_collect_globals_test): Likewise. + (top-level): Append "ctf" to trace_file_targets if GDB + supports. + +2014-05-05 Yao Qi <yao@codesourcery.com> + * gdb.trace/unavailable.exp (gdb_collect_args_test): Move some code to ... (gdb_collect_args_test_1): ... it. New proc. diff --git a/gdb/testsuite/gdb.trace/unavailable.exp b/gdb/testsuite/gdb.trace/unavailable.exp index d76b54d..ec5ed26 100644 --- a/gdb/testsuite/gdb.trace/unavailable.exp +++ b/gdb/testsuite/gdb.trace/unavailable.exp @@ -188,6 +188,8 @@ proc gdb_collect_args_test_1 {} { proc gdb_collect_args_test {} { with_test_prefix "unavailable arguments" { global gdb_prompt + global testfile srcdir subdir binfile + global trace_file_targets prepare_for_trace_test @@ -203,6 +205,30 @@ proc gdb_collect_args_test {} { gdb_test "tfind none" \ "#0 end .*" \ "cease trace debugging" + + set tracefile [standard_output_file ${testfile}] + gdb_test "tsave ${tracefile}.args.tfile" \ + "Trace data saved to file '${tracefile}.args.tfile'\.\\r" \ + "tsave ${testfile}.args.tfile" + gdb_test "tsave -ctf ${tracefile}.args.ctf" \ + "Trace data saved to directory '${tracefile}.args.ctf'\.\\r" \ + "save ctf trace file" + + foreach target_name ${trace_file_targets} { + # Restart GDB and read the trace data in ${TARGET_NAME} target. + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + gdb_file_cmd $binfile + gdb_test "target ${target_name} ${tracefile}.args.${target_name}" ".*" \ + "change to ${target_name} target" + + with_test_prefix "${target_name}" { + gdb_test "tfind start" "#0 args_test_func .*" \ + "tfind test frame" + gdb_collect_args_test_1 + } + } } } @@ -244,6 +270,8 @@ proc gdb_collect_locals_test_1 { func } { proc gdb_collect_locals_test { func msg } { with_test_prefix "unavailable locals: $msg" { global gdb_prompt + global testfile srcdir subdir binfile + global trace_file_targets prepare_for_trace_test @@ -261,6 +289,30 @@ proc gdb_collect_locals_test { func msg } { gdb_test "tfind none" \ "#0 end .*" \ "cease trace debugging" + + set tracefile [standard_output_file ${testfile}] + gdb_test "tsave ${tracefile}.locals.tfile" \ + "Trace data saved to file '${tracefile}.locals.tfile'\.\\r" \ + "tsave ${testfile}.locals.tfile" + gdb_test "tsave -ctf ${tracefile}.locals.ctf" \ + "Trace data saved to directory '${tracefile}.locals.ctf'\.\\r" \ + "save ctf trace file" + + foreach target_name ${trace_file_targets} { + # Restart GDB and read the trace data in ${TARGET_NAME} target. + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + gdb_file_cmd $binfile + gdb_test "target ${target_name} ${tracefile}.locals.${target_name}" ".*" \ + "change to ${target_name} target" + + with_test_prefix "${target_name}" { + gdb_test "tfind start" "#0 $func .*" \ + "tfind test frame" + gdb_collect_locals_test_1 $func + } + } } } @@ -302,6 +354,8 @@ proc gdb_unavailable_registers_test_1 { } { proc gdb_unavailable_registers_test { } { with_test_prefix "unavailable registers" { + global testfile srcdir subdir binfile + global trace_file_targets prepare_for_trace_test @@ -318,6 +372,30 @@ proc gdb_unavailable_registers_test { } { gdb_unavailable_registers_test_1 gdb_test "tfind none" "#0 end .*" "cease trace debugging" + + set tracefile [standard_output_file ${testfile}] + gdb_test "tsave ${tracefile}.registers.tfile" \ + "Trace data saved to file '${tracefile}.registers.tfile'\.\\r" \ + "tsave ${testfile}.registers.tfile" + gdb_test "tsave -ctf ${tracefile}.registers.ctf" \ + "Trace data saved to directory '${tracefile}.registers.ctf'\.\\r" \ + "save ctf trace file" + + foreach target_name ${trace_file_targets} { + # Restart GDB and read the trace data in ${TARGET_NAME} target. + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + gdb_file_cmd $binfile + gdb_test "target ${target_name} ${tracefile}.registers.${target_name}" ".*" \ + "change to ${target_name} target" + + with_test_prefix "${target_name}" { + gdb_test "tfind start" "#0 globals_test_func .*" \ + "tfind test frame" + gdb_unavailable_registers_test_1 + } + } } } @@ -340,6 +418,9 @@ proc gdb_unavailable_floats_1 { } { proc gdb_unavailable_floats { } { with_test_prefix "unavailable floats" { + global testfile srcdir subdir binfile + global trace_file_targets + prepare_for_trace_test # We'll simply re-use the globals_test_function for this test @@ -355,6 +436,30 @@ proc gdb_unavailable_floats { } { gdb_unavailable_floats_1 gdb_test "tfind none" "#0 end .*" "cease trace debugging" + + set tracefile [standard_output_file ${testfile}] + gdb_test "tsave ${tracefile}.floats.tfile" \ + "Trace data saved to file '${tracefile}.floats.tfile'\.\\r" \ + "tsave ${testfile}.floats.tfile" + gdb_test "tsave -ctf ${tracefile}.floats.ctf" \ + "Trace data saved to directory '${tracefile}.floats.ctf'\.\\r" \ + "save ctf trace file" + + foreach target_name ${trace_file_targets} { + # Restart GDB and read the trace data in ${TARGET_NAME} target. + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + gdb_file_cmd $binfile + gdb_test "target ${target_name} ${tracefile}.floats.${target_name}" ".*" \ + "change to ${target_name} target" + + with_test_prefix "${target_name}" { + gdb_test "tfind start" "#0 globals_test_func .*" \ + "tfind test frame" + gdb_unavailable_floats_1 + } + } } } @@ -551,6 +656,9 @@ proc gdb_collect_globals_test_1 { } { proc gdb_collect_globals_test { } { with_test_prefix "collect globals" { + global testfile binfile srcdir subdir + global trace_file_targets + prepare_for_trace_test set testline [gdb_get_line_number "set globals_test_func tracepoint here"] @@ -596,6 +704,31 @@ proc gdb_collect_globals_test { } { gdb_test "tfind none" \ "#0 end .*" \ "cease trace debugging" + + set tracefile [standard_output_file ${testfile}] + gdb_test "tsave ${tracefile}.globals.tfile" \ + "Trace data saved to file '${tracefile}.globals.tfile'\.\\r" \ + "tsave ${testfile}.globals.tfile" + gdb_test "tsave -ctf ${tracefile}.globals.ctf" \ + "Trace data saved to directory '${tracefile}.globals.ctf'\.\\r" \ + "save ctf trace file" + + foreach target_name ${trace_file_targets} { + # Restart GDB and read the trace data in ${TARGET_NAME} target. + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + gdb_file_cmd $binfile + gdb_test "target ${target_name} ${tracefile}.globals.${target_name}" ".*" \ + "change to ${target_name} target" + + with_test_prefix "${target_name}" { + gdb_test "tfind start" "#0 globals_test_func .*" \ + "tfind test frame" + gdb_collect_globals_test_1 + } + } + } } @@ -617,6 +750,15 @@ if { ![gdb_target_supports_trace] } then { return 1 } +set trace_file_targets [list "tfile"] +gdb_test_multiple "target ctf" "" { + -re "Undefined target command: \"ctf\"\. Try \"help target\"\.\r\n$gdb_prompt $" { + } + -re "No CTF directory specified.*\r\n$gdb_prompt $" { + lappend trace_file_targets "ctf" + } +} + # Body of test encased in a proc so we can return prematurely. gdb_trace_collection_test |