aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Rohr <stephan.rohr@intel.com>2024-02-21 01:55:37 -0800
committerStephan Rohr <stephan.rohr@intel.com>2024-09-13 04:05:13 -0700
commita1371f3288f2d84cea90a9157ed9a359226969e2 (patch)
treedc188ba0a8708a7e238153b13ffac6c4d912501a
parent40422bbae1df369f4d013271bc7edeb6b30a3c44 (diff)
downloadbinutils-a1371f3288f2d84cea90a9157ed9a359226969e2.zip
binutils-a1371f3288f2d84cea90a9157ed9a359226969e2.tar.gz
binutils-a1371f3288f2d84cea90a9157ed9a359226969e2.tar.bz2
testsuite, trace: add guards if In-Process Agent library is not found
Several tests in gdb.trace trigger TCL errors if the In-Process Agent library is not found, e.g.: Running gdb/testsuite/gdb.trace/change-loc.exp ... ERROR: tcl error sourcing gdb/testsuite/gdb.trace/change-loc.exp. ERROR: error copying "gdb/gdb/testsuite/../../gdbserver/libinproctrace.so": no such file or directory while executing "file copy -force $fromfile $tofile" (procedure "gdb_remote_download" line 29) invoked from within "gdb_remote_download target $target_file" (procedure "gdb_download_shlib" line 6) invoked from within "gdb_download_shlib $file" (procedure "gdb_load_shlib" line 2) invoked from within "gdb_load_shlib $libipa" (file "gdb/testsuite/gdb.trace/change-loc.exp" line 354) invoked from within "source gdb/testsuite/gdb.trace/change-loc.exp" ("uplevel" body line 1) invoked from within "uplevel #0 source gdb/testsuite/gdb.trace/change-loc.exp" invoked from within "catch "uplevel #0 source $test_file_name"" Protect against this error by checking if the library is available.
-rw-r--r--gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp1
-rw-r--r--gdb/testsuite/gdb.trace/basic-libipa.exp6
-rw-r--r--gdb/testsuite/gdb.trace/change-loc.exp1
-rw-r--r--gdb/testsuite/gdb.trace/ftrace-lock.exp1
-rw-r--r--gdb/testsuite/gdb.trace/ftrace.exp1
-rw-r--r--gdb/testsuite/gdb.trace/pending.exp1
-rw-r--r--gdb/testsuite/gdb.trace/range-stepping.exp1
-rw-r--r--gdb/testsuite/gdb.trace/strace.exp1
-rw-r--r--gdb/testsuite/gdb.trace/trace-break.exp1
-rw-r--r--gdb/testsuite/gdb.trace/trace-condition.exp1
-rw-r--r--gdb/testsuite/gdb.trace/trace-enable-disable.exp1
-rw-r--r--gdb/testsuite/gdb.trace/trace-mt.exp1
-rw-r--r--gdb/testsuite/gdb.trace/tspeed.exp1
-rw-r--r--gdb/testsuite/lib/trace-support.exp14
14 files changed, 27 insertions, 5 deletions
diff --git a/gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp b/gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp
index 9549b59..4ea86b4 100644
--- a/gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp
+++ b/gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp
@@ -33,6 +33,7 @@ if ![gdb_target_supports_trace] {
return -1
}
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
# Can't use prepare_for_testing, because that splits compiling into
diff --git a/gdb/testsuite/gdb.trace/basic-libipa.exp b/gdb/testsuite/gdb.trace/basic-libipa.exp
index e28f61e..c49192a 100644
--- a/gdb/testsuite/gdb.trace/basic-libipa.exp
+++ b/gdb/testsuite/gdb.trace/basic-libipa.exp
@@ -25,13 +25,9 @@ require allow_shlib_tests
standard_testfile
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
-if { ![file exists $libipa] } {
- unsupported "missing libinproctrace.so"
- return -1
-}
-
gdb_download_shlib $libipa
if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
diff --git a/gdb/testsuite/gdb.trace/change-loc.exp b/gdb/testsuite/gdb.trace/change-loc.exp
index fb55153..1316d92 100644
--- a/gdb/testsuite/gdb.trace/change-loc.exp
+++ b/gdb/testsuite/gdb.trace/change-loc.exp
@@ -346,6 +346,7 @@ tracepoint_change_loc_2 "trace"
tracepoint_install_in_trace_disabled "trace"
# Re-compile test case with IPA.
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
gdb_load_shlib $libipa
diff --git a/gdb/testsuite/gdb.trace/ftrace-lock.exp b/gdb/testsuite/gdb.trace/ftrace-lock.exp
index ce2b890..637d5eb 100644
--- a/gdb/testsuite/gdb.trace/ftrace-lock.exp
+++ b/gdb/testsuite/gdb.trace/ftrace-lock.exp
@@ -48,6 +48,7 @@ with_test_prefix "runtime trace support check" {
}
# Compile the test case with the in-process agent library.
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
set remote_libipa [gdb_load_shlib $libipa]
diff --git a/gdb/testsuite/gdb.trace/ftrace.exp b/gdb/testsuite/gdb.trace/ftrace.exp
index 9b100ce..408cd37 100644
--- a/gdb/testsuite/gdb.trace/ftrace.exp
+++ b/gdb/testsuite/gdb.trace/ftrace.exp
@@ -39,6 +39,7 @@ if ![gdb_target_supports_trace] {
return -1
}
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
set remote_libipa [gdb_load_shlib $libipa]
diff --git a/gdb/testsuite/gdb.trace/pending.exp b/gdb/testsuite/gdb.trace/pending.exp
index b836be0..66209ad 100644
--- a/gdb/testsuite/gdb.trace/pending.exp
+++ b/gdb/testsuite/gdb.trace/pending.exp
@@ -494,6 +494,7 @@ pending_tracepoint_with_action_resolved "trace"
pending_tracepoint_installed_during_trace "trace"
# Re-compile test case with IPA.
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
gdb_load_shlib $libipa
diff --git a/gdb/testsuite/gdb.trace/range-stepping.exp b/gdb/testsuite/gdb.trace/range-stepping.exp
index e3af2e5..373a0bf 100644
--- a/gdb/testsuite/gdb.trace/range-stepping.exp
+++ b/gdb/testsuite/gdb.trace/range-stepping.exp
@@ -67,6 +67,7 @@ range_stepping_with_tracepoint "trace"
require allow_shlib_tests
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
set remote_libipa [gdb_load_shlib $libipa]
diff --git a/gdb/testsuite/gdb.trace/strace.exp b/gdb/testsuite/gdb.trace/strace.exp
index 99b199e..ef243a4 100644
--- a/gdb/testsuite/gdb.trace/strace.exp
+++ b/gdb/testsuite/gdb.trace/strace.exp
@@ -19,6 +19,7 @@ require allow_shlib_tests
standard_testfile
set executable $testfile
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
set lib_opts debug
diff --git a/gdb/testsuite/gdb.trace/trace-break.exp b/gdb/testsuite/gdb.trace/trace-break.exp
index 7e5820c..cac4aa5 100644
--- a/gdb/testsuite/gdb.trace/trace-break.exp
+++ b/gdb/testsuite/gdb.trace/trace-break.exp
@@ -344,6 +344,7 @@ break_trace_same_addr_6 "trace" "disable" "trace" "enable"
require allow_shlib_tests
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
set remote_libipa [gdb_load_shlib $libipa]
diff --git a/gdb/testsuite/gdb.trace/trace-condition.exp b/gdb/testsuite/gdb.trace/trace-condition.exp
index 42453bc..17acda8 100644
--- a/gdb/testsuite/gdb.trace/trace-condition.exp
+++ b/gdb/testsuite/gdb.trace/trace-condition.exp
@@ -39,6 +39,7 @@ if ![gdb_target_supports_trace] {
return -1
}
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
set remote_libipa [gdb_load_shlib $libipa]
diff --git a/gdb/testsuite/gdb.trace/trace-enable-disable.exp b/gdb/testsuite/gdb.trace/trace-enable-disable.exp
index 280f2e4..c2c8381 100644
--- a/gdb/testsuite/gdb.trace/trace-enable-disable.exp
+++ b/gdb/testsuite/gdb.trace/trace-enable-disable.exp
@@ -42,6 +42,7 @@ if ![gdb_target_supports_trace] {
}
# Compile the test case with the in-process agent library.
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
gdb_load_shlib $libipa
diff --git a/gdb/testsuite/gdb.trace/trace-mt.exp b/gdb/testsuite/gdb.trace/trace-mt.exp
index e56064b..7246ddc 100644
--- a/gdb/testsuite/gdb.trace/trace-mt.exp
+++ b/gdb/testsuite/gdb.trace/trace-mt.exp
@@ -103,6 +103,7 @@ step_over_tracepoint $binfile "trace"
require allow_shlib_tests
+require allow_in_proc_agent
set libipa [get_in_proc_agent]
set remote_libipa [gdb_load_shlib $libipa]
diff --git a/gdb/testsuite/gdb.trace/tspeed.exp b/gdb/testsuite/gdb.trace/tspeed.exp
index 7ade5c2..c74680b 100644
--- a/gdb/testsuite/gdb.trace/tspeed.exp
+++ b/gdb/testsuite/gdb.trace/tspeed.exp
@@ -43,6 +43,7 @@ if ![gdb_target_supports_trace] {
}
# Compile the test case with the in-process agent library.
+require allow_in_proc_agent
set ipalib [get_in_proc_agent]
if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
diff --git a/gdb/testsuite/lib/trace-support.exp b/gdb/testsuite/lib/trace-support.exp
index c9c9697..770a930 100644
--- a/gdb/testsuite/lib/trace-support.exp
+++ b/gdb/testsuite/lib/trace-support.exp
@@ -366,6 +366,20 @@ proc gdb_find_recursion_test_baseline { filename } {
return $baseline
}
+# Return 1 if the IPA library is available and 0 otherwise.
+
+proc allow_in_proc_agent {} {
+ global objdir
+
+ if [target_info exists in_proc_agent] {
+ return 1
+ } elseif [file exists "$objdir/../../gdbserver/libinproctrace.so"] {
+ return 1
+ } else {
+ return 0
+ }
+}
+
# Return the location of the IPA library.
proc get_in_proc_agent {} {