1
0
Fork 0
mutter-performance-source/tests/conform/test-launcher.sh
Emmanuele Bassi 335b650d0b [tests] Create a real file for each test unit
Currently, the conformance test suite creates symbolic links pointing
to a wrapper script that just parses the name used to invoke it and
calls the gtester with the correct path.

Unfortunately, this presents two issues:

        - it does not really work on file systems that do not
          support symbolic links
        - it leaves behind the symbolic links, which cannot
          be automatically cleaning by 'make clean'

Both can be solved by creating a small script that invokes the wrapper
one with the test unit path.

The Makefile will use test-conform to extract the unit test paths
and generate a list that will be iterated over to create the
executable name (using the "test-name" convention also used by the
interactive tests, instead of "test_name"); the executable is then
just a simple shell script that invokes the wrapper script passing
the unit test path on the command line. The wrapper script will
use the first argument to work correctly, so it could be simply
executed like:

        ./test-wrapper.sh /path/to/unit_test

Which is another improvement over the current implementation, where
the wrapper script does not work when invoked directly.
2008-12-17 14:08:08 +00:00

24 lines
677 B
Bash
Executable file

#!/bin/sh
UNIT_TEST_PATH=$1
test -z ${UNIT_TEST_PATH} && {
echo "Usage: $0 /path/to/unit_test"
exit 1
}
UNIT_TEST=`basename ${UNIT_TEST_PATH}`
echo "Running: gtester -p ${UNIT_TEST_PATH} ./test-conformance"
echo ""
gtester -p ${UNIT_TEST_PATH} ./test-conformance
echo ""
echo "NOTE: For debugging purposes, you can run this single test as follows:"
echo "$ libtool --mode=execute \\"
echo " gdb --eval-command=\"b ${UNIT_TEST}\" \\"
echo " --args ./test-conformance -p ${UNIT_TEST_PATH}"
echo "or:"
echo "$ env G_SLICE=always-malloc \\"
echo " libtool --mode=execute \\"
echo " valgrind ./test-conformance -p ${UNIT_TEST_PATH}"