From 167201430d79ff8e2ea8b94b112d849bedbde703 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 15 Oct 2019 15:21:21 -0400 Subject: [PATCH 1/5] Make runtests configurable. This CL allows setting the location of glslangValidator and spirv-remap when calling the runtests script. A test target is added to CMake to execute runtests and sets the location to the build folder for the two applications. --- CMakeLists.txt | 18 ++++++++++++++++++ Test/runtests | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index da25533e..c3308e8f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,3 +180,21 @@ if(ENABLE_HLSL) add_subdirectory(hlsl) endif(ENABLE_HLSL) add_subdirectory(gtests) + +if(BUILD_TESTING) + # glslang-testsuite runs a bash script on Windows. + # Make sure to use '-o igncr' flag to ignore carriage returns (\r). + set(IGNORE_CR_FLAG "") + if(WIN32) + set(IGNORE_CR_FLAG -o igncr) + endif() + + add_test(NAME glslang-testsuite + COMMAND bash ${IGNORE_CR_FLAG} runtests + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/) + + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT GLSLANG_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT SPIRV_REMAP_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap) +endif(BUILD_TESTING) diff --git a/Test/runtests b/Test/runtests index 8e31c069..40e928b6 100755 --- a/Test/runtests +++ b/Test/runtests @@ -2,8 +2,8 @@ TARGETDIR=localResults BASEDIR=baseResults -EXE=../build/install/bin/glslangValidator -REMAPEXE=../build/install/bin/spirv-remap +EXE=${GLSLANG_PATH:-../build/install/bin/glslangValidator} +REMAPEXE=${SPIRV_REMAP_PATH:-../build/install/bin/spirv-remap} HASERROR=0 mkdir -p localResults From 3f072e158ca1f8be54c3cde202f78d35259e0abf Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 15 Oct 2019 16:47:28 -0400 Subject: [PATCH 2/5] Move TARGETDIR as well --- CMakeLists.txt | 8 ++++++++ Test/runtests | 14 +++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c3308e8f..c5a4f679 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -197,4 +197,12 @@ if(BUILD_TESTING) ENVIRONMENT GLSLANG_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator) set_property(TEST glslang-testsuite APPEND PROPERTY ENVIRONMENT SPIRV_REMAP_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap) + + if (CMAKE_CONFIGURATION_TYPES) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT GLSLANG_TEST_RESULTS=${CMAKE_CURRENT_BINARY_DIR}/$/localResults) + else(CMAKE_CONFIGURATION_TYPES) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT GLSLANG_TEST_RESULTS=${CMAKE_CURRENT_BINARY_DIR}/localResults) + endif(CMAKE_CONFIGURATION_TYPES) endif(BUILD_TESTING) diff --git a/Test/runtests b/Test/runtests index 40e928b6..3f624f7d 100755 --- a/Test/runtests +++ b/Test/runtests @@ -1,11 +1,11 @@ #!/usr/bin/env bash -TARGETDIR=localResults +TARGETDIR=${GLSLANG_TEST_RESULTS:-localResults} BASEDIR=baseResults EXE=${GLSLANG_PATH:-../build/install/bin/glslangValidator} REMAPEXE=${SPIRV_REMAP_PATH:-../build/install/bin/spirv-remap} HASERROR=0 -mkdir -p localResults +mkdir -p $TARGETDIR if [ -a localtestlist ] then @@ -55,13 +55,13 @@ diff -b $BASEDIR/hlsl.automap.frag.out $TARGETDIR/hlsl.automap.frag.out || HASER # multi-threaded test # echo Comparing single thread to multithread for all tests in current directory... -$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp > singleThread.out -$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp -t > multiThread.out -diff singleThread.out multiThread.out || HASERROR=1 +$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp > $TARGETDIR/singleThread.out +$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp -t > $TARGETDIR/multiThread.out +diff $TARGETDIR/singleThread.out $TARGETDIR/multiThread.out || HASERROR=1 if [ $HASERROR -eq 0 ] then - rm singleThread.out - rm multiThread.out + rm $TARGETDIR/singleThread.out + rm $TARGETDIR/multiThread.out fi # From 0f98465f0aa1a9a2af5b16c7de529dca02c6eafd Mon Sep 17 00:00:00 2001 From: dan sinclair Date: Tue, 15 Oct 2019 19:11:39 -0400 Subject: [PATCH 3/5] Update CMakeLists.txt --- CMakeLists.txt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c5a4f679..62ee66a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -193,15 +193,19 @@ if(BUILD_TESTING) COMMAND bash ${IGNORE_CR_FLAG} runtests WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT GLSLANG_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT SPIRV_REMAP_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap) - + if (CMAKE_CONFIGURATION_TYPES) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT GLSLANG_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/glslangValidator) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT SPIRV_REMAP_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/spirv-remap) set_property(TEST glslang-testsuite APPEND PROPERTY ENVIRONMENT GLSLANG_TEST_RESULTS=${CMAKE_CURRENT_BINARY_DIR}/$/localResults) else(CMAKE_CONFIGURATION_TYPES) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT GLSLANG_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT SPIRV_REMAP_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap) set_property(TEST glslang-testsuite APPEND PROPERTY ENVIRONMENT GLSLANG_TEST_RESULTS=${CMAKE_CURRENT_BINARY_DIR}/localResults) endif(CMAKE_CONFIGURATION_TYPES) From 7d623e1c90159e62b4597f3ac826e93d23e9d296 Mon Sep 17 00:00:00 2001 From: dan sinclair Date: Wed, 16 Oct 2019 10:45:11 -0400 Subject: [PATCH 4/5] Indenting --- CMakeLists.txt | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 62ee66a0..44b687ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -182,31 +182,31 @@ endif(ENABLE_HLSL) add_subdirectory(gtests) if(BUILD_TESTING) - # glslang-testsuite runs a bash script on Windows. - # Make sure to use '-o igncr' flag to ignore carriage returns (\r). - set(IGNORE_CR_FLAG "") - if(WIN32) - set(IGNORE_CR_FLAG -o igncr) - endif() + # glslang-testsuite runs a bash script on Windows. + # Make sure to use '-o igncr' flag to ignore carriage returns (\r). + set(IGNORE_CR_FLAG "") + if(WIN32) + set(IGNORE_CR_FLAG -o igncr) + endif() - add_test(NAME glslang-testsuite - COMMAND bash ${IGNORE_CR_FLAG} runtests - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/) + add_test(NAME glslang-testsuite + COMMAND bash ${IGNORE_CR_FLAG} runtests + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/) - if (CMAKE_CONFIGURATION_TYPES) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT GLSLANG_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/glslangValidator) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT SPIRV_REMAP_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/spirv-remap) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT GLSLANG_TEST_RESULTS=${CMAKE_CURRENT_BINARY_DIR}/$/localResults) - else(CMAKE_CONFIGURATION_TYPES) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT GLSLANG_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT SPIRV_REMAP_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT GLSLANG_TEST_RESULTS=${CMAKE_CURRENT_BINARY_DIR}/localResults) - endif(CMAKE_CONFIGURATION_TYPES) + if (CMAKE_CONFIGURATION_TYPES) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT GLSLANG_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/glslangValidator) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT SPIRV_REMAP_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/spirv-remap) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT GLSLANG_TEST_RESULTS=${CMAKE_CURRENT_BINARY_DIR}/$/localResults) + else(CMAKE_CONFIGURATION_TYPES) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT GLSLANG_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT SPIRV_REMAP_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap) + set_property(TEST glslang-testsuite APPEND PROPERTY + ENVIRONMENT GLSLANG_TEST_RESULTS=${CMAKE_CURRENT_BINARY_DIR}/localResults) + endif(CMAKE_CONFIGURATION_TYPES) endif(BUILD_TESTING) From 3290d38011a8af8c1c284d07ed550e842f79fa23 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Wed, 16 Oct 2019 13:08:48 -0400 Subject: [PATCH 5/5] Use commandline options instead of ENV variables --- CMakeLists.txt | 29 +++++++++++------------------ Test/runtests | 11 ++++++++--- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 44b687ab..1170e1e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -151,7 +151,7 @@ endfunction(glslang_set_link_args) # otherwise, it will find the wrong version and fail later if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External) find_package(PythonInterp 3 REQUIRED) - + # We depend on these for later projects, so they should come first. add_subdirectory(External) endif() @@ -189,24 +189,17 @@ if(BUILD_TESTING) set(IGNORE_CR_FLAG -o igncr) endif() - add_test(NAME glslang-testsuite - COMMAND bash ${IGNORE_CR_FLAG} runtests - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/) - - if (CMAKE_CONFIGURATION_TYPES) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT GLSLANG_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/glslangValidator) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT SPIRV_REMAP_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/spirv-remap) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT GLSLANG_TEST_RESULTS=${CMAKE_CURRENT_BINARY_DIR}/$/localResults) + set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/$/localResults) + set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/glslangValidator) + set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$/spirv-remap) else(CMAKE_CONFIGURATION_TYPES) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT GLSLANG_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT SPIRV_REMAP_PATH=${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap) - set_property(TEST glslang-testsuite APPEND PROPERTY - ENVIRONMENT GLSLANG_TEST_RESULTS=${CMAKE_CURRENT_BINARY_DIR}/localResults) + set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/localResults) + set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator) + set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap) endif(CMAKE_CONFIGURATION_TYPES) + + add_test(NAME glslang-testsuite + COMMAND bash ${IGNORE_CR_FLAG} runtests ${RESULTS_PATH} ${VALIDATOR_PATH} ${REMAP_PATH} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/) endif(BUILD_TESTING) diff --git a/Test/runtests b/Test/runtests index 3f624f7d..23406dc3 100755 --- a/Test/runtests +++ b/Test/runtests @@ -1,9 +1,14 @@ #!/usr/bin/env bash -TARGETDIR=${GLSLANG_TEST_RESULTS:-localResults} +# Arguments: +# 1- TargetDirectory, where to write test results and intermediary files +# 2- Path to glslangValidator +# 3- Path to spirv-remap + +TARGETDIR=${1:-localResults} BASEDIR=baseResults -EXE=${GLSLANG_PATH:-../build/install/bin/glslangValidator} -REMAPEXE=${SPIRV_REMAP_PATH:-../build/install/bin/spirv-remap} +EXE=${2:-../build/install/bin/glslangValidator} +REMAPEXE=${3:-../build/install/bin/spirv-remap} HASERROR=0 mkdir -p $TARGETDIR