From 75e7a3a8d255a4b925e24939e771af3e7cdf15dc Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Wed, 31 Aug 2016 19:59:02 +0300 Subject: autotools/: Allow check target to be invoked w/o the need to issue a build. We need to have the test list generated before running the check target. Migrated igt_command_line.sh to tests/ from lib/tests/, which allows to building the tests and execute the script. This would allow cleaning followed by a make check. Also assembler/ directory needs also to be adjusted in order for this to work. Kept the possibility to invoke tests/igt_command_line.sh to determine which test is failing. Signed-off-by: Marius Vlad Url: https://patchwork.freedesktop.org/series/6539/ Reviewed-By: Chris Wilson --- assembler/Makefile.am | 108 +++++++++++++++++++++++++++++++++++++++++- assembler/test/Makefile.am | 93 ------------------------------------ assembler/test/run-test.sh | 2 +- lib/tests/Makefile.am | 2 - lib/tests/Makefile.sources | 4 -- lib/tests/igt_command_line.sh | 84 -------------------------------- tests/Makefile.am | 2 +- tests/Makefile.sources | 6 +++ tests/igt_command_line.sh | 90 +++++++++++++++++++++++++++++++++++ 9 files changed, 204 insertions(+), 187 deletions(-) delete mode 100755 lib/tests/igt_command_line.sh create mode 100755 tests/igt_command_line.sh diff --git a/assembler/Makefile.am b/assembler/Makefile.am index fb309ac9..bed6c07c 100644 --- a/assembler/Makefile.am +++ b/assembler/Makefile.am @@ -47,8 +47,112 @@ intel_gen4disasm_LDADD = libbrw.la pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = intel-gen4asm.pc -CLEANFILES = $(BUILT_SOURCES) +check_SCRIPTS = test/run-test.sh + +TESTS = \ + test/mov \ + test/frc \ + test/rndd \ + test/rndu \ + test/rnde \ + test/rnde-intsrc \ + test/rndz \ + test/lzd \ + test/not \ + test/immediate \ + $(NULL) + +# Tests that are expected to fail because they contain some inccorect code. +XFAIL_TESTS = + +# Those tests were already failing when the assembler was imported from +# the intel-gen4asm git repository: +# http://cgit.freedesktop.org/xorg/app/intel-gen4asm/ +# We disable them "for now" as a workaround to be able to release i-g-t +disabled_tests = \ + test/declare \ + test/jmpi \ + test/if \ + test/iff \ + test/while \ + test/else \ + test/break \ + test/cont \ + test/halt \ + test/wait \ + test/endif \ + $(NULL) + +disabled_xfail_tests = \ + test/rnde-intsrc \ + $(NULL) + +TESTDATA = \ + test/mov.expected \ + test/mov.g4a \ + test/frc.expected \ + test/frc.g4a \ + test/rndd.expected \ + test/rndd.g4a \ + test/rndu.expected \ + test/rndu.g4a \ + test/rnde.expected \ + test/rnde.g4a \ + test/rnde-intsrc.expected \ + test/rnde-intsrc.g4a \ + test/rndz.expected \ + test/rndz.g4a \ + test/lzd.expected \ + test/lzd.g4a \ + test/not.expected \ + test/not.g4a \ + test/jmpi.expected \ + test/jmpi.g4a \ + test/if.expected \ + test/if.g4a \ + test/iff.expected \ + test/iff.g4a \ + test/while.expected \ + test/while.g4a \ + test/else.expected \ + test/else.g4a \ + test/break.expected \ + test/break.g4a \ + test/cont.expected \ + test/cont.g4a \ + test/halt.expected \ + test/halt.g4a \ + test/wait.expected \ + test/wait.g4a \ + test/endif.expected \ + test/endif.g4a \ + test/declare.expected \ + test/declare.g4a \ + test/immediate.g4a \ + test/immediate.expected \ + $(NULL) + +test_EXTRA_DIST = \ + ${TESTDATA} \ + test/run-test.sh \ + $(NULL) + +$(TESTS): test/run-test.sh + sed "s|TEST|$@|g" ${srcdir}/test/run-test.sh > $@ + chmod +x $@ + +test_CLEANFILES = \ + test/*.out \ + ${TESTS} \ + $(NULL) + +CLEANFILES = $(BUILT_SOURCES) \ + $(test_CLEANFILES) \ + $(NULL) + EXTRA_DIST = \ README \ TODO \ - intel-gen4asm.pc.in + intel-gen4asm.pc.in \ + $(test_EXTRA_DIST) \ + $(NULL) diff --git a/assembler/test/Makefile.am b/assembler/test/Makefile.am index f1131198..e69de29b 100644 --- a/assembler/test/Makefile.am +++ b/assembler/test/Makefile.am @@ -1,93 +0,0 @@ -check_SCRIPTS = run-test.sh - -TESTS_ENVIRONMENT = top_builddir=${top_builddir} -TESTS = \ - mov \ - frc \ - rndd \ - rndu \ - rnde \ - rnde-intsrc \ - rndz \ - lzd \ - not \ - immediate - -# Tests that are expected to fail because they contain some inccorect code. -XFAIL_TESTS = - -# Those tests were already failing when the assembler was imported from -# the intel-gen4asm git repository: -# http://cgit.freedesktop.org/xorg/app/intel-gen4asm/ -# We disable them "for now" as a workaround to be able to release i-g-t -disabled_tests = \ - declare \ - jmpi \ - if \ - iff \ - while \ - else \ - break \ - cont \ - halt \ - wait \ - endif - -disabled_xfail_tests = \ - rnde-intsrc - -TESTDATA = \ - mov.expected \ - mov.g4a \ - frc.expected \ - frc.g4a \ - rndd.expected \ - rndd.g4a \ - rndu.expected \ - rndu.g4a \ - rnde.expected \ - rnde.g4a \ - rnde-intsrc.expected \ - rnde-intsrc.g4a \ - rndz.expected \ - rndz.g4a \ - lzd.expected \ - lzd.g4a \ - not.expected \ - not.g4a \ - jmpi.expected \ - jmpi.g4a \ - if.expected \ - if.g4a \ - iff.expected \ - iff.g4a \ - while.expected \ - while.g4a \ - else.expected \ - else.g4a \ - break.expected \ - break.g4a \ - cont.expected \ - cont.g4a \ - halt.expected \ - halt.g4a \ - wait.expected \ - wait.g4a \ - endif.expected \ - endif.g4a \ - declare.expected \ - declare.g4a \ - immediate.g4a \ - immediate.expected - -EXTRA_DIST = \ - ${TESTDATA} \ - run-test.sh - -$(TESTS): run-test.sh - sed "s|TEST|$@|g" ${srcdir}/run-test.sh > $@ - chmod +x $@ - -CLEANFILES = \ - *.out \ - ${TESTS} diff --git a/assembler/test/run-test.sh b/assembler/test/run-test.sh index 27c5c2d3..20a408c6 100644 --- a/assembler/test/run-test.sh +++ b/assembler/test/run-test.sh @@ -3,7 +3,7 @@ SRCDIR=${srcdir-`pwd`} BUILDDIR=${top_builddir-`pwd`} -${BUILDDIR}/assembler/intel-gen4asm -o TEST.out $SRCDIR/TEST.g4a +${BUILDDIR}/intel-gen4asm -o TEST.out $SRCDIR/TEST.g4a if cmp TEST.out ${SRCDIR}/TEST.expected 2> /dev/null; then : ; else echo "Output comparison for TEST" diff -u ${SRCDIR}/TEST.expected TEST.out diff --git a/lib/tests/Makefile.am b/lib/tests/Makefile.am index c2fa2ebd..5d14194a 100644 --- a/lib/tests/Makefile.am +++ b/lib/tests/Makefile.am @@ -7,8 +7,6 @@ AM_TESTS_ENVIRONMENT = \ top_builddir=$(top_builddir) \ top_srcdir=$(top_srcdir) -EXTRA_DIST = $(check_SCRIPTS) - AM_CFLAGS = $(DRM_CFLAGS) $(CWARNFLAGS) $(DEBUG_CFLAGS) \ -I$(srcdir)/../.. \ -I$(srcdir)/.. \ diff --git a/lib/tests/Makefile.sources b/lib/tests/Makefile.sources index 5d8c7851..3fcfe141 100644 --- a/lib/tests/Makefile.sources +++ b/lib/tests/Makefile.sources @@ -15,10 +15,6 @@ check_prog_list = \ igt_exit_handler \ $(NULL) -check_script_list = \ - igt_command_line.sh \ - $(NULL) - TESTS = \ $(check_prog_list) \ $(check_script_list) \ diff --git a/lib/tests/igt_command_line.sh b/lib/tests/igt_command_line.sh deleted file mode 100755 index 35f580f0..00000000 --- a/lib/tests/igt_command_line.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh -# -# Copyright © 2014 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -# -# Check that command line handling works consistently across all tests -# - -if [ -z "$top_builddir" ]; then - top_builddir="$(dirname $0)/../.." -fi - -TESTLIST=`cat $top_builddir/tests/test-list.txt` -if [ $? -ne 0 ]; then - echo "Error: Could not read test lists" - exit 99 -fi - -fail () { - echo "FAIL: $1" - exit 1 -} - -for test in $TESTLIST; do - if [ "$test" = "TESTLIST" -o "$test" = "END" ]; then - continue - fi - - if [ -x $top_builddir/tests/$test ]; then - test=$top_builddir/tests/$test - else - # if the test is a script, it will be in $srcdir - test=$top_srcdir/tests/$test - fi - - echo "$test:" - - # check invalid option handling - echo " Checking invalid option handling..." - ./$test --invalid-option 2> /dev/null && fail $test - - # check valid options succeed - echo " Checking valid option handling..." - ./$test --help > /dev/null || fail $test - - # check --list-subtests works correctly - echo " Checking subtest enumeration..." - LIST=`./$test --list-subtests` - RET=$? - if [ $RET -ne 0 -a $RET -ne 79 ]; then - fail $test - fi - - if [ $RET -eq 79 -a -n "$LIST" ]; then - fail $test - fi - - if [ $RET -eq 0 -a -z "$LIST" ]; then - fail $test - fi - - # check invalid subtest handling - echo " Checking invalid subtest handling..." - ./$test --run-subtest invalid-subtest > /dev/null 2>&1 && fail $test -done diff --git a/tests/Makefile.am b/tests/Makefile.am index 0137597a..d0e758fe 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -50,7 +50,7 @@ all-local: .gitignore pkgdata_DATA = test-list.txt test-list-full.txt EXTRA_PROGRAMS = $(HANG) -EXTRA_DIST = $(common_files) +EXTRA_DIST = $(common_files) $(check_SCRIPTS) CLEANFILES = $(EXTRA_PROGRAMS) test-list.txt test-list-full.txt .gitignore diff --git a/tests/Makefile.sources b/tests/Makefile.sources index 6cdfea3b..7d2b7289 100644 --- a/tests/Makefile.sources +++ b/tests/Makefile.sources @@ -304,6 +304,12 @@ testdisplay_SOURCES = \ TESTS_progs += testdisplay +check_SCRIPTS = igt_command_line.sh \ + $(NULL) + +TESTS = $(check_SCRIPTS) \ + $(NULL) + common_files = \ eviction_common.c \ $(NULL) diff --git a/tests/igt_command_line.sh b/tests/igt_command_line.sh new file mode 100755 index 00000000..a20e44cf --- /dev/null +++ b/tests/igt_command_line.sh @@ -0,0 +1,90 @@ +#!/bin/sh +# +# Copyright © 2014 Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +# +# Check that command line handling works consistently across all tests +# + +if [ -z "$top_builddir" ]; then + top_builddir="$(dirname $0)" +fi + +# allow to run this script from top directory +TESTLIST=`cat $top_builddir/test-list.txt` +if [ $? -ne 0 ]; then + # distcheck requires this hack + TESTLIST=$(cat test-list.txt) + if [ $? -ne 0 ]; then + echo "Error: Could not read test lists" + exit 99 + fi +fi + +fail () { + echo "FAIL: $1" + exit 1 +} + +for test in $TESTLIST; do + if [ "$test" = "TESTLIST" -o "$test" = "END" ]; then + continue + fi + + # top_builddir is empty for distcheck + test=$top_builddir/$test + + # distcheck requires this hack + if [ ! -x "$test" ]; then + continue + fi + + echo "$test:" + + # check invalid option handling + echo " Checking invalid option handling..." + ./$test --invalid-option 2> /dev/null && fail $test + + # check valid options succeed + echo " Checking valid option handling..." + ./$test --help > /dev/null || fail $test + + # check --list-subtests works correctly + echo " Checking subtest enumeration..." + LIST=`./$test --list-subtests` + RET=$? + if [ $RET -ne 0 -a $RET -ne 79 ]; then + fail $test + fi + + if [ $RET -eq 79 -a -n "$LIST" ]; then + fail $test + fi + + if [ $RET -eq 0 -a -z "$LIST" ]; then + fail $test + fi + + # check invalid subtest handling + echo " Checking invalid subtest handling..." + ./$test --run-subtest invalid-subtest > /dev/null 2>&1 && fail $test +done -- cgit v1.2.3