]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Experimenting with a new way to run tests from cmake.
authorTim Kientzle <kientzle@gmail.com>
Sun, 16 Aug 2009 02:10:09 +0000 (22:10 -0400)
committerTim Kientzle <kientzle@gmail.com>
Sun, 16 Aug 2009 02:10:09 +0000 (22:10 -0400)
SVN-Revision: 1377

CMakeLists.txt
cpio/test/CMakeLists.txt
libarchive/test/CMakeLists.txt
tar/test/CMakeLists.txt

index c79dae1cc40c9c99a91223fa10b6a4e25c103cae..f265f9b864e31d8e14c30d7334c1042bac38723d 100644 (file)
@@ -699,7 +699,20 @@ IF ("CMAKE_C_COMPILER_ID" MATCHES "^GNU$")
   ADD_DEFINITIONS(-Wall -Werror)
 ENDIF ("CMAKE_C_COMPILER_ID" MATCHES "^GNU$")
 
+DEFINE_PROPERTY(GLOBAL
+                PROPERTY ALL_TESTS
+                BRIEF_DOCS "Test targets to be run by run_all_tests"
+                FULL_DOCS "Test targets to be run by run_all_tests")
+
 add_subdirectory(libarchive)
 add_subdirectory(tar)
 add_subdirectory(cpio)
 
+# This doesn't quite work and I don't understand why: the dependent
+# tests do get run, but the final invocation of run_all_tests chokes.
+# (At least on FreeBSD; I'll have to test on VS and MinGW and see what
+# happens there.)
+IF(ENABLE_TEST)
+GET_PROPERTY(TESTS GLOBAL PROPERTY ALL_TESTS)
+ADD_CUSTOM_TARGET(run_all_tests DEPENDS ${TESTS})
+ENDIF(ENABLE_TEST)
index 1c0efc722db4f93b0f87c7802040b0f526e3614e..4a0bb4b79fee9b15b494e80184f19b82c6ec28c0 100644 (file)
@@ -54,6 +54,8 @@ IF(ENABLE_CPIO AND ENABLE_TEST)
   #
   ADD_EXECUTABLE(bsdcpio_test ${bsdcpio_test_SOURCES})
   SET_PROPERTY(TARGET bsdcpio_test PROPERTY COMPILE_DEFINITIONS LIST_H)
+
+  # ADD_TEST() for each separate test
   SET(num 0)
   FOREACH(test ${bsdcpio_test_SOURCES})
     IF(test MATCHES "^test_[^/]+[.]c$")
@@ -63,5 +65,14 @@ IF(ENABLE_CPIO AND ENABLE_TEST)
       MATH(EXPR num "${num} + 1")
     ENDIF(test MATCHES "^test_[^/]+[.]c$")
   ENDFOREACH(test)
+
+  #
+  # Experimental new test handling
+  #
+  ADD_CUSTOM_TARGET(run_bsdcpio_test
+       DEPENDS bsdcpio_test bsdcpio
+       COMMAND bsdcpio_test -v -p ${BSDCPIO} -r ${CMAKE_CURRENT_SOURCE_DIR})
+
+  SET_PROPERTY(GLOBAL APPEND PROPERTY ALL_TESTS run_bsdcpio_test)
 ENDIF(ENABLE_CPIO AND ENABLE_TEST)
 
index d3a6ec3972b3feb034cc2ec00e58b722ae0694c3..320f3a90c982fa4860067a3b6dac47c8ecfa4ede 100644 (file)
@@ -119,6 +119,8 @@ IF(ENABLE_TEST)
   TARGET_LINK_LIBRARIES(libarchive_test ${ADDITIONAL_LIBS})
   SET_PROPERTY(TARGET libarchive_test PROPERTY COMPILE_DEFINITIONS
     LIBARCHIVE_STATIC LIST_H)
+
+  # Register ADD_TEST() for each separate test
   SET(num 0)
   FOREACH(test ${libarchive_test_SOURCES})
     IF(test MATCHES "^test_[^/]+[.]c$")
@@ -128,5 +130,15 @@ IF(ENABLE_TEST)
       MATH(EXPR num "${num} + 1")
     ENDIF(test MATCHES "^test_[^/]+[.]c$")
   ENDFOREACH(test)
+
+
+  #
+  # Experimental new test handling
+  #
+  ADD_CUSTOM_TARGET(run_libarchive_test
+       DEPENDS libarchive_test
+       COMMAND libarchive_test -v -r ${CMAKE_CURRENT_SOURCE_DIR})
+
+  SET_PROPERTY(GLOBAL APPEND PROPERTY ALL_TESTS run_libarchive_test)
 ENDIF(ENABLE_TEST)
 
index 4f4391bd9f442a4f92ca66dcf02611b07db1adff..24a835b33e84c736d5233c4c6548f23775b28b4e 100644 (file)
@@ -41,6 +41,8 @@ IF(ENABLE_TAR AND ENABLE_TEST)
   #
   ADD_EXECUTABLE(bsdtar_test ${bsdtar_test_SOURCES})
   SET_PROPERTY(TARGET bsdtar_test PROPERTY COMPILE_DEFINITIONS LIST_H)
+
+  # ADD_TEST() for each separate test
   SET(num 0)
   FOREACH(test ${bsdtar_test_SOURCES})
     IF(test MATCHES "^test_[^/]+[.]c$")
@@ -50,4 +52,13 @@ IF(ENABLE_TAR AND ENABLE_TEST)
       MATH(EXPR num "${num} + 1")
     ENDIF(test MATCHES "^test_[^/]+[.]c$")
   ENDFOREACH(test)
+
+  #
+  # Experimental new test handling
+  #
+  ADD_CUSTOM_TARGET(run_bsdtar_test
+       DEPENDS bsdtar_test bsdtar
+       COMMAND bsdtar_test -v -p ${BSDTAR} -r ${CMAKE_CURRENT_SOURCE_DIR})
+
+  SET_PROPERTY(GLOBAL APPEND PROPERTY ALL_TESTS run_bsdtar_test)
 ENDIF (ENABLE_TAR AND ENABLE_TEST)