From 8b691ce24572f4709213d880c478e444feafe3fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20L=C3=B6hning?= Date: Thu, 27 May 2021 21:29:39 +0200 Subject: [PATCH] Fuzzing: Add CMake project files for fuzz targets Change-Id: Ied44bfd2c83d5590066146187a7333b677ceb179 Reviewed-by: Alexandru Croitor --- .../qcborstreamreader/next/CMakeLists.txt | 27 ++++++++++ .../qcborvalue/fromcbor/CMakeLists.txt | 27 ++++++++++ .../extractionoperator-float/CMakeLists.txt | 27 ++++++++++ .../qxmlstreamreader/readnext/CMakeLists.txt | 27 ++++++++++ .../optimize/CMakeLists.txt | 42 ++++++++-------- .../time/qdatetime/fromstring/CMakeLists.txt | 27 ++++++++++ .../qcryptographichash/result/CMakeLists.txt | 27 ++++++++++ .../image/qimage/loadfromdata/CMakeLists.txt | 33 +++++++++++++ .../qcolorspace/fromiccprofile/CMakeLists.txt | 49 ++++++++++--------- .../text/qtextdocument/sethtml/CMakeLists.txt | 49 ++++++++++--------- .../qtextdocument/setmarkdown/CMakeLists.txt | 49 ++++++++++--------- .../qtextlayout/beginlayout/CMakeLists.txt | 49 ++++++++++--------- .../qsslcertificate/pem/CMakeLists.txt | 29 +++++++++++ 13 files changed, 349 insertions(+), 113 deletions(-) create mode 100644 tests/libfuzzer/corelib/serialization/qcborstreamreader/next/CMakeLists.txt create mode 100644 tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/CMakeLists.txt create mode 100644 tests/libfuzzer/corelib/serialization/qtextstream/extractionoperator-float/CMakeLists.txt create mode 100644 tests/libfuzzer/corelib/serialization/qxmlstream/qxmlstreamreader/readnext/CMakeLists.txt create mode 100644 tests/libfuzzer/corelib/time/qdatetime/fromstring/CMakeLists.txt create mode 100644 tests/libfuzzer/corelib/tools/qcryptographichash/result/CMakeLists.txt create mode 100644 tests/libfuzzer/gui/image/qimage/loadfromdata/CMakeLists.txt create mode 100644 tests/libfuzzer/network/ssl/qsslcertificate/qsslcertificate/pem/CMakeLists.txt diff --git a/tests/libfuzzer/corelib/serialization/qcborstreamreader/next/CMakeLists.txt b/tests/libfuzzer/corelib/serialization/qcborstreamreader/next/CMakeLists.txt new file mode 100644 index 0000000000..5c3ee2064b --- /dev/null +++ b/tests/libfuzzer/corelib/serialization/qcborstreamreader/next/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.14) +project(next LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) + +qt_add_executable(next + main.cpp +) + +target_link_libraries(next PUBLIC + Qt::Core +) +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(next PRIVATE + $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(next PRIVATE + -fsanitize=fuzzer + ) +endif() diff --git a/tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/CMakeLists.txt b/tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/CMakeLists.txt new file mode 100644 index 0000000000..0c94541e37 --- /dev/null +++ b/tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.14) +project(fromcbor LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) + +qt_add_executable(fromcbor + main.cpp +) + +target_link_libraries(fromcbor PUBLIC + Qt::Core +) +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(fromcbor PRIVATE + $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(fromcbor PRIVATE + -fsanitize=fuzzer + ) +endif() diff --git a/tests/libfuzzer/corelib/serialization/qtextstream/extractionoperator-float/CMakeLists.txt b/tests/libfuzzer/corelib/serialization/qtextstream/extractionoperator-float/CMakeLists.txt new file mode 100644 index 0000000000..96fd5790a2 --- /dev/null +++ b/tests/libfuzzer/corelib/serialization/qtextstream/extractionoperator-float/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.14) +project(extractionoperator-float LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) + +qt_add_executable(extractionoperator-float + main.cpp +) + +target_link_libraries(extractionoperator-float PUBLIC + Qt::Core +) +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(extractionoperator-float PRIVATE + $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(extractionoperator-float PRIVATE + -fsanitize=fuzzer + ) +endif() diff --git a/tests/libfuzzer/corelib/serialization/qxmlstream/qxmlstreamreader/readnext/CMakeLists.txt b/tests/libfuzzer/corelib/serialization/qxmlstream/qxmlstreamreader/readnext/CMakeLists.txt new file mode 100644 index 0000000000..aa9b550ed3 --- /dev/null +++ b/tests/libfuzzer/corelib/serialization/qxmlstream/qxmlstreamreader/readnext/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.14) +project(readnext LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) + +qt_add_executable(readnext + main.cpp +) + +target_link_libraries(readnext PUBLIC + Qt::Core +) +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(readnext PRIVATE + $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(readnext PRIVATE + -fsanitize=fuzzer + ) +endif() diff --git a/tests/libfuzzer/corelib/text/qregularexpression/optimize/CMakeLists.txt b/tests/libfuzzer/corelib/text/qregularexpression/optimize/CMakeLists.txt index 303f2494db..350fbfd692 100644 --- a/tests/libfuzzer/corelib/text/qregularexpression/optimize/CMakeLists.txt +++ b/tests/libfuzzer/corelib/text/qregularexpression/optimize/CMakeLists.txt @@ -1,27 +1,27 @@ -# Generated from optimize.pro. +cmake_minimum_required(VERSION 3.14) +project(optimize LANGUAGES CXX) -##################################################################### -## optimize Binary: -##################################################################### +set(CMAKE_INCLUDE_CURRENT_DIR ON) -qt_internal_add_executable(optimize - GUI - SOURCES - main.cpp +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) + +qt_add_executable(optimize + main.cpp ) -#### Keys ignored in scope 1:.:.:optimize.pro:: -# FUZZ_ENGINE = "$$(LIB_FUZZING_ENGINE)" - -## Scopes: -##################################################################### - -qt_internal_extend_target(optimize CONDITION FUZZ_ENGINE_ISEMPTY - LINK_OPTIONS - "-fsanitize=fuzzer" +target_link_libraries(optimize PUBLIC + Qt::Core ) - -qt_internal_extend_target(optimize CONDITION NOT FUZZ_ENGINE_ISEMPTY - PUBLIC_LIBRARIES +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(optimize PRIVATE $ENV{LIB_FUZZING_ENGINE} -) + ) +else() + target_link_libraries(optimize PRIVATE + -fsanitize=fuzzer + ) +endif() diff --git a/tests/libfuzzer/corelib/time/qdatetime/fromstring/CMakeLists.txt b/tests/libfuzzer/corelib/time/qdatetime/fromstring/CMakeLists.txt new file mode 100644 index 0000000000..33154bb562 --- /dev/null +++ b/tests/libfuzzer/corelib/time/qdatetime/fromstring/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.14) +project(fromstring LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) + +qt_add_executable(fromstring + main.cpp +) + +target_link_libraries(fromstring PUBLIC + Qt::Core +) +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(fromstring PRIVATE + $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(fromstring PRIVATE + -fsanitize=fuzzer + ) +endif() diff --git a/tests/libfuzzer/corelib/tools/qcryptographichash/result/CMakeLists.txt b/tests/libfuzzer/corelib/tools/qcryptographichash/result/CMakeLists.txt new file mode 100644 index 0000000000..168d9f95b9 --- /dev/null +++ b/tests/libfuzzer/corelib/tools/qcryptographichash/result/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.14) +project(result LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) + +qt_add_executable(result + main.cpp +) + +target_link_libraries(result PUBLIC + Qt::Core +) +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(result PRIVATE + $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(result PRIVATE + -fsanitize=fuzzer + ) +endif() diff --git a/tests/libfuzzer/gui/image/qimage/loadfromdata/CMakeLists.txt b/tests/libfuzzer/gui/image/qimage/loadfromdata/CMakeLists.txt new file mode 100644 index 0000000000..5a573b21ce --- /dev/null +++ b/tests/libfuzzer/gui/image/qimage/loadfromdata/CMakeLists.txt @@ -0,0 +1,33 @@ +cmake_minimum_required(VERSION 3.14) +project(loadfromdata LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) + +qt_add_executable(loadfromdata + main.cpp +) + +target_link_libraries(loadfromdata PUBLIC + Qt::Core + Qt::Gui +) +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(loadfromdata PRIVATE + $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(loadfromdata PRIVATE + -fsanitize=fuzzer + ) +endif() + +qt_import_plugins(loadfromdata + INCLUDE Qt::QMinimalIntegrationPlugin +) diff --git a/tests/libfuzzer/gui/painting/qcolorspace/fromiccprofile/CMakeLists.txt b/tests/libfuzzer/gui/painting/qcolorspace/fromiccprofile/CMakeLists.txt index 14daff2a7a..788a15bd99 100644 --- a/tests/libfuzzer/gui/painting/qcolorspace/fromiccprofile/CMakeLists.txt +++ b/tests/libfuzzer/gui/painting/qcolorspace/fromiccprofile/CMakeLists.txt @@ -1,30 +1,33 @@ -# Generated from fromiccprofile.pro. +cmake_minimum_required(VERSION 3.14) +project(fromiccprofile LANGUAGES CXX) -##################################################################### -## fromiccprofile Binary: -##################################################################### +set(CMAKE_INCLUDE_CURRENT_DIR ON) -qt_internal_add_executable(fromiccprofile - GUI - SOURCES - main.cpp - PUBLIC_LIBRARIES - Qt::Gui +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) + +qt_add_executable(fromiccprofile + main.cpp ) -#### Keys ignored in scope 1:.:.:fromiccprofile.pro:: -# FUZZ_ENGINE = "$$(LIB_FUZZING_ENGINE)" -# QTPLUGIN = "qminimal" - -## Scopes: -##################################################################### - -qt_internal_extend_target(fromiccprofile CONDITION FUZZ_ENGINE_ISEMPTY - LINK_OPTIONS - "-fsanitize=fuzzer" +target_link_libraries(fromiccprofile PUBLIC + Qt::Core + Qt::Gui ) - -qt_internal_extend_target(fromiccprofile CONDITION NOT FUZZ_ENGINE_ISEMPTY - PUBLIC_LIBRARIES +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(fromiccprofile PRIVATE $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(fromiccprofile PRIVATE + -fsanitize=fuzzer + ) +endif() + +qt_import_plugins(fromiccprofile + INCLUDE Qt::QMinimalIntegrationPlugin ) diff --git a/tests/libfuzzer/gui/text/qtextdocument/sethtml/CMakeLists.txt b/tests/libfuzzer/gui/text/qtextdocument/sethtml/CMakeLists.txt index 1fefea0128..d4777c1096 100644 --- a/tests/libfuzzer/gui/text/qtextdocument/sethtml/CMakeLists.txt +++ b/tests/libfuzzer/gui/text/qtextdocument/sethtml/CMakeLists.txt @@ -1,30 +1,33 @@ -# Generated from sethtml.pro. +cmake_minimum_required(VERSION 3.14) +project(sethtml LANGUAGES CXX) -##################################################################### -## sethtml Binary: -##################################################################### +set(CMAKE_INCLUDE_CURRENT_DIR ON) -qt_internal_add_executable(sethtml - GUI - SOURCES - main.cpp - PUBLIC_LIBRARIES - Qt::Gui +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) + +qt_add_executable(sethtml + main.cpp ) -#### Keys ignored in scope 1:.:.:sethtml.pro:: -# FUZZ_ENGINE = "$$(LIB_FUZZING_ENGINE)" -# QTPLUGIN = "qminimal" - -## Scopes: -##################################################################### - -qt_internal_extend_target(sethtml CONDITION FUZZ_ENGINE_ISEMPTY - LINK_OPTIONS - "-fsanitize=fuzzer" +target_link_libraries(sethtml PUBLIC + Qt::Core + Qt::Gui ) - -qt_internal_extend_target(sethtml CONDITION NOT FUZZ_ENGINE_ISEMPTY - PUBLIC_LIBRARIES +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(sethtml PRIVATE $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(sethtml PRIVATE + -fsanitize=fuzzer + ) +endif() + +qt_import_plugins(sethtml + INCLUDE Qt::QMinimalIntegrationPlugin ) diff --git a/tests/libfuzzer/gui/text/qtextdocument/setmarkdown/CMakeLists.txt b/tests/libfuzzer/gui/text/qtextdocument/setmarkdown/CMakeLists.txt index acc678f2ef..2d1d45ed86 100644 --- a/tests/libfuzzer/gui/text/qtextdocument/setmarkdown/CMakeLists.txt +++ b/tests/libfuzzer/gui/text/qtextdocument/setmarkdown/CMakeLists.txt @@ -1,30 +1,33 @@ -# Generated from setmarkdown.pro. +cmake_minimum_required(VERSION 3.14) +project(setmarkdown LANGUAGES CXX) -##################################################################### -## setmarkdown Binary: -##################################################################### +set(CMAKE_INCLUDE_CURRENT_DIR ON) -qt_internal_add_executable(setmarkdown - GUI - SOURCES - main.cpp - PUBLIC_LIBRARIES - Qt::Gui +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) + +qt_add_executable(setmarkdown + main.cpp ) -#### Keys ignored in scope 1:.:.:setmarkdown.pro:: -# FUZZ_ENGINE = "$$(LIB_FUZZING_ENGINE)" -# QTPLUGIN = "qminimal" - -## Scopes: -##################################################################### - -qt_internal_extend_target(setmarkdown CONDITION FUZZ_ENGINE_ISEMPTY - LINK_OPTIONS - "-fsanitize=fuzzer" +target_link_libraries(setmarkdown PUBLIC + Qt::Core + Qt::Gui ) - -qt_internal_extend_target(setmarkdown CONDITION NOT FUZZ_ENGINE_ISEMPTY - PUBLIC_LIBRARIES +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(setmarkdown PRIVATE $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(setmarkdown PRIVATE + -fsanitize=fuzzer + ) +endif() + +qt_import_plugins(setmarkdown + INCLUDE Qt::QMinimalIntegrationPlugin ) diff --git a/tests/libfuzzer/gui/text/qtextlayout/beginlayout/CMakeLists.txt b/tests/libfuzzer/gui/text/qtextlayout/beginlayout/CMakeLists.txt index 637ce2f51b..4a593d328a 100644 --- a/tests/libfuzzer/gui/text/qtextlayout/beginlayout/CMakeLists.txt +++ b/tests/libfuzzer/gui/text/qtextlayout/beginlayout/CMakeLists.txt @@ -1,30 +1,33 @@ -# Generated from beginlayout.pro. +cmake_minimum_required(VERSION 3.14) +project(beginlayout LANGUAGES CXX) -##################################################################### -## beginlayout Binary: -##################################################################### +set(CMAKE_INCLUDE_CURRENT_DIR ON) -qt_internal_add_executable(beginlayout - GUI - SOURCES - main.cpp - PUBLIC_LIBRARIES - Qt::Gui +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) + +qt_add_executable(beginlayout + main.cpp ) -#### Keys ignored in scope 1:.:.:beginlayout.pro:: -# FUZZ_ENGINE = "$$(LIB_FUZZING_ENGINE)" -# QTPLUGIN = "qminimal" - -## Scopes: -##################################################################### - -qt_internal_extend_target(beginlayout CONDITION FUZZ_ENGINE_ISEMPTY - LINK_OPTIONS - "-fsanitize=fuzzer" +target_link_libraries(beginlayout PUBLIC + Qt::Core + Qt::Gui ) - -qt_internal_extend_target(beginlayout CONDITION NOT FUZZ_ENGINE_ISEMPTY - PUBLIC_LIBRARIES +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(beginlayout PRIVATE $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(beginlayout PRIVATE + -fsanitize=fuzzer + ) +endif() + +qt_import_plugins(beginlayout + INCLUDE Qt::QMinimalIntegrationPlugin ) diff --git a/tests/libfuzzer/network/ssl/qsslcertificate/qsslcertificate/pem/CMakeLists.txt b/tests/libfuzzer/network/ssl/qsslcertificate/qsslcertificate/pem/CMakeLists.txt new file mode 100644 index 0000000000..f87344361c --- /dev/null +++ b/tests/libfuzzer/network/ssl/qsslcertificate/qsslcertificate/pem/CMakeLists.txt @@ -0,0 +1,29 @@ +cmake_minimum_required(VERSION 3.14) +project(pem LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Network) + +qt_add_executable(pem + main.cpp +) + +target_link_libraries(pem PUBLIC + Qt::Core + Qt::Network +) +if(DEFINED ENV{LIB_FUZZING_ENGINE}) + target_link_libraries(pem PRIVATE + $ENV{LIB_FUZZING_ENGINE} + ) +else() + target_link_libraries(pem PRIVATE + -fsanitize=fuzzer + ) +endif()