diff options
-rw-r--r-- | src/glsl/.gitignore | 4 | ||||
-rw-r--r-- | src/glsl/Makefile.am | 1 | ||||
-rw-r--r-- | src/glsl/glcpp/tests/.gitignore | 1 | ||||
-rwxr-xr-x | src/glsl/glcpp/tests/glcpp-test-cr-lf | 49 |
4 files changed, 42 insertions, 13 deletions
diff --git a/src/glsl/.gitignore b/src/glsl/.gitignore index 43720f60b5d..dda423f83db 100644 --- a/src/glsl/.gitignore +++ b/src/glsl/.gitignore @@ -4,3 +4,7 @@ glsl_parser.cpp glsl_parser.h glsl_parser.output glsl_test +subtest-cr/ +subtest-lf/ +subtest-cr-lf/ +subtest-lf-cr/ diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am index 2a20d119328..0ccc81d752d 100644 --- a/src/glsl/Makefile.am +++ b/src/glsl/Makefile.am @@ -33,6 +33,7 @@ AM_CXXFLAGS = $(VISIBILITY_CXXFLAGS) include Makefile.sources TESTS = glcpp/tests/glcpp-test \ + glcpp/tests/glcpp-test-cr-lf \ tests/general-ir-test \ tests/optimization-test \ tests/sampler-types-test \ diff --git a/src/glsl/glcpp/tests/.gitignore b/src/glsl/glcpp/tests/.gitignore index f18a9bb4b3a..3802c850a3e 100644 --- a/src/glsl/glcpp/tests/.gitignore +++ b/src/glsl/glcpp/tests/.gitignore @@ -1,3 +1,4 @@ subtest-cr/ +subtest-lf/ subtest-cr-lf/ subtest-lf-cr/ diff --git a/src/glsl/glcpp/tests/glcpp-test-cr-lf b/src/glsl/glcpp/tests/glcpp-test-cr-lf index 708fce55aac..edaa29d19cb 100755 --- a/src/glsl/glcpp/tests/glcpp-test-cr-lf +++ b/src/glsl/glcpp/tests/glcpp-test-cr-lf @@ -1,5 +1,18 @@ #!/bin/sh +# The build system runs this test from a different working directory, and may +# be in a build directory entirely separate from the source. So if the +# "srcdir" variable is set, we must use it to locate the test files and the +# glcpp-test script. + +if [ ! -z "$srcdir" ]; then + testdir="$srcdir/glcpp/tests" + glcpp_test="$srcdir/glcpp/tests/glcpp-test" +else + testdir=. + glcpp_test=./glcpp-test +fi + total=0 pass=0 @@ -69,43 +82,53 @@ done # All tests depend on the .out files being present. So first do a # normal run of the test suite, (silently) just to create the .out # files as a side effect. -./glcpp-test >/dev/null 2>&1 +rm -rf ./subtest-lf +mkdir subtest-lf +for file in "$testdir"/*.c; do + base=$(basename "$file") + cp "$file" subtest-lf +done + +${glcpp_test} --testdir=subtest-lf >/dev/null 2>&1 echo "===== Testing with \\\\r line terminators (old Mac format) =====" # Prepare test files with '\r' instead of '\n' rm -rf ./subtest-cr mkdir subtest-cr -for file in *.c; do - tr "\n" "\r" < "$file" > subtest-cr/"$file" - cp "$file".out subtest-cr/"$file".expected +for file in "$testdir"/*.c; do + base=$(basename "$file") + tr "\n" "\r" < "$file" > subtest-cr/"$base" + cp subtest-lf/"$base".out subtest-cr/"$base".expected done -run_test "./glcpp-test --testdir=subtest-cr" +run_test "${glcpp_test} --testdir=subtest-cr" echo "===== Testing with \\\\r\\\\n line terminators (DOS format) =====" # Prepare test files with '\r\n' instead of '\n' rm -rf ./subtest-cr-lf mkdir subtest-cr-lf -for file in *.c; do - sed -e 's/$/\r/' < "$file" > subtest-cr-lf/"$file" - cp "$file".out subtest-cr-lf/"$file".expected +for file in "$testdir"/*.c; do + base=$(basename "$file") + sed -e 's/$/\r/' < "$file" > subtest-cr-lf/"$base" + cp subtest-lf/"$base".out subtest-cr-lf/"$base".expected done -run_test "./glcpp-test --testdir=subtest-cr-lf" +run_test "${glcpp_test} --testdir=subtest-cr-lf" echo "===== Testing with \\\\n\\\\r (bizarre, but allowed by GLSL spec.) =====" # Prepare test files with '\n\r' instead of '\n' rm -rf ./subtest-lf-cr mkdir subtest-lf-cr -for file in *.c; do - tr "\n" "\r" < "$file" | sed -e 's/\r/\n\r/g' > subtest-lf-cr/"$file" - cp "$file".out subtest-lf-cr/"$file".expected +for file in "$testdir"/*.c; do + base=$(basename "$file") + tr "\n" "\r" < "$file" | sed -e 's/\r/\n\r/g' > subtest-lf-cr/"$base" + cp subtest-lf/"$base".out subtest-lf-cr/"$base".expected done -run_test "./glcpp-test --testdir=subtest-lf-cr" +run_test "${glcpp_test} --testdir=subtest-lf-cr" echo "" echo "$pass/$total tests returned correct results" |