diff options
author | Sébastien Wilmet <swilmet@informatique-libre.be> | 2022-07-14 11:26:19 +0000 |
---|---|---|
committer | Sébastien Wilmet <swilmet@informatique-libre.be> | 2022-07-14 11:26:19 +0000 |
commit | 8992e95adb0d2de7c620947c4a3cecb15a939eae (patch) | |
tree | 38926b2658639a3af27da830eb6d2b766dc5d34c | |
parent | c8dd470f313d3c3656091a000852c7435fc44eae (diff) | |
parent | 1a1d406b2984c7a99925d593509d2ece4cfaaf0c (diff) | |
download | gtksourceview-8992e95adb0d2de7c620947c4a3cecb15a939eae.tar.gz |
Merge branch 'wip/chergert/test-specs-4-8' into 'gtksourceview-4-8'
testsuite: backport test-language-specs
See merge request GNOME/gtksourceview!273
-rw-r--r-- | data/language-specs/cuda.lang | 2 | ||||
-rw-r--r-- | data/language-specs/def.lang | 3 | ||||
-rw-r--r-- | testsuite/meson.build | 1 | ||||
-rw-r--r-- | testsuite/test-language-specs.c | 97 |
4 files changed, 102 insertions, 1 deletions
diff --git a/data/language-specs/cuda.lang b/data/language-specs/cuda.lang index 88c95e0a..b74d1313 100644 --- a/data/language-specs/cuda.lang +++ b/data/language-specs/cuda.lang @@ -84,7 +84,7 @@ <keyword>threadIdx</keyword> </context> - <context id="kernel-call" style-ref="latex:display-math"> + <context id="kernel-call" style-ref="def:string"> <start><<<</start> <end>>>></end> </context> diff --git a/data/language-specs/def.lang b/data/language-specs/def.lang index 4a07444c..5f92b938 100644 --- a/data/language-specs/def.lang +++ b/data/language-specs/def.lang @@ -34,6 +34,9 @@ Finally a style scheme may also define language specific styles. --> + <!-- General text, only currently used by Latex --> + <style id="text" name="Text"/> + <!-- Comment group --> <!-- Any comment --> <style id="comment" name="Comment"/> diff --git a/testsuite/meson.build b/testsuite/meson.build index 08d0a7e5..02e248e1 100644 --- a/testsuite/meson.build +++ b/testsuite/meson.build @@ -26,6 +26,7 @@ testsuite_sources = [ ['test-iter'], ['test-language'], ['test-languagemanager'], + ['test-language-specs'], ['test-mark'], ['test-printcompositor'], ['test-regex'], diff --git a/testsuite/test-language-specs.c b/testsuite/test-language-specs.c new file mode 100644 index 00000000..4e4cf9da --- /dev/null +++ b/testsuite/test-language-specs.c @@ -0,0 +1,97 @@ +#include <gtksourceview/gtksource.h> + +static GHashTable *skipped; + +static void +test_func (gconstpointer data) +{ + GtkSourceLanguageManager *lm = gtk_source_language_manager_get_default (); + const char *language_id = data; + GtkSourceLanguage *l; + GtkSourceBuffer *buffer; + + g_assert_true (GTK_SOURCE_IS_LANGUAGE_MANAGER (lm)); + g_assert_nonnull (data); + + if (g_hash_table_contains (skipped, language_id)) + { + char *message = g_strdup_printf ("skipping known failure for %s", language_id); + g_test_skip (message); + g_free (message); + return; + } + + l = gtk_source_language_manager_get_language (lm, language_id); + g_assert_nonnull (l); + + buffer = g_object_new (GTK_SOURCE_TYPE_BUFFER, + "language", l, + "highlight-syntax", TRUE, + NULL); + + g_object_unref (buffer); +} + +int +main (int argc, + char *argv[]) +{ + GtkSourceLanguageManager *lm; + const char * const *ids; + char *language_specs; + char *search_path[2]; + const char *srcdir = g_getenv ("G_TEST_SRCDIR"); + GPtrArray *strings; + int ret; + + g_assert_nonnull (srcdir); + + language_specs = g_build_filename (srcdir, "..", "data", "language-specs", NULL); + search_path[0] = language_specs; + search_path[1] = 0; + + g_test_init (&argc, &argv, NULL); + gtk_source_init (); + + skipped = g_hash_table_new (g_str_hash, g_str_equal); + + g_hash_table_add (skipped, (char *)"gdb-log"); + g_hash_table_add (skipped, (char *)"jsdoc"); + g_hash_table_add (skipped, (char *)"js-expr"); + g_hash_table_add (skipped, (char *)"js-fn"); + g_hash_table_add (skipped, (char *)"js-lit"); + g_hash_table_add (skipped, (char *)"js-mod"); + g_hash_table_add (skipped, (char *)"js-st"); + g_hash_table_add (skipped, (char *)"js-val"); + g_hash_table_add (skipped, (char *)"typescript-js-expr"); + g_hash_table_add (skipped, (char *)"typescript-js-fn"); + g_hash_table_add (skipped, (char *)"typescript-js-lit"); + g_hash_table_add (skipped, (char *)"typescript-js-mod"); + g_hash_table_add (skipped, (char *)"typescript-js-st"); + g_hash_table_add (skipped, (char *)"typescript-type-expr"); + g_hash_table_add (skipped, (char *)"typescript-type-gen"); + g_hash_table_add (skipped, (char *)"typescript-type-lit"); + g_hash_table_add (skipped, (char *)"gtk-doc"); + g_hash_table_add (skipped, (char *)"testv1"); + + strings = g_ptr_array_new_with_free_func (g_free); + lm = gtk_source_language_manager_get_default (); + gtk_source_language_manager_set_search_path (lm, search_path); + + ids = gtk_source_language_manager_get_language_ids (lm); + + for (guint i = 0; ids[i]; i++) + { + char *path = g_strdup_printf ("/Language/%s/load", ids[i]); + g_ptr_array_add (strings, path); + g_test_add_data_func (path, ids[i], test_func); + } + + ret = g_test_run (); + + g_ptr_array_unref (strings); + g_hash_table_unref (skipped); + g_free (language_specs); + + return ret; +} |