Commit graph

297 commits

Author SHA1 Message Date
Niels Lohmann f268035946
👷 consolidate CI 2021-03-28 13:37:04 +02:00
Niels Lohmann 1f1fa9f30e
🔥 remove some Travis builds 2021-03-27 14:44:39 +01:00
Alexander Karzhenkov bf75a1b91d Merge branch 'develop' into #2375
# Conflicts:
#	.travis.yml
2021-03-24 20:33:35 +05:00
Niels Lohmann 6f551930e5
🚨 add new CI and fix warnings (#2561)
* ⚗️ move CI targets to CMake
* ♻️ add target for cpplint
* ♻️ add target for self-contained binaries
* ♻️ add targets for iwyu and infer
* 🔊 add version output
* ♻️ add target for oclint
* 🚨 fix warnings
* ♻️ rename targets
* ♻️ use iwyu properly
* 🚨 fix warnings
* ♻️ use iwyu properly
* ♻️ add target for benchmarks
* ♻️ add target for CMake flags
* 👷 use GitHub Actions
* ⚗️ try to install Clang 11
* ⚗️ try to install GCC 11
* ⚗️ try to install Clang 11
* ⚗️ try to install GCC 11
* ⚗️ add clang analyze target
* 🔥 remove Google Benchmark
* ⬆️ Google Benchmark 1.5.2
* 🔥 use fetchcontent
* 🐧 add target to download a Linux version of CMake
* 🔨 fix dependency
* 🚨 fix includes
* 🚨 fix comment
* 🔧 adjust flags for GCC 11.0.0 20210110 (experimental)
* 🐳 user Docker image to run CI
* 🔧 add target for Valgrind
* 👷 add target for Valgrind tests
* ⚗️ add Dart
*  remove Dart
* ⚗️ do not call ctest in test subdirectory
* ⚗️ download test data explicitly
* ⚗️ only execute Valgrind tests
* ⚗️ fix labels
* 🔥 remove unneeded jobs
* 🔨 cleanup
* 🐛 fix OCLint call
*  add targets for offline and git-independent tests
*  add targets for C++ language versions and reproducible tests
* 🔨 clean up
* 👷 add CI steps for cppcheck and cpplint
* 🚨 fix warnings from Clang-Tidy
* 👷 add CI steps for Clang-Tidy
* 🚨 fix warnings
* 🔧 select proper binary
* 🚨 fix warnings
* 🚨 suppress some unhelpful warnings
* 🚨 fix warnings
* 🎨 fix format
* 🚨 fix warnings
* 👷 add CI steps for Sanitizers
* 🚨 fix warnings
*  add optimization to sanitizer build
* 🚨 fix warnings
* 🚨 add missing header
* 🚨 fix warnings
* 👷 add CI step for coverage
* 👷 add CI steps for disabled exceptions and implicit conversions
* 🚨 fix warnings
* 👷 add CI steps for checking indentation
* 🐛 fix variable use
* 💚 fix build
*  remove CircleCI
* 👷 add CI step for diagnostics
* 🚨 fix warning
* 🔥 clean Travis
2021-03-24 07:15:18 +01:00
Alexander Karzhenkov 903b8a6e04 Build as "Debug" for coverage test 2020-12-26 21:14:16 +05:00
Alexander Karzhenkov 10db9184a3 Configure Travis to build "Release" instead of "Debug" 2020-12-23 20:56:13 +05:00
Alexander Karzhenkov 7092890ff1 Properly select the build type for Travis 2020-12-22 18:24:00 +05:00
Alexander Karzhenkov 9493f4beb1 Advance gcc library version for clang++-7 2020-12-20 23:50:28 +05:00
Alexander Karzhenkov aae0e4959e Fix travis configuration to enable C++17 tests 2020-12-20 10:18:41 +05:00
Niels Lohmann fc4040ce9d
🔨 clean up CI 2020-12-12 14:09:50 +01:00
Théo DELRIEU 797329315a
add a CI job for explicit conversions on every os 2020-07-22 10:49:01 +02:00
Niels Lohmann a244531627
♻️ overwork Travis YAML 2020-07-12 15:33:16 +02:00
Niels Lohmann 2edb5cb999
👷 fix -DJSON_BuildTests=On parameter placement 2020-05-28 13:46:47 +02:00
Niels Lohmann 325e8ab8ab
🔧 explicitly switch on tests in CI 2020-05-27 13:22:14 +02:00
Niels Lohmann 66dfa22de2
⚗️ try to fix SSL issue 2020-05-11 14:24:38 +02:00
Niels Lohmann 0ad595709d
⚗️ try to fix SSL issue 2020-05-11 13:40:43 +02:00
Niels Lohmann cbb2d4e4d8
⚗️ try to fix SSL issue 2020-05-11 13:29:40 +02:00
Niels Lohmann 8389c1961b
⚗️ try to fix SSL issue 2020-05-11 13:19:22 +02:00
Niels Lohmann 19b21e61e5
⚗️ try to fix SSL issue 2020-05-11 13:05:53 +02:00
Niels Lohmann 697305819f
⚗️ try to fix SSL issue 2020-05-11 12:37:24 +02:00
Niels Lohmann 18cbcc4135
⚗️ try to fix SSL issue 2020-05-11 12:25:41 +02:00
Niels Lohmann c6b298799a
👷 remove failing Travis workers 2020-04-07 09:09:44 +02:00
Niels Lohmann 28b1448508
👷 add Xcode 11.2.1
https://twitter.com/travisci/status/1197625080119021568
2019-11-21 22:22:06 +01:00
Niels Lohmann e779714dd8
👷 add Xcode 10.2 2019-11-03 20:45:21 +01:00
Thomas Braun 6d701b29df .travis.yml: Increase the timeout to 45 minutes
The clang sanitizer tests, and there especially the unicode tests, can
hit the default timeout of 25 minutes (1500 seconds) quite easily, so
let's raise the timeout to 45 minutes (2700 seconds).
2019-09-03 13:32:25 +02:00
Thomas Braun 9ea3e19121 .travis/cmake: Rework clang sanitizer invocation
- Switch to clang-7
- Adapt PATH so that llvm-symbolizer can be found for useful stacktraces
- Adapt compile flags
  "-O0" ensures much faster compile times
  "-fno-sanitize-recover=all
  -fsanitize-recover=unsigned-integer-overflow" this fails the build on
  all issues except unsigned integer overflows. Not failing in this case
  is required in combination with the sanitizer suppression file as only
  recoverable errors can be suppressed.

The UBSAN suppression file ignores errors from stl_bvector.h (which
holds std::vector<bool>).

Clang reports that error as

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h:158:20 in

      Start 34: test-deserialization_all
28/88 Test #71: test-testsuites_default .............***Failed    0.32 sec
/usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h:158:20: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned int'
    #0 0x628f72 in std::_Bit_iterator_base::_M_bump_down() /usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h:158:20
    #1 0x628d16 in std::_Bit_iterator::operator--() /usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h:251:7
    #2 0x634aac in std::vector<bool, std::allocator<bool> >::pop_back() /usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h:1010:7
    #3 0x61eff0 in bool nlohmann::detail::parser<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> >::sax_parse_internal<nlohmann::detail::json_sax_dom_parser<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> > >(nlohmann::detail::json_sax_dom_parser<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> >*) /home/firma/devel/json/include/nlohmann/detail/input/parser.hpp:439:28
    #4 0x604864 in nlohmann::detail::parser<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> >::parse(bool, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>&) /home/firma/devel/json/include/nlohmann/detail/input/parser.hpp:116:13
    #5 0x5f8079 in nlohmann::operator>>(std::istream&, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>&) /home/firma/devel/json/include/nlohmann/json.hpp:6356:42
    #6 0x5e1d92 in _DOCTEST_ANON_FUNC_21() /home/firma/devel/json/test/src/unit-testsuites.cpp:343:9
    #7 0x7207fe in doctest::Context::run() /home/firma/devel/json/test/thirdparty/doctest/doctest.h:5938:21
    #8 0x72681a in main /home/firma/devel/json/test/thirdparty/doctest/doctest.h:6016:71
    #9 0x7f75d22362e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
    #10 0x4c28b9 in _start (/home/firma/devel/json/build/test/test-testsuites+0x4c28b9)

The pop_back() in parser.hpp

      assert(not states.empty());
  ->  states.pop_back();

triggers the UBSAN report. But the assertion above ensure that we only
call pop_back() on an non-empty vector, therefore this is a STL library
bug and thus must be ignored for us.
2019-09-03 13:22:03 +02:00
Thomas Braun a4eaaa56d1 .travis.yml: Add gcc 9 and compile with experimental C++20 support 2019-08-26 12:38:36 +02:00
Niels Lohmann 02b3494711
🔥 removing unstable macOS builds on Traivs 2019-03-16 08:28:44 +01:00
Niels Lohmann 670f42b561
🔥 removing Xcode 6.4 builder 2019-03-11 22:59:22 +01:00
Niels Lohmann c11bead2ae
👷 removing more retired Travis images 2019-03-11 21:22:30 +01:00
Niels Lohmann 16d9cdce45
📝 updated documentation of CI 2019-03-11 15:19:50 +01:00
Niels Lohmann e3729ba0a5
💚 fix compiler selection 2019-03-11 07:44:40 +01:00
Niels Lohmann e5c7fd488d
👷 trying new Travis workers 2019-03-10 22:56:14 +01:00
Henry Fredrick Schreiner 7a37ba0c02 Adding 4.8 test to travis 2018-09-27 22:31:39 +02:00
Niels Lohmann 4e2f35d4c2
👷 adding Xcode 10 worker
See https://blog.travis-ci.com/2018-09-13-xcode-10-is-now-available?utm_source=twitter&utm_medium=web&utm_campaign=xcode10_gm
2018-09-18 19:22:30 +02:00
Niels Lohmann ba4a19d4af
👷 added more CI workers 2018-08-01 20:59:58 +02:00
Niels Lohmann 043eff5ba8
👷 added more CI workers 2018-07-31 21:18:33 +02:00
Niels Lohmann c02a3155d4
👷 added Xcode 9.3 builder
See https://blog.travis-ci.com/2018-04-09-say-bonjour-to-xcode-93-and-macos-high-sierra.
2018-04-10 08:39:28 +02:00
Kevin Tonon a35d414c39 Update CMake to latest on Travis 2018-04-03 08:28:07 -04:00
Théo DELRIEU 41db7cd818
Make the coveralls job use the multiple header version 2018-02-12 10:23:33 +01:00
Niels Lohmann 74675dd69c
back to the original version 2018-02-09 22:40:52 +01:00
Niels Lohmann ab05df3a48
🔨 another try 2018-02-09 22:27:08 +01:00
Niels Lohmann b455154cc9
🔨 another try 2018-02-09 22:18:51 +01:00
Niels Lohmann 1e8f4d6ab3
🔨 more trying 2018-02-09 22:11:05 +01:00
Niels Lohmann 316634e129
🔨 added quotes around parameters 2018-02-09 21:54:32 +01:00
Niels Lohmann 0111f3187e
🔨 working on #953 2018-02-09 21:30:15 +01:00
Niels Lohmann 3a887dc9fe
👷 fixed coveralls 2018-02-02 07:56:30 +01:00
Niels Lohmann 5c2a0a511e
👷 fixed coveralls 2018-02-02 07:31:57 +01:00
Niels Lohmann b779666916
👷 re-added homebrew tests 2018-02-02 00:20:04 +01:00
Niels Lohmann a8fcfd9880
👷 fixed travis file 2018-02-01 22:34:14 +01:00