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

Reply via email to