You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
4.2 KiB
118 lines
4.2 KiB
# @HEADER
|
|
# ************************************************************************
|
|
#
|
|
# TriBITS: Tribal Build, Integrate, and Test System
|
|
# Copyright 2013 Sandia Corporation
|
|
#
|
|
# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
|
|
# the U.S. Government retains certain rights in this software.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are
|
|
# met:
|
|
#
|
|
# 1. Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
#
|
|
# 2. Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution.
|
|
#
|
|
# 3. Neither the name of the Corporation nor the names of the
|
|
# contributors may be used to endorse or promote products derived from
|
|
# this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
|
|
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
|
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
# ************************************************************************
|
|
# @HEADER
|
|
|
|
# This script is a cmake -P script that should be called with the following
|
|
# variables defined:
|
|
#
|
|
# -D binary_dir=${CMAKE_CURRENT_BINARY_DIR}
|
|
# -D source_dir=${CMAKE_CURRENT_SOURCE_DIR}
|
|
# -D ctest_type=${ctest_type}
|
|
# -D scriptname=${scriptname}
|
|
# -D TD_BASE_DIR=${TD_BASE_DIR}
|
|
# -D testname=${testname}
|
|
#
|
|
# It looks recursively under ${TD_BASE_DIR}/tools/cmake-${ctest_type}
|
|
# for a ctest executable and uses it to drive a ctest -S script to run
|
|
# a dashboard for the project. It has to be run this way indirectly
|
|
# through a cmake -P script because the desired ctest executable
|
|
# location is unknown at CMake configure time of the driver project.
|
|
|
|
if(WIN32)
|
|
set(ctest_filename "ctest.exe")
|
|
else()
|
|
set(ctest_filename "ctest")
|
|
endif()
|
|
|
|
set(TRIBITS_TDD_USE_SYSTEM_CTEST $ENV{TRIBITS_TDD_USE_SYSTEM_CTEST})
|
|
message("TRIBITS_TDD_USE_SYSTEM_CTEST='${TRIBITS_TDD_USE_SYSTEM_CTEST}'")
|
|
|
|
if (TRIBITS_TDD_USE_SYSTEM_CTEST STREQUAL "1")
|
|
|
|
find_program(CTEST_EXE ${ctest_filename})
|
|
|
|
elseif(NOT CTEST_EXE)
|
|
|
|
message("Selecting '${ctest_filename}' of type '${ctest_type}'...")
|
|
|
|
set(CTEST_EXE
|
|
"${TD_BASE_DIR}/tools/cmake-${ctest_type}/bin/${ctest_filename}")
|
|
|
|
if(NOT CTEST_EXE)
|
|
message(FATAL_ERROR "error: '${ctest_type}' ctest could not be found...")
|
|
endif()
|
|
|
|
endif()
|
|
|
|
if(NOT EXISTS "${CTEST_EXE}")
|
|
message(FATAL_ERROR "error: CTEST_EXE='${CTEST_EXE}' does not exist...")
|
|
endif()
|
|
|
|
message("CTEST_EXE='${CTEST_EXE}'")
|
|
execute_process(COMMAND ${CTEST_EXE} --version)
|
|
|
|
message("=========== variables ===========")
|
|
message("binary_dir='${binary_dir}'")
|
|
message("source_dir='${source_dir}'")
|
|
message("ctest_type='${ctest_type}'")
|
|
message("scriptname='${scriptname}'")
|
|
message("TD_BASE_DIR='${TD_BASE_DIR}'")
|
|
message("testname='${testname}'")
|
|
message("=================================")
|
|
|
|
message("========== environment ==========")
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -E environment)
|
|
message("=================================")
|
|
|
|
message("============ script =============")
|
|
message("executing ctest -S '${scriptname}' for test '${testname}'...")
|
|
|
|
execute_process(COMMAND ${CTEST_EXE}
|
|
-S
|
|
"${source_dir}/${scriptname}"
|
|
-V
|
|
--output-log
|
|
"${binary_dir}/${testname}.log"
|
|
RESULT_VARIABLE rv
|
|
)
|
|
|
|
if(NOT "${rv}" STREQUAL "0")
|
|
message("warning: calling ctest -S script failed with '${rv}'")
|
|
endif()
|
|
|
|
message("=================================")
|
|
|