diff --git a/.cmake-format.py b/.cmake-format.py index c6d5938ef6..e54ca58d3a 100644 --- a/.cmake-format.py +++ b/.cmake-format.py @@ -59,6 +59,7 @@ 'EXTRA_ARGS': '+', 'FLOAT_PRECISION': 1, 'INTEGER_PRECISION': 1, + 'LABELS': '+', 'MPI_NPROCS': 1, 'TEST_ARGS': '+'}, 'pargs': {'flags': ['NODIFF'], 'nargs': '2+'}}, diff --git a/.github/workflows/ubuntu-clang-latest.yml b/.github/workflows/ubuntu-clang-latest.yml index 2010b54dbf..57b3dfc85e 100644 --- a/.github/workflows/ubuntu-clang-latest.yml +++ b/.github/workflows/ubuntu-clang-latest.yml @@ -43,12 +43,25 @@ jobs: -D CMAKE_CXX_COMPILER=$(which clang++) \ -D SUNDIALS_LOGGING_LEVEL=${{matrix.logging_level}} \ -D ENABLE_ALL_WARNINGS=ON \ - -D ENABLE_WARNINGS_AS_ERRORS=ON + -D ENABLE_WARNINGS_AS_ERRORS=ON \ + -D SUNDIALS_TEST_DEVTESTS=ON \ + -D SUNDIALS_TEST_UNITTESTS=ON \ + -D SUNDIALS_TEST_ENABLE_GTEST=OFF \ + -D SUNDIALS_TEST_FLOAT_PRECISION=4 \ + -D SUNDIALS_TEST_INTEGER_PRECISION=10 - name: Build # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + - name: Test + # Run logging tests + run: | + ctest \ + --test-dir ${{github.workspace}}/build \ + --label-regex logging \ + --verbose + build_cycle_profiling: runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index 763405865e..fcaaffcbd6 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,6 @@ uberenv_libs # swig /swig/swig + +# tools +/tools/suntools/__pycache__ diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d7a947422..f9e1929344 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,12 @@ backends with Trilinos. As such, Trilinos 14 or newer is required and the Example programs using *hypre* have been updated to support v2.20 and newer. +The information level logging output in ARKODE, CVODE(S), and IDA(S) has been +updated to be more uniform across the packages and a new `tools` directory +has been added with a Python module, `suntools`, containing utilities for +parsing logging output. The Python utilities for parsing CSV output have been +relocated from the `scripts` directory to the Python module. + The build system has been updated to utilize the CMake LAPACK imported target which should ease building SUNDIALS with LAPACK libraries that require setting specific linker flags e.g., MKL. diff --git a/cmake/macros/SundialsAddTest.cmake b/cmake/macros/SundialsAddTest.cmake index 4b4733820e..6888571fea 100644 --- a/cmake/macros/SundialsAddTest.cmake +++ b/cmake/macros/SundialsAddTest.cmake @@ -21,7 +21,8 @@ # [ANSWER_DIR path] # [ANSWER_FIEL file] # [EXAMPLE_TYPE type] -# [TEST_ARGS arg1 arg2 ...]) +# [TEST_ARGS arg1 arg2 ...] +# [LABELS label1 label2 ...]) # ~~~ # # CMake macro to add a SUNDIALS regression test. Keyword input arguments can be @@ -46,6 +47,11 @@ # # The option EXAMPLE_TYPE set the example type i.e., release or develop examples # +# The option TEST_ARGS are command line arguments to pass to the executable +# +# The options LABELS are labels added to the test properties to easily run (or +# exclude) groups of test with ctest -L