mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-13 07:56:17 +01:00
Some tests for gschema-compile
Mostly making sure that we produce reasonable error messages for typical mistakes.
This commit is contained in:
parent
a64625a134
commit
0e48b0638d
@ -154,7 +154,12 @@ EXTRA_DIST += \
|
|||||||
org.gtk.test.gschema \
|
org.gtk.test.gschema \
|
||||||
org.gtk.test.gschema.xml \
|
org.gtk.test.gschema.xml \
|
||||||
de.po \
|
de.po \
|
||||||
schema-tests/no-default/no-default.gschema.xml
|
schema-tests/bad-type/test.gschema.xml \
|
||||||
|
schema-tests/incomplete-list/test.gschema.xml \
|
||||||
|
schema-tests/missing-quotes/test.gschema.xml \
|
||||||
|
schema-tests/no-default/test.gschema.xml \
|
||||||
|
schema-tests/wrong-category/test.gschema.xml \
|
||||||
|
schema-tests/overflow/test.gschema.xml
|
||||||
|
|
||||||
MISC_STUFF = gschemas.compiled test.mo
|
MISC_STUFF = gschemas.compiled test.mo
|
||||||
|
|
||||||
@ -166,10 +171,15 @@ test.mo: de.po
|
|||||||
gschemas.compiled:
|
gschemas.compiled:
|
||||||
$(top_builddir)/gio/gschema-compile --targetdir=$(abs_builddir) $(srcdir)
|
$(top_builddir)/gio/gschema-compile --targetdir=$(abs_builddir) $(srcdir)
|
||||||
|
|
||||||
DISTCLEANFILES = \
|
DISTCLEANFILES = \
|
||||||
applications/mimeinfo.cache \
|
applications/mimeinfo.cache \
|
||||||
de/LC_MESSAGES/test.mo \
|
de/LC_MESSAGES/test.mo \
|
||||||
test.mo \
|
test.mo \
|
||||||
gsettings.store \
|
gsettings.store \
|
||||||
gschemas.compiled \
|
gschemas.compiled \
|
||||||
schema-tests/no-schema/gschemas.compiled
|
schema-tests/bad-type/gschemas.compiled \
|
||||||
|
schema-tests/incomplete-list/gschemas.compiled \
|
||||||
|
schema-tests/missing-quotes/gschemas.compiled \
|
||||||
|
schema-tests/no-default/gschemas.compiled \
|
||||||
|
schema-tests/wrong-category/gschemas.compiled \
|
||||||
|
schema-tests/overflow/gschemas.compiled
|
||||||
|
@ -13,13 +13,87 @@ test_no_default (void)
|
|||||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||||
{
|
{
|
||||||
gchar *argv[] = { "../gschema-compile", "./schema-tests/no-default/", NULL };
|
gchar *argv[] = { "../gschema-compile", "./schema-tests/no-default/", NULL };
|
||||||
gchar *envp[] = { NULL };
|
gchar *envp[] = { NULL };
|
||||||
execve (argv[0], argv, envp);
|
execve (argv[0], argv, envp);
|
||||||
}
|
}
|
||||||
g_test_trap_assert_failed ();
|
g_test_trap_assert_failed ();
|
||||||
g_test_trap_assert_stderr ("*<default> is required in <key>*");
|
g_test_trap_assert_stderr ("*<default> is required in <key>*");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_missing_quotes (void)
|
||||||
|
{
|
||||||
|
g_remove ("schema-tests/missing-quotes/gschemas.compiled");
|
||||||
|
|
||||||
|
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||||
|
{
|
||||||
|
gchar *argv[] = { "../gschema-compile", "./schema-tests/missing-quotes/", NULL };
|
||||||
|
gchar *envp[] = { NULL };
|
||||||
|
execve (argv[0], argv, envp);
|
||||||
|
}
|
||||||
|
g_test_trap_assert_failed ();
|
||||||
|
g_test_trap_assert_stderr ("*unknown keyword*");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_incomplete_list (void)
|
||||||
|
{
|
||||||
|
g_remove ("schema-tests/incomplete-list/gschemas.compiled");
|
||||||
|
|
||||||
|
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||||
|
{
|
||||||
|
gchar *argv[] = { "../gschema-compile", "./schema-tests/incomplete-list/", NULL };
|
||||||
|
gchar *envp[] = { NULL };
|
||||||
|
execve (argv[0], argv, envp);
|
||||||
|
}
|
||||||
|
g_test_trap_assert_failed ();
|
||||||
|
g_test_trap_assert_stderr ("*to follow array element*");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_wrong_category (void)
|
||||||
|
{
|
||||||
|
g_remove ("schema-tests/wrong-category/gschemas.compiled");
|
||||||
|
|
||||||
|
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||||
|
{
|
||||||
|
gchar *argv[] = { "../gschema-compile", "./schema-tests/wrong-category/", NULL };
|
||||||
|
gchar *envp[] = { NULL };
|
||||||
|
execve (argv[0], argv, envp);
|
||||||
|
}
|
||||||
|
g_test_trap_assert_failed ();
|
||||||
|
g_test_trap_assert_stderr ("*attribute 'l10n' invalid*");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_bad_type (void)
|
||||||
|
{
|
||||||
|
g_remove ("schema-tests/bad-type/gschemas.compiled");
|
||||||
|
|
||||||
|
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||||
|
{
|
||||||
|
gchar *argv[] = { "../gschema-compile", "./schema-tests/bad-type/", NULL };
|
||||||
|
gchar *envp[] = { NULL };
|
||||||
|
execve (argv[0], argv, envp);
|
||||||
|
}
|
||||||
|
g_test_trap_assert_failed ();
|
||||||
|
g_test_trap_assert_stderr ("*invalid GVariant type string*");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_overflow (void)
|
||||||
|
{
|
||||||
|
g_remove ("schema-tests/overflow/gschemas.compiled");
|
||||||
|
|
||||||
|
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||||
|
{
|
||||||
|
gchar *argv[] = { "../gschema-compile", "./schema-tests/overflow/", NULL };
|
||||||
|
gchar *envp[] = { NULL };
|
||||||
|
execve (argv[0], argv, envp);
|
||||||
|
}
|
||||||
|
g_test_trap_assert_failed ();
|
||||||
|
g_test_trap_assert_stderr ("*out of range*");
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
@ -30,6 +104,11 @@ main (int argc, char *argv[])
|
|||||||
g_test_init (&argc, &argv, NULL);
|
g_test_init (&argc, &argv, NULL);
|
||||||
|
|
||||||
g_test_add_func ("/gschema/no-default", test_no_default);
|
g_test_add_func ("/gschema/no-default", test_no_default);
|
||||||
|
g_test_add_func ("/gschema/missing-quotes", test_missing_quotes);
|
||||||
|
g_test_add_func ("/gschema/incomplete-list", test_incomplete_list);
|
||||||
|
g_test_add_func ("/gschema/wrong-category", test_wrong_category);
|
||||||
|
g_test_add_func ("/gschema/bad-type", test_bad_type);
|
||||||
|
g_test_add_func ("/gschema/overflow", test_overflow);
|
||||||
|
|
||||||
return g_test_run ();
|
return g_test_run ();
|
||||||
}
|
}
|
||||||
|
7
gio/tests/schema-tests/bad-type/test.gschema.xml
Normal file
7
gio/tests/schema-tests/bad-type/test.gschema.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<schemalist>
|
||||||
|
<schema id="bad-type" path="/tests/">
|
||||||
|
<key name="test" type="-%$#*(a!">
|
||||||
|
<default></default>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
</schemalist>
|
7
gio/tests/schema-tests/incomplete-list/test.gschema.xml
Normal file
7
gio/tests/schema-tests/incomplete-list/test.gschema.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<schemalist>
|
||||||
|
<schema id="incomplete-list" path="/tests/">
|
||||||
|
<key name="test" type="ai">
|
||||||
|
<default>[1,2,3</default>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
</schemalist>
|
7
gio/tests/schema-tests/missing-quotes/test.gschema.xml
Normal file
7
gio/tests/schema-tests/missing-quotes/test.gschema.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<schemalist>
|
||||||
|
<schema id="missing-quotes" path="/tests/">
|
||||||
|
<key name="test" type="s">
|
||||||
|
<default>foo</default>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
</schemalist>
|
6
gio/tests/schema-tests/no-default/test.gschema.xml
Normal file
6
gio/tests/schema-tests/no-default/test.gschema.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<schemalist>
|
||||||
|
<schema id="no-default" path="/tests/">
|
||||||
|
<key name="test" type="s">
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
</schemalist>
|
7
gio/tests/schema-tests/overflow/test.gschema.xml
Normal file
7
gio/tests/schema-tests/overflow/test.gschema.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<schemalist>
|
||||||
|
<schema id="test">
|
||||||
|
<key name="test" type="y">
|
||||||
|
<default>512</default>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
</schemalist>
|
7
gio/tests/schema-tests/wrong-category/test.gschema.xml
Normal file
7
gio/tests/schema-tests/wrong-category/test.gschema.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<schemalist>
|
||||||
|
<schema id="wrong-category" path="/tests/" gettext-domain="test">
|
||||||
|
<key name="test" type="s" l10n="not-a-category">
|
||||||
|
<default>'foo'</default>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
</schemalist>
|
Loading…
Reference in New Issue
Block a user