Revision: 75804
http://sourceforge.net/p/brlcad/code/75804
Author: starseeker
Date: 2020-05-14 20:41:52 +0000 (Thu, 14 May 2020)
Log Message:
-----------
Wire in the C++ regress-repository test the same way we had repository.sh wired
in, where the build target runs the ctest. This way the target runs every
time, and it's not necessary to try and have the build target depend on every
file it needs to test in order to recognized the need to re-run.
Modified Paths:
--------------
brlcad/trunk/regress/CMakeLists.txt
brlcad/trunk/regress/repository/CMakeLists.txt
brlcad/trunk/regress/repository/regress-repository.cmake
brlcad/trunk/regress/repository/repocheck.cpp
Modified: brlcad/trunk/regress/CMakeLists.txt
===================================================================
--- brlcad/trunk/regress/CMakeLists.txt 2020-05-14 20:05:14 UTC (rev 75803)
+++ brlcad/trunk/regress/CMakeLists.txt 2020-05-14 20:41:52 UTC (rev 75804)
@@ -102,18 +102,6 @@
Sh_Regression_Test(bots "mged;pixdiff;rt")
Sh_Regression_Test(usage "rt" EXCLUDE_FROM_REGRESS)
Sh_Regression_Test(flawfinder "" EXCLUDE_FROM_REGRESS)
-
- # TODO - keep all tests short, GOAL < 1MIN. right now, regress
- # repository violates this as it spends considerable time scanning
- # the entire source tree, then scanning different sets of files for
- # properties.
- if (NOT DEFINED REPOCHECK_TEST)
- Sh_Regression_Test(repository "")
- if(NOT BRLCAD_DISABLE_REGRESS_TIMEOUT)
- set_tests_properties(regress-repository PROPERTIES TIMEOUT 600)
- endif(NOT BRLCAD_DISABLE_REGRESS_TIMEOUT)
- endif (NOT DEFINED REPOCHECK_TEST)
-
Sh_Regression_Test(mged mged)
Sh_Regression_Test(red mged)
Sh_Regression_Test(nirt "mged;nirt")
Modified: brlcad/trunk/regress/repository/CMakeLists.txt
===================================================================
--- brlcad/trunk/regress/repository/CMakeLists.txt 2020-05-14 20:05:14 UTC
(rev 75803)
+++ brlcad/trunk/regress/repository/CMakeLists.txt 2020-05-14 20:41:52 UTC
(rev 75804)
@@ -1,49 +1,30 @@
-#set(REPOCHECK_TEST 1)
-if (DEFINED REPOCHECK_TEST)
- add_executable(repocheck repocheck.cpp)
- target_link_libraries(repocheck libbu ${CMAKE_THREAD_LIBS_INIT})
- if (O3_COMPILER_FLAG)
- # This check benefits greatly from optimization. If we have the O3 flag,
use
- # it - whether or not the standard build settings would add it.
- target_compile_options(repocheck PRIVATE "-O3")
- endif (O3_COMPILER_FLAG)
- set_target_properties(repocheck PROPERTIES FOLDER "BRL-CAD Regression Tests")
+add_executable(repocheck repocheck.cpp)
+target_link_libraries(repocheck libbu ${CMAKE_THREAD_LIBS_INIT})
+if (O3_COMPILER_FLAG)
+ # This check benefits greatly from optimization. If we have the O3 flag, use
+ # it - whether or not the standard build settings would add it.
+ target_compile_options(repocheck PRIVATE "-O3")
+endif (O3_COMPILER_FLAG)
+set_target_properties(repocheck PROPERTIES FOLDER "BRL-CAD Regression Tests")
+set(ALL_FILES_LIST "${BRLCAD_BINARY_DIR}/cmakefiles.cmake")
- set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/regress-repository.log")
- set(STAMP_FILE "${CMAKE_CURRENT_BINARY_DIR}/regress-repository.done")
- set(ALL_FILES_LIST "${BRLCAD_BINARY_DIR}/cmakefiles.cmake")
+add_test(NAME regress-repository
+ COMMAND "${CMAKE_COMMAND}"
+ -DRCHECK_EXEC=$<TARGET_FILE:repocheck>
+ -DL_FILE=${LOG_FILE} -DS_FILE=${STAMP_FILE} -DF_LIST=${ALL_FILES_LIST}
+ -DB_DIR=${BRLCAD_SOURCE_DIR}
+ -P "${CMAKE_CURRENT_SOURCE_DIR}/regress-repository.cmake"
+ )
+set_tests_properties(regress-repository PROPERTIES LABELS "Regression")
- add_custom_command(
- OUTPUT "${STAMP_FILE}"
- COMMAND "${CMAKE_COMMAND}"
- -DRCHECK_EXEC="$<TARGET_FILE:repocheck>"
- -DL_FILE="${LOG_FILE}" -DS_FILE="${STAMP_FILE}"
-DF_LIST="${ALL_FILES_LIST}"
- -DB_DIR="${BRLCAD_SOURCE_DIR}"
- -P "${CMAKE_CURRENT_SOURCE_DIR}/regress-repository.cmake"
- )
- add_custom_target(regress-repository DEPENDS ${STAMP_FILE} ${ALL_FILES_LIST})
- set_target_properties(regress-repository PROPERTIES FOLDER "BRL-CAD
Regression Tests")
- add_dependencies(regress regress-repository)
- add_dependencies(check regress-repository)
+add_custom_target(regress-repository COMMAND ${CMAKE_CTEST_COMMAND} -R
^regress-repository --output-on-failure)
+add_dependencies(regress-repository repocheck)
+set_target_properties(regress-repository PROPERTIES FOLDER "BRL-CAD Regression
Tests")
+set_target_properties(regress-repository PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD
1)
+add_dependencies(regress regress-repository)
+add_dependencies(check regress-repository)
- add_test(NAME regress-repository
- COMMAND "${CMAKE_COMMAND}"
- -DRCHECK_EXEC=$<TARGET_FILE:repocheck>
- -DL_FILE=${LOG_FILE} -DS_FILE=${STAMP_FILE} -DF_LIST=${ALL_FILES_LIST}
- -DB_DIR="${BRLCAD_SOURCE_DIR}"
- -P "${CMAKE_CURRENT_SOURCE_DIR}/regress-repository.cmake"
- )
- set_tests_properties(regress-repository PROPERTIES LABELS "Regression")
-
- DISTCLEAN(
- ${STAMP_FILE}
- ${LOG_FILE}
- )
-
- set_target_properties(regress-repository PROPERTIES
EXCLUDE_FROM_DEFAULT_BUILD 1)
-endif (DEFINED REPOCHECK_TEST)
-
CMAKEFILES(
CMakeLists.txt
repocheck.cpp
Modified: brlcad/trunk/regress/repository/regress-repository.cmake
===================================================================
--- brlcad/trunk/regress/repository/regress-repository.cmake 2020-05-14
20:05:14 UTC (rev 75803)
+++ brlcad/trunk/regress/repository/regress-repository.cmake 2020-05-14
20:41:52 UTC (rev 75804)
@@ -1,10 +1,8 @@
string(REPLACE "\\" "" REPOSITORY_CHECK_EXEC "${RCHECK_EXEC}")
string(REPLACE "\\" "" FILES_LIST "${F_LIST}")
-string(REPLACE "\\" "" LOG_FILE "${L_FILE}")
-string(REPLACE "\\" "" STAMP_FILE "${S_FILE}")
string(REPLACE "\\" "" B_SOURCE_DIR "${B_DIR}")
-file(WRITE "${LOG_FILE}" "Running repository check:\n${REPOSITORY_CHECK_EXEC}
${REPOSITORY_FILE_SET} ${FILES_LIST}\n")
+message("Running repository check:\n${REPOSITORY_CHECK_EXEC}
${REPOSITORY_FILE_SET} ${FILES_LIST} \"${B_SOURCE_DIR}\"\n")
message("Processing...")
execute_process(
COMMAND "${REPOSITORY_CHECK_EXEC}" "${FILES_LIST}" "${B_SOURCE_DIR}"
RESULT_VARIABLE repository_result
@@ -12,13 +10,9 @@
)
message("Processing... done.")
-file(APPEND "${LOG_FILE}" "\n${repository_log}\n")
-
if(repository_result)
- file(APPEND "${LOG_FILE}" "\n\nError: return code ${repository_result}")
- message(FATAL_ERROR "[repository check] Failure, see ${LOG_FILE} for more
info.\n")
-else(repository_result)
- execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${STAMP_FILE}")
+ message("${repository_log}\n")
+ message(FATAL_ERROR "[repository check] failed.\n")
endif(repository_result)
# Local Variables:
Modified: brlcad/trunk/regress/repository/repocheck.cpp
===================================================================
--- brlcad/trunk/regress/repository/repocheck.cpp 2020-05-14 20:05:14 UTC
(rev 75803)
+++ brlcad/trunk/regress/repository/repocheck.cpp 2020-05-14 20:41:52 UTC
(rev 75804)
@@ -56,7 +56,7 @@
#include "bu/mapped_file.h"
#define MAX_LINES_CHECK 500
-#define EXPECTED_PLATFORM_SYMBOLS 205
+#define EXPECTED_PLATFORM_SYMBOLS 206
class repo_info_t {
public:
@@ -699,10 +699,6 @@
int b_cnt = platform_symbols(repo_info, repo_info.symbol_bld_log,
build_files);
int psym_cnt = h_cnt + s_cnt + b_cnt;
int expected_psym_cnt = EXPECTED_PLATFORM_SYMBOLS;
- if (psym_cnt > expected_psym_cnt) {
- std::cout << "FAILURE: expected " << expected_psym_cnt << " platform
symbols, found " << psym_cnt << "\n";
- ret = 1;
- }
if (ret) {
std::sort(repo_info.api_log.begin(), repo_info.api_log.end());
@@ -714,45 +710,53 @@
std::sort(repo_info.symbol_bld_log.begin(),
repo_info.symbol_bld_log.end());
if (repo_info.api_log.size()) {
- std::cout << "\nFound " << repo_info.api_log.size() << " instances
of unguarded API usage:\n";
+ std::cout << "\nFAILURE: found " << repo_info.api_log.size() << "
instances of unguarded API usage:\n";
for (size_t i = 0; i < repo_info.api_log.size(); i++) {
std::cout << repo_info.api_log[i];
}
}
if (repo_info.bio_log.size()) {
- std::cout << "\nFound " << repo_info.bio_log.size() << " instances
of redundant header inclusions in files using bio.h:\n";
+ std::cout << "\nFAILURE: found " << repo_info.bio_log.size() << "
instances of redundant header inclusions in files using bio.h:\n";
for (size_t i = 0; i < repo_info.bio_log.size(); i++) {
std::cout << repo_info.bio_log[i];
}
}
if (repo_info.bnet_log.size()) {
- std::cout << "\nFound " << repo_info.bnet_log.size() << " instances
of redundant header inclusions in files using bnetwork.h:\n";
+ std::cout << "\nFAILURE: found " << repo_info.bnet_log.size() << "
instances of redundant header inclusions in files using bnetwork.h:\n";
for (size_t i = 0; i < repo_info.bnet_log.size(); i++) {
std::cout << repo_info.bnet_log[i];
}
}
if (repo_info.common_log.size()) {
- std::cout << "\nFound " << repo_info.common_log.size() << "
instances of files using common.h with out-of-order inclusions:\n";
+ std::cout << "\nFAILURE: found " << repo_info.common_log.size() <<
" instances of files using common.h with out-of-order inclusions:\n";
for (size_t i = 0; i < repo_info.common_log.size(); i++) {
std::cout << repo_info.common_log[i];
}
}
- if (repo_info.symbol_inc_log.size()) {
- std::cout << "\nFound " << repo_info.symbol_inc_log.size() << "
instances of platform symbol usage in header files:\n";
- for (size_t i = 0; i < repo_info.symbol_inc_log.size(); i++) {
- std::cout << repo_info.symbol_inc_log[i];
+
+ if (psym_cnt > expected_psym_cnt) {
+ std::cout <<
"\n**************************************************************************\n";
+ std::cout << "FAILURE: expected " << expected_psym_cnt << "
platform symbols, found " << psym_cnt << "\n";
+ std::cout <<
"**************************************************************************\n";
+ ret = 1;
+
+ if (repo_info.symbol_inc_log.size()) {
+ std::cout << "\nFound " << repo_info.symbol_inc_log.size() << "
instances of platform symbol usage in header files:\n";
+ for (size_t i = 0; i < repo_info.symbol_inc_log.size(); i++) {
+ std::cout << repo_info.symbol_inc_log[i];
+ }
}
- }
- if (repo_info.symbol_src_log.size()) {
- std::cout << "\nFound " << repo_info.symbol_src_log.size() << "
instances of platform symbol usage in source files:\n";
- for (size_t i = 0; i < repo_info.symbol_src_log.size(); i++) {
- std::cout << repo_info.symbol_src_log[i];
+ if (repo_info.symbol_src_log.size()) {
+ std::cout << "\nFound " << repo_info.symbol_src_log.size() << "
instances of platform symbol usage in source files:\n";
+ for (size_t i = 0; i < repo_info.symbol_src_log.size(); i++) {
+ std::cout << repo_info.symbol_src_log[i];
+ }
}
- }
- if (repo_info.symbol_bld_log.size()) {
- std::cout << "\nFound " << repo_info.symbol_bld_log.size() << "
instances of platform symbol usage in build files:\n";
- for (size_t i = 0; i < repo_info.symbol_bld_log.size(); i++) {
- std::cout << repo_info.symbol_bld_log[i];
+ if (repo_info.symbol_bld_log.size()) {
+ std::cout << "\nFound " << repo_info.symbol_bld_log.size() << "
instances of platform symbol usage in build files:\n";
+ for (size_t i = 0; i < repo_info.symbol_bld_log.size(); i++) {
+ std::cout << repo_info.symbol_bld_log[i];
+ }
}
}
}
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