From 85f8a8ca4da3128005a84fff96690fc796928895 Mon Sep 17 00:00:00 2001 From: Nick Terrell Date: Wed, 2 Dec 2020 17:08:36 -0800 Subject: [PATCH 1/5] [CI] Add cmake test for source dirs with spaces --- .github/workflows/generic-dev.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/generic-dev.yml b/.github/workflows/generic-dev.yml index 9fb4a0c8b..6b127aa7a 100644 --- a/.github/workflows/generic-dev.yml +++ b/.github/workflows/generic-dev.yml @@ -89,7 +89,11 @@ jobs: steps: - uses: actions/checkout@v2 - name: cmake build and test check - run: make cmakebuild + run: | + make cmakebuild + cp -r ./ "../zstd source" + cd "../zstd source" + make cmakebuild gcc-8-asan-ubsan-fuzz: runs-on: ubuntu-latest From ef5d15b71908e3b4dcf2811ee8e0b8c81f75c0cd Mon Sep 17 00:00:00 2001 From: Nick Terrell Date: Sun, 6 Dec 2020 20:13:37 -0800 Subject: [PATCH 2/5] [cmake] Fix pkgconfig quoting The pkgconfig file generation didn't correctly escape the paths. It both quoted and escaped spaces with `\`, which doesn't work. The fix is to remove the quoting. --- build/cmake/lib/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/cmake/lib/CMakeLists.txt b/build/cmake/lib/CMakeLists.txt index 9a221d334..088c8760a 100644 --- a/build/cmake/lib/CMakeLists.txt +++ b/build/cmake/lib/CMakeLists.txt @@ -157,14 +157,14 @@ if (UNIX OR MINGW) add_custom_target(libzstd.pc ALL ${CMAKE_COMMAND} - -DIN="${LIBRARY_DIR}/libzstd.pc.in" + -DIN=${LIBRARY_DIR}/libzstd.pc.in -DOUT="libzstd.pc" -DPREFIX="${PREFIX}" -DEXEC_PREFIX="${EXEC_PREFIX}" -DINCLUDEDIR="${INCLUDEDIR_PREFIX}${INCLUDEDIR_SUFFIX}" -DLIBDIR="${LIBDIR_PREFIX}${LIBDIR_SUFFIX}" -DVERSION="${VERSION}" - -P "${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig.cmake" + -P ${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig.cmake COMMENT "Creating pkg-config file") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libzstd.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") From 54105f5757eaa6f303ce3733e9431a2670e17aed Mon Sep 17 00:00:00 2001 From: Nick Terrell Date: Mon, 7 Dec 2020 11:55:44 -0800 Subject: [PATCH 3/5] [cmake] Quote environment variables for tests Fix the quoting for the invocation of `playtests.sh`. --- build/cmake/tests/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/cmake/tests/CMakeLists.txt b/build/cmake/tests/CMakeLists.txt index a66040ec4..9bc9ec411 100644 --- a/build/cmake/tests/CMakeLists.txt +++ b/build/cmake/tests/CMakeLists.txt @@ -86,7 +86,7 @@ add_test(NAME zstreamtest COMMAND zstreamtest ${ZSTD_ZSTREAM_FLAGS}) # AddTestFlagsOption(ZSTD_PLAYTESTS_FLAGS "--test-large-data" "Semicolon-separated list of flags to pass to the playTests.sh test") -add_test(NAME playTests COMMAND sh -c "${TESTS_DIR}/playTests.sh" ${ZSTD_PLAYTESTS_FLAGS}) +add_test(NAME playTests COMMAND sh -c "\"${TESTS_DIR}/playTests.sh\" ${ZSTD_PLAYTESTS_FLAGS}") if (ZSTD_BUILD_PROGRAMS) set_property(TEST playTests APPEND PROPERTY ENVIRONMENT "ZSTD_BIN=$" From 0be843b2001336be5b6233f2f9742f5ca4d75cb4 Mon Sep 17 00:00:00 2001 From: Nick Terrell Date: Mon, 7 Dec 2020 12:08:29 -0800 Subject: [PATCH 4/5] [tests] Fix playTests.sh with spaces in path --- tests/playTests.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/playTests.sh b/tests/playTests.sh index 3f53b6a7a..51b42b60a 100755 --- a/tests/playTests.sh +++ b/tests/playTests.sh @@ -273,10 +273,10 @@ ln -sf "$ZSTD_BIN" zstdcat rm -f tmp_grep echo "1234" > tmp_grep zstd -f tmp_grep -lines=$(ZCAT=./zstdcat $ZSTDGREP 2>&1 "1234" tmp_grep tmp_grep.zst | wc -l) +lines=$(ZCAT=./zstdcat "$ZSTDGREP" 2>&1 "1234" tmp_grep tmp_grep.zst | wc -l) test 2 -eq $lines -ZCAT=./zstdcat $ZSTDGREP 2>&1 "1234" tmp_grep_bad.zst && die "Should have failed" -ZCAT=./zstdcat $ZSTDGREP 2>&1 "1234" tmp_grep_bad.zst | grep "No such file or directory" || true +ZCAT=./zstdcat "$ZSTDGREP" 2>&1 "1234" tmp_grep_bad.zst && die "Should have failed" +ZCAT=./zstdcat "$ZSTDGREP" 2>&1 "1234" tmp_grep_bad.zst | grep "No such file or directory" || true rm -f tmp_grep* println "\n===> --exclude-compressed flag" From bc3cda9b9fe7b1bc5720226d2c5a99919d56ea2c Mon Sep 17 00:00:00 2001 From: Nick Terrell Date: Thu, 10 Dec 2020 13:33:34 -0800 Subject: [PATCH 5/5] [CI][cmake] Disable --test-large-data and shorten fuzzing time to 2 mins --- .github/workflows/generic-dev.yml | 4 ++-- appveyor.yml | 2 ++ build/cmake/tests/CMakeLists.txt | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/generic-dev.yml b/.github/workflows/generic-dev.yml index 6b127aa7a..bb88de57c 100644 --- a/.github/workflows/generic-dev.yml +++ b/.github/workflows/generic-dev.yml @@ -90,10 +90,10 @@ jobs: - uses: actions/checkout@v2 - name: cmake build and test check run: | - make cmakebuild + FUZZERTEST=-T1mn ZSTREAM_TESTTIME=-T1mn make cmakebuild cp -r ./ "../zstd source" cd "../zstd source" - make cmakebuild + FUZZERTEST=-T1mn ZSTREAM_TESTTIME=-T1mn make cmakebuild gcc-8-asan-ubsan-fuzz: runs-on: ubuntu-latest diff --git a/appveyor.yml b/appveyor.yml index 6b5b97676..169c66bd6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -162,6 +162,8 @@ - if [%TEST%]==[cmake] ( mkdir build\cmake\build && cd build\cmake\build && + SET FUZZERTEST=-T2mn && + SET ZSTREAM_TESTTIME=-T2mn && cmake -G "Visual Studio 14 2015 Win64" .. && cd ..\..\.. && make clean diff --git a/build/cmake/tests/CMakeLists.txt b/build/cmake/tests/CMakeLists.txt index 9bc9ec411..34eca9109 100644 --- a/build/cmake/tests/CMakeLists.txt +++ b/build/cmake/tests/CMakeLists.txt @@ -84,7 +84,7 @@ add_test(NAME zstreamtest COMMAND zstreamtest ${ZSTD_ZSTREAM_FLAGS}) # # playTests.sh # -AddTestFlagsOption(ZSTD_PLAYTESTS_FLAGS "--test-large-data" +AddTestFlagsOption(ZSTD_PLAYTESTS_FLAGS "$ENV{PLAYTESTS_FLAGS}" "Semicolon-separated list of flags to pass to the playTests.sh test") add_test(NAME playTests COMMAND sh -c "\"${TESTS_DIR}/playTests.sh\" ${ZSTD_PLAYTESTS_FLAGS}") if (ZSTD_BUILD_PROGRAMS)