From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2205) id 284EC384B126; Wed, 11 May 2022 07:33:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 284EC384B126 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Tom de Vries To: gdb-cvs@sourceware.org Subject: [binutils-gdb] [gdb/testsuite] Remove target limits in gdb.base/catch-syscall.exp X-Act-Checkin: binutils-gdb X-Git-Author: Tom de Vries X-Git-Refname: refs/heads/master X-Git-Oldrev: d423425393e4ef27cabdda4134ae27905a18fcf7 X-Git-Newrev: e21d8399303b3d2b77e1a526dcbeffcfce678e6f Message-Id: <20220511073302.284EC384B126@sourceware.org> Date: Wed, 11 May 2022 07:33:02 +0000 (GMT) X-BeenThere: gdb-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 May 2022 07:33:02 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3De21d8399303b= 3d2b77e1a526dcbeffcfce678e6f commit e21d8399303b3d2b77e1a526dcbeffcfce678e6f Author: Tom de Vries Date: Wed May 11 09:32:58 2022 +0200 [gdb/testsuite] Remove target limits in gdb.base/catch-syscall.exp =20 In test-case gdb.base/catch-syscall.exp, proc test_catch_syscall_multi_= arch we test for supported targets using istarget, like so: ... if { [istarget "i*86-*-*"] || [istarget "x86_64-*-*"] } { ... } elseif { [istarget "powerpc-*-linux*"] \ || [istarget "powerpc64*-linux*"] } { ... ... but the tests excercised there can all be executed if gdb is configured= with --enable-targets=3Dall. =20 Rewrite the proc to iterate over all cases, and check if the test is su= pported by trying "set arch $arch1" and "set arch $arch2". =20 Tested on x86_64-linux, with: - a gdb build with --enable-targets=3Dall, and - a gdb build build with my usual --enable-targets setting (too long to include here) which means the sparc vs sparc:v9 case is unsupported. Diff: --- gdb/testsuite/gdb.base/catch-syscall.exp | 106 ++++++++++++++++++---------= ---- 1 file changed, 61 insertions(+), 45 deletions(-) diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.b= ase/catch-syscall.exp index 1427dfece6d..be119786734 100644 --- a/gdb/testsuite/gdb.base/catch-syscall.exp +++ b/gdb/testsuite/gdb.base/catch-syscall.exp @@ -565,59 +565,33 @@ proc test_catch_syscall_with_wrong_args_noxml {} { } } =20 -proc test_catch_syscall_multi_arch {} { +proc test_catch_syscall_multi_arch_1 { + arch1 arch2 syscall1_name syscall2_name syscall_number +} { global decimal binfile =20 - if { [istarget "i*86-*-*"] || [istarget "x86_64-*-*"] } { - set arch1 "i386" - set arch2 "i386:x86-64" - set syscall1_name "exit" - set syscall2_name "write" - set syscall_number 1 - } elseif { [istarget "powerpc-*-linux*"] \ - || [istarget "powerpc64*-linux*"] } { - set arch1 "powerpc:common" - set arch2 "powerpc:common64" - set syscall1_name "openat" - set syscall2_name "unlinkat" - set syscall_number 286 - } elseif { [istarget "sparc-*-linux*"] \ - || [istarget "sparc64-*-linux*"] } { - set arch1 "sparc" - set arch2 "sparc:v9" - set syscall1_name "setresuid32" - set syscall2_name "setresuid" - set syscall_number 108 - } elseif { [istarget "mips*-linux*"] } { - # MIPS does not use the same numbers for syscalls on 32 and 64 - # bits. - verbose "Not testing MIPS for multi-arch syscall support" - return - } elseif { [istarget "arm*-linux*"] } { - # catch syscall supports only 32-bit ARM for now. - verbose "Not testing ARM for multi-arch syscall support" - return - } elseif { [istarget "aarch64*-linux*"] } { - set arch1 "aarch64" - set arch2 "arm" - set syscall1_name "reboot" - set syscall2_name "_newselect" - set syscall_number 142 - } elseif { [istarget "s390*-linux*"] } { - set arch1 "s390:31-bit" - set arch2 "s390:64-bit" - set syscall1_name "_newselect" - set syscall2_name "select" - set syscall_number 142 - } - - with_test_prefix "multiple targets" { + with_test_prefix "multiple targets: $arch1 vs $arch2" { # We are not interested in loading any binary here, and in # some systems (PowerPC, for example), if we load a binary # there is no way to set other architecture. gdb_exit gdb_start =20 + set supported 1 + foreach arch [list $arch1 $arch2] { + gdb_test_multiple "set architecture $arch" "" { + -re -wrap "Undefined item: \"$arch\"\\." { + set supported 0 + unsupported $gdb_test_name + } + -re -wrap "The target architecture is set to \"$arch\"\\." { + } + } + } + if { $supported =3D=3D 0 } { + return + } + gdb_test "set architecture $arch1" \ "The target architecture is set to \"$arch1\"\\." =20 @@ -636,6 +610,48 @@ proc test_catch_syscall_multi_arch {} { } } =20 +proc test_catch_syscall_multi_arch {} { + set arch1 "i386" + set arch2 "i386:x86-64" + set syscall1_name "exit" + set syscall2_name "write" + set syscall_number 1 + test_catch_syscall_multi_arch_1 $arch1 $arch2 $syscall1_name \ + $syscall2_name $syscall_number + + set arch1 "powerpc:common" + set arch2 "powerpc:common64" + set syscall1_name "openat" + set syscall2_name "unlinkat" + set syscall_number 286 + test_catch_syscall_multi_arch_1 $arch1 $arch2 $syscall1_name \ + $syscall2_name $syscall_number + + set arch1 "sparc" + set arch2 "sparc:v9" + set syscall1_name "setresuid32" + set syscall2_name "setresuid" + set syscall_number 108 + test_catch_syscall_multi_arch_1 $arch1 $arch2 $syscall1_name \ + $syscall2_name $syscall_number + + set arch1 "aarch64" + set arch2 "arm" + set syscall1_name "reboot" + set syscall2_name "_newselect" + set syscall_number 142 + test_catch_syscall_multi_arch_1 $arch1 $arch2 $syscall1_name \ + $syscall2_name $syscall_number + + set arch1 "s390:31-bit" + set arch2 "s390:64-bit" + set syscall1_name "_newselect" + set syscall2_name "select" + set syscall_number 142 + test_catch_syscall_multi_arch_1 $arch1 $arch2 $syscall1_name \ + $syscall2_name $syscall_number +} + proc do_syscall_tests_without_xml {} { # Make sure GDB doesn't load the syscalls xml from the system data # directory.