forked from AuroraMiddleware/gtk
9ec7d6b68e
We used to run Xvfb with 800x600, which turns out to be too small for some of our reftests. Bump it to 1024x768.
93 lines
3.6 KiB
Makefile
93 lines
3.6 KiB
Makefile
# GTK+ - The GIMP Toolkit
|
|
|
|
GTESTER = gtester -k # in $PATH for non-GLIB packages
|
|
GTESTER_REPORT = gtester-report # in $PATH for non-GLIB packages
|
|
|
|
# initialize variables for unconditional += appending
|
|
EXTRA_DIST =
|
|
TEST_PROGS =
|
|
|
|
### testing rules
|
|
|
|
# Xvfb based test rules
|
|
XVFB = Xvfb -ac -noreset -screen 0 1024x768x16
|
|
XIDS = 101 102 103 104 105 106 107 197 199 211 223 227 293 307 308 309 310 311 \
|
|
491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 \
|
|
991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 \
|
|
1008 1009 4703 4721 4723 4729 4733 4751 9973 9974 9975 9976 9977 9978 9979 \
|
|
9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 \
|
|
9995 9996 9997 9998 9999
|
|
|
|
if USE_X11
|
|
SKIP_GDKTARGET = \
|
|
false
|
|
else
|
|
SKIP_GDKTARGET = \
|
|
echo "Gtk+Tests:INFO: Skipping GUI tests for non-X11 target."
|
|
endif
|
|
|
|
XVFB_START = \
|
|
${XVFB} -help 2>/dev/null 1>&2 \
|
|
&& XID=`for id in $(XIDS) ; do test -e /tmp/.X$$id-lock || { echo $$id; exit 0; }; done; exit 1` \
|
|
&& { ${XVFB} :$$XID -nolisten tcp -auth /dev/null >/dev/null 2>&1 & \
|
|
trap "kill -15 $$! " 0 HUP INT QUIT TRAP USR1 PIPE TERM ; } \
|
|
|| { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } \
|
|
&& DISPLAY=:$$XID && export DISPLAY
|
|
# call as: $(XVFB_START) && someprogram
|
|
|
|
# test: run all tests in cwd and subdirs
|
|
test: test-cwd test-recurse
|
|
# test-cwd: run tests in cwd
|
|
test-cwd: ${TEST_PROGS}
|
|
@$(SKIP_GDKTARGET) || test -z "${TEST_PROGS}" || { \
|
|
$(XVFB_START) && { set -e; $(TESTS_ENVIRONMENT) ${GTESTER} --verbose ${TEST_PROGS}; }; \
|
|
}
|
|
# test-recurse: run tests in subdirs
|
|
test-recurse:
|
|
@ for subdir in $(SUBDIRS) ; do \
|
|
test "$$subdir" = "." -o "$$subdir" = "po" -o "$$subdir" = "po-properties" || \
|
|
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) test ) || exit $? ; \
|
|
done
|
|
# test-report: run tests in subdirs and generate report
|
|
# perf-report: run tests in subdirs with -m perf and generate report
|
|
# full-report: like test-report: with -m perf and -m slow
|
|
test-report perf-report full-report: ${TEST_PROGS}
|
|
@ ignore_logdir=true ; \
|
|
if test -z "$$GTESTER_LOGDIR" ; then \
|
|
GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
|
|
ignore_logdir=false ; \
|
|
fi ; \
|
|
for subdir in $(SUBDIRS) ; do \
|
|
test "$$subdir" = "." -o "$$subdir" = "po" -o "$$subdir" = "po-properties" || \
|
|
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
|
|
done ; \
|
|
$(SKIP_GDKTARGET) || test -z "${TEST_PROGS}" || { \
|
|
case $@ in \
|
|
test-report) test_options="-k";; \
|
|
perf-report) test_options="-k -m=perf";; \
|
|
full-report) test_options="-k -m=perf -m=slow";; \
|
|
esac ; \
|
|
$(XVFB_START) && { \
|
|
set -e; \
|
|
if test -z "$$GTESTER_LOGDIR" ; then \
|
|
${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
|
|
elif test -n "${TEST_PROGS}" ; then \
|
|
${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
|
|
fi ; \
|
|
}; \
|
|
}; \
|
|
$$ignore_logdir || { \
|
|
echo '<?xml version="1.0"?>' > $@.xml ; \
|
|
echo '<report-collection>' >> $@.xml ; \
|
|
for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
|
|
sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
|
|
done ; \
|
|
echo >> $@.xml ; \
|
|
echo '</report-collection>' >> $@.xml ; \
|
|
rm -rf "$$GTESTER_LOGDIR"/ ; \
|
|
${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
|
|
}
|
|
.PHONY: test test-cwd test-recurse test-report perf-report full-report
|
|
# run make test-cwd as part of make check
|
|
check-local: test-cwd
|