Do not use local gtest with fuzztest (#1935)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index b22bfd1..71ee2b4 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -86,7 +86,7 @@
register_test_for_coverage(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/data/)
endmacro()
-if(AVIF_ENABLE_GTEST OR AVIF_ENABLE_FUZZTEST)
+if(AVIF_ENABLE_GTEST)
if(NOT TARGET GTest::gtest)
if(AVIF_LOCAL_GTEST)
include(LocalGoogletest)
@@ -174,10 +174,11 @@
if(AVIF_ENABLE_FUZZTEST)
# Adds a fuzztest from file TEST_NAME.cc located in the gtest folder. Extra arguments
- # are considered as extra linked libraries.
+ # are considered as extra source files.
macro(add_avif_fuzztest TEST_NAME)
- add_executable(${TEST_NAME} gtest/${TEST_NAME}.cc gtest/avif_fuzztest_helpers.cc)
- target_link_libraries(${TEST_NAME} PRIVATE aviftest_helpers_internal ${ARGN})
+ add_executable(${TEST_NAME} gtest/${TEST_NAME}.cc gtest/avif_fuzztest_helpers.cc ${ARGN})
+ # FuzzTest bundles GoogleTest so no need to link to gtest librairies.
+ target_link_libraries(${TEST_NAME} PRIVATE aviftest_helpers_internal)
link_fuzztest(${TEST_NAME})
add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME})
set_property(TEST ${TEST_NAME} PROPERTY ENVIRONMENT "TEST_DATA_DIRS=${CMAKE_CURRENT_SOURCE_DIR}/data/")
@@ -192,7 +193,6 @@
# and running one of the targets below.
# See https://github.com/google/fuzztest/blob/main/doc/quickstart-cmake.md
add_subdirectory(${AVIF_SOURCE_DIR}/ext/fuzztest ${AVIF_SOURCE_DIR}/ext/fuzztest/build.libavif EXCLUDE_FROM_ALL)
- # FuzzTest bundles GoogleTest so no need for the targets below to link to GTEST_BOTH_LIBRARIES.
else()
message(
FATAL_ERROR
@@ -201,7 +201,7 @@
endif()
add_avif_fuzztest(avif_fuzztest_dec)
- add_avif_fuzztest(avif_fuzztest_dec_incr avifincrtest_helpers)
+ add_avif_fuzztest(avif_fuzztest_dec_incr gtest/avifincrtest_helpers.cc)
add_avif_fuzztest(avif_fuzztest_enc_dec)
add_avif_fuzztest(avif_fuzztest_enc_dec_anim)
add_avif_fuzztest(avif_fuzztest_read_image)
@@ -209,10 +209,10 @@
if(AVIF_ENABLE_EXPERIMENTAL_GAIN_MAP)
add_avif_fuzztest(avif_fuzztest_enc_dec_experimental)
- add_avif_fuzztest(avif_fuzztest_enc_dec_incr_experimental avifincrtest_helpers)
+ add_avif_fuzztest(avif_fuzztest_enc_dec_incr_experimental gtest/avifincrtest_helpers.cc)
endif()
- add_avif_fuzztest(avif_fuzztest_enc_dec_incr avifincrtest_helpers)
+ add_avif_fuzztest(avif_fuzztest_enc_dec_incr gtest/avifincrtest_helpers.cc)
else()
message(STATUS "FuzzTest targets are disabled because AVIF_ENABLE_FUZZTEST is OFF.")
endif()
diff --git a/tests/oss-fuzz/build.sh b/tests/oss-fuzz/build.sh
index 498602a..b69ea5d 100755
--- a/tests/oss-fuzz/build.sh
+++ b/tests/oss-fuzz/build.sh
@@ -39,7 +39,7 @@
ln -s $SRC/fuzztest $SRC/libavif/ext/fuzztest
# build dependencies
-cd ext && bash aom.cmd && bash dav1d.cmd && bash googletest.cmd && bash libjpeg.cmd && \
+cd ext && bash aom.cmd && bash dav1d.cmd && bash libjpeg.cmd && \
bash libsharpyuv.cmd && bash libyuv.cmd && bash zlibpng.cmd && cd ..
# build libavif
@@ -54,7 +54,7 @@
-DAVIF_CODEC_AOM_DECODE=ON -DAVIF_CODEC_AOM_ENCODE=ON \
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DAVIF_ENABLE_WERROR=OFF \
-DAVIF_LOCAL_FUZZTEST=ON \
- -DAVIF_LOCAL_GTEST=ON -DAVIF_LOCAL_JPEG=ON -DAVIF_LOCAL_LIBSHARPYUV=ON \
+ -DAVIF_LOCAL_GTEST=OFF -DAVIF_LOCAL_JPEG=ON -DAVIF_LOCAL_LIBSHARPYUV=ON \
-DAVIF_LIBYUV=LOCAL -DAVIF_LOCAL_ZLIBPNG=ON \
-DAVIF_BUILD_TESTS=ON -DAVIF_ENABLE_GTEST=OFF \
${EXTRA_CMAKE_FLAGS}