diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d5318def2b8ed3756c0e3fdb3ce6aae6d6fbaf7b..1d5d0ddd223c29ee2997006b8928ae3269901b2d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -32,7 +32,7 @@ test: - scalfmm-build.log - scalfmm.lcov - scalfmm-coverage.xml - #- scalfmm-cppcheck.xml + - scalfmm-cppcheck.xml - scalfmm-rats.xml script: - source ./Utils/scripts/analysis.sh @@ -49,4 +49,4 @@ sonar: script: - sonar-scanner -X -Dsonar.login=c1416c617418f890576a747223ac9f6cd86353d6 > sonar.log only: - - devel + - develop@solverstack/ScalFMM diff --git a/CTestConfig.cmake b/CTestConfig.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e77f07f78b817531bf9d483697c1facfade930fc --- /dev/null +++ b/CTestConfig.cmake @@ -0,0 +1,54 @@ +## This file should be placed in the root directory of your project. +## Then modify the CMakeLists.txt file in the root directory of your +## project to incorporate the testing dashboard. +## # The following are required to uses Dart and the Cdash dashboard +## ENABLE_TESTING() +## INCLUDE(CTest) +set(CTEST_PROJECT_NAME "ScalFMM") +set(CTEST_NIGHTLY_START_TIME "00:00:00 GMT") + +set(CTEST_DROP_METHOD "http") +set(CTEST_DROP_SITE "cdash.inria.fr") +set(CTEST_DROP_LOCATION "/CDash/submit.php?project=scalfmm") +set(CTEST_DROP_SITE_CDASH TRUE) + +#-------------------------------------------------------------------- +# BUILDNAME variable construction +# This variable will be used to set the build name which will appear +# on the Chameleon dashboard http://cdash.inria.fr/CDash/ +#-------------------------------------------------------------------- +# Start with the short system name, e.g. "Linux", "FreeBSD" or "Windows" +if(NOT BUILDNAME) + + set(BUILDNAME "${CMAKE_SYSTEM_NAME}") + + # Add i386 or amd64 + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(BUILDNAME "${BUILDNAME}-amd64") + else() + set(BUILDNAME "${BUILDNAME}-i386") + endif() + + # Add compiler name + get_filename_component(CMAKE_CXX_COMPILER_NAME ${CMAKE_CXX_COMPILER} NAME) + set(BUILDNAME "${BUILDNAME}-${CMAKE_CXX_COMPILER_NAME}") + + # Add the build type, e.g. "Debug, Release..." + if(CMAKE_BUILD_TYPE) + set(BUILDNAME "${BUILDNAME}-${CMAKE_BUILD_TYPE}") + endif(CMAKE_BUILD_TYPE) + + # Specific options of Scalfmm + if(SCALFMM_USE_SSE) + set(BUILDNAME "${BUILDNAME}-sse") + endif() + + if(SCALFMM_USE_BLAS) + set(BUILDNAME "${BUILDNAME}-blas") + endif() + + if(SCALFMM_USE_MPI) + set(BUILDNAME "${BUILDNAME}-mpi") + endif() + +endif() diff --git a/Utils/scripts/analysis.sh b/Utils/scripts/analysis.sh index 68a13ce6cf976ab514e10161e30cc676c4d7677d..533a80e1977ab2ceaf1823933261bdf27483b605 100644 --- a/Utils/scripts/analysis.sh +++ b/Utils/scripts/analysis.sh @@ -5,10 +5,8 @@ # build with proper options cd Build && cmake .. -DSCALFMM_USE_LOG=ON -DSCALFMM_USE_ASSERT=ON -DSCALFMM_USE_SSE=OFF -DSCALFMM_USE_BLAS=ON -DSCALFMM_USE_FFT=ON -DSCALFMM_USE_MPI=ON -DSCALFMM_BUILD_EXAMPLES=ON -DSCALFMM_BUILD_TESTS=ON -DSCALFMM_BUILD_UTESTS=ON -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_FLAGS="-O0 -g -fPIC --coverage -Wall -fdiagnostics-show-option -fno-inline" -DCMAKE_EXE_LINKER_FLAGS="--coverage" -DCMAKE_C_COMPILER=gcc-6 -DCMAKE_CXX_COMPILER=g++-6 -make -j8 | tee ../scalfmm-build.log - -# run tests -OMP_NUM_THREADS=8 ctest -V +# build and run tests + coverage + submit to cdash +OMP_NUM_THREADS=4 ctest --no-compress-output -V -j 5 -D ExperimentalBuild -D ExperimentalTest -D ExperimentalCoverage -D ExperimentalSubmit 2>&1 | tee ../scalfmm-build.log cd .. # capture coverage @@ -20,7 +18,7 @@ export SOURCES_TO_ANALYZE="Build/Src/ScalFmmConfig.h Examples Src Tests UTests" # run cppcheck analysis # commented for now because too long -# cppcheck -v -f --language=c++ --platform=unix64 --enable=all --xml --xml-version=2 --suppress=missingIncludeSystem -IBuild/Src ${SOURCES_TO_ANALYZE} 2> scalfmm-cppcheck.xml +cppcheck -v -f --language=c++ --platform=unix64 --enable=all --xml --xml-version=2 --suppress=missingIncludeSystem -IBuild/Src ${SOURCES_TO_ANALYZE} 2> scalfmm-cppcheck.xml # run rats analysis rats -w 3 --xml ${SOURCES_TO_ANALYZE} > scalfmm-rats.xml @@ -43,6 +41,6 @@ sonar.cxx.compiler.charset=UTF-8 sonar.cxx.compiler.regex=^(.*):(\\d+):\\d+: warning: (.*)\\[(.*)\\]$ sonar.cxx.compiler.reportPath=scalfmm-build.log sonar.cxx.coverage.reportPath=scalfmm-coverage.xml -#sonar.cxx.cppcheck.reportPath=scalfmm-cppcheck.xml +sonar.cxx.cppcheck.reportPath=scalfmm-cppcheck.xml sonar.cxx.rats.reportPath=scalfmm-rats.xml EOF