summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarl Worth <[email protected]>2014-07-03 13:25:47 -0700
committerIan Romanick <[email protected]>2014-08-07 16:08:29 -0700
commit318369acebdf6e7c21c0a2b015c648e8e9acbc81 (patch)
tree2be3542c35b5d40d243186a70ebd153d5fa5b281
parent7ba74c65a77afbfb2da8515fcae51c19618c7b18 (diff)
glsl/glcpp: Integrate recent glcpp-test-cr-lf test into "make check"
Beyond just listing this in the TESTS variable in Makefile.am, only minor changes were needed to make this work. The primary issue is that the build system runs the test script from a different directory than the script itself. So we have to use the $srcdir variable to find the test input files. Using $srcdir in this way also ensures that this test works when using an out-of-tree build. Reviewed-by: Ian Romanick <[email protected]>
-rw-r--r--src/glsl/.gitignore4
-rw-r--r--src/glsl/Makefile.am1
-rw-r--r--src/glsl/glcpp/tests/.gitignore1
-rwxr-xr-xsrc/glsl/glcpp/tests/glcpp-test-cr-lf49
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"