-# Copyright 2012-2013 Free Software Foundation, Inc.
+# Copyright 2012-2015 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
standard_testfile tfile.c
set executable $testfile
+if {![is_remote host] && ![is_remote target]} {
+ set tfile_basic [standard_output_file tfile-basic.tf]
+ set tfile_dir [file dirname $tfile_basic]/
+ set purely_local 1
+} else {
+ set tfile_basic tfile-basic.tf
+ set tfile_dir ""
+ set purely_local 0
+}
+
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
- executable {debug nowarnings}] != "" } {
+ executable \
+ [list debug nowarnings \
+ "additional_flags=-DTFILE_DIR=\"$tfile_dir\""]] \
+ != "" } {
untested ${testfile}.exp
return -1
}
# Make sure we are starting fresh.
-remote_file host delete basic.tf
-remote_file target delete basic.tf
-
-remote_exec target "$binfile"
-# Copy tracefile from target to host.
-remote_download host [remote_upload target basic.tf] basic.tf
-
-proc test_tfind_tfile { } { with_test_prefix "tfile" {
- global binfile
- global decimal
-
- if [mi_gdb_start] {
- return
+remote_file host delete $tfile_basic
+remote_file target delete $tfile_basic
+
+proc test_tfind_tfile { } {
+ with_test_prefix "tfile" {
+ global binfile
+ global decimal
+ global tfile_basic
+
+ if [mi_gdb_start] {
+ return
+ }
+ mi_gdb_load ${binfile}
+
+ mi_gdb_test "-target-select tfile ${tfile_basic}" \
+ ".*=breakpoint-created,bkpt=\{number=\"${decimal}\",type=\"tracepoint\",disp=\"keep\",enabled=\"y\",.*,func=\"write_basic_trace_file\".*\\^connected" \
+ "select trace file"
+
+ mi_gdb_test "tfind 0" \
+ ".*=traceframe-changed,num=\"0\",tracepoint=\"${decimal}\".*\\^done" \
+ "tfind 0"
+
+ # No MI notification is sent because traceframe is not changed.
+ mi_gdb_test "tfind 0" \
+ "\\&\"tfind 0\\\\n\"\r\n\~\"Found.*\\^done" \
+ "tfind 0 again"
+
+ mi_gdb_test "tfind end" \
+ ".*=traceframe-changed,end.*\\^done" \
+ "tfind end"
+
+ # No MI notification is send because request is from MI command.
+ mi_gdb_test "-trace-find frame-number 0" \
+ "-trace-find frame-number 0\r\n\\^done,found=\"1\",tracepoint=\"${decimal}\",traceframe=\"0\",frame=\{.*" \
+ "-trace-find frame-number 0"
+
+ mi_gdb_exit
}
- mi_gdb_load ${binfile}
-
- mi_gdb_test "-target-select tfile basic.tf" \
- ".*=breakpoint-created,bkpt=\{number=\"${decimal}\",type=\"tracepoint\",disp=\"keep\",enabled=\"y\",.*,func=\"write_basic_trace_file\".*\\^connected" \
- "select trace file"
-
- mi_gdb_test "tfind 0" \
- ".*=traceframe-changed,num=\"0\",tracepoint=\"${decimal}\".*\\^done" \
- "tfind 0"
-
- # No MI notification is sent because traceframe is not changed.
- mi_gdb_test "tfind 0" \
- "\\&\"tfind 0\\\\n\"\r\n\~\"Found.*\\^done" \
- "tfind 0 again"
-
- mi_gdb_test "tfind end" \
- ".*=traceframe-changed,end.*\\^done" \
- "tfind end"
-
- # No MI notification is send because request is from MI command.
- mi_gdb_test "-trace-find frame-number 0" \
- "-trace-find frame-number 0\r\n\\^done,found=\"1\",tracepoint=\"${decimal}\",traceframe=\"0\",frame=\{.*" \
- "-trace-find frame-number 0"
+}
- mi_gdb_exit
-}}
+# If tracefile is generated successfully, copy tracefile to host and
+# run tests.
+if [generate_tracefile $binfile] {
+ if {!$purely_local} {
+ # Copy tracefile from target to host.
+ remote_download host [remote_upload target tfile-basic.tf] \
+ tfile-basic.tf
+ }
-test_tfind_tfile
+ test_tfind_tfile
+}
# Change to a different test case in order to run it on target, and get
# several traceframes.
standard_testfile status-stop.c
-set testfile ${testfile}-1
-set binfile ${objdir}/${subdir}/${testfile}
+append testfile -1
+append binfile -1
set executable $testfile
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
gdb_exit
-proc test_tfind_remote { } { with_test_prefix "remote" {
- global decimal
+proc test_tfind_remote { } {
+ with_test_prefix "remote" {
+ global decimal
- if [mi_gdb_start] {
- return
- }
- mi_run_to_main
+ if [mi_gdb_start] {
+ return
+ }
+ mi_run_to_main
- mi_gdb_test "-break-insert end" "\\^done.*" "break end"
- mi_gdb_test "-break-insert -a func2" "\\^done.*" "break func2"
- mi_gdb_test "-trace-start" "=breakpoint-modified,bkpt={.*installed=\"y\".*}.*\\^done.*" \
- "trace start"
+ mi_gdb_test "-break-insert end" "\\^done.*" "break end"
+ mi_gdb_test "-break-insert -a func2" "\\^done.*" "break func2"
+ mi_gdb_test "-trace-start" "=breakpoint-modified,bkpt={.*installed=\"y\".*}.*\\^done.*" \
+ "trace start"
- mi_execute_to "exec-continue" "breakpoint-hit" end "" ".*" ".*" \
- { "" "disp=\"keep\"" } \
- "continue to end"
- mi_gdb_test "-trace-stop" "\\^done.*" "trace stop"
+ mi_execute_to "exec-continue" "breakpoint-hit" end "" ".*" ".*" \
+ { "" "disp=\"keep\"" } \
+ "continue to end"
+ mi_gdb_test "-trace-stop" "\\^done.*" "trace stop"
- mi_gdb_test "tfind 0" \
- ".*=traceframe-changed,num=\"0\",tracepoint=\"${decimal}\".*\\^done" \
- "tfind 0"
+ mi_gdb_test "tfind 0" \
+ ".*=traceframe-changed,num=\"0\",tracepoint=\"${decimal}\".*\\^done" \
+ "tfind 0"
- mi_gdb_test "tfind" \
- ".*=traceframe-changed,num=\"1\",tracepoint=\"${decimal}\".*\\^done" \
- "tfind"
+ mi_gdb_test "tfind" \
+ ".*=traceframe-changed,num=\"1\",tracepoint=\"${decimal}\".*\\^done" \
+ "tfind"
- mi_gdb_test "tfind end" \
- ".*=traceframe-changed,end.*\\^done" \
- "tfind end"
+ mi_gdb_test "tfind end" \
+ ".*=traceframe-changed,end.*\\^done" \
+ "tfind end"
- mi_gdb_exit
-}}
+ mi_gdb_exit
+ }
+}
test_tfind_remote