diff options
author | Tom de Vries <tdevries@suse.de> | 2023-10-24 14:31:34 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2023-10-24 14:31:34 +0200 |
commit | cda750802aef3beea582f0f3cad824be491abb4d (patch) | |
tree | 31fa311452ac6d99460fab2290da66edafe8f0a6 | |
parent | 07a9e709114151550177c45dbdc04641dc547189 (diff) | |
download | fsf-binutils-gdb-cda750802aef3beea582f0f3cad824be491abb4d.zip fsf-binutils-gdb-cda750802aef3beea582f0f3cad824be491abb4d.tar.gz fsf-binutils-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.
-rw-r--r-- | gdb/source-cache.c | 46 |
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 } |