2f63c39fa6
Add a basic framework for tests of Mutter handling of client behavior; mutter-test-runner is a Mutter-based compositor that forks off instances of mutter-test-client and sends commands to them based on scripts. The scripts also include assertions. mutter-test-runner always runs in nested-Wayland mode since the separate copy of Xwayland is helpful in giving a reliably clean X server to test against. Initially the commands and assertions are designed to test the stacking behavior of Mutter, but the framework should be extensible to test other parts of client behavior like focus. The tests are installed according to: https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests if --enable-installed-tests is passed to configure. You can run them uninstalled with: cd src && make run-tests (Not in 'make check' to avoid breaking 'make distcheck' if Mutter can't be run nested.) https://bugzilla.gnome.org/show_bug.cgi?id=736505
47 lines
1.4 KiB
Plaintext
47 lines
1.4 KiB
Plaintext
# A framework for running scripted tests
|
|
|
|
if BUILDOPT_INSTALL_TESTS
|
|
stackingdir = $(pkgdatadir)/tests/stacking
|
|
dist_stacking_DATA = \
|
|
tests/stacking/basic-x11.metatest \
|
|
tests/stacking/basic-wayland.metatest \
|
|
tests/stacking/mixed-windows.metatest \
|
|
tests/stacking/override-redirect.metatest
|
|
|
|
mutter-all.test: tests/mutter-all.test.in
|
|
$(AM_V_GEN) sed -e "s|@libexecdir[@]|$(libexecdir)|g" $< > $@.tmp && mv $@.tmp $@
|
|
|
|
installedtestsdir = $(datadir)/installed-tests/mutter
|
|
installedtests_DATA = mutter-all.test
|
|
|
|
installedtestsbindir = $(libexecdir)/installed-tests/mutter
|
|
installedtestsbin_PROGRAMS = mutter-test-client mutter-test-runner
|
|
else
|
|
noinst_PROGRAMS += mutter-test-client mutter-test-runner
|
|
endif
|
|
|
|
EXTRA_DIST += tests/mutter-all.test.in
|
|
|
|
mutter_test_client_SOURCES = tests/test-client.c
|
|
mutter_test_client_LDADD = $(MUTTER_LIBS) libmutter.la
|
|
|
|
mutter_test_runner_SOURCES = tests/test-runner.c
|
|
mutter_test_runner_LDADD = $(MUTTER_LIBS) libmutter.la
|
|
|
|
.PHONY: run-tests
|
|
|
|
run-tests: mutter-test-client mutter-test-runner
|
|
./mutter-test-runner $(dist_stacking_DATA)
|
|
|
|
# Some random test programs for bits of the code
|
|
|
|
testboxes_SOURCES = core/testboxes.c
|
|
testgradient_SOURCES = ui/testgradient.c
|
|
testasyncgetprop_SOURCES = x11/testasyncgetprop.c
|
|
|
|
noinst_PROGRAMS+=testboxes testgradient testasyncgetprop
|
|
|
|
testboxes_LDADD = $(MUTTER_LIBS) libmutter.la
|
|
testgradient_LDADD = $(MUTTER_LIBS) libmutter.la
|
|
testasyncgetprop_LDADD = $(MUTTER_LIBS) libmutter.la
|