public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] [gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index, debug-names}
@ 2019-05-06 6:42 Tom de Vries
0 siblings, 0 replies; only message in thread
From: Tom de Vries @ 2019-05-06 6:42 UTC (permalink / raw)
To: gdb-cvs
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5a56d6a65f8406f1aadb4569fbb8ff00a6e92d02
commit 5a56d6a65f8406f1aadb4569fbb8ff00a6e92d02
Author: Tom de Vries <tdevries@suse.de>
Date: Mon May 6 08:42:24 2019 +0200
[gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index,debug-names}
In gdb.base/index-cache.exp, handle the case that binfile contains either a
.gdb_index or .debug_names index section.
Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names.
gdb/testsuite/ChangeLog:
2019-05-06 Tom de Vries <tdevries@suse.de>
* lib/gdb.exp (exec_has_index_section): New proc.
* gdb.base/index-cache.exp: Handle case that binfile contains an index
section.
Diff:
---
gdb/testsuite/ChangeLog | 6 ++++++
gdb/testsuite/gdb.base/index-cache.exp | 39 +++++++++++++++++++++++++++-------
gdb/testsuite/lib/gdb.exp | 12 +++++++++++
3 files changed, 49 insertions(+), 8 deletions(-)
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 729cc52..c32d013 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-05-06 Tom de Vries <tdevries@suse.de>
+
+ * lib/gdb.exp (exec_has_index_section): New proc.
+ * gdb.base/index-cache.exp: Handle case that binfile contains an index
+ section.
+
2019-05-04 Tom de Vries <tdevries@suse.de>
* boards/cc-with-debug-names.exp: New file.
diff --git a/gdb/testsuite/gdb.base/index-cache.exp b/gdb/testsuite/gdb.base/index-cache.exp
index 4e583ab..5baba84 100644
--- a/gdb/testsuite/gdb.base/index-cache.exp
+++ b/gdb/testsuite/gdb.base/index-cache.exp
@@ -22,6 +22,8 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
return
}
+set has_index_section [exec_has_index_section $binfile]
+
# List the files in DIR on the host (where GDB-under-test runs).
# Return a list of two elements:
# - 0 on success, -1 on failure
@@ -122,10 +124,12 @@ proc_with_prefix test_cache_disabled { cache_dir } {
}
}
-# Test with the cache enabled, we expect to have exactly one file created.
+# Test with the cache enabled, we expect to have:
+# - exactly one file created, in case of no index section
+# - no file created, in case of an index section
proc_with_prefix test_cache_enabled_miss { cache_dir } {
- global testfile
+ global testfile has_index_section
lassign [ls_host $cache_dir] ret files_before
@@ -133,7 +137,11 @@ proc_with_prefix test_cache_enabled_miss { cache_dir } {
lassign [ls_host $cache_dir] ret files_after
set nfiles_created [expr [llength $files_after] - [llength $files_before]]
- gdb_assert "$nfiles_created > 0" "at least one file was created"
+ if { $has_index_section } {
+ gdb_assert "$nfiles_created == 0" "no file was created"
+ } else {
+ gdb_assert "$nfiles_created > 0" "at least one file was created"
+ }
set build_id [get_build_id [standard_output_file ${testfile}]]
if { $build_id == "" } {
@@ -143,19 +151,30 @@ proc_with_prefix test_cache_enabled_miss { cache_dir } {
set expected_created_file [list "${build_id}.gdb-index"]
set found_idx [lsearch -exact $files_after $expected_created_file]
- gdb_assert "$found_idx >= 0" "expected file is there"
+ if { $has_index_section } {
+ gdb_assert "$found_idx == -1" "no index cache file generated"
+ } else {
+ gdb_assert "$found_idx >= 0" "expected file is there"
+ }
remote_exec host rm "-f $cache_dir/$expected_created_file"
- check_cache_stats 0 1
+ if { $has_index_section } {
+ check_cache_stats 0 0
+ } else {
+ check_cache_stats 0 1
+ }
}
}
-# Test with the cache enabled, this time we should have one file (the
-# same), but one cache read hit.
+# Test with the cache enabled, this time we should have:
+# - one file (the same), but one cache read hit, in case of no index section
+# - no file, no cache hit, in case an an index section
proc_with_prefix test_cache_enabled_hit { cache_dir } {
+ global has_index_section
+
# Just to populate the cache.
run_test_with_flags $cache_dir on {}
@@ -166,7 +185,11 @@ proc_with_prefix test_cache_enabled_hit { cache_dir } {
set nfiles_created [expr [llength $files_after] - [llength $files_before]]
gdb_assert "$nfiles_created == 0" "no files were created"
- check_cache_stats 1 0
+ if { $has_index_section } {
+ check_cache_stats 0 0
+ } else {
+ check_cache_stats 1 0
+ }
}
}
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 57866da..8dea857 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -5107,6 +5107,18 @@ proc rerun_to_main {} {
}
}
+# Return true if EXECUTABLE contains a .gdb_index or .debug_names index section.
+
+proc exec_has_index_section { executable } {
+ set readelf_program [gdb_find_readelf]
+ set res [catch {exec $readelf_program -S $executable \
+ | grep -E "\.gdb_index|\.debug_names" }]
+ if { $res == 0 } {
+ return 1
+ }
+ return 0
+}
+
# Return true if a test should be skipped due to lack of floating
# point support or GDB can't fetch the contents from floating point
# registers.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-05-06 6:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-06 6:42 [binutils-gdb] [gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index, debug-names} Tom de Vries
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).