[PATCH] D29593: [libFuzzer] Use custom target instead of list of binaries for tests.

Marcos Pividori via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 6 10:49:48 PST 2017


mpividori created this revision.
Herald added subscribers: mgorny, kubamracek.

I update the cmake code to use a custom target `TestBinaries` instead of a list of targets.
This simplifies cmake, and fix some errors. This way, we don't have to propagate the values into parents directories. We only need to use `add_dependencies`.


https://reviews.llvm.org/D29593

Files:
  lib/Fuzzer/test/CMakeLists.txt
  lib/Fuzzer/test/no-coverage/CMakeLists.txt
  lib/Fuzzer/test/ubsan/CMakeLists.txt
  lib/Fuzzer/test/uninstrumented/CMakeLists.txt


Index: lib/Fuzzer/test/uninstrumented/CMakeLists.txt
===================================================================
--- lib/Fuzzer/test/uninstrumented/CMakeLists.txt
+++ lib/Fuzzer/test/uninstrumented/CMakeLists.txt
@@ -11,6 +11,3 @@
 foreach(Test ${UninstrumentedTests})
   add_libfuzzer_test(${Test}-Uninstrumented SOURCES ../${Test}.cpp)
 endforeach()
-
-# Propagate value into parent directory
-set(TestBinaries ${TestBinaries} PARENT_SCOPE)
Index: lib/Fuzzer/test/ubsan/CMakeLists.txt
===================================================================
--- lib/Fuzzer/test/ubsan/CMakeLists.txt
+++ lib/Fuzzer/test/ubsan/CMakeLists.txt
@@ -10,6 +10,3 @@
 foreach(Test ${UbsanTests})
   add_libfuzzer_test(${Test}-Ubsan SOURCES ../${Test}.cpp)
 endforeach()
-
-# Propagate value into parent directory
-set(TestBinaries ${TestBinaries} PARENT_SCOPE)
Index: lib/Fuzzer/test/no-coverage/CMakeLists.txt
===================================================================
--- lib/Fuzzer/test/no-coverage/CMakeLists.txt
+++ lib/Fuzzer/test/no-coverage/CMakeLists.txt
@@ -25,6 +25,5 @@
       "${CMAKE_BINARY_DIR}/lib/Fuzzer/test"
       )
 
-  # Propagate value into parent directory
-  set(TestBinaries ${TestBinaries} AFLDriverTest PARENT_SCOPE)
+  add_dependencies(TestBinaries AFLDriverTest)
 endif()
Index: lib/Fuzzer/test/CMakeLists.txt
===================================================================
--- lib/Fuzzer/test/CMakeLists.txt
+++ lib/Fuzzer/test/CMakeLists.txt
@@ -39,6 +39,8 @@
   set(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_CXX_COMPILER> ${CMAKE_CXX_FLAGS} ${CRT_FLAG} /LD <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG> <TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES> /link <LINK_FLAGS>")
 endif()
 
+add_custom_target(TestBinaries)
+
 # add_libfuzzer_test(<name>
 #   SOURCES source0.cpp [source1.cpp ...]
 #   )
@@ -63,12 +65,9 @@
     PROPERTIES RUNTIME_OUTPUT_DIRECTORY
     "${CMAKE_BINARY_DIR}/lib/Fuzzer/test"
     )
-  set(TestBinaries ${TestBinaries} LLVMFuzzer-${name} PARENT_SCOPE)
+  add_dependencies(TestBinaries LLVMFuzzer-${name})
 endfunction()
 
-# Variable to keep track of all test targets
-set(TestBinaries)
-
 ###############################################################################
 # Basic tests
 ###############################################################################
@@ -166,13 +165,13 @@
   "${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include"
   )
 
-set(TestBinaries ${TestBinaries} LLVMFuzzer-Unittest)
+add_dependencies(TestBinaries LLVMFuzzer-Unittest)
 set_target_properties(LLVMFuzzer-Unittest
   PROPERTIES RUNTIME_OUTPUT_DIRECTORY
   "${CMAKE_CURRENT_BINARY_DIR}"
 )
 
-set(TestBinaries ${TestBinaries} LLVMFuzzer-StandaloneInitializeTest)
+add_dependencies(TestBinaries LLVMFuzzer-StandaloneInitializeTest)
 set_target_properties(LLVMFuzzer-StandaloneInitializeTest
   PROPERTIES RUNTIME_OUTPUT_DIRECTORY
   "${CMAKE_CURRENT_BINARY_DIR}"
@@ -218,7 +217,7 @@
     LIBRARY_DIR "${CMAKE_BINARY_DIR}/lib/Fuzzer/lib")
 endif()
 
-set(TestBinaries ${TestBinaries} LLVMFuzzer-DSOTest)
+add_dependencies(TestBinaries LLVMFuzzer-DSOTest)
 
 ###############################################################################
 # Configure lit to run the tests
@@ -243,7 +242,7 @@
 
 add_lit_testsuite(check-fuzzer "Running Fuzzer tests"
     ${CMAKE_CURRENT_BINARY_DIR}
-    DEPENDS ${TestBinaries}
+    DEPENDS TestBinaries
     )
 
 # Don't add dependencies on Windows. The linker step would fail on Windows,


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29593.87262.patch
Type: text/x-patch
Size: 3548 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170206/c1595ab0/attachment.bin>


More information about the llvm-commits mailing list