test: Install GNOME-style installed-tests metadata

This allows these tests to be discovered and run by
gnome-desktop-test-runner.

Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
Simon McVittie 2022-05-04 13:53:15 +01:00 committed by Sam Lantinga
parent 38ef678990
commit ce502054ad
3 changed files with 25 additions and 2 deletions

View file

@ -429,6 +429,15 @@ foreach(TESTCASE ${NONINTERACTIVE} ${NEEDS_AUDIO} ${NEEDS_DISPLAY})
${TESTCASE} ${TESTCASE}
PROPERTIES ENVIRONMENT "${TESTS_ENVIRONMENT}" PROPERTIES ENVIRONMENT "${TESTS_ENVIRONMENT}"
) )
if(SDL_INSTALL_TESTS)
set(exe ${TESTCASE})
set(installedtestsdir "${CMAKE_INSTALL_FULL_LIBEXECDIR}/installed-tests/SDL2")
configure_file(template.test.in "${exe}.test" @ONLY)
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/${exe}.test"
DESTINATION ${CMAKE_INSTALL_DATADIR}/installed-tests/SDL2
)
endif()
endforeach() endforeach()
if(SDL_INSTALL_TESTS) if(SDL_INSTALL_TESTS)

View file

@ -88,13 +88,24 @@ TARGETS = \
@OPENGLES2_TARGETS@ += testgles2$(EXE) @OPENGLES2_TARGETS@ += testgles2$(EXE)
all: Makefile $(TARGETS) copydatafiles all: Makefile $(TARGETS) copydatafiles generatetestmeta
installedtestsdir = $(libexecdir)/installed-tests/SDL2 installedtestsdir = $(libexecdir)/installed-tests/SDL2
installedtestsmetadir = $(datadir)/installed-tests/SDL2
generatetestmeta:
rm -f *.test
set -e; for exe in $(noninteractive) $(needs_audio) $(needs_display); do \
sed \
-e 's#@installedtestsdir@#$(installedtestsdir)#g' \
-e "s#@exe@#$$exe#g" \
< $(srcdir)/template.test.in > $$exe.test; \
done
install: all install: all
install -D -t $(DESTDIR)$(installedtestsdir) $(TARGETS) install -D -t $(DESTDIR)$(installedtestsdir) $(TARGETS)
install -m644 -D -t $(DESTDIR)$(installedtestsdir) $(DATA) install -m644 -D -t $(DESTDIR)$(installedtestsdir) $(DATA)
install -m644 -D -t $(DESTDIR)$(installedtestsmetadir) *.test
Makefile: $(srcdir)/Makefile.in Makefile: $(srcdir)/Makefile.in
$(SHELL) config.status $@ $(SHELL) config.status $@
@ -362,7 +373,7 @@ testmouse$(EXE): $(srcdir)/testmouse.c
clean: clean:
rm -f $(TARGETS) rm -f $(TARGETS) *.test
distclean: clean distclean: clean
rm -f Makefile rm -f Makefile

3
test/template.test.in Normal file
View file

@ -0,0 +1,3 @@
[Test]
Type=session
Exec=@installedtestsdir@/@exe@