Revision: 75882
http://sourceforge.net/p/brlcad/code/75882
Author: starseeker
Date: 2020-05-21 18:00:35 +0000 (Thu, 21 May 2020)
Log Message:
-----------
First tentative experiments with the fixtures feature of CTest to provide tests
run by make test with dependency resolution that results in their requirements
being built prior to the running of the test.
Modified Paths:
--------------
brlcad/branches/mktest/CMakeLists.txt
brlcad/branches/mktest/src/libbu/tests/CMakeLists.txt
Modified: brlcad/branches/mktest/CMakeLists.txt
===================================================================
--- brlcad/branches/mktest/CMakeLists.txt 2020-05-21 17:02:18 UTC (rev
75881)
+++ brlcad/branches/mktest/CMakeLists.txt 2020-05-21 18:00:35 UTC (rev
75882)
@@ -79,7 +79,7 @@
# BRL-CAD software package.
# Minimum required version of CMake
-cmake_minimum_required(VERSION 3.1.3)
+cmake_minimum_required(VERSION 3.7)
# set CMake project name
project(BRLCAD)
@@ -544,6 +544,7 @@
set_target_properties(unit PROPERTIES FOLDER "BRL-CAD Validation Testing")
+if(0)
# we wrap the CMake add_test() function in order to automatically
# set up test dependencies for the 'unit' and 'check' test targets.
#
@@ -660,6 +661,8 @@
endif (NOT "${test_name}" MATCHES ^regress- AND NOT "${test_prog}" MATCHES
^regress- AND NOT "${test_name}" MATCHES ^slow- AND NOT "${test_name}" STREQUAL
"benchmark" AND NOT "${test_name}" MATCHES ^NOTE:)
endfunction(add_test NAME test_name COMMAND test_prog)
+endif(0)
+
endif(NOT BRLCAD_IS_SUBBUILD)
Modified: brlcad/branches/mktest/src/libbu/tests/CMakeLists.txt
===================================================================
--- brlcad/branches/mktest/src/libbu/tests/CMakeLists.txt 2020-05-21
17:02:18 UTC (rev 75881)
+++ brlcad/branches/mktest/src/libbu/tests/CMakeLists.txt 2020-05-21
18:00:35 UTC (rev 75882)
@@ -49,10 +49,32 @@
set(BU_TEST_LIST "${BU_TEST_LIST}\\n ${NAME_ROOT}")
endforeach(srcfile ${bu_test_srcs})
+
+# Flag an executable as being a resource for a particular CTest fixtures group.
+# This will define a CTest target responsible for building the program itself,
+# and identify it as a setup step needed for the primary tests of the group.
+function(BRLCAD_CTEST_EXEC target fixture_grp)
+ add_test(NAME ${target}_${fixture_grp}_setup COMMAND "${CMAKE_COMMAND}"
--build "${CMAKE_BINARY_DIR}" --config "$<CONFIG>" --target ${target})
+ set_tests_properties(${target}_${fixture_grp}_setup PROPERTIES
FIXTURES_SETUP ${fixture_grp}_test_fixtures)
+endfunction(BRLCAD_CTEST_EXEC)
+
+# Wrapper for adding a test that is a memember of a particular CTest fixtures
group,
+# which will get it dependency resolution for any executables it uses that
have been
+# idenfied with brlcad_ctest_exec as being SETUP resources for this group.
+#
+# NOTE - this has to be a macro. A function will pass ARGN to COMMAND as one
+# whole string, and that won't work - we need it to be the ARGV array.
+macro(BRLCAD_ADD_TEST NAME name GROUP fixture_grp COMMAND)
+ add_test(NAME ${name} COMMAND ${ARGN})
+ set_tests_properties(${name} PROPERTIES FIXTURES_REQUIRED
${fixture_grp}_test_fixtures)
+endmacro(BRLCAD_ADD_TEST)
+
+
# Generate bu_test.c file and build it
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../..)
configure_file(bu_test.c.in "${CMAKE_CURRENT_BINARY_DIR}/bu_test.c" @ONLY)
BRLCAD_ADDEXEC(bu_test "${CMAKE_CURRENT_BINARY_DIR}/bu_test.c" libbu TEST)
+BRLCAD_CTEST_EXEC(bu_test bu)
# Housekeeping for included source files
CMAKEFILES(${bu_test_srcs})
@@ -72,28 +94,28 @@
####################################
# bu_path_basename testing #
####################################
-add_test(NAME bu_path_basename_null COMMAND
bu_test basename) # tests NULL
-add_test(NAME bu_path_basename_empty COMMAND
bu_test basename "")
-add_test(NAME bu_path_basename_sl_usr_sl_dir_sl_file COMMAND
bu_test basename "/usr/dir/file")
-add_test(NAME bu_path_basename_sl_usr_sl_dir_sl_ COMMAND
bu_test basename "/usr/dir/")
-add_test(NAME bu_path_basename_sl_usr_bsl__sl_dir COMMAND
bu_test basename "/usr\\\\/dir")
-add_test(NAME bu_path_basename_sl_usr_sl__p_ COMMAND
bu_test basename "/usr/.")
-add_test(NAME bu_path_basename_sl_usr_sl_ COMMAND
bu_test basename "/usr/")
-add_test(NAME bu_path_basename_sl_usr COMMAND
bu_test basename "/usr")
-add_test(NAME bu_path_basename_usr COMMAND
bu_test basename "usr")
-add_test(NAME bu_path_basename_sl_usr_sl_some_sp_long_sl_file COMMAND
bu_test basename "/usr/some long/file")
-add_test(NAME bu_path_basename_sl_usr_sl_some_sp_file COMMAND
bu_test basename "/usr/some file")
-add_test(NAME bu_path_basename_C_c__sl_usr_sl_some_bsl__sp_drivepath COMMAND
bu_test basename "C:/usr/some\\\\ drivepath")
-add_test(NAME bu_path_basename_sl_a_sp_test_sp_file COMMAND
bu_test basename "/a test file")
-add_test(NAME bu_path_basename_another_sp_file COMMAND
bu_test basename "another file")
-add_test(NAME bu_path_basename_C_c__bsl__Temp COMMAND
bu_test basename "C:\\\\Temp")
-add_test(NAME bu_path_basename_C_c__sl_Temp COMMAND
bu_test basename "C:/Temp")
-add_test(NAME bu_path_basename_sl_ COMMAND
bu_test basename "/")
-add_test(NAME bu_path_basename_sl__sl__sl__sl__sl_ COMMAND
bu_test basename "/////")
-add_test(NAME bu_path_basename_p_ COMMAND
bu_test basename ".")
-add_test(NAME bu_path_basename_p__p_ COMMAND
bu_test basename "..")
-add_test(NAME bu_path_basename_p__p__p_ COMMAND
bu_test basename "...")
-add_test(NAME bu_path_basename_sp__sp__sp_ COMMAND
bu_test basename " ")
+BRLCAD_ADD_TEST(NAME bu_path_basename_null
GROUP bu COMMAND bu_test basename) # tests NULL
+BRLCAD_ADD_TEST(NAME bu_path_basename_empty
GROUP bu COMMAND bu_test basename "")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sl_usr_sl_dir_sl_file
GROUP bu COMMAND bu_test basename "/usr/dir/file")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sl_usr_sl_dir_sl_
GROUP bu COMMAND bu_test basename "/usr/dir/")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sl_usr_bsl__sl_dir
GROUP bu COMMAND bu_test basename "/usr\\\\/dir")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sl_usr_sl__p_
GROUP bu COMMAND bu_test basename "/usr/.")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sl_usr_sl_
GROUP bu COMMAND bu_test basename "/usr/")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sl_usr
GROUP bu COMMAND bu_test basename "/usr")
+BRLCAD_ADD_TEST(NAME bu_path_basename_usr
GROUP bu COMMAND bu_test basename "usr")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sl_usr_sl_some_sp_long_sl_file
GROUP bu COMMAND bu_test basename "/usr/some long/file")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sl_usr_sl_some_sp_file
GROUP bu COMMAND bu_test basename "/usr/some file")
+BRLCAD_ADD_TEST(NAME bu_path_basename_C_c__sl_usr_sl_some_bsl__sp_drivepath
GROUP bu COMMAND bu_test basename "C:/usr/some\\\\ drivepath")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sl_a_sp_test_sp_file
GROUP bu COMMAND bu_test basename "/a test file")
+BRLCAD_ADD_TEST(NAME bu_path_basename_another_sp_file
GROUP bu COMMAND bu_test basename "another file")
+BRLCAD_ADD_TEST(NAME bu_path_basename_C_c__bsl__Temp
GROUP bu COMMAND bu_test basename "C:\\\\Temp")
+BRLCAD_ADD_TEST(NAME bu_path_basename_C_c__sl_Temp
GROUP bu COMMAND bu_test basename "C:/Temp")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sl_
GROUP bu COMMAND bu_test basename "/")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sl__sl__sl__sl__sl_
GROUP bu COMMAND bu_test basename "/////")
+BRLCAD_ADD_TEST(NAME bu_path_basename_p_
GROUP bu COMMAND bu_test basename ".")
+BRLCAD_ADD_TEST(NAME bu_path_basename_p__p_
GROUP bu COMMAND bu_test basename "..")
+BRLCAD_ADD_TEST(NAME bu_path_basename_p__p__p_
GROUP bu COMMAND bu_test basename "...")
+BRLCAD_ADD_TEST(NAME bu_path_basename_sp__sp__sp_
GROUP bu COMMAND bu_test basename " ")
##########################################
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits