Configure with --enable-tests
(Autotools) or -DSDL3IMAGE_TESTS
(CMake).
Run build-time tests in the usual way, for example make check
(Autotools), or ctest
or make test
(CMake).
The tests can be installed alongside the library, allowing them to be run on a target platform as a somewhat realistic equivalent of how a game would behave.
Configure with --enable-tests --enable-installed-tests
(Autotools) or
-DSDL3IMAGE_TESTS -DSDL3IMAGE_TESTS_INSTALL
(CMake).
The tests and their required resource files are installed into
${libexecdir}/installed-tests/SDL3_image
. When run, they will write
to the current working directory: create a temporary directory and run
them from there if necessary.
On platforms where SDL_GetBasePath()
returns the directory containing
the executable, the whole installed-tests/SDL3_image
directory can be
copied to any location and testimage
can be run from there.
Metadata describing the tests is installed in
${datadir}/installed-tests/SDL3_image
. This can be used to run the
tests with ginsttest-runner
from
gnome-desktop-testing,
or any implementation of the same
specification.
By default, for each format that was configured at build-time, the test asserts that the format can be loaded or saved as appropriate. Formats that were not enabled at build-time are not tested.
This automatic behaviour is not always desirable: for example, if there was a build-system regression that accidentally disabled WEBP support, or if the required WEBP library was missing or not detected at build time, then the test would would report WEBP as unsupported but would not fail.
To check that the intended formats are actually supported, distributors can set some environment variables before running the tests:
-
For each format where loading can be supported, if
SDL_IMAGE_TEST_REQUIRE_LOAD_
+ format is set to 1, the test will fail unlessSDL3_image
can load format. (For example,export SDL_IMAGE_TEST_REQUIRE_LOAD_WEBP=1
.) -
For each format where saving can be supported (
JPG
orPNG
), ifSDL_IMAGE_TEST_REQUIRE_SAVE_
+ format is set to 1, the test will fail unlessSDL3_image
can load format. (For example,export SDL_IMAGE_TEST_REQUIRE_SAVE_JPG=1
.)
Setting these variables to 0 causes them to be ignored, returning to the automatic behaviour where the formats that were enabled at build-time will be tested.
These variables are not set automatically for supported formats by the Autotools or CMake build system, because that would defeat their purpose of detecting build-system bugs.
The abbreviation used for format is the same as in the supported[]
table in IMG.c
, for example JPG
or TIF
. JPEG
and TIFF
are
ignored.
On operating systems where environment variables are case-sensitive, format must be in upper-case.