1
1
mirror of https://gitlab.gnome.org/GNOME/gimp.git synced 2025-10-05 21:02:42 +02:00

libgimp: add tests to check presence of constants in introspection

This commit is contained in:
Jacob Boerema
2025-08-13 19:17:24 -04:00
parent 602300ec8e
commit 6215c37c9a
3 changed files with 166 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ endif
tests = [
'color-parser',
'constants',
'export-options',
'image',
'palette',

View File

@@ -0,0 +1,84 @@
/* Test for constants in our Gobject Introspection API to make sure they are
* available.
*/
static GimpValueArray *
gimp_c_test_run (GimpProcedure *procedure,
GimpRunMode run_mode,
GimpImage *image,
GimpDrawable **drawables,
GimpProcedureConfig *config,
gpointer run_data)
{
/* The compiler could detect that comparision would always be true and always
* return a TRUE value. But then: it would already fail compiling if the
* constant is missing.
*/
#define GIMP_CONST_TEST(testname, test) \
GIMP_TEST_START(testname); GIMP_TEST_END(test == test);
/* The actual test here isn't that important, we just need to know it exists. */
#define GIMP_CONST_STRING_TEST(testname, test) \
GIMP_TEST_START(testname); GIMP_TEST_END(test != NULL);
GIMP_CONST_TEST("GIMP_CHECK_SIZE", GIMP_CHECK_SIZE);
GIMP_CONST_TEST("GIMP_CHECK_SIZE_SM", GIMP_CHECK_SIZE_SM);
GIMP_CONST_TEST("GIMP_CHECK_DARK", GIMP_CHECK_DARK);
GIMP_CONST_TEST("GIMP_CHECK_LIGHT", GIMP_CHECK_LIGHT);
GIMP_CONST_TEST("GIMP_MIN_IMAGE_SIZE", GIMP_MIN_IMAGE_SIZE);
GIMP_CONST_TEST("GIMP_MAX_IMAGE_SIZE", GIMP_MAX_IMAGE_SIZE);
GIMP_CONST_TEST("GIMP_MIN_RESOLUTION", GIMP_MIN_RESOLUTION);
GIMP_CONST_TEST("GIMP_MAX_RESOLUTION", GIMP_MAX_RESOLUTION);
GIMP_CONST_TEST("GIMP_MAX_MESIZE", GIMP_MAX_MEMSIZE);
GIMP_CONST_TEST("GIMP_PARAM_NO_VALIDATE", GIMP_PARAM_NO_VALIDATE);
GIMP_CONST_TEST("GIMP_PARAM_DONT_SERIALIZE", GIMP_PARAM_DONT_SERIALIZE);
GIMP_CONST_TEST("GIMP_PARAM_FLAG_SHIFT", GIMP_PARAM_FLAG_SHIFT);
GIMP_CONST_TEST("GIMP_PARAM_STATIC_STRINGS", GIMP_PARAM_STATIC_STRINGS);
GIMP_CONST_TEST("GIMP_PARAM_READABLE", GIMP_PARAM_READABLE);
GIMP_CONST_TEST("GIMP_PARAM_WRITABLE", GIMP_PARAM_WRITABLE);
GIMP_CONST_TEST("GIMP_PARAM_READWRITE", GIMP_PARAM_READWRITE);
GIMP_CONST_TEST("GIMP_PARASITE_PERSISTENT", GIMP_PARASITE_PERSISTENT);
GIMP_CONST_TEST("GIMP_PARASITE_UNDOABLE", GIMP_PARASITE_UNDOABLE);
GIMP_CONST_TEST("GIMP_PARASITE_ATTACH_PARENT", GIMP_PARASITE_ATTACH_PARENT);
GIMP_CONST_TEST("GIMP_PARASITE_PARENT_PERSISTENT", GIMP_PARASITE_PARENT_PERSISTENT);
GIMP_CONST_TEST("GIMP_PARASITE_PARENT_UNDOABLE", GIMP_PARASITE_PARENT_UNDOABLE);
GIMP_CONST_TEST("GIMP_PARASITE_ATTACH_GRANDPARENT", GIMP_PARASITE_ATTACH_GRANDPARENT);
GIMP_CONST_TEST("GIMP_PARASITE_GRANDPARENT_PERSISTENT", GIMP_PARASITE_GRANDPARENT_PERSISTENT);
GIMP_CONST_TEST("GIMP_PARASITE_GRANDPARENT_UNDOABLE", GIMP_PARASITE_GRANDPARENT_UNDOABLE);
/* FIXME: libgimpbase/gimpparasiteio.h is not listed in gimpbase.h, is that
* an oversight, or does it need to be included in gimpbase-private.h.
* It seems that pixpipe is only handled in app, but this const, a struct and
* several functions are available through Gobject Introspection so we
* can't just remove it from the API.
*
GIMP_CONST_TEST("GIMP_PIXPIPE_MAXDIM", GIMP_PIXPIPE_MAXDIM);
*/
GIMP_CONST_TEST("GIMP_MAJOR_VERSION", GIMP_MAJOR_VERSION);
GIMP_CONST_TEST("GIMP_MINOR_VERSION", GIMP_MINOR_VERSION);
GIMP_CONST_TEST("GIMP_MICRO_VERSION", GIMP_MICRO_VERSION);
GIMP_CONST_STRING_TEST("GIMP_VERSION", GIMP_VERSION);
GIMP_CONST_STRING_TEST("GIMP_API_VERSION", GIMP_API_VERSION);
GIMP_CONST_TEST("GIMP_CONFIG_PARAM_SERIALIZE", GIMP_CONFIG_PARAM_SERIALIZE);
GIMP_CONST_TEST("GIMP_CONFIG_PARAM_AGGREGATE", GIMP_CONFIG_PARAM_AGGREGATE);
GIMP_CONST_TEST("GIMP_CONFIG_PARAM_RESTART", GIMP_CONFIG_PARAM_RESTART);
GIMP_CONST_TEST("GIMP_CONFIG_PARAM_CONFIRM", GIMP_CONFIG_PARAM_CONFIRM);
GIMP_CONST_TEST("GIMP_CONFIG_PARAM_DEFAULTS", GIMP_CONFIG_PARAM_DEFAULTS);
GIMP_CONST_TEST("GIMP_CONFIG_PARAM_IGNORE", GIMP_CONFIG_PARAM_IGNORE);
GIMP_CONST_TEST("GIMP_CONFIG_PARAM_DONT_COMPARE", GIMP_CONFIG_PARAM_DONT_COMPARE);
GIMP_CONST_TEST("GIMP_CONFIG_PARAM_FLAG_SHIFT", GIMP_CONFIG_PARAM_FLAG_SHIFT);
GIMP_CONST_TEST("GIMP_CONFIG_PARAM_FLAGS", GIMP_CONFIG_PARAM_FLAGS);
/* FIXME This resides in libgimpmodule/gimpmodule.h which isn't referenced
* from libgimp.h. We can add an include in c-test-header.c, but should we?
*
GIMP_CONST_TEST("GIMP_MODULE_ABI_VERSION", GIMP_MODULE_ABI_VERSION);
*/
GIMP_TEST_RETURN
}

View File

@@ -0,0 +1,81 @@
#!/usr/bin/env python3
# Test for the existence of constants that are part of our public API and
# thus should be available using gobject introspection.
# 1. Defined in libgimpbase
# from libgimpbase/gimpchecks.h
gimp_assert('Gimp.CHECK_SIZE', hasattr(Gimp, "CHECK_SIZE"))
gimp_assert('Gimp.CHECK_SIZE_SM', hasattr(Gimp, "CHECK_SIZE_SM"))
gimp_assert('Gimp.CHECK_DARK', hasattr(Gimp, "CHECK_DARK"))
gimp_assert('Gimp.CHECK_LIGHT', hasattr(Gimp, "CHECK_LIGHT"))
# from libgimpbase/gimplimits.h
gimp_assert('Gimp.MIN_IMAGE_SIZE', hasattr(Gimp, "MIN_IMAGE_SIZE"))
gimp_assert('Gimp.MAX_IMAGE_SIZE', hasattr(Gimp, "MAX_IMAGE_SIZE"))
gimp_assert('Gimp.MIN_RESOLUTION', hasattr(Gimp, "MIN_RESOLUTION"))
gimp_assert('Gimp.MAX_RESOLUTION', hasattr(Gimp, "MAX_RESOLUTION"))
gimp_assert('Gimp.MAX_MEMSIZE', hasattr(Gimp, "MAX_MEMSIZE"))
# from libgimpbase/gimpparamspecs.h
gimp_assert('Gimp.PARAM_NO_VALIDATE', hasattr(Gimp, "PARAM_NO_VALIDATE"))
gimp_assert('Gimp.PARAM_DONT_SERIALIZE', hasattr(Gimp, "PARAM_DONT_SERIALIZE"))
gimp_assert('Gimp.PARAM_FLAG_SHIFT', hasattr(Gimp, "PARAM_FLAG_SHIFT"))
gimp_assert('Gimp.PARAM_STATIC_STRINGS', hasattr(Gimp, "PARAM_STATIC_STRINGS"))
gimp_assert('Gimp.PARAM_READABLE', hasattr(Gimp, "PARAM_READABLE"))
gimp_assert('Gimp.PARAM_WRITABLE', hasattr(Gimp, "PARAM_WRITABLE"))
gimp_assert('Gimp.PARAM_READWRITE', hasattr(Gimp, "PARAM_READWRITE"))
# from libgimpbase/gimpparasite.h
gimp_assert('Gimp.PARASITE_PERSISTENT', hasattr(Gimp, "PARASITE_PERSISTENT"))
gimp_assert('Gimp.PARASITE_UNDOABLE', hasattr(Gimp, "PARASITE_UNDOABLE"))
gimp_assert('Gimp.PARASITE_ATTACH_PARENT', hasattr(Gimp, "PARASITE_ATTACH_PARENT"))
gimp_assert('Gimp.PARASITE_PARENT_PERSISTENT', hasattr(Gimp, "PARASITE_PARENT_PERSISTENT"))
gimp_assert('Gimp.PARASITE_PARENT_UNDOABLE', hasattr(Gimp, "PARASITE_PARENT_UNDOABLE"))
gimp_assert('Gimp.PARASITE_ATTACH_GRANDPARENT', hasattr(Gimp, "PARASITE_ATTACH_GRANDPARENT"))
gimp_assert('Gimp.PARASITE_GRANDPARENT_PERSISTENT', hasattr(Gimp, "PARASITE_GRANDPARENT_PERSISTENT"))
gimp_assert('Gimp.PARASITE_GRANDPARENT_UNDOABLE', hasattr(Gimp, "PARASITE_GRANDPARENT_UNDOABLE"))
# from libgimpbase/gimpparasiteio.h
gimp_assert('Gimp.PIXPIPE_MAXDIM', hasattr(Gimp, "PIXPIPE_MAXDIM"))
# from libgimpbase/gimpversion.h.in
gimp_assert('Gimp.MAJOR_VERSION', hasattr(Gimp, "MAJOR_VERSION"))
gimp_assert('Gimp.MINOR_VERSION', hasattr(Gimp, "MINOR_VERSION"))
gimp_assert('Gimp.MICRO_VERSION', hasattr(Gimp, "MICRO_VERSION"))
gimp_assert('Gimp.VERSION', hasattr(Gimp, "VERSION"))
gimp_assert('Gimp.API_VERSION', hasattr(Gimp, "API_VERSION"))
# 2. Defined in libgimpconfig
# from libgimpconfig/gimpconfig-params.h
gimp_assert('Gimp.CONFIG_PARAM_SERIALIZE', hasattr(Gimp, "CONFIG_PARAM_SERIALIZE"))
gimp_assert('Gimp.CONFIG_PARAM_AGGREGATE', hasattr(Gimp, "CONFIG_PARAM_AGGREGATE"))
gimp_assert('Gimp.CONFIG_PARAM_RESTART', hasattr(Gimp, "CONFIG_PARAM_RESTART"))
gimp_assert('Gimp.CONFIG_PARAM_CONFIRM', hasattr(Gimp, "CONFIG_PARAM_CONFIRM"))
gimp_assert('Gimp.CONFIG_PARAM_DEFAULTS', hasattr(Gimp, "CONFIG_PARAM_DEFAULTS"))
gimp_assert('Gimp.CONFIG_PARAM_IGNORE', hasattr(Gimp, "CONFIG_PARAM_IGNORE"))
gimp_assert('Gimp.CONFIG_PARAM_DONT_COMPARE', hasattr(Gimp, "CONFIG_PARAM_DONT_COMPARE"))
gimp_assert('Gimp.CONFIG_PARAM_FLAG_SHIFT', hasattr(Gimp, "CONFIG_PARAM_FLAG_SHIFT"))
gimp_assert('Gimp.CONFIG_PARAM_FLAGS', hasattr(Gimp, "CONFIG_PARAM_FLAGS"))
# 3. Defined in libgimpmodule
# from libgimpmodule/gimpmodule.h
gimp_assert('Gimp.MODULE_ABI_VERSION', hasattr(Gimp, "MODULE_ABI_VERSION"))