From f9edf608302736ec68bc80d6b6bc7d0f54171554 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Sat, 9 Oct 2021 11:35:43 +0200 Subject: [PATCH] [gdb/testsuite] Fix fortran module tests with stressed cpu When running these test-cases: - gdb.fortran/info-modules.exp - gdb.fortran/module.exp - gdb.mi/mi-fortran-modules.exp in conjunction with: ... $ stress -c $(($(cat /proc/cpuinfo | grep -c "^processor") + 1)) ... I run into timeouts. Fix this by using: - "set auto-solib-add off" to avoid symbols of shared libs (which doesn't work for libc, now that libpthread_name_p has been updated to match libc) - "nosharedlibrary" to avoid symbols of libc Tested on x86_64-linux. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28133 --- gdb/testsuite/gdb.fortran/info-modules.exp | 6 ++++++ gdb/testsuite/gdb.fortran/module.exp | 6 ++++++ gdb/testsuite/gdb.mi/mi-fortran-modules.exp | 5 +++++ 3 files changed, 17 insertions(+) diff --git a/gdb/testsuite/gdb.fortran/info-modules.exp b/gdb/testsuite/gdb.fortran/info-modules.exp index c9d2a18e119..fe85f5060ac 100644 --- a/gdb/testsuite/gdb.fortran/info-modules.exp +++ b/gdb/testsuite/gdb.fortran/info-modules.exp @@ -28,11 +28,17 @@ if { [prepare_for_testing "failed to prepare" $testfile \ return -1 } +# Avoid shared lib symbols. +gdb_test_no_output "set auto-solib-add off" + if { ![fortran_runto_main] } { perror "Could not run to main." continue } +# Avoid libc symbols. +gdb_test "nosharedlibrary" + set logical4 [fortran_logical4] set integer4 [fortran_int4] set real4 [fortran_real4] diff --git a/gdb/testsuite/gdb.fortran/module.exp b/gdb/testsuite/gdb.fortran/module.exp index b391855b2ee..c44c128c6c8 100644 --- a/gdb/testsuite/gdb.fortran/module.exp +++ b/gdb/testsuite/gdb.fortran/module.exp @@ -31,11 +31,17 @@ gdb_test "p modmany::var_i" " = 14" "stopped language detection" gdb_test "print mod1::var_const" " = 20" "fully qualified name of DW_TAG_constant" +# Avoid shared lib symbols. +gdb_test_no_output "set auto-solib-add off" + if ![fortran_runto_main] then { perror "couldn't run to main" continue } +# Avoid libc symbols. +gdb_test "nosharedlibrary" + set int_type [fortran_int4] # Test 'info variables' can find module variables. diff --git a/gdb/testsuite/gdb.mi/mi-fortran-modules.exp b/gdb/testsuite/gdb.mi/mi-fortran-modules.exp index fc1fa411ee3..871a25c65fc 100644 --- a/gdb/testsuite/gdb.mi/mi-fortran-modules.exp +++ b/gdb/testsuite/gdb.mi/mi-fortran-modules.exp @@ -30,8 +30,13 @@ if {[build_executable "failed to prepare" ${testfile} \ mi_clean_restart $binfile +# Avoid shared lib symbols. +mi_gdb_test "-gdb-set auto-solib-add off" "\\^done" + mi_runto_main +# Avoid libc symbols. +mi_gdb_test {-interpreter-exec console "nosharedlibrary"} # Patterns to skip optional system modules that appear with later versions of GFortran. set system_modules_pattern \ -- 2.30.2