| /* Maintenance commands for testing the settings framework. |
| |
| Copyright (C) 2019-2021 Free Software Foundation, Inc. |
| |
| This file is part of GDB. |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 3 of the License, or |
| (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| |
| |
| #include "defs.h" |
| #include "gdbcmd.h" |
| |
| /* Command list for "maint set test-settings". */ |
| static cmd_list_element *maintenance_set_test_settings_list; |
| |
| /* Command list for "maint show test-settings". */ |
| static cmd_list_element *maintenance_show_test_settings_list; |
| |
| /* Control variables for all the "maintenance set/show test-settings |
| xxx" commands. */ |
| |
| static bool maintenance_test_settings_boolean; |
| |
| static auto_boolean maintenance_test_settings_auto_boolean = AUTO_BOOLEAN_AUTO; |
| |
| static unsigned int maintenance_test_settings_uinteger; |
| |
| static int maintenance_test_settings_integer; |
| |
| static int maintenance_test_settings_zinteger; |
| |
| static unsigned int maintenance_test_settings_zuinteger; |
| |
| static int maintenance_test_settings_zuinteger_unlimited; |
| |
| static std::string maintenance_test_settings_string; |
| |
| static std::string maintenance_test_settings_string_noescape; |
| |
| static std::string maintenance_test_settings_optional_filename; |
| |
| static std::string maintenance_test_settings_filename; |
| |
| /* Enum values for the "maintenance set/show test-settings 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[] = { |
| 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 show test-settings xxx" commands. */ |
| |
| static void |
| maintenance_show_test_settings_value_cmd |
| (struct ui_file *file, int from_tty, |
| struct cmd_list_element *c, const char *value) |
| { |
| fprintf_filtered (file, (("%s\n")), value); |
| } |
| |
| |
| void _initialize_maint_test_settings (); |
| void |
| _initialize_maint_test_settings () |
| { |
| maintenance_test_settings_filename = xstrdup ("/foo/bar"); |
| |
| add_basic_prefix_cmd ("test-settings", class_maintenance, |
| _("\ |
| Set GDB internal variables used for set/show command infrastructure testing."), |
| &maintenance_set_test_settings_list, |
| 0/*allow-unknown*/, |
| &maintenance_set_cmdlist); |
| |
| add_show_prefix_cmd ("test-settings", class_maintenance, |
| _("\ |
| Show GDB internal variables used for set/show command infrastructure testing."), |
| &maintenance_show_test_settings_list, |
| 0/*allow-unknown*/, |
| &maintenance_show_cmdlist); |
| |
| add_setshow_boolean_cmd ("boolean", class_maintenance, |
| &maintenance_test_settings_boolean, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| |
| add_setshow_auto_boolean_cmd ("auto-boolean", class_maintenance, |
| &maintenance_test_settings_auto_boolean, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| |
| add_setshow_uinteger_cmd ("uinteger", class_maintenance, |
| &maintenance_test_settings_uinteger, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| |
| add_setshow_integer_cmd ("integer", class_maintenance, |
| &maintenance_test_settings_integer, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| |
| add_setshow_string_cmd ("string", class_maintenance, |
| &maintenance_test_settings_string, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| |
| add_setshow_string_noescape_cmd |
| ("string-noescape", class_maintenance, |
| &maintenance_test_settings_string_noescape, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| |
| add_setshow_optional_filename_cmd |
| ("optional-filename", class_maintenance, |
| &maintenance_test_settings_optional_filename, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| |
| add_setshow_filename_cmd ("filename", class_maintenance, |
| &maintenance_test_settings_filename, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| |
| add_setshow_zinteger_cmd ("zinteger", class_maintenance, |
| &maintenance_test_settings_zinteger, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| |
| add_setshow_zuinteger_cmd ("zuinteger", class_maintenance, |
| &maintenance_test_settings_zuinteger, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| |
| add_setshow_zuinteger_unlimited_cmd |
| ("zuinteger-unlimited", class_maintenance, |
| &maintenance_test_settings_zuinteger_unlimited, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| |
| add_setshow_enum_cmd ("enum", class_maintenance, |
| maintenance_test_settings_enums, |
| &maintenance_test_settings_enum, _("\ |
| command used for internal testing."), _("\ |
| command used for internal testing."), |
| nullptr, /* help_doc */ |
| nullptr, /* set_cmd */ |
| maintenance_show_test_settings_value_cmd, |
| &maintenance_set_test_settings_list, |
| &maintenance_show_test_settings_list); |
| } |