Commit Graph

291 Commits

Author SHA1 Message Date
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
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
Niels Lohmann
0258484626
🔖 set version to 3.1.0
- updated documentation wrt. new repository layout
- temporarily switched off Homebrew --HEAD building (can only be switched on after release)
- set copyright date to 2018
2018-02-01 22:20:26 +01:00
Niels Lohmann
355c1e946b
👷 added task to check amalgamation #906
- Builds and runs test cases from individual sources rather than from amalgamation.
- Checks whether amalgamation would create the same single-header file as checked in.
2018-01-23 18:00:12 +01:00
Niels Lohmann
06cddd371b
🔨 removed failing amalgamation test 2018-01-14 17:22:42 +01:00
Niels Lohmann
411c16cbb2
📝 overworked documentation wrt. amalgamation #906 2018-01-14 13:08:28 +01:00
Niels Lohmann
7c2d4f1852
👷 added Xcode 9.1 and 9.2 2017-12-06 22:32:03 +01:00
Niels Lohmann
73d1b55aba
🔧 executing tests in parallel 2017-10-05 19:43:39 +02:00