X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Funittests%2Fcli-utils-selftests.c;h=6d8928fd6bcf2a27f89615190ae91a6bf613b718;hb=e06f3d6eba37df8451ecc2ce2ac76cba811e8b35;hp=99b98bf8cd1b6007a256bcae1e0e3a050adb3a53;hpb=230d2906b9d1d009b22fd526181bf43e1084ed59;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/unittests/cli-utils-selftests.c b/gdb/unittests/cli-utils-selftests.c index 99b98bf8cd..6d8928fd6b 100644 --- a/gdb/unittests/cli-utils-selftests.c +++ b/gdb/unittests/cli-utils-selftests.c @@ -19,7 +19,7 @@ #include "defs.h" #include "cli/cli-utils.h" -#include "common/selftest.h" +#include "gdbsupport/selftest.h" namespace selftests { namespace cli_utils { @@ -101,143 +101,10 @@ test_number_or_range_parser () } } -static void -test_parse_flags () -{ - const char *flags = "abc"; - const char *non_flags_args = "non flags args"; - - /* Extract twice the same flag, separated by one space. */ - { - const char *t1 = "-a -a non flags args"; - - SELF_CHECK (parse_flags (&t1, flags) == 1); - SELF_CHECK (parse_flags (&t1, flags) == 1); - SELF_CHECK (strcmp (t1, non_flags_args) == 0); - } - - /* Extract some flags, separated by one or more spaces. */ - { - const char *t2 = "-c -b -c -b -c non flags args"; - - SELF_CHECK (parse_flags (&t2, flags) == 3); - SELF_CHECK (parse_flags (&t2, flags) == 2); - SELF_CHECK (parse_flags (&t2, flags) == 3); - SELF_CHECK (parse_flags (&t2, flags) == 2); - SELF_CHECK (parse_flags (&t2, flags) == 3); - SELF_CHECK (strcmp (t2, non_flags_args) == 0); - } - - /* Check behaviour where there is no flag to extract. */ - { - const char *t3 = non_flags_args; - - SELF_CHECK (parse_flags (&t3, flags) == 0); - SELF_CHECK (strcmp (t3, non_flags_args) == 0); - } - - /* Extract 2 known flags in front of unknown flags. */ - { - const char *t4 = "-c -b -x -y -z -c"; - - SELF_CHECK (parse_flags (&t4, flags) == 3); - SELF_CHECK (parse_flags (&t4, flags) == 2); - SELF_CHECK (strcmp (t4, "-x -y -z -c") == 0); - SELF_CHECK (parse_flags (&t4, flags) == 0); - SELF_CHECK (strcmp (t4, "-x -y -z -c") == 0); - } - - /* Check combined flags are not recognised. */ - { - const char *t5 = "-c -cb -c"; - - SELF_CHECK (parse_flags (&t5, flags) == 3); - SELF_CHECK (parse_flags (&t5, flags) == 0); - SELF_CHECK (strcmp (t5, "-cb -c") == 0); - } -} - -static void -test_parse_flags_qcs () -{ - const char *non_flags_args = "non flags args"; - - /* Test parsing of 2 flags out of the known 3. */ - { - const char *t1 = "-q -s non flags args"; - qcs_flags flags; - - SELF_CHECK (parse_flags_qcs ("test_parse_flags_qcs.t1.q", - &t1, - &flags) == 1); - SELF_CHECK (flags.quiet && !flags.cont && !flags.silent); - SELF_CHECK (parse_flags_qcs ("test_parse_flags_qcs.t1.s", - &t1, - &flags) == 1); - SELF_CHECK (flags.quiet && !flags.cont && flags.silent); - SELF_CHECK (strcmp (t1, non_flags_args) == 0); - } - - /* Test parsing when there is no flag. */ - { - const char *t2 = "non flags args"; - qcs_flags flags; - - SELF_CHECK (parse_flags_qcs ("test_parse_flags_qcs.t2", - &t2, - &flags) == 0); - SELF_CHECK (!flags.quiet && !flags.cont && !flags.silent); - SELF_CHECK (strcmp (t2, non_flags_args) == 0); - } - - /* Test parsing stops at a negative integer. */ - { - const char *t3 = "-123 non flags args"; - const char *orig_t3 = t3; - qcs_flags flags; - - SELF_CHECK (parse_flags_qcs ("test_parse_flags_qcs.t3", - &t3, - &flags) == 0); - SELF_CHECK (!flags.quiet && !flags.cont && !flags.silent); - SELF_CHECK (strcmp (t3, orig_t3) == 0); - } - - /* Test mutual exclusion between -c and -s. */ - { - const char *t4 = "-c -s non flags args"; - qcs_flags flags; - - try - { - SELF_CHECK (parse_flags_qcs ("test_parse_flags_qcs.t4.cs", - &t4, - &flags) == 1); - - (void) parse_flags_qcs ("test_parse_flags_qcs.t4.cs", - &t4, - &flags); - SELF_CHECK (false); - } - catch (const gdb_exception_error &ex) - { - SELF_CHECK (ex.reason == RETURN_ERROR); - SELF_CHECK (ex.error == GENERIC_ERROR); - SELF_CHECK - (strcmp (ex.what (), - "test_parse_flags_qcs.t4.cs: " - "-c and -s are mutually exclusive") == 0); - } - } - -} - static void test_cli_utils () { selftests::cli_utils::test_number_or_range_parser (); - selftests::cli_utils::test_parse_flags (); - selftests::cli_utils::test_parse_flags_qcs (); } }