# # this file is HEAVILY influenced by https://github.com/boostorg/hana/blob/master/.travis.yml

# dist: trusty
# language: c++

# notifications:
#   email: false
#   # gitter
#   webhooks:
#     urls: https://webhooks.gitter.im/e/10941dd1c67e5e967706
#     on_success: change
#     on_failure: always
# git:
#   depth: 500

# # both apt and ccache make the builds slower...
# #cache:
# #  - apt
# #  - ccache

# env:
#   global:
# #    - USE_CCACHE=1
# #    - CCACHE_SLOPPINESS=pch_defines,time_macros
# #    - CCACHE_COMPRESS=1
# #    - CCACHE_MAXSIZE=200M
# #    - CCACHE_CPP2=1
#     - CMAKE_OPTIONS_GLOBAL="-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"

# addons:
#   coverity_scan:
#     # COVERITY_SCAN_TOKEN added as env var in travis project
#     project:
#       name: onqtam/doctest
#     notification_email: vik.kirilov@gmail.com
#     build_command: clang++ scripts/hello_world.cpp -I doctest
#     branch_pattern: coverity_scan
#   # these apt sources will be referenced later (by using *name)
#   apt:
#     sources: &apt_sources
#       - ubuntu-toolchain-r-test
#       - llvm-toolchain-trusty
#       - llvm-toolchain-precise-3.7
#       - llvm-toolchain-trusty-3.9
#       - llvm-toolchain-trusty-4.0
#       - llvm-toolchain-trusty-5.0
#       - llvm-toolchain-trusty-6.0
#       - llvm-toolchain-trusty-7
#       - llvm-toolchain-trusty-8
#       - llvm-toolchain-trusty-9
#       - llvm-toolchain-trusty-10

# compiler: clang
# os: linux

# matrix:
#   include:
#     # coverage
#     - env: COMPILER=g++ CODE_COVERAGE=true
#       compiler: gcc
#       addons:
#         apt:
#           packages: ["lcov"]

#     # static code analysis
#     - env: COMPILER=clang++-4.0 STATIC_CODE_ANALYSIS=true
#       addons: &static_analysis
#         apt:
#           packages: ["clang-4.0", "clang-tidy-4.0", "cppcheck"]
#           sources: *apt_sources

#     # GCC 4.8
#     - env: COMPILER=g++-4.8 HAS_ASAN=true SANITIZER_CXX_FLAGS="-fuse-ld=gold -static-libasan" TSAN_CXX_FLAGS="-ltsan" # TSAN broken for some time - seg faults
#       compiler: gcc
#       addons: &gcc48
#         apt:
#           packages: ["g++-4.8", "valgrind", "libc6-dbg", "linux-libc-dev"]
#           sources: *apt_sources

#     # GCC 4.9
#     - env: COMPILER=g++-4.9 HAS_ASAN=true HAS_UBSAN=true SANITIZER_CXX_FLAGS="-fuse-ld=gold -static-libasan" TSAN_CXX_FLAGS="-ltsan" # TSAN broken for some time - seg faults
#       compiler: gcc
#       addons: &gcc49
#         apt:
#           packages: ["g++-4.9", "valgrind", "libc6-dbg", "linux-libc-dev"]
#           sources: *apt_sources

#     # GCC 5
#     - env: COMPILER=g++-5 HAS_ASAN=true HAS_UBSAN=true SANITIZER_CXX_FLAGS="-fuse-ld=gold -static-libasan" TSAN_CXX_FLAGS="-ltsan" # TSAN broken for some time - seg faults
#       compiler: gcc
#       addons: &gcc5
#         apt:
#           packages: ["g++-5",   "valgrind", "libc6-dbg", "linux-libc-dev"]
#           sources: *apt_sources

#     # GCC 6
#     - env: COMPILER=g++-6 HAS_ASAN=true HAS_UBSAN=true SANITIZER_CXX_FLAGS="-fuse-ld=gold -static-libasan" TSAN_CXX_FLAGS="-ltsan" # TSAN broken for some time - seg faults
#       compiler: gcc
#       addons: &gcc6
#         apt:
#           packages: ["g++-6",   "valgrind", "libc6-dbg", "linux-libc-dev"]
#           sources: *apt_sources

#     # GCC 7
#     - env: COMPILER=g++-7 HAS_ASAN=true HAS_UBSAN=true SANITIZER_CXX_FLAGS="-fuse-ld=gold -static-libasan" TSAN_CXX_FLAGS="-ltsan" # TSAN broken for some time - seg faults
#       compiler: gcc
#       sudo: required      # see this issue for more details: https://github.com/travis-ci/travis-ci/issues/9033
#       addons: &gcc7
#         apt:
#           packages: ["g++-7",   "valgrind", "libc6-dbg", "linux-libc-dev"]
#           sources: *apt_sources

#     # GCC 8
#     - env: COMPILER=g++-8 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true SANITIZER_CXX_FLAGS="-fuse-ld=gold -static-libasan" TSAN_CXX_FLAGS="-ltsan"
#       compiler: gcc
#       sudo: required      # see this issue for more details: https://github.com/travis-ci/travis-ci/issues/9033
#       addons: &gcc8
#         apt:
#           packages: ["g++-8",   "valgrind", "libc6-dbg", "linux-libc-dev"]
#           sources: *apt_sources

#     # GCC 9
#     - env: COMPILER=g++-9 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true SANITIZER_CXX_FLAGS="-fuse-ld=gold -static-libasan" TSAN_CXX_FLAGS="-ltsan"
#       compiler: gcc
#       sudo: required      # see this issue for more details: https://github.com/travis-ci/travis-ci/issues/9033
#       addons: &gcc9
#         apt:
#           packages: ["g++-9",   "valgrind", "libc6-dbg", "linux-libc-dev"]
#           sources: *apt_sources

#     # GCC 10
#     - env: COMPILER=g++-10 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true SANITIZER_CXX_FLAGS="-fuse-ld=gold -static-libasan" TSAN_CXX_FLAGS="-ltsan"
#       compiler: gcc
#       sudo: required      # see this issue for more details: https://github.com/travis-ci/travis-ci/issues/9033
#       addons: &gcc10
#         apt:
#           packages: ["g++-10",   "valgrind", "libc6-dbg", "linux-libc-dev"]
#           sources: *apt_sources

#     # Clang 3.5
#     - env: COMPILER=clang++-3.5 HAS_ASAN=true HAS_UBSAN=true # no HAS_TSAN - see errors: https://travis-ci.org/onqtam/doctest/builds/417926743
#       addons: &clang35
#         apt:
#           packages: ["clang-3.5", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Clang 3.6
#     - env: COMPILER=clang++-3.6 HAS_ASAN=true HAS_UBSAN=true # no HAS_TSAN - see errors: https://travis-ci.org/onqtam/doctest/builds/417926743
#       addons: &clang36
#         apt:
#           packages: ["clang-3.6", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Clang 3.7
#     - env: COMPILER=clang++-3.7
#       addons: &clang37
#         apt:
#           packages: ["clang-3.7", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Clang 3.8
#     - env: COMPILER=clang++-3.8 HAS_ASAN=true HAS_UBSAN=true # no HAS_TSAN - see errors: https://travis-ci.org/onqtam/doctest/builds/417926743
#       addons: &clang38
#         apt:
#           packages: ["clang-3.8", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Clang 3.9
#     - env: COMPILER=clang++-3.9 # no HAS_ASAN/HAS_UBSAN - see errors: https://travis-ci.org/onqtam/doctest/jobs/386263910
#       addons: &clang39
#         apt:
#           packages: ["clang-3.9", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Clang 4.0
#     - env: COMPILER=clang++-4.0 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true
#       sudo: required      # see this issue for more details: https://github.com/travis-ci/travis-ci/issues/9033
#       addons: &clang40
#         apt:
#           packages: ["clang-4.0", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Clang 5.0
#     - env: COMPILER=clang++-5.0 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true
#       sudo: required      # see this issue for more details: https://github.com/travis-ci/travis-ci/issues/9033
#       addons: &clang50
#         apt:
#           packages: ["clang-5.0", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Clang 6.0
#     - env: COMPILER=clang++-6.0 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true
#       sudo: required # see this issue for more details: https://github.com/travis-ci/travis-ci/issues/9033
#       addons: &clang60
#         apt:
#           packages: ["clang-6.0", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Clang 7
#     - env: COMPILER=clang++-7 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true
#       sudo: required # see this issue for more details: https://github.com/travis-ci/travis-ci/issues/9033
#       addons: &clang7
#         apt:
#           packages: ["clang-7", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Clang 8
#     - env: COMPILER=clang++-8 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true
#       sudo: required # see this issue for more details: https://github.com/travis-ci/travis-ci/issues/9033
#       addons: &clang8
#         apt:
#           packages: ["clang-8", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Clang 9
#     - env: COMPILER=clang++-9 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true
#       sudo: required # see this issue for more details: https://github.com/travis-ci/travis-ci/issues/9033
#       addons: &clang9
#         apt:
#           packages: ["clang-9", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Clang 10
#     - env: COMPILER=clang++-10 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true
#       sudo: required # see this issue for more details: https://github.com/travis-ci/travis-ci/issues/9033
#       addons: &clang9
#         apt:
#           packages: ["clang-10", "valgrind", "libc6-dbg", "g++-6"]
#           sources: *apt_sources

#     # Xcode 9.4 Clang
#     - env: COMPILER=clang++ HAS_UBSAN=true HAS_TSAN=true # no HAS_ASAN - errors since using thread_local even in single-threaded cases - see errors: https://travis-ci.org/onqtam/doctest/builds/417181981
#       osx_image: xcode9.4
#       os: osx

#     # Xcode 10.0 Clang
#     - env: COMPILER=clang++ HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true
#       osx_image: xcode10
#       os: osx

#     # Xcode 10.2 Clang
#     - env: COMPILER=clang++ HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true
#       osx_image: xcode10.2
#       os: osx

#     # Xcode 11.2 Clang
#     - env: COMPILER=clang++ HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true
#       osx_image: xcode11.2
#       os: osx

#     # OSX LLVM-GCC
#     - env: COMPILER=g++ HAS_ASAN=true HAS_TSAN=true
#       compiler: gcc
#       osx_image: xcode10
#       os: osx

#   allow_failures:

#     # static code analysis
#     - env: COMPILER=clang++-4.0 STATIC_CODE_ANALYSIS=true

#     # seems to not be present yet: https://travis-ci.org/github/onqtam/doctest/jobs/688097537
#     # GCC 10
#     - env: COMPILER=g++-10 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true SANITIZER_CXX_FLAGS="-fuse-ld=gold -static-libasan" TSAN_CXX_FLAGS="-ltsan"
#       compiler: gcc
#       sudo: required

#     # Clang 10
#     - env: COMPILER=clang++-10 HAS_ASAN=true HAS_UBSAN=true HAS_TSAN=true
#       sudo: required

# install:
#   - if [[ "${CODE_COVERAGE}" == "true" ]]; then gem install coveralls-lcov ; fi

#   ############################################################################
#   # All the dependencies are installed in ${TRAVIS_BUILD_DIR}/deps/
#   ############################################################################

#   # Make a dir for all
#   - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
#   - mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR}

#   # Install a recent CMake
#   - |
#     if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
#       CMAKE_URL="http://www.cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.tar.gz"
#       mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
#       export PATH=${DEPS_DIR}/cmake/bin:${PATH}
#     fi

#   # Install OCLint
#   - |
#     if [[ "${STATIC_CODE_ANALYSIS}" = "true" ]]; then
#       OCLINT_URL="https://github.com/oclint/oclint/releases/download/v0.12/oclint-0.12-x86_64-linux-3.13.0-112-generic.tar.gz"
#       mkdir oclint && travis_retry wget --no-check-certificate --quiet -O - ${OCLINT_URL} | tar --strip-components=1 -xz -C oclint
#       export PATH=${DEPS_DIR}/oclint/bin:${PATH}
#     fi

#   # Go back to ${TRAVIS_BUILD_DIR}
#   - cd ${TRAVIS_BUILD_DIR}

#   ############################################################################
#   # Install stuff with homebrew under OSX
#   ############################################################################

#   - |
#     if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
#       brew update
#       # brew install ccache
#       # brew install valgrind
#       # cmake
#       if brew list -1 | grep -q "^cmake\$"; then
#         brew outdated cmake || brew upgrade cmake
#       else
#         brew install cmake
#       fi
#     fi

#   - export CXX="${COMPILER}"
# #  - export CXX="ccache ${COMPILER}"
# #  - ccache -s

# before_script:
#   - ${CXX} --version

# script:
#   # coverage
#   - |
#     if [[ "${CODE_COVERAGE}" = "true" ]]; then
#       cmake ${CMAKE_OPTIONS_GLOBAL} ${CMAKE_OPTIONS} -DCMAKE_CXX_COMPILER=${CXX} -DCMAKE_CXX_FLAGS="-fprofile-arcs -ftest-coverage -std=c++0x" -DCMAKE_BUILD_TYPE=Debug . || exit 1
#       make -k -j2 || exit 1
#       ctest -j2 --output-on-failure || exit 1

#       lcov -d . -c -o coverage.info                                      # parse coverage data
#       lcov -r coverage.info "/usr*"                     -o coverage.info # remove data for system headers
#       lcov -r coverage.info "$(readlink -f examples)/*" -o coverage.info # remove data for .cpp files
#       lcov -r coverage.info "$(readlink -f scripts)/*"  -o coverage.info # remove data for .cpp files
#       lcov -l coverage.info                                              # just list a short summary of the results
#       coveralls-lcov --repo-token=${COVERALLS_REPO_TOKEN} coverage.info  # upload results

#       # do not continue with other build configurations after that
#       exit
#     fi

#   # static code analysis
#   - |
#     if [[ "${STATIC_CODE_ANALYSIS}" = "true" ]]; then
#       # setup a test file "doctest.cpp" that is the header + a test case at the end
#       echo "#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN\n" >> doctest.cpp
#       cat doctest/doctest.h >> doctest.cpp
#       echo -e "TEST_CASE(\"\") {\n\tint a = 6;\n\tSUBCASE(\"\") a = 5;\n\tCAPTURE(a);\n\tCHECK(a == 6);\n}\n" >> doctest.cpp

#       # cppcheck
#       cppcheck doctest.cpp --enable=all --suppress=unmatchedSuppression --suppress=missingIncludeSystem --suppress=unusedFunction --suppress=functionConst --inline-suppr --platform=unix64 --inconclusive --std=posix --inconclusive -v --error-exitcode=1 --template "{file}({line}): {severity} ({id}): {message}"

#       # oclint
#       oclint doctest.cpp -disable-rule=ShortVariableName -disable-rule=LongLine -disable-rule=LongMethod -disable-rule=HighNcssMethod -disable-rule=LongVariableName -disable-rule=HighCyclomaticComplexity -disable-rule=HighNPathComplexity -disable-rule=UnusedLocalVariable -disable-rule=DoubleNegative -disable-rule=MultipleUnaryOperator -disable-rule=DeepNestedBlock || exit 1

#       # clang-tidy
#       cd scripts/playground
#       cmake ${CMAKE_OPTIONS_GLOBAL} ${CMAKE_OPTIONS} -DCMAKE_CXX_COMPILER=${CXX} . || exit 1
#       clang-tidy-4.0 -std=c++11 -p=. *.cpp -header-filter=.* -warnings-as-errors=* -checks='*,-misc-misplaced-widening-cast,-misc-macro-parentheses,-misc-definitions-in-headers,-misc-unused-parameters,-llvm-header-guard,-llvm-include-order,-google-readability-braces-around-statements,-google-runtime-references,-google-readability-todo,-google-build-using-namespace,-google-explicit-constructor,-cert-err58-cpp,-cppcoreguidelines-pro-type-vararg,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-special-member-functions,-cppcoreguidelines-pro-type-reinterpret-cast,-cppcoreguidelines-pro-bounds-constant-array-index,-cppcoreguidelines-pro-type-member-init,-cppcoreguidelines-pro-type-union-access,-clang-analyzer-security.insecureAPI.strcpy,-modernize-loop-convert,-modernize-use-auto,-modernize-use-bool-literals,-readability-braces-around-statements,-readability-named-parameter,-readability-else-after-return,-readability-redundant-declaration,-readability-implicit-bool-cast,-clang-diagnostic-variadic-macros,-clang-diagnostic-c++11-compat' || exit 1

#       # do not continue with other build configurations after that
#       exit
#     fi

#   # initial run with options
#   - cmake ${CMAKE_OPTIONS_GLOBAL} ${CMAKE_OPTIONS} -DCMAKE_CXX_COMPILER=${CXX} .

#   # set the common CXX flags
#   - export CXX_FLAGS="${CXX_FLAGS} -std=c++0x"

#   # debug
#   - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" .
#   - make clean && make -k -j2
#   - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DDOCTEST_TEST_MODE=VALGRIND . && ctest -j2 --output-on-failure ; fi
#   - cmake -DDOCTEST_TEST_MODE=COMPARE . && ctest -j2 --output-on-failure
#   # release
#   - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" .
#   - make clean && make -k -j2
#   - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DDOCTEST_TEST_MODE=VALGRIND . && ctest -j2 --output-on-failure ; fi
#   - cmake -DDOCTEST_TEST_MODE=COMPARE . && ctest -j2 --output-on-failure

#   # sanitizers - again Debug/Release configs through address/undefined/thread sanitizers
#   # on separate commands because when something fails I want to see which one exactly
#   - cmake -DDOCTEST_TEST_MODE=NORMAL .

#   - export ASAN_OPTIONS=verbosity=2:strict_string_checks=true:detect_odr_violation=2:detect_stack_use_after_return=true:check_initialization_order=true:strict_init_order=true
#   - if [[ "${HAS_ASAN}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="${CXX_FLAGS} ${SANITIZER_CXX_FLAGS} -g -fno-omit-frame-pointer -fsanitize=address"                             . && make clean && make -k -j2 && ctest -j2 --output-on-failure ; fi
#   - if [[ "${HAS_ASAN}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="${CXX_FLAGS} ${SANITIZER_CXX_FLAGS} -g -fno-omit-frame-pointer -fsanitize=address"                             . && make clean && make -k -j2 && ctest -j2 --output-on-failure ; fi

#   - export UBSAN_OPTIONS=verbosity=2
#   - if [[ "${HAS_UBSAN}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="${CXX_FLAGS} ${SANITIZER_CXX_FLAGS} -g -fno-omit-frame-pointer -fsanitize=undefined"                           . && make clean && make -k -j2 && ctest -j2 --output-on-failure ; fi
#   - if [[ "${HAS_UBSAN}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="${CXX_FLAGS} ${SANITIZER_CXX_FLAGS} -g -fno-omit-frame-pointer -fsanitize=undefined"                           . && make clean && make -k -j2 && ctest -j2 --output-on-failure ; fi

#   - export TSAN_OPTIONS=verbosity=2:force_seq_cst_atomics=1
#   - if [[ "${HAS_TSAN}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="${CXX_FLAGS} ${SANITIZER_CXX_FLAGS} -g -fno-omit-frame-pointer -fsanitize=thread -pie -fPIE ${TSAN_CXX_FLAGS}" . && make clean && make -k -j2 && ctest -j2 --output-on-failure ; fi
#   - if [[ "${HAS_TSAN}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="${CXX_FLAGS} ${SANITIZER_CXX_FLAGS} -g -fno-omit-frame-pointer -fsanitize=thread -pie -fPIE ${TSAN_CXX_FLAGS}" . && make clean && make -k -j2 && ctest -j2 --output-on-failure ; fi

#   # test without rtti - just Debug
#   - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="${CXX_FLAGS} -fno-rtti" .
#   - make clean && make -k -j2
#   - cmake -DDOCTEST_TEST_MODE=COMPARE . && ctest -j2 --output-on-failure

#   # test only compilation without exceptions - just Debug
#   - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="${CXX_FLAGS} -fno-exceptions -DDOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS" .
#   - make clean && make -k -j2

# #  - ccache -s

# #after_script:
# #  - cat compile_commands.json
