From 84e6b398ac8dc54393bc09c4d3a16d354dc7d602 Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Sun, 28 May 2017 10:56:20 -0500 Subject: [PATCH] Tests: Remove build_tests/ category The build_tests/ category had been an ugly hack for compiling all configurable example steps. But nowadays we already compile all (configurable) example steps as part of the main build process - so this is redundant. Further, selectively running a subset of example steps (as was done) is ugly and useless (output is never compared). Thus, let's simply remove the category and custom cmake script files. --- tests/build_tests/CMakeLists.txt | 222 ------------------------------- 1 file changed, 222 deletions(-) delete mode 100644 tests/build_tests/CMakeLists.txt diff --git a/tests/build_tests/CMakeLists.txt b/tests/build_tests/CMakeLists.txt deleted file mode 100644 index 4c8f06eddf..0000000000 --- a/tests/build_tests/CMakeLists.txt +++ /dev/null @@ -1,222 +0,0 @@ -## --------------------------------------------------------------------- -## -## Copyright (C) 2013 - 2017 by the deal.II authors -## -## This file is part of the deal.II library. -## -## The deal.II library is free software; you can use it, redistribute -## it, and/or modify it under the terms of the GNU Lesser General -## Public License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## The full text of the license can be found in the file LICENSE at -## the top level of the deal.II distribution. -## -## --------------------------------------------------------------------- - -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12) -INCLUDE(../setup_testsubproject.cmake) -PROJECT(testsuite CXX) - -# -# Set up test environment (does not pick up anything): -# -DEAL_II_PICKUP_TESTS() - -IF(NOT DEAL_II_TARGET_CONFIG_INCLUDED) - INCLUDE(${DEAL_II_TARGET_CONFIG}) - SET(DEAL_II_TARGET_CONFIG_INCLUDED TRUE) -ENDIF() - -# -# build_tests tests are special: -# -# Try to configure and build every example step in debug and release -# configuration. Error condition is that if a test is successfully -# configured it must compile successfully... -# -# ... except for the tests listed below: They have to configure, build and -# run successfully in the given build configuration: -# - -SET(_category build_tests) - -# Run a minimalistic set of steps in debug configuration: -SET(_debug_steps - step-1 step-2 step-3 step-4 step-5 - step-6 step-47 - ) - -# Run all configuration independent steps in release configuration: -SET(_release_steps - step-1 step-2 step-3 step-4 step-5 - step-6 step-7 step-8 step-9 step-10 - step-11 step-12 step-13 step-14 step-16 - step-20 step-25 step-26 step-27 - step-30 step-38 step-39 step-47 - step-49 - ) - -# -# Glob together all tests: -# -IF(DEAL_II_BUILD_DIR) - LIST(GET DEAL_II_INCLUDE_DIRS 1 _include_dir) - GET_FILENAME_COMPONENT(_binary_dir ${_include_dir} PATH) - FILE(GLOB _steps ${_binary_dir}/examples/step-*) -ELSE() - FILE(GLOB _steps ${DEAL_II_PATH}/${DEAL_II_EXAMPLES_RELDIR}/step-*) -ENDIF() - -FOREACH(_step_full ${_steps}) - GET_FILENAME_COMPONENT(_step ${_step_full} NAME) - - FOREACH(_build ${DEAL_II_BUILD_TYPES}) - STRING(TOLOWER ${_build} _build_lowercase) - - SET(_test ${_category}/${_step}.${_build_lowercase}) - - # Respect TEST_PICKUP_REGEX: - IF( "${TEST_PICKUP_REGEX}" STREQUAL "" OR - _test MATCHES "${TEST_PICKUP_REGEX}" ) - - SET(_step_dir ${CMAKE_CURRENT_BINARY_DIR}/${_step}.${_build_lowercase}) - - FILE(GLOB _files ${_step_full}/*) - SET(_command) - FOREACH(_file ${_files}) - IF(NOT _file MATCHES "/(CMakeCache.txt|CMakeFiles|doc)$") - LIST(APPEND _command - COMMAND ${CMAKE_COMMAND} -E copy ${_file} ${_step_dir} - ) - ENDIF() - ENDFOREACH() - - # - # Add a "guard file" rule: The purpose of interrupt_guard is to force - # a complete rerun of this test (CONFIGURE, BUILD and RUN stage) if - # interrupt_guard is removed by run_test.cmake due to an - # interruption. - # - ADD_CUSTOM_COMMAND( - OUTPUT ${_step_dir}/interrupt_guard - COMMAND ${CMAKE_COMMAND} -E make_directory ${_step_dir} - COMMAND touch ${_step_dir}/interrupt_guard - ) - - # A rule how to copy the example step to the current directory: - ADD_CUSTOM_COMMAND(OUTPUT ${_step_dir}/CMakeLists.txt - ${_command} - DEPENDS - ${_files} - ${DEAL_II_TARGET_DEBUG} - ${DEAL_II_TARGET_RELEASE} - ${_step_dir}/interrupt_guard - ) - - # And a rule on how to configure the example step: - ADD_CUSTOM_COMMAND(OUTPUT ${_step_dir}/configure_output - COMMAND rm -f ${_step_dir}/failing_configure_output - COMMAND ${CMAKE_COMMAND} - -DDEAL_II_DIR=${DEAL_II_DIR} -DCMAKE_BUILD_TYPE=${_build} -G ${CMAKE_GENERATOR} . - > ${_step_dir}/configure_output 2>&1 - || (mv ${_step_dir}/configure_output - ${_step_dir}/failing_configure_output - && echo "${_test}: CONFIGURE failed. Output:" - && cat ${_step_dir}/failing_configure_output) # succeed anyway! - WORKING_DIRECTORY ${_step_dir} - DEPENDS ${_step_dir}/CMakeLists.txt - ${DEAL_II_PATH}/${DEAL_II_PROJECT_CONFIG_RELDIR}/${DEAL_II_PACKAGE_NAME}Config.cmake - ) - - - # MSVC needs to know if we are compiling the debug or release configuration right now: - IF(MSVC AND ("${_build}" STREQUAL "RELEASE")) - SET(_magic1 "--config") - SET(_magic2 "Release") - ELSE() - SET(_magic1 "") - SET(_magic2 "") - ENDIF() - - # And a rule on how to build the example step: - ADD_CUSTOM_COMMAND(OUTPUT ${_step_dir}/build_output - COMMAND test ! -f ${_step_dir}/configure_output - || (rm -f ${_step_dir}/failing_build_output - && ${CMAKE_COMMAND} --build . ${_magic1} ${_magic2} - > ${_step_dir}/build_output 2>&1) - || (mv ${_step_dir}/build_output - ${_step_dir}/failing_build_output - && echo "${_test}: CONFIGURE successful." - && echo "${_test}: BUILD failed. Output:" - && cat ${_step_dir}/failing_build_output - && exit 1) - COMMAND test -f ${_step_dir}/configure_output - || (rm -f ${_step_dir}/build_output - && rm -f ${_step_dir}/failing_build_output - && echo "${_test}: BUILD stage not invoked due to failing CONFIGURE") # succeed anyway! - WORKING_DIRECTORY ${_step_dir} - DEPENDS ${_step_dir}/configure_output - ) - - # And a rule on how to run the example step: - ADD_CUSTOM_COMMAND(OUTPUT ${_step_dir}/run_output - COMMAND test ! -f ${_step_dir}/build_output - || (rm -f ${_step_dir}/failing_run_output - && ${CMAKE_COMMAND} --build . --target run ${_magic1} ${_magic2} - > ${_step_dir}/run_output 2>&1) - || (mv ${_step_dir}/run_output - ${_step_dir}/failing_run_output - && echo "${_test}: CONFIGURE successful." - && echo "${_test}: BUILD successful." - && echo "${_test}: RUN failed. Output:" - && cat ${_step_dir}/failing_run_output - && exit 1) - COMMAND test -f ${_step_dir}/build_output - || ( rm -f ${_step_dir}/run_output - && rm -f ${_step_dir}/failing_run_output - && echo "${_test}: RUN stage not invoked due to failing BUILD" - && exit 1) - WORKING_DIRECTORY ${_step_dir} - DEPENDS ${_step_dir}/build_output - ) - - ITEM_MATCHES(_match ${_step} ${_${_build_lowercase}_steps}) - IF(_match) - # Add a full test (CONFIGURE, BUILD, RUN): - SET(_target ${_step}.${_build_lowercase}.run) - ADD_CUSTOM_TARGET(${_target} - COMMAND - echo "${_test}: CONFIGURE successful." - && echo "${_test}: BUILD successful." - && echo "${_test}: RUN successful." - && echo "${_test}: PASSED." - DEPENDS ${_step_dir}/run_output - ) - ELSE() - # Add a minimal test (CONFIGURE, BUILD): - SET(_target ${_step}.${_build_lowercase}.build) - ADD_CUSTOM_TARGET(${_target} - COMMAND - echo "${_test}: CONFIGURE successful." - && echo "${_test}: BUILD successful." - && echo "${_test}: PASSED." - DEPENDS ${_step_dir}/build_output - ) - ENDIF() - - # And finally add the test: - ADD_TEST(NAME ${_test} - COMMAND ${CMAKE_COMMAND} -DTRGT=${_target} -DTEST=${_test} - -DBINARY_DIR=${CMAKE_BINARY_DIR} - -DGUARD_FILE=${_step_dir}/interrupt_guard - -P ${DEAL_II_PATH}/${DEAL_II_SHARE_RELDIR}/scripts/run_test.cmake - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - ) - SET_TESTS_PROPERTIES(${_test} PROPERTIES - LABEL "${_category}" - TIMEOUT ${TEST_TIME_LIMIT} - ) - - ENDIF() - ENDFOREACH() -ENDFOREACH() -- 2.39.5