[gdb/testsuite] Check for sys/random.h in gdb.reverse/getrandom.exp
authorTom de Vries <tdevries@suse.de>
Tue, 29 Aug 2023 09:02:08 +0000 (11:02 +0200)
committerTom de Vries <tdevries@suse.de>
Tue, 29 Aug 2023 09:02:08 +0000 (11:02 +0200)
When running test-case gdb.reverse/getrandom.exp on a system with eglibc 2.19,
we run into:
...
 gdb compile failed, gdb.reverse/getrandom.c:18:24: fatal error: \
   sys/random.h: No such file or directory
  #include <sys/random.h>
                         ^
 compilation terminated.

                 === gdb Summary ===

 # of untested testcases        1
...
and:
...
UNTESTED: gdb.reverse/getrandom.exp: failed to prepare
...

Fix this by testing for the presence of the header, such that we have instead:
...
UNSUPPORTED: gdb.reverse/getrandom.exp: require failed: \
  have_system_header sys/random.h
...

Tested on x86_64-linux and i686-linux.

gdb/testsuite/gdb.reverse/getrandom.exp
gdb/testsuite/lib/gdb.exp

index ef8899358f91b4458759dad70c47d4e421b746b4..1561d842dc9f2b51a0b31ad044ce97961b5ac6db 100644 (file)
@@ -20,6 +20,7 @@
 #
 
 require supports_reverse
+require {have_system_header sys/random.h}
 
 standard_testfile
 
index 8432e636eccea60ae379dfe56e1b482945d5cec9..bcf536e0cc5206439e9f2ddb2ac4086875cdeff4 100644 (file)
@@ -9952,5 +9952,13 @@ proc have_host_locale { locale } {
     return [expr $idx != -1]
 }
 
+# Return 1 if we can use '#include <$file>' in source file.
+
+gdb_caching_proc have_system_header { file } {
+    set src "#include <$file>"
+    set name [string map { "/" "_sep_" } $file]
+    return [gdb_can_simple_compile have_system_header_$name $src object]
+}
+
 # Always load compatibility stuff.
 load_lib future.exp