maint-test-settings.c 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. /* Maintenance commands for testing the settings framework.
  2. Copyright (C) 2019-2022 Free Software Foundation, Inc.
  3. This file is part of GDB.
  4. This program is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 3 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program. If not, see <http://www.gnu.org/licenses/>. */
  14. #include "defs.h"
  15. #include "gdbcmd.h"
  16. /* Command list for "maint set test-settings". */
  17. static cmd_list_element *maintenance_set_test_settings_list;
  18. /* Command list for "maint show test-settings". */
  19. static cmd_list_element *maintenance_show_test_settings_list;
  20. /* Control variables for all the "maintenance set/show test-settings
  21. xxx" commands. */
  22. static bool maintenance_test_settings_boolean;
  23. static auto_boolean maintenance_test_settings_auto_boolean = AUTO_BOOLEAN_AUTO;
  24. static unsigned int maintenance_test_settings_uinteger;
  25. static int maintenance_test_settings_integer;
  26. static int maintenance_test_settings_zinteger;
  27. static unsigned int maintenance_test_settings_zuinteger;
  28. static int maintenance_test_settings_zuinteger_unlimited;
  29. static std::string maintenance_test_settings_string;
  30. static std::string maintenance_test_settings_string_noescape;
  31. static std::string maintenance_test_settings_optional_filename;
  32. static std::string maintenance_test_settings_filename;
  33. /* Enum values for the "maintenance set/show test-settings boolean"
  34. commands. */
  35. static const char maintenance_test_settings_xxx[] = "xxx";
  36. static const char maintenance_test_settings_yyy[] = "yyy";
  37. static const char maintenance_test_settings_zzz[] = "zzz";
  38. static const char *const maintenance_test_settings_enums[] = {
  39. maintenance_test_settings_xxx,
  40. maintenance_test_settings_yyy,
  41. maintenance_test_settings_zzz,
  42. nullptr
  43. };
  44. static const char *maintenance_test_settings_enum
  45. = maintenance_test_settings_xxx;
  46. /* The "maintenance show test-settings xxx" commands. */
  47. static void
  48. maintenance_show_test_settings_value_cmd
  49. (struct ui_file *file, int from_tty,
  50. struct cmd_list_element *c, const char *value)
  51. {
  52. gdb_printf (file, (("%s\n")), value);
  53. }
  54. void _initialize_maint_test_settings ();
  55. void
  56. _initialize_maint_test_settings ()
  57. {
  58. maintenance_test_settings_filename = "/foo/bar";
  59. add_setshow_prefix_cmd ("test-settings", class_maintenance,
  60. _("\
  61. Set GDB internal variables used for set/show command infrastructure testing."),
  62. _("\
  63. Show GDB internal variables used for set/show command infrastructure testing."),
  64. &maintenance_set_test_settings_list,
  65. &maintenance_show_test_settings_list,
  66. &maintenance_set_cmdlist, &maintenance_show_cmdlist);
  67. add_setshow_boolean_cmd ("boolean", class_maintenance,
  68. &maintenance_test_settings_boolean, _("\
  69. command used for internal testing."), _("\
  70. command used for internal testing."),
  71. nullptr, /* help_doc */
  72. nullptr, /* set_cmd */
  73. maintenance_show_test_settings_value_cmd,
  74. &maintenance_set_test_settings_list,
  75. &maintenance_show_test_settings_list);
  76. add_setshow_auto_boolean_cmd ("auto-boolean", class_maintenance,
  77. &maintenance_test_settings_auto_boolean, _("\
  78. command used for internal testing."), _("\
  79. command used for internal testing."),
  80. nullptr, /* help_doc */
  81. nullptr, /* set_cmd */
  82. maintenance_show_test_settings_value_cmd,
  83. &maintenance_set_test_settings_list,
  84. &maintenance_show_test_settings_list);
  85. add_setshow_uinteger_cmd ("uinteger", class_maintenance,
  86. &maintenance_test_settings_uinteger, _("\
  87. command used for internal testing."), _("\
  88. command used for internal testing."),
  89. nullptr, /* help_doc */
  90. nullptr, /* set_cmd */
  91. maintenance_show_test_settings_value_cmd,
  92. &maintenance_set_test_settings_list,
  93. &maintenance_show_test_settings_list);
  94. add_setshow_integer_cmd ("integer", class_maintenance,
  95. &maintenance_test_settings_integer, _("\
  96. command used for internal testing."), _("\
  97. command used for internal testing."),
  98. nullptr, /* help_doc */
  99. nullptr, /* set_cmd */
  100. maintenance_show_test_settings_value_cmd,
  101. &maintenance_set_test_settings_list,
  102. &maintenance_show_test_settings_list);
  103. add_setshow_string_cmd ("string", class_maintenance,
  104. &maintenance_test_settings_string, _("\
  105. command used for internal testing."), _("\
  106. command used for internal testing."),
  107. nullptr, /* help_doc */
  108. nullptr, /* set_cmd */
  109. maintenance_show_test_settings_value_cmd,
  110. &maintenance_set_test_settings_list,
  111. &maintenance_show_test_settings_list);
  112. add_setshow_string_noescape_cmd
  113. ("string-noescape", class_maintenance,
  114. &maintenance_test_settings_string_noescape, _("\
  115. command used for internal testing."), _("\
  116. command used for internal testing."),
  117. nullptr, /* help_doc */
  118. nullptr, /* set_cmd */
  119. maintenance_show_test_settings_value_cmd,
  120. &maintenance_set_test_settings_list,
  121. &maintenance_show_test_settings_list);
  122. add_setshow_optional_filename_cmd
  123. ("optional-filename", class_maintenance,
  124. &maintenance_test_settings_optional_filename, _("\
  125. command used for internal testing."), _("\
  126. command used for internal testing."),
  127. nullptr, /* help_doc */
  128. nullptr, /* set_cmd */
  129. maintenance_show_test_settings_value_cmd,
  130. &maintenance_set_test_settings_list,
  131. &maintenance_show_test_settings_list);
  132. add_setshow_filename_cmd ("filename", class_maintenance,
  133. &maintenance_test_settings_filename, _("\
  134. command used for internal testing."), _("\
  135. command used for internal testing."),
  136. nullptr, /* help_doc */
  137. nullptr, /* set_cmd */
  138. maintenance_show_test_settings_value_cmd,
  139. &maintenance_set_test_settings_list,
  140. &maintenance_show_test_settings_list);
  141. add_setshow_zinteger_cmd ("zinteger", class_maintenance,
  142. &maintenance_test_settings_zinteger, _("\
  143. command used for internal testing."), _("\
  144. command used for internal testing."),
  145. nullptr, /* help_doc */
  146. nullptr, /* set_cmd */
  147. maintenance_show_test_settings_value_cmd,
  148. &maintenance_set_test_settings_list,
  149. &maintenance_show_test_settings_list);
  150. add_setshow_zuinteger_cmd ("zuinteger", class_maintenance,
  151. &maintenance_test_settings_zuinteger, _("\
  152. command used for internal testing."), _("\
  153. command used for internal testing."),
  154. nullptr, /* help_doc */
  155. nullptr, /* set_cmd */
  156. maintenance_show_test_settings_value_cmd,
  157. &maintenance_set_test_settings_list,
  158. &maintenance_show_test_settings_list);
  159. add_setshow_zuinteger_unlimited_cmd
  160. ("zuinteger-unlimited", class_maintenance,
  161. &maintenance_test_settings_zuinteger_unlimited, _("\
  162. command used for internal testing."), _("\
  163. command used for internal testing."),
  164. nullptr, /* help_doc */
  165. nullptr, /* set_cmd */
  166. maintenance_show_test_settings_value_cmd,
  167. &maintenance_set_test_settings_list,
  168. &maintenance_show_test_settings_list);
  169. add_setshow_enum_cmd ("enum", class_maintenance,
  170. maintenance_test_settings_enums,
  171. &maintenance_test_settings_enum, _("\
  172. command used for internal testing."), _("\
  173. command used for internal testing."),
  174. nullptr, /* help_doc */
  175. nullptr, /* set_cmd */
  176. maintenance_show_test_settings_value_cmd,
  177. &maintenance_set_test_settings_list,
  178. &maintenance_show_test_settings_list);
  179. }