aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2023-10-24 14:31:34 +0200
committerTom de Vries <tdevries@suse.de>2023-10-24 14:31:34 +0200
commitcda750802aef3beea582f0f3cad824be491abb4d (patch)
tree31fa311452ac6d99460fab2290da66edafe8f0a6 /gdb
parent07a9e709114151550177c45dbdc04641dc547189 (diff)
downloadgdb-cda750802aef3beea582f0f3cad824be491abb4d.zip
gdb-cda750802aef3beea582f0f3cad824be491abb4d.tar.gz
gdb-cda750802aef3beea582f0f3cad824be491abb4d.tar.bz2
[gdb/cli] Add gnu-source-highlight selftest
Add a selftest gnu-source-highlight: ... $ gdb -q -batch -ex "maint selftest gnu-source-highlight" Running selftest gnu-source-highlight. Ran 1 unit tests, 0 failed ... Tested on x86_64-linux.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/source-cache.c46
1 files changed, 45 insertions, 1 deletions
diff --git a/gdb/source-cache.c b/gdb/source-cache.c
index 92acb10..c955929 100644
--- a/gdb/source-cache.c
+++ b/gdb/source-cache.c
@@ -22,7 +22,6 @@
#include "source.h"
#include "cli/cli-style.h"
#include "symtab.h"
-#include "gdbsupport/selftest.h"
#include "objfiles.h"
#include "exec.h"
#include "cli/cli-cmds.h"
@@ -40,6 +39,10 @@
#include <srchilite/settings.h>
#endif
+#if GDB_SELF_TEST
+#include "gdbsupport/selftest.h"
+#endif
+
/* The number of source files we'll cache. */
#define MAX_ENTRIES 5
@@ -258,6 +261,43 @@ try_source_highlight (std::string &contents ATTRIBUTE_UNUSED,
#endif /* HAVE_SOURCE_HIGHLIGHT */
}
+#ifdef HAVE_SOURCE_HIGHLIGHT
+#if GDB_SELF_TEST
+namespace selftests
+{
+static void gnu_source_highlight_test ()
+{
+ const std::string prog
+ = ("int\n"
+ "foo (void)\n"
+ "{\n"
+ " return 0;\n"
+ "}\n");
+ const std::string fullname = "test.c";
+ std::string styled_prog;
+
+ bool res = false;
+ bool saw_exception = false;
+ styled_prog = prog;
+ try
+ {
+ res = try_source_highlight (styled_prog, language_c, fullname);
+ }
+ catch (...)
+ {
+ saw_exception = true;
+ }
+
+ SELF_CHECK (!saw_exception);
+ if (res)
+ SELF_CHECK (prog.size () < styled_prog.size ());
+ else
+ SELF_CHECK (prog == styled_prog);
+}
+}
+#endif /* GDB_SELF_TEST */
+#endif /* HAVE_SOURCE_HIGHLIGHT */
+
/* See source-cache.h. */
bool
@@ -489,5 +529,9 @@ styling to source code lines that are shown."),
#if GDB_SELF_TEST
selftests::register_test ("source-cache", selftests::extract_lines_test);
+#ifdef HAVE_SOURCE_HIGHLIGHT
+ selftests::register_test ("gnu-source-highlight",
+ selftests::gnu_source_highlight_test);
+#endif
#endif
}