From ce502054ad03cfea3851f09ed227fdf0d619f39b Mon Sep 17 00:00:00 2001
From: Simon McVittie <[EMAIL REDACTED]>
Date: Wed, 4 May 2022 13:53:15 +0100
Subject: [PATCH] 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>
---
test/CMakeLists.txt | 9 +++++++++
test/Makefile.in | 15 +++++++++++++--
test/template.test.in | 3 +++
3 files changed, 25 insertions(+), 2 deletions(-)
create mode 100644 test/template.test.in
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 0a7b8a12c43..e81ead76ff5 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -429,6 +429,15 @@ foreach(TESTCASE ${NONINTERACTIVE} ${NEEDS_AUDIO} ${NEEDS_DISPLAY})
${TESTCASE}
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()
if(SDL_INSTALL_TESTS)
diff --git a/test/Makefile.in b/test/Makefile.in
index d14e0735800..8fce76e61d8 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -88,13 +88,24 @@ TARGETS = \
@OPENGLES2_TARGETS@ += testgles2$(EXE)
-all: Makefile $(TARGETS) copydatafiles
+all: Makefile $(TARGETS) copydatafiles generatetestmeta
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 -D -t $(DESTDIR)$(installedtestsdir) $(TARGETS)
install -m644 -D -t $(DESTDIR)$(installedtestsdir) $(DATA)
+ install -m644 -D -t $(DESTDIR)$(installedtestsmetadir) *.test
Makefile: $(srcdir)/Makefile.in
$(SHELL) config.status $@
@@ -362,7 +373,7 @@ testmouse$(EXE): $(srcdir)/testmouse.c
clean:
- rm -f $(TARGETS)
+ rm -f $(TARGETS) *.test
distclean: clean
rm -f Makefile
diff --git a/test/template.test.in b/test/template.test.in
new file mode 100644
index 00000000000..e1ac063fd8f
--- /dev/null
+++ b/test/template.test.in
@@ -0,0 +1,3 @@
+[Test]
+Type=session
+Exec=@installedtestsdir@/@exe@