]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
testsuite, trace: add guards if In-Process Agent library is not found
authorStephan Rohr <stephan.rohr@intel.com>
Wed, 21 Feb 2024 09:55:37 +0000 (01:55 -0800)
committerStephan Rohr <stephan.rohr@intel.com>
Fri, 13 Sep 2024 11:05:13 +0000 (04:05 -0700)
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.

14 files changed:
gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp
gdb/testsuite/gdb.trace/basic-libipa.exp
gdb/testsuite/gdb.trace/change-loc.exp
gdb/testsuite/gdb.trace/ftrace-lock.exp
gdb/testsuite/gdb.trace/ftrace.exp
gdb/testsuite/gdb.trace/pending.exp
gdb/testsuite/gdb.trace/range-stepping.exp
gdb/testsuite/gdb.trace/strace.exp
gdb/testsuite/gdb.trace/trace-break.exp
gdb/testsuite/gdb.trace/trace-condition.exp
gdb/testsuite/gdb.trace/trace-enable-disable.exp
gdb/testsuite/gdb.trace/trace-mt.exp
gdb/testsuite/gdb.trace/tspeed.exp
gdb/testsuite/lib/trace-support.exp

index 9549b5970452ed01fd67671934e80d206e88acce..4ea86b4a395c0d09e33f9f8f43a2b96c954b23c6 100644 (file)
@@ -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
index e28f61e5f968913fbe3f3ee07c28c244a9f18fea..c49192a5c355f67084751ce33fbeeea61b5b7121 100644 (file)
@@ -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 \
index fb55153bfcbec936a5e10f8d1ac52eab4fd8be98..1316d92b116cb8c701d8689d0311368bb81d2bfc 100644 (file)
@@ -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
 
index ce2b890229aa225a095e9bee8a7ba88cd4c778c8..637d5eb53bb37606ee896e8afc478eb91b6bf7d5 100644 (file)
@@ -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]
 
index 9b100ced8f53ab9c1faa96a9ae6ca5da9c2600d3..408cd372bfabeb914306794c56a65db346e5bb40 100644 (file)
@@ -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]
 
index b836be05533aca8df434241ab8c06f08cd7700c2..66209adaec296f35f65b321cfd8b0665ca568a6d 100644 (file)
@@ -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
 
index e3af2e5c77c2e453604cd06d1c2800ddd201d423..373a0bf3463dc193675a18b3ea1118a257befd39 100644 (file)
@@ -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]
 
index 99b199ef5f10a2727d2200975cb9f12309049c65..ef243a4ef469dae9759b80803976b7af4e6af760 100644 (file)
@@ -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
index 7e5820cb0cf25996a2ee1d9779f967aca755094d..cac4aa561c00c6591963d25aa1738a81e1fc2da0 100644 (file)
@@ -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]
 
index 42453bc61c7085e533ec445688f110e9374b36a6..17acda87ecf71f53d2c42825f4a050798ad6ab88 100644 (file)
@@ -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]
 
index 280f2e4501a673cfdf86d514a7425d58c33db02f..c2c838121df8a90165f24937a3b77c34599fc9ec 100644 (file)
@@ -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
 
index e56064bbe8baf2933fdbfdb2e6cbe647e0aa86b1..7246ddc8a8eab5c15654f2d363c34f6c11b99f71 100644 (file)
@@ -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]
 
index 7ade5c2eedf71a255980229ddd3e2bad0f980628..c74680b98186e403f01c1005c00e36140772323b 100644 (file)
@@ -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 \
index c9c9697e1803bac024788874ef97da610ffab67d..770a930eda7e045d8dd532d33a99e258aeec1f70 100644 (file)
@@ -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 {} {