[1/2,master/8.1] Fix GDB build failure when $development is false
Commit Message
Simon Marchi <simon.marchi@ericsson.com> writes:
> Otherwise, the patch LGTM.
>
> Here's a fixup patch that does this, feel free to use it if you like the
> idea. Just as a sanity check, I added an assert in unittest.exp to make sure
> that when tests are ran, we run at least one test.
It is good to make the output more explicit. I take your fixup patch
in, and I'll push the patch below in.
@@ -1050,7 +1050,6 @@ COMMON_SFILES = \
remote-notif.c \
reverse.c \
rust-lang.c \
- selftest-arch.c \
sentinel-frame.c \
ser-event.c \
serial.c \
@@ -1139,7 +1138,6 @@ SFILES = \
common/ptid.c \
common/rsp-low.c \
common/run-time-clock.c \
- common/selftest.c \
common/signals.c \
common/signals-state-save-restore.c \
common/vec.c \
@@ -1555,7 +1553,6 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
ptid.o \
rsp-low.o \
run-time-clock.o \
- selftest.o \
signals.o \
signals-state-save-restore.o \
vec.o \
@@ -17599,8 +17599,8 @@ if $development; then
$as_echo "#define GDB_SELF_TEST 1" >>confdefs.h
- CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS)"
- CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS)"
+ CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) selftest.o selftest-arch.o"
+ CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS) common/selftest.c selftest-arch.c"
fi
@@ -2293,8 +2293,8 @@ AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
if $development; then
AC_DEFINE(GDB_SELF_TEST, 1,
[Define if self-testing features should be enabled])
- CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS)"
- CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS)"
+ CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) selftest.o selftest-arch.o"
+ CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS) common/selftest.c selftest-arch.c"
fi
GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME])
@@ -939,16 +939,26 @@ show_per_command_cmd (const char *args, int from_tty)
static void
maintenance_selftest (const char *args, int from_tty)
{
+#if GDB_SELF_TEST
selftests::run_tests (args);
+#else
+ printf_filtered (_("\
+Selftests are not available in a non-development build.\n"));
+#endif
}
static void
maintenance_info_selftests (const char *arg, int from_tty)
{
+#if GDB_SELF_TEST
printf_filtered ("Registered selftests:\n");
selftests::for_each_selftest ([] (const std::string &name) {
printf_filtered (" - %s\n", name.c_str ());
});
+#else
+ printf_filtered (_("\
+Selftests are not available in a non-development build.\n"));
+#endif
}
@@ -16,7 +16,18 @@
set do_xml_test [expr ![gdb_skip_xml_test]]
gdb_start
-gdb_test "maintenance selftest" "Ran $decimal unit tests, 0 failed"
+
+set test "maintenance selftest"
+gdb_test_multiple $test $test {
+ -re "Ran ($decimal) unit tests, 0 failed\r\n$gdb_prompt $" {
+ set num_ran $expect_out(1,string)
+ gdb_assert "$num_ran > 0" $test
+ }
+
+ -re "Selftests are not available in a non-development build.\r\n$gdb_prompt $" {
+ unsupported $test
+ }
+}
if { ![is_remote host] && $do_xml_test } {
gdb_test "maintenance check xml-descriptions ${srcdir}/../features" \