130 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 | 
						|
 | 
						|
#
 | 
						|
# HLSL -> SPIR-V code generation tests
 | 
						|
#
 | 
						|
while read t; do
 | 
						|
  case $t in
 | 
						|
    \#*)
 | 
						|
      # Skip comment lines in the test list file.
 | 
						|
      ;;
 | 
						|
    *)
 | 
						|
      echo Running HLSL-to-SPIR-V $t...
 | 
						|
      b=`basename $t`
 | 
						|
      $EXE -D -e PixelShaderFunction -H -i $t > $TARGETDIR/$b.out
 | 
						|
      diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1
 | 
						|
      ;;
 | 
						|
  esac
 | 
						|
done < test-hlsl-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 2> $TARGETDIR/$b.err
 | 
						|
    diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1
 | 
						|
    diff -b $BASEDIR/$b.err $TARGETDIR/$b.err || 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
 | 
						|
runBulkTest max_vertices_0.geom
 | 
						|
 | 
						|
#
 | 
						|
# 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
 |