From eb4ca471aa6774f32d711c2df1e8734adbb6efac Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 9 Oct 2013 14:31:35 +0000 Subject: [PATCH] Uniquefy gdb.base/catch-syscall.exp test names. catch-syscall.exp has a series of duplicated output in gdb.sum. This patch makes sure all test names are unique, using with_test_prefix. Tested on x86_64 Fedora 17. gdb/testsuite/ 2013-10-09 Pedro Alves * gdb.base/catch-syscall.exp (test_catch_syscall_without_args) (test_catch_syscall_with_args, test_catch_syscall_with_many_args) (test_catch_syscall_with_wrong_args) (test_catch_syscall_restarting_inferior) (test_catch_syscall_fail_nodatadir) (test_catch_syscall_without_args_noxml) (test_catch_syscall_with_args_noxml) (test_catch_syscall_with_wrong_args_noxml): Use with_test_prefix. --- gdb/testsuite/ChangeLog | 11 + gdb/testsuite/gdb.base/catch-syscall.exp | 248 +++++++++++++---------- 2 files changed, 147 insertions(+), 112 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 3e5e9703b94..7a5f913f0d7 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2013-10-09 Pedro Alves + + * gdb.base/catch-syscall.exp (test_catch_syscall_without_args) + (test_catch_syscall_with_args, test_catch_syscall_with_many_args) + (test_catch_syscall_with_wrong_args) + (test_catch_syscall_restarting_inferior) + (test_catch_syscall_fail_nodatadir) + (test_catch_syscall_without_args_noxml) + (test_catch_syscall_with_args_noxml) + (test_catch_syscall_with_wrong_args_noxml): Use with_test_prefix. + 2013-10-08 Tom Tromey * gdb.dwarf2/dwzbuildid.exp: New file. diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp index 1066caf7e2e..7f1bd292b44 100644 --- a/gdb/testsuite/gdb.base/catch-syscall.exp +++ b/gdb/testsuite/gdb.base/catch-syscall.exp @@ -168,106 +168,124 @@ proc check_for_program_end {} { proc test_catch_syscall_without_args {} { global gdb_prompt all_syscalls last_syscall - # Trying to set the syscall - set thistest "setting catch syscall without arguments" - gdb_test "catch syscall" "Catchpoint .*(syscall).*" $thistest + with_test_prefix "without arguments" { + # Trying to set the syscall. + gdb_test "catch syscall" "Catchpoint .*(syscall).*" - check_info_bp_any_syscall + check_info_bp_any_syscall - # We have to check every syscall - foreach name $all_syscalls { - check_continue $name - } + # We have to check every syscall. + foreach name $all_syscalls { + check_continue $name + } - # At last but not least, we check if the inferior - # has called the last (exit) syscall. - check_call_to_syscall $last_syscall + # At last but not least, we check if the inferior has called + # the last (exit) syscall. + check_call_to_syscall $last_syscall - # Now let's see if the inferior correctly finishes. - check_for_program_end + # Now let's see if the inferior correctly finishes. + check_for_program_end + } } proc test_catch_syscall_with_args {} { - global gdb_prompt - set syscall_name "close" + with_test_prefix "with arguments" { + global gdb_prompt - insert_catch_syscall_with_arg $syscall_name + set syscall_name "close" + insert_catch_syscall_with_arg $syscall_name - # Can we continue until we catch the syscall? - check_continue $syscall_name + # Can we continue until we catch the syscall? + check_continue $syscall_name - # Now let's see if the inferior correctly finishes. - check_for_program_end + # Now let's see if the inferior correctly finishes. + check_for_program_end + } } proc test_catch_syscall_with_many_args {} { - global gdb_prompt all_syscalls all_syscalls_numbers + with_test_prefix "with many arguments" { + global gdb_prompt all_syscalls all_syscalls_numbers - insert_catch_syscall_with_many_args $all_syscalls $all_syscalls_numbers + insert_catch_syscall_with_many_args $all_syscalls $all_syscalls_numbers - # Can we continue until we catch the syscalls? - foreach name $all_syscalls { - check_continue $name - } + # Can we continue until we catch the syscalls? + foreach name $all_syscalls { + check_continue $name + } - # Now let's see if the inferior correctly finishes. - check_for_program_end + # Now let's see if the inferior correctly finishes. + check_for_program_end + } } proc test_catch_syscall_with_wrong_args {} { - global gdb_prompt - # mlock is not called from the source - set syscall_name "mlock" - - insert_catch_syscall_with_arg $syscall_name - - # Now, we must verify if the program stops with a continue. - # If it doesn't, everything is right (since we don't have - # a syscall named "mlock" in it). Otherwise, this is a failure. - set thistest "catch syscall with unused syscall ($syscall_name)" - gdb_continue_to_end $thistest + with_test_prefix "wrong args" { + global gdb_prompt + + # mlock is not called from the source + set syscall_name "mlock" + insert_catch_syscall_with_arg $syscall_name + + # Now, we must verify if the program stops with a continue. + # If it doesn't, everything is right (since we don't have + # a syscall named "mlock" in it). Otherwise, this is a failure. + set thistest "catch syscall with unused syscall ($syscall_name)" + gdb_continue_to_end $thistest + } } proc test_catch_syscall_restarting_inferior {} { - global gdb_prompt - set syscall_name "chroot" + with_test_prefix "restarting inferior" { + global gdb_prompt + + set syscall_name "chroot" - insert_catch_syscall_with_arg $syscall_name + with_test_prefix "entry" { + insert_catch_syscall_with_arg $syscall_name - # Let's first reach the call of the syscall. - check_call_to_syscall $syscall_name + # Let's first reach the entry of the syscall. + check_call_to_syscall $syscall_name + } - # Now, restart the program - rerun_to_main + with_test_prefix "entry/return" { + # Now, restart the program. + rerun_to_main - # And check for call/return - check_continue $syscall_name + # And check for entry/return. + check_continue $syscall_name - # Can we finish? - check_for_program_end + # Can we finish? + check_for_program_end + } + } } proc test_catch_syscall_fail_nodatadir {} { - global gdb_prompt + with_test_prefix "fail no datadir" { + global gdb_prompt - # Sanitizing. - delete_breakpoints + # Sanitizing. + delete_breakpoints - # Make sure GDB doesn't load the syscalls xml from the system data - # directory. - gdb_test_no_output "set data-directory /the/path/to/nowhere" + # Make sure GDB doesn't load the syscalls xml from the system + # data directory. + gdb_test_no_output "set data-directory /the/path/to/nowhere" - # Testing to see if we receive a warning when calling "catch syscall" - # without XML support (without datadir). - set thistest "Catch syscall displays a warning when there is no XML support (no datadir set)" - gdb_test "catch syscall" "warning: Could not load the syscall XML file.*warning: GDB will not be able to display syscall names nor to verify if.*any provided syscall numbers are valid.*Catchpoint .*(syscall).*" $thistest + # Testing to see if we receive a warning when calling "catch + # syscall" without XML support (without datadir). + set thistest "catch syscall displays a warning when there is no XML support" + gdb_test "catch syscall" \ + "warning: Could not load the syscall XML file.*warning: GDB will not be able to display syscall names nor to verify if.*any provided syscall numbers are valid.*Catchpoint .*(syscall).*" \ + $thistest - # Since the catchpoint was set, we must check if it's present at - # "info breakpoints" - check_info_bp_any_syscall + # Since the catchpoint was set, we must check if it's present + # in "info breakpoints" output. + check_info_bp_any_syscall - # Sanitizing. - delete_breakpoints + # Sanitizing. + delete_breakpoints + } } proc do_syscall_tests {} { @@ -311,68 +329,74 @@ proc do_syscall_tests {} { } proc test_catch_syscall_without_args_noxml {} { - # We will need the syscall names even not using it - # because we need to know know many syscalls are in - # the example file. - global gdb_prompt all_syscalls last_syscall - - delete_breakpoints - - set thistest "Catch syscall without arguments and without XML support" - gdb_test "catch syscall" "Catchpoint .*(syscall).*" - - # Now, we should be able to set a catchpoint, - # and GDB shall not display the warning anymore. - foreach name $all_syscalls { - # Unfortunately, we don't know the syscall number - # that will be caught because this information is - # arch-dependent. Thus, we try to catch anything - # similar to a number. - check_continue "\[0-9\]*" + with_test_prefix "without args noxml" { + # We will need the syscall names even not using it because we + # need to know know many syscalls are in the example file. + global gdb_prompt all_syscalls last_syscall + + delete_breakpoints + + gdb_test "catch syscall" "Catchpoint .*(syscall).*" + + # Now, we should be able to set a catchpoint, and GDB shall + # not display the warning anymore. + foreach name $all_syscalls { + # Unfortunately, we don't know the syscall number that + # will be caught because this information is + # arch-dependent. Thus, we try to catch anything similar + # to a number. + with_test_prefix "$name" { + check_continue "\[0-9\]*" + } + } + + # At last but not least, we check if the inferior has called + # the last (exit) syscall. + check_call_to_syscall "\[0-9\]*" + + delete_breakpoints } - - # At last but not least, we check if the inferior - # has called the last (exit) syscall. - check_call_to_syscall "\[0-9\]*" - - delete_breakpoints } proc test_catch_syscall_with_args_noxml {} { - global gdb_prompt + with_test_prefix "with args noxml" { + global gdb_prompt - # The number of the "close" syscall. This is our - # option for a "long-estabilished" syscall in all - # Linux architectures, but unfortunately x86_64 and - # a few other platforms don't "follow the convention". - # Because of this, we need this ugly check :-(. - set close_number "" - if { [istarget "x86_64-*-linux*"] } { - set close_number "3" - } else { - set close_number "6" - } + # The number of the "close" syscall. This is our option for a + # "long-estabilished" syscall in all Linux architectures, but + # unfortunately x86_64 and a few other platforms don't "follow + # the convention". Because of this, we need this ugly check + # :-(. + set close_number "" + if { [istarget "x86_64-*-linux*"] } { + set close_number "3" + } else { + set close_number "6" + } - delete_breakpoints + delete_breakpoints - insert_catch_syscall_with_arg $close_number + insert_catch_syscall_with_arg $close_number - check_continue $close_number + check_continue $close_number - delete_breakpoints + delete_breakpoints + } } proc test_catch_syscall_with_wrong_args_noxml {} { - global gdb_prompt + with_test_prefix "with wrong args noxml" { + global gdb_prompt - delete_breakpoints + delete_breakpoints - # Even without XML support, GDB should not accept unknown - # syscall names for the catchpoint. - set thistest "Catch a nonsense syscall without XML support" - gdb_test "catch syscall nonsense_syscall" "Unknown syscall name .nonsense_syscall.*" $thistest + # Even without XML support, GDB should not accept unknown + # syscall names for the catchpoint. + gdb_test "catch syscall nonsense_syscall" \ + "Unknown syscall name .nonsense_syscall.*" - delete_breakpoints + delete_breakpoints + } } proc do_syscall_tests_without_xml {} { -- 2.30.2