From 970f9d091dae835304d1a96805bdb5c081a40b48 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 3 Jul 2019 13:34:17 +0100 Subject: [PATCH] Fix defaults of some "maint test-settings" subcommands New tests added later for the incoming "with" command exposed a couple invalid-default-value bugs in the "maint test-settings" commands: - var_filename commands don't allow setting the filename to the empty string (unlike var_optional_filename commands), yet, "maint test-settings filename"'s control variable was not initialized, so on startup, "maint test-settings show filename" shows an empty string. - "maint test-settings enum"'s control variable was not initialized, so on startup, "maint test-settings show enum" shows an empty value instead of a valid enum value. Both issues are fixed by initializing the control variables. gdb/ChangeLog: 2019-07-03 Pedro Alves * maint-test-settings.c (maintenance_test_settings_xxx) (maintenance_test_settings_yyy, maintenance_test_settings_zzz): New. (maintenance_test_settings_enums): Use them. (maintenance_test_settings_enum): Default to maintenance_test_settings_xxx. (_initialize_maint_test_settings): Initialize MAINTENANCE_TEST_SETTINGS_FILENAME. gdb/testsuite/ChangeLog: 2019-07-03 Pedro Alves * gdb.base/settings.exp (test-string): Adjust expected out when testing "maint test-settings show filename" --- gdb/ChangeLog | 11 +++++++++++ gdb/maint-test-settings.c | 16 +++++++++++++--- gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.base/settings.exp | 9 ++++++--- 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d50fe89f115..05c25b4f716 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2019-07-03 Pedro Alves + + * maint-test-settings.c (maintenance_test_settings_xxx) + (maintenance_test_settings_yyy, maintenance_test_settings_zzz): + New. + (maintenance_test_settings_enums): Use them. + (maintenance_test_settings_enum): Default to + maintenance_test_settings_xxx. + (_initialize_maint_test_settings): Initialize + MAINTENANCE_TEST_SETTINGS_FILENAME. + 2019-07-02 Simon Marchi * breakpoint.h (remove_breakpoints_inf): Change return type to diff --git a/gdb/maint-test-settings.c b/gdb/maint-test-settings.c index fa13519eb96..79e002e727f 100644 --- a/gdb/maint-test-settings.c +++ b/gdb/maint-test-settings.c @@ -85,14 +85,22 @@ static char *maintenance_test_settings_optional_filename; static char *maintenance_test_settings_filename; -static const char *maintenance_test_settings_enum; - /* Enum values for the "maintenance test-settings set/show boolean" commands. */ +static const char maintenance_test_settings_xxx[] = "xxx"; +static const char maintenance_test_settings_yyy[] = "yyy"; +static const char maintenance_test_settings_zzz[] = "zzz"; + static const char *const maintenance_test_settings_enums[] = { - "xxx", "yyy", "zzz", nullptr + maintenance_test_settings_xxx, + maintenance_test_settings_yyy, + maintenance_test_settings_zzz, + nullptr }; +static const char *maintenance_test_settings_enum + = maintenance_test_settings_xxx; + /* The "maintenance test-options show xxx" commands. */ static void @@ -107,6 +115,8 @@ maintenance_test_settings_show_value_cmd void _initialize_maint_test_settings (void) { + maintenance_test_settings_filename = xstrdup ("/foo/bar"); + add_prefix_cmd ("test-settings", no_class, maintenance_test_settings_cmd, _("\ diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index f38efbe515b..9129c11a518 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-07-03 Pedro Alves + + * gdb.base/settings.exp (test-string): Adjust expected out when + testing "maint test-settings show filename" + 2019-07-02 Pedro Alves * gdb.base/options.exp (test-info-threads): New procedure. diff --git a/gdb/testsuite/gdb.base/settings.exp b/gdb/testsuite/gdb.base/settings.exp index aeca67c0e7f..b691ad8cf68 100644 --- a/gdb/testsuite/gdb.base/settings.exp +++ b/gdb/testsuite/gdb.base/settings.exp @@ -447,9 +447,12 @@ proc test-string {variant} { set set_cmd "maint test-settings set $variant" set show_cmd "maint test-settings show $variant" - # Empty string. Also checks that gdb doesn't crash if we haven't - # set the string yet. - gdb_test "$show_cmd" "^$show_cmd\r\n" "$show_cmd: empty first time" + # Checks that gdb doesn't crash if we haven't set the string yet. + if {$variant != "filename"} { + gdb_test "$show_cmd" "^$show_cmd\r\n" "$show_cmd: show default" + } else { + gdb_test "$show_cmd" "/foo/bar" "$show_cmd: show default" + } # A string value. gdb_test_no_output "$set_cmd hello world" -- 2.30.2