ENH: Refactor and enhance the CI testing infrastructure

1) Improve travis build script for use outside travis.
   Allow the script used for CI builds to also be used
   locally in a similar manner to the CI use of the scrips

2) Add ctest compatible testing and CDASH support
   Report testing and building results to
   https://my.cdash.org/index.php?project=jsoncpp

   NOTE: The new ctest infrastructure is not yet robust on winodws
         Do no yet enable the new features for running test with ctest
         on windows platform.  The previous behaviors are maintainted,
         but enhance test reporting from windows is not yet supported.

3) Add a cmake coverage testing option
   Ensure that cmake builds on linux are tested.
   Ensure that code coverage is reported.

4) Move conditional environment checking into the matrix
   Avoid multiple places where conditional logic is used to
   change compiler behavior.  As more test environments are
   created fromt the travis.yml matrix, all settings should be
   obvious from that one location.

5) Tests with known regressions from the jsonchecker are suppressed
    Tests that are known to pass with jsoncpp more lenient
    syntax enforcement are exluded from tests in test/runjsontests.py
This commit is contained in:
Hans Johnson
2019-01-12 12:32:15 -06:00
committed by Hans Johnson
parent 10a1a38b37
commit a3c8e86c0b
12 changed files with 341 additions and 55 deletions

View File

@@ -1,6 +1,6 @@
# vim: et ts=4 sts=4 sw=4 tw=0
add_executable( jsoncpp_test
add_executable( jsoncpp_test
jsontest.cpp
jsontest.h
main.cpp
@@ -31,6 +31,10 @@ if(JSONCPP_WITH_POST_BUILD_UNITTEST)
POST_BUILD
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:jsoncpp_test>)
endif()
## Create tests for dashboard submission, allows easy review of CI results https://my.cdash.org/index.php?project=jsoncpp
add_test(NAME jsoncpp_test
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:jsoncpp_test>
)
endif()
set_target_properties(jsoncpp_test PROPERTIES OUTPUT_NAME jsoncpp_test)
set_target_properties(jsoncpp_test PROPERTIES OUTPUT_NAME jsoncpp_test)