#!/usr/bin/env bash TARGETDIR=localResults BASEDIR=baseResults EXE=../build/install/bin/glslangValidator HASERROR=0 mkdir -p localResults # # configuration file tests # echo running configuration file test $EXE -c > $TARGETDIR/test.conf diff -b $BASEDIR/test.conf $TARGETDIR/test.conf || HASERROR=1 $EXE -i -l $TARGETDIR/test.conf specExamples.vert > $TARGETDIR/specExamples.vert.out diff -b $BASEDIR/specExamples.vert.out $TARGETDIR || HASERROR=1 $EXE 100Limits.vert 100.conf > $TARGETDIR/100LimitsConf.vert.out diff -b $BASEDIR/100LimitsConf.vert.out $TARGETDIR/100LimitsConf.vert.out || HASERROR=1 # # isolated compilation tests # while read t; do echo Running $t... b=`basename $t` $EXE -i -l $t > $TARGETDIR/$b.out diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1 done < testlist if [ -a localtestlist ] then while read t; do echo Running $t... b=`basename $t` $EXE -i -l $t > $TARGETDIR/$b.out diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1 done < localtestlist fi # # SPIR-V code generation tests # while read t; do case $t in \#*) # Skip comment lines in the test list file. ;; *) echo Running SPIR-V $t... b=`basename $t` $EXE -H $t > $TARGETDIR/$b.out diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1 ;; esac done < test-spirv-list rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv # # Preprocessor tests # while read t; do echo Running Preprocessor $t... b=`basename $t` $EXE -E $t > $TARGETDIR/$b.out diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1 done < test-preprocessor-list # # grouped shaders for bulk (faster) tests # function runBulkTest { echo Running $*... $EXE -i -l -t $* > $TARGETDIR/$1.out diff -b $BASEDIR/$1.out $TARGETDIR/$1.out || HASERROR=1 } runBulkTest mains1.frag mains2.frag noMain1.geom noMain2.geom runBulkTest noMain.vert mains.frag runBulkTest link1.frag link2.frag link3.frag runBulkTest recurse1.vert recurse1.frag recurse2.frag runBulkTest 300link.frag runBulkTest 300link2.frag runBulkTest 300link3.frag runBulkTest empty.frag empty2.frag empty3.frag runBulkTest 150.tesc 150.tese 400.tesc 400.tese 410.tesc 420.tesc 420.tese # # reflection tests # echo Running reflection... $EXE -l -q reflection.vert > $TARGETDIR/reflection.vert.out diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1 # # multi-threaded test # echo Comparing single thread to multithread for all tests in current directory... $EXE -i *.vert *.geom *.frag *.tes* *.comp > singleThread.out $EXE -i *.vert *.geom *.frag *.tes* *.comp -t > multiThread.out diff singleThread.out multiThread.out || HASERROR=1 if [ $HASERROR -eq 0 ] then echo Tests Succeeded. else echo Tests Failed. fi exit $HASERROR