diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index ea57e6505..eba242872 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -35,7 +35,7 @@ There are currently two files which need to be edited: To run [`re2c`](http://re2c.org) and generate/overwrite file `src/json.hpp` with your changes in file `src/json.hpp.re2c`. -2. [`test/unit.cpp`](https://github.com/nlohmann/json/blob/master/test/unit.cpp) - This contains the [Catch](https://github.com/philsquared/Catch) unit tests which currently cover [100 %](https://coveralls.io/github/nlohmann/json) of the library's code. +2. [`test/src/unit.cpp`](https://github.com/nlohmann/json/blob/master/test/unit.cpp) - This contains the [Catch](https://github.com/philsquared/Catch) unit tests which currently cover [100 %](https://coveralls.io/github/nlohmann/json) of the library's code. If you add or change a feature, please also add a unit test to this file. The unit tests can be compiled with diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 27920581c..49d166595 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -14,7 +14,7 @@ There are currently two files which need to be edited: To run [`re2c`](http://re2c.org) and generate/overwrite file `src/json.hpp` with your changes in file `src/json.hpp.re2c`. -2. [`test/unit.cpp`](https://github.com/nlohmann/json/blob/master/test/unit.cpp) - This contains the [Catch](https://github.com/philsquared/Catch) unit tests which currently cover [100 %](https://coveralls.io/github/nlohmann/json) of the library's code. +2. [`test/src/unit.cpp`](https://github.com/nlohmann/json/blob/master/test/unit.cpp) - This contains the [Catch](https://github.com/philsquared/Catch) unit tests which currently cover [100 %](https://coveralls.io/github/nlohmann/json) of the library's code. If you add or change a feature, please also add a unit test to this file. The unit tests can be compiled with diff --git a/.travis.yml b/.travis.yml index d1748dff5..1ada0084c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ matrix: - touch src/json.hpp - make json_unit CXXFLAGS="-fprofile-arcs -ftest-coverage -std=c++11 -lstdc++" CXX=$COMPILER - ./json_unit "*" - - coveralls --exclude test/catch.hpp --exclude test/unit.cpp --include src/json.hpp --gcov-options '\-lp' --gcov 'gcov-4.9' + - coveralls --exclude test/src/catch.hpp --exclude test/src/unit.cpp --include src/json.hpp --gcov-options '\-lp' --gcov 'gcov-4.9' env: COMPILER=g++-4.9 - os: linux diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ae1d8bb5..18e9c651f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,12 @@ cmake_minimum_required(VERSION 3.0) # define the project -project(json VERSION 2.0.0 LANGUAGES CXX) +project(nlohmann_json VERSION 2.0.0 LANGUAGES CXX) + +option(BuildTests "Build the unit tests" ON) # define project variables set(JSON_TARGET_NAME ${PROJECT_NAME}) -set(JSON_UNITTEST_TARGET_NAME "json_unit") set(JSON_PACKAGE_NAME ${JSON_TARGET_NAME}) set(JSON_TARGETS_FILENAME "${JSON_PACKAGE_NAME}Targets.cmake") set(JSON_CONFIG_FILENAME "${JSON_PACKAGE_NAME}Config.cmake") @@ -20,15 +21,9 @@ target_include_directories(${JSON_TARGET_NAME} INTERFACE $) # create and configure the unit test target -add_executable(${JSON_UNITTEST_TARGET_NAME} - "test/catch.hpp" "test/unit.cpp") -set_target_properties(${JSON_UNITTEST_TARGET_NAME} PROPERTIES - CXX_STANDARD 11 - CXX_STANDARD_REQUIRED ON - COMPILE_DEFINITIONS "$<$:_SCL_SECURE_NO_WARNINGS>" - COMPILE_OPTIONS "$<$:/EHsc;$<$:/Od>>") -target_include_directories(${JSON_UNITTEST_TARGET_NAME} PRIVATE "test") -target_link_libraries(${JSON_UNITTEST_TARGET_NAME} ${JSON_TARGET_NAME}) +if (BuildTests) + add_subdirectory(test) +endif() # generate a config and config version file for the package include(CMakePackageConfigHelpers) diff --git a/Makefile b/Makefile index d0a80379c..6fdc06b9d 100644 --- a/Makefile +++ b/Makefile @@ -19,8 +19,8 @@ clean: # additional flags FLAGS = -Wall -Wextra -pedantic -Weffc++ -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wmissing-declarations -Wmissing-include-dirs -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion -Wsign-promo -Wstrict-overflow=5 -Wswitch -Wundef -Wno-unused -Wnon-virtual-dtor -Wreorder -Wdeprecated -Wfloat-equal -# build unit tests -json_unit: test/unit.cpp src/json.hpp test/catch.hpp +# build unit tests (TODO: Does this want its own makefile?) +json_unit: test/src/unit.cpp src/json.hpp test/src/catch.hpp $(CXX) -std=c++11 $(CXXFLAGS) $(FLAGS) $(CPPFLAGS) -I src -I test $< $(LDFLAGS) -o $@ @@ -43,11 +43,11 @@ fuzz_testing: mkdir -p fuzz-testing fuzz-testing/testcases fuzz-testing/out $(MAKE) fuzz CXX=afl-clang++ mv fuzz fuzz-testing - find test/json_tests -size -5k -name *json | xargs -I{} cp "{}" fuzz-testing/testcases + find test/data/json_tests -size -5k -name *json | xargs -I{} cp "{}" fuzz-testing/testcases @echo "Execute: afl-fuzz -i fuzz-testing/testcases -o fuzz-testing/out fuzz-testing/fuzz" # the fuzzer binary -fuzz: test/fuzz.cpp src/json.hpp +fuzz: test/src/fuzz.cpp src/json.hpp $(CXX) -std=c++11 $(CXXFLAGS) $(FLAGS) $(CPPFLAGS) -I src $< $(LDFLAGS) -o $@ @@ -75,7 +75,7 @@ pretty: --indent-col1-comments --pad-oper --pad-header --align-pointer=type \ --align-reference=type --add-brackets --convert-tabs --close-templates \ --lineend=linux --preserve-date --suffix=none --formatted \ - src/json.hpp src/json.hpp.re2c test/unit.cpp test/fuzz.cpp benchmarks/benchmarks.cpp doc/examples/*.cpp + src/json.hpp src/json.hpp.re2c test/src/unit.cpp test/src/fuzz.cpp benchmarks/benchmarks.cpp doc/examples/*.cpp ########################################################################## diff --git a/README.md b/README.md index c9f3a713a..46ede2495 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ There are myriads of [JSON](http://json.org) libraries out there, and each may e - **Trivial integration**. Our whole code consists of a single header file `json.hpp`. That's it. No library, no subproject, no dependencies, no complex build system. The class is written in vanilla C++11. All in all, everything should require no adjustment of your compiler flags or project settings. -- **Serious testing**. Our class is heavily [unit-tested](https://github.com/nlohmann/json/blob/master/test/unit.cpp) and covers [100%](https://coveralls.io/r/nlohmann/json) of the code, including all exceptional behavior. Furthermore, we checked with [Valgrind](http://valgrind.org) that there are no memory leaks. +- **Serious testing**. Our class is heavily [unit-tested](https://github.com/nlohmann/json/blob/master/test/src/unit.cpp) and covers [100%](https://coveralls.io/r/nlohmann/json) of the code, including all exceptional behavior. Furthermore, we checked with [Valgrind](http://valgrind.org) that there are no memory leaks. Other aspects were not so important to us: diff --git a/appveyor.yml b/appveyor.yml index aaf9c5f1a..63902ced4 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,5 +7,5 @@ build_script: - cmake . -G "Visual Studio 14 2015" - cmake --build . --config Release test_script: -- Release\json_unit.exe -- Release\json_unit.exe "*" +- test\Release\json_unit.exe +- test\Release\json_unit.exe "*" diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 000000000..b63e5a394 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,21 @@ +# The unit test executable. +add_executable(json_unit + "src/catch.hpp" + "src/unit.cpp" +) + +set_target_properties(json_unit PROPERTIES + CXX_STANDARD 11 + CXX_STANDARD_REQUIRED ON + COMPILE_DEFINITIONS "$<$:_SCL_SECURE_NO_WARNINGS>" + COMPILE_OPTIONS "$<$:/EHsc;$<$:/Od>>" +) + +# Install the test binary. +install(TARGETS json_unit RUNTIME DESTINATION test/bin) + +# Copy the test data to the install tree. +install(DIRECTORY data/ DESTINATION test/data) + +target_include_directories(json_unit PRIVATE "src") +target_link_libraries(json_unit ${JSON_TARGET_NAME}) diff --git a/test/json.org/1.json b/test/data/json.org/1.json similarity index 100% rename from test/json.org/1.json rename to test/data/json.org/1.json diff --git a/test/json.org/2.json b/test/data/json.org/2.json similarity index 100% rename from test/json.org/2.json rename to test/data/json.org/2.json diff --git a/test/json.org/3.json b/test/data/json.org/3.json similarity index 100% rename from test/json.org/3.json rename to test/data/json.org/3.json diff --git a/test/json.org/4.json b/test/data/json.org/4.json similarity index 100% rename from test/json.org/4.json rename to test/data/json.org/4.json diff --git a/test/json.org/5.json b/test/data/json.org/5.json similarity index 100% rename from test/json.org/5.json rename to test/data/json.org/5.json diff --git a/test/json_nlohmann_tests/all_unicode.json b/test/data/json_nlohmann_tests/all_unicode.json similarity index 100% rename from test/json_nlohmann_tests/all_unicode.json rename to test/data/json_nlohmann_tests/all_unicode.json diff --git a/test/json_nlohmann_tests/bom.json b/test/data/json_nlohmann_tests/bom.json similarity index 100% rename from test/json_nlohmann_tests/bom.json rename to test/data/json_nlohmann_tests/bom.json diff --git a/test/json_roundtrip/roundtrip01.json b/test/data/json_roundtrip/roundtrip01.json similarity index 100% rename from test/json_roundtrip/roundtrip01.json rename to test/data/json_roundtrip/roundtrip01.json diff --git a/test/json_roundtrip/roundtrip02.json b/test/data/json_roundtrip/roundtrip02.json similarity index 100% rename from test/json_roundtrip/roundtrip02.json rename to test/data/json_roundtrip/roundtrip02.json diff --git a/test/json_roundtrip/roundtrip03.json b/test/data/json_roundtrip/roundtrip03.json similarity index 100% rename from test/json_roundtrip/roundtrip03.json rename to test/data/json_roundtrip/roundtrip03.json diff --git a/test/json_roundtrip/roundtrip04.json b/test/data/json_roundtrip/roundtrip04.json similarity index 100% rename from test/json_roundtrip/roundtrip04.json rename to test/data/json_roundtrip/roundtrip04.json diff --git a/test/json_roundtrip/roundtrip05.json b/test/data/json_roundtrip/roundtrip05.json similarity index 100% rename from test/json_roundtrip/roundtrip05.json rename to test/data/json_roundtrip/roundtrip05.json diff --git a/test/json_roundtrip/roundtrip06.json b/test/data/json_roundtrip/roundtrip06.json similarity index 100% rename from test/json_roundtrip/roundtrip06.json rename to test/data/json_roundtrip/roundtrip06.json diff --git a/test/json_roundtrip/roundtrip07.json b/test/data/json_roundtrip/roundtrip07.json similarity index 100% rename from test/json_roundtrip/roundtrip07.json rename to test/data/json_roundtrip/roundtrip07.json diff --git a/test/json_roundtrip/roundtrip08.json b/test/data/json_roundtrip/roundtrip08.json similarity index 100% rename from test/json_roundtrip/roundtrip08.json rename to test/data/json_roundtrip/roundtrip08.json diff --git a/test/json_roundtrip/roundtrip09.json b/test/data/json_roundtrip/roundtrip09.json similarity index 100% rename from test/json_roundtrip/roundtrip09.json rename to test/data/json_roundtrip/roundtrip09.json diff --git a/test/json_roundtrip/roundtrip10.json b/test/data/json_roundtrip/roundtrip10.json similarity index 100% rename from test/json_roundtrip/roundtrip10.json rename to test/data/json_roundtrip/roundtrip10.json diff --git a/test/json_roundtrip/roundtrip11.json b/test/data/json_roundtrip/roundtrip11.json similarity index 100% rename from test/json_roundtrip/roundtrip11.json rename to test/data/json_roundtrip/roundtrip11.json diff --git a/test/json_roundtrip/roundtrip12.json b/test/data/json_roundtrip/roundtrip12.json similarity index 100% rename from test/json_roundtrip/roundtrip12.json rename to test/data/json_roundtrip/roundtrip12.json diff --git a/test/json_roundtrip/roundtrip13.json b/test/data/json_roundtrip/roundtrip13.json similarity index 100% rename from test/json_roundtrip/roundtrip13.json rename to test/data/json_roundtrip/roundtrip13.json diff --git a/test/json_roundtrip/roundtrip14.json b/test/data/json_roundtrip/roundtrip14.json similarity index 100% rename from test/json_roundtrip/roundtrip14.json rename to test/data/json_roundtrip/roundtrip14.json diff --git a/test/json_roundtrip/roundtrip15.json b/test/data/json_roundtrip/roundtrip15.json similarity index 100% rename from test/json_roundtrip/roundtrip15.json rename to test/data/json_roundtrip/roundtrip15.json diff --git a/test/json_roundtrip/roundtrip16.json b/test/data/json_roundtrip/roundtrip16.json similarity index 100% rename from test/json_roundtrip/roundtrip16.json rename to test/data/json_roundtrip/roundtrip16.json diff --git a/test/json_roundtrip/roundtrip17.json b/test/data/json_roundtrip/roundtrip17.json similarity index 100% rename from test/json_roundtrip/roundtrip17.json rename to test/data/json_roundtrip/roundtrip17.json diff --git a/test/json_roundtrip/roundtrip18.json b/test/data/json_roundtrip/roundtrip18.json similarity index 100% rename from test/json_roundtrip/roundtrip18.json rename to test/data/json_roundtrip/roundtrip18.json diff --git a/test/json_roundtrip/roundtrip19.json b/test/data/json_roundtrip/roundtrip19.json similarity index 100% rename from test/json_roundtrip/roundtrip19.json rename to test/data/json_roundtrip/roundtrip19.json diff --git a/test/json_roundtrip/roundtrip20.json b/test/data/json_roundtrip/roundtrip20.json similarity index 100% rename from test/json_roundtrip/roundtrip20.json rename to test/data/json_roundtrip/roundtrip20.json diff --git a/test/json_roundtrip/roundtrip21.json b/test/data/json_roundtrip/roundtrip21.json similarity index 100% rename from test/json_roundtrip/roundtrip21.json rename to test/data/json_roundtrip/roundtrip21.json diff --git a/test/json_roundtrip/roundtrip22.json b/test/data/json_roundtrip/roundtrip22.json similarity index 100% rename from test/json_roundtrip/roundtrip22.json rename to test/data/json_roundtrip/roundtrip22.json diff --git a/test/json_roundtrip/roundtrip23.json b/test/data/json_roundtrip/roundtrip23.json similarity index 100% rename from test/json_roundtrip/roundtrip23.json rename to test/data/json_roundtrip/roundtrip23.json diff --git a/test/json_roundtrip/roundtrip24.json b/test/data/json_roundtrip/roundtrip24.json similarity index 100% rename from test/json_roundtrip/roundtrip24.json rename to test/data/json_roundtrip/roundtrip24.json diff --git a/test/json_roundtrip/roundtrip25.json b/test/data/json_roundtrip/roundtrip25.json similarity index 100% rename from test/json_roundtrip/roundtrip25.json rename to test/data/json_roundtrip/roundtrip25.json diff --git a/test/json_roundtrip/roundtrip26.json b/test/data/json_roundtrip/roundtrip26.json similarity index 100% rename from test/json_roundtrip/roundtrip26.json rename to test/data/json_roundtrip/roundtrip26.json diff --git a/test/json_roundtrip/roundtrip27.json b/test/data/json_roundtrip/roundtrip27.json similarity index 100% rename from test/json_roundtrip/roundtrip27.json rename to test/data/json_roundtrip/roundtrip27.json diff --git a/test/json_roundtrip/roundtrip28.json b/test/data/json_roundtrip/roundtrip28.json similarity index 100% rename from test/json_roundtrip/roundtrip28.json rename to test/data/json_roundtrip/roundtrip28.json diff --git a/test/json_roundtrip/roundtrip29.json b/test/data/json_roundtrip/roundtrip29.json similarity index 100% rename from test/json_roundtrip/roundtrip29.json rename to test/data/json_roundtrip/roundtrip29.json diff --git a/test/json_roundtrip/roundtrip30.json b/test/data/json_roundtrip/roundtrip30.json similarity index 100% rename from test/json_roundtrip/roundtrip30.json rename to test/data/json_roundtrip/roundtrip30.json diff --git a/test/json_roundtrip/roundtrip31.json b/test/data/json_roundtrip/roundtrip31.json similarity index 100% rename from test/json_roundtrip/roundtrip31.json rename to test/data/json_roundtrip/roundtrip31.json diff --git a/test/json_roundtrip/roundtrip32.json b/test/data/json_roundtrip/roundtrip32.json similarity index 100% rename from test/json_roundtrip/roundtrip32.json rename to test/data/json_roundtrip/roundtrip32.json diff --git a/test/json_tests/fail1.json b/test/data/json_tests/fail1.json similarity index 100% rename from test/json_tests/fail1.json rename to test/data/json_tests/fail1.json diff --git a/test/json_tests/fail10.json b/test/data/json_tests/fail10.json similarity index 100% rename from test/json_tests/fail10.json rename to test/data/json_tests/fail10.json diff --git a/test/json_tests/fail11.json b/test/data/json_tests/fail11.json similarity index 100% rename from test/json_tests/fail11.json rename to test/data/json_tests/fail11.json diff --git a/test/json_tests/fail12.json b/test/data/json_tests/fail12.json similarity index 100% rename from test/json_tests/fail12.json rename to test/data/json_tests/fail12.json diff --git a/test/json_tests/fail13.json b/test/data/json_tests/fail13.json similarity index 100% rename from test/json_tests/fail13.json rename to test/data/json_tests/fail13.json diff --git a/test/json_tests/fail14.json b/test/data/json_tests/fail14.json similarity index 100% rename from test/json_tests/fail14.json rename to test/data/json_tests/fail14.json diff --git a/test/json_tests/fail15.json b/test/data/json_tests/fail15.json similarity index 100% rename from test/json_tests/fail15.json rename to test/data/json_tests/fail15.json diff --git a/test/json_tests/fail16.json b/test/data/json_tests/fail16.json similarity index 100% rename from test/json_tests/fail16.json rename to test/data/json_tests/fail16.json diff --git a/test/json_tests/fail17.json b/test/data/json_tests/fail17.json similarity index 100% rename from test/json_tests/fail17.json rename to test/data/json_tests/fail17.json diff --git a/test/json_tests/fail18.json b/test/data/json_tests/fail18.json similarity index 100% rename from test/json_tests/fail18.json rename to test/data/json_tests/fail18.json diff --git a/test/json_tests/fail19.json b/test/data/json_tests/fail19.json similarity index 100% rename from test/json_tests/fail19.json rename to test/data/json_tests/fail19.json diff --git a/test/json_tests/fail2.json b/test/data/json_tests/fail2.json similarity index 100% rename from test/json_tests/fail2.json rename to test/data/json_tests/fail2.json diff --git a/test/json_tests/fail20.json b/test/data/json_tests/fail20.json similarity index 100% rename from test/json_tests/fail20.json rename to test/data/json_tests/fail20.json diff --git a/test/json_tests/fail21.json b/test/data/json_tests/fail21.json similarity index 100% rename from test/json_tests/fail21.json rename to test/data/json_tests/fail21.json diff --git a/test/json_tests/fail22.json b/test/data/json_tests/fail22.json similarity index 100% rename from test/json_tests/fail22.json rename to test/data/json_tests/fail22.json diff --git a/test/json_tests/fail23.json b/test/data/json_tests/fail23.json similarity index 100% rename from test/json_tests/fail23.json rename to test/data/json_tests/fail23.json diff --git a/test/json_tests/fail24.json b/test/data/json_tests/fail24.json similarity index 100% rename from test/json_tests/fail24.json rename to test/data/json_tests/fail24.json diff --git a/test/json_tests/fail25.json b/test/data/json_tests/fail25.json similarity index 100% rename from test/json_tests/fail25.json rename to test/data/json_tests/fail25.json diff --git a/test/json_tests/fail26.json b/test/data/json_tests/fail26.json similarity index 100% rename from test/json_tests/fail26.json rename to test/data/json_tests/fail26.json diff --git a/test/json_tests/fail27.json b/test/data/json_tests/fail27.json similarity index 100% rename from test/json_tests/fail27.json rename to test/data/json_tests/fail27.json diff --git a/test/json_tests/fail28.json b/test/data/json_tests/fail28.json similarity index 100% rename from test/json_tests/fail28.json rename to test/data/json_tests/fail28.json diff --git a/test/json_tests/fail29.json b/test/data/json_tests/fail29.json similarity index 100% rename from test/json_tests/fail29.json rename to test/data/json_tests/fail29.json diff --git a/test/json_tests/fail3.json b/test/data/json_tests/fail3.json similarity index 100% rename from test/json_tests/fail3.json rename to test/data/json_tests/fail3.json diff --git a/test/json_tests/fail30.json b/test/data/json_tests/fail30.json similarity index 100% rename from test/json_tests/fail30.json rename to test/data/json_tests/fail30.json diff --git a/test/json_tests/fail31.json b/test/data/json_tests/fail31.json similarity index 100% rename from test/json_tests/fail31.json rename to test/data/json_tests/fail31.json diff --git a/test/json_tests/fail32.json b/test/data/json_tests/fail32.json similarity index 100% rename from test/json_tests/fail32.json rename to test/data/json_tests/fail32.json diff --git a/test/json_tests/fail33.json b/test/data/json_tests/fail33.json similarity index 100% rename from test/json_tests/fail33.json rename to test/data/json_tests/fail33.json diff --git a/test/json_tests/fail4.json b/test/data/json_tests/fail4.json similarity index 100% rename from test/json_tests/fail4.json rename to test/data/json_tests/fail4.json diff --git a/test/json_tests/fail5.json b/test/data/json_tests/fail5.json similarity index 100% rename from test/json_tests/fail5.json rename to test/data/json_tests/fail5.json diff --git a/test/json_tests/fail6.json b/test/data/json_tests/fail6.json similarity index 100% rename from test/json_tests/fail6.json rename to test/data/json_tests/fail6.json diff --git a/test/json_tests/fail7.json b/test/data/json_tests/fail7.json similarity index 100% rename from test/json_tests/fail7.json rename to test/data/json_tests/fail7.json diff --git a/test/json_tests/fail8.json b/test/data/json_tests/fail8.json similarity index 100% rename from test/json_tests/fail8.json rename to test/data/json_tests/fail8.json diff --git a/test/json_tests/fail9.json b/test/data/json_tests/fail9.json similarity index 100% rename from test/json_tests/fail9.json rename to test/data/json_tests/fail9.json diff --git a/test/json_tests/pass1.json b/test/data/json_tests/pass1.json similarity index 100% rename from test/json_tests/pass1.json rename to test/data/json_tests/pass1.json diff --git a/test/json_tests/pass2.json b/test/data/json_tests/pass2.json similarity index 100% rename from test/json_tests/pass2.json rename to test/data/json_tests/pass2.json diff --git a/test/json_tests/pass3.json b/test/data/json_tests/pass3.json similarity index 100% rename from test/json_tests/pass3.json rename to test/data/json_tests/pass3.json diff --git a/test/json_testsuite/README.md b/test/data/json_testsuite/README.md similarity index 100% rename from test/json_testsuite/README.md rename to test/data/json_testsuite/README.md diff --git a/test/json_testsuite/sample.json b/test/data/json_testsuite/sample.json old mode 100755 new mode 100644 similarity index 100% rename from test/json_testsuite/sample.json rename to test/data/json_testsuite/sample.json diff --git a/test/catch.hpp b/test/src/catch.hpp similarity index 100% rename from test/catch.hpp rename to test/src/catch.hpp diff --git a/test/fuzz.cpp b/test/src/fuzz.cpp similarity index 100% rename from test/fuzz.cpp rename to test/src/fuzz.cpp diff --git a/test/unit.cpp b/test/src/unit.cpp similarity index 99% rename from test/unit.cpp rename to test/src/unit.cpp index e42430c35..0a2bdd104 100644 --- a/test/unit.cpp +++ b/test/src/unit.cpp @@ -1314,7 +1314,7 @@ TEST_CASE("constructors") SECTION("std::ifstream") { - std::ifstream f("test/json_tests/pass1.json"); + std::ifstream f("test/data/json_tests/pass1.json"); json j(f); } } @@ -11652,39 +11652,39 @@ TEST_CASE("compliance tests from json.org") { for (auto filename : { - //"test/json_tests/fail1.json", - "test/json_tests/fail2.json", - "test/json_tests/fail3.json", - "test/json_tests/fail4.json", - "test/json_tests/fail5.json", - "test/json_tests/fail6.json", - "test/json_tests/fail7.json", - "test/json_tests/fail8.json", - "test/json_tests/fail9.json", - "test/json_tests/fail10.json", - "test/json_tests/fail11.json", - "test/json_tests/fail12.json", - "test/json_tests/fail13.json", - "test/json_tests/fail14.json", - "test/json_tests/fail15.json", - "test/json_tests/fail16.json", - "test/json_tests/fail17.json", - //"test/json_tests/fail18.json", - "test/json_tests/fail19.json", - "test/json_tests/fail20.json", - "test/json_tests/fail21.json", - "test/json_tests/fail22.json", - "test/json_tests/fail23.json", - "test/json_tests/fail24.json", - "test/json_tests/fail25.json", - "test/json_tests/fail26.json", - "test/json_tests/fail27.json", - "test/json_tests/fail28.json", - "test/json_tests/fail29.json", - "test/json_tests/fail30.json", - "test/json_tests/fail31.json", - "test/json_tests/fail32.json", - "test/json_tests/fail33.json" + //"test/data/json_tests/fail1.json", + "test/data/json_tests/fail2.json", + "test/data/json_tests/fail3.json", + "test/data/json_tests/fail4.json", + "test/data/json_tests/fail5.json", + "test/data/json_tests/fail6.json", + "test/data/json_tests/fail7.json", + "test/data/json_tests/fail8.json", + "test/data/json_tests/fail9.json", + "test/data/json_tests/fail10.json", + "test/data/json_tests/fail11.json", + "test/data/json_tests/fail12.json", + "test/data/json_tests/fail13.json", + "test/data/json_tests/fail14.json", + "test/data/json_tests/fail15.json", + "test/data/json_tests/fail16.json", + "test/data/json_tests/fail17.json", + //"test/data/json_tests/fail18.json", + "test/data/json_tests/fail19.json", + "test/data/json_tests/fail20.json", + "test/data/json_tests/fail21.json", + "test/data/json_tests/fail22.json", + "test/data/json_tests/fail23.json", + "test/data/json_tests/fail24.json", + "test/data/json_tests/fail25.json", + "test/data/json_tests/fail26.json", + "test/data/json_tests/fail27.json", + "test/data/json_tests/fail28.json", + "test/data/json_tests/fail29.json", + "test/data/json_tests/fail30.json", + "test/data/json_tests/fail31.json", + "test/data/json_tests/fail32.json", + "test/data/json_tests/fail33.json" }) { CAPTURE(filename); @@ -11698,9 +11698,9 @@ TEST_CASE("compliance tests from json.org") { for (auto filename : { - "test/json_tests/pass1.json", - "test/json_tests/pass2.json", - "test/json_tests/pass3.json" + "test/data/json_tests/pass1.json", + "test/data/json_tests/pass2.json", + "test/data/json_tests/pass3.json" }) { CAPTURE(filename); @@ -11873,42 +11873,42 @@ TEST_CASE("compliance tests from nativejson-benchmark") SECTION("roundtrip") { - // test cases are from https://github.com/miloyip/nativejson-benchmark/tree/master/data/roundtrip + // test cases are from https://github.com/miloyip/nativejson-benchmark/tree/master/test/data/roundtrip for (auto filename : { - "test/json_roundtrip/roundtrip01.json", - "test/json_roundtrip/roundtrip02.json", - "test/json_roundtrip/roundtrip03.json", - "test/json_roundtrip/roundtrip04.json", - "test/json_roundtrip/roundtrip05.json", - "test/json_roundtrip/roundtrip06.json", - "test/json_roundtrip/roundtrip07.json", - "test/json_roundtrip/roundtrip08.json", - "test/json_roundtrip/roundtrip09.json", - "test/json_roundtrip/roundtrip10.json", - "test/json_roundtrip/roundtrip11.json", - "test/json_roundtrip/roundtrip12.json", - "test/json_roundtrip/roundtrip13.json", - "test/json_roundtrip/roundtrip14.json", - "test/json_roundtrip/roundtrip15.json", - "test/json_roundtrip/roundtrip16.json", - "test/json_roundtrip/roundtrip17.json", - "test/json_roundtrip/roundtrip18.json", - "test/json_roundtrip/roundtrip19.json", - "test/json_roundtrip/roundtrip20.json", - "test/json_roundtrip/roundtrip21.json", - "test/json_roundtrip/roundtrip22.json", - "test/json_roundtrip/roundtrip23.json", - "test/json_roundtrip/roundtrip24.json", - "test/json_roundtrip/roundtrip25.json", - "test/json_roundtrip/roundtrip26.json", - "test/json_roundtrip/roundtrip27.json", - "test/json_roundtrip/roundtrip28.json", - "test/json_roundtrip/roundtrip29.json", - "test/json_roundtrip/roundtrip30.json", - "test/json_roundtrip/roundtrip31.json", - "test/json_roundtrip/roundtrip32.json" + "test/data/json_roundtrip/roundtrip01.json", + "test/data/json_roundtrip/roundtrip02.json", + "test/data/json_roundtrip/roundtrip03.json", + "test/data/json_roundtrip/roundtrip04.json", + "test/data/json_roundtrip/roundtrip05.json", + "test/data/json_roundtrip/roundtrip06.json", + "test/data/json_roundtrip/roundtrip07.json", + "test/data/json_roundtrip/roundtrip08.json", + "test/data/json_roundtrip/roundtrip09.json", + "test/data/json_roundtrip/roundtrip10.json", + "test/data/json_roundtrip/roundtrip11.json", + "test/data/json_roundtrip/roundtrip12.json", + "test/data/json_roundtrip/roundtrip13.json", + "test/data/json_roundtrip/roundtrip14.json", + "test/data/json_roundtrip/roundtrip15.json", + "test/data/json_roundtrip/roundtrip16.json", + "test/data/json_roundtrip/roundtrip17.json", + "test/data/json_roundtrip/roundtrip18.json", + "test/data/json_roundtrip/roundtrip19.json", + "test/data/json_roundtrip/roundtrip20.json", + "test/data/json_roundtrip/roundtrip21.json", + "test/data/json_roundtrip/roundtrip22.json", + "test/data/json_roundtrip/roundtrip23.json", + "test/data/json_roundtrip/roundtrip24.json", + "test/data/json_roundtrip/roundtrip25.json", + "test/data/json_roundtrip/roundtrip26.json", + "test/data/json_roundtrip/roundtrip27.json", + "test/data/json_roundtrip/roundtrip28.json", + "test/data/json_roundtrip/roundtrip29.json", + "test/data/json_roundtrip/roundtrip30.json", + "test/data/json_roundtrip/roundtrip31.json", + "test/data/json_roundtrip/roundtrip32.json" }) { CAPTURE(filename); @@ -11928,7 +11928,7 @@ TEST_CASE("test suite from json-test-suite") { // read a file with all unicode characters stored as single-character // strings in a JSON array - std::ifstream f("test/json_testsuite/sample.json"); + std::ifstream f("test/data/json_testsuite/sample.json"); json j; CHECK_NOTHROW(j << f); @@ -11943,35 +11943,35 @@ TEST_CASE("json.org examples") SECTION("1.json") { - std::ifstream f("test/json.org/1.json"); + std::ifstream f("test/data/json.org/1.json"); json j; CHECK_NOTHROW(j << f); } SECTION("2.json") { - std::ifstream f("test/json.org/2.json"); + std::ifstream f("test/data/json.org/2.json"); json j; CHECK_NOTHROW(j << f); } SECTION("3.json") { - std::ifstream f("test/json.org/3.json"); + std::ifstream f("test/data/json.org/3.json"); json j; CHECK_NOTHROW(j << f); } SECTION("4.json") { - std::ifstream f("test/json.org/4.json"); + std::ifstream f("test/data/json.org/4.json"); json j; CHECK_NOTHROW(j << f); } SECTION("5.json") { - std::ifstream f("test/json.org/5.json"); + std::ifstream f("test/data/json.org/5.json"); json j; CHECK_NOTHROW(j << f); } @@ -12105,7 +12105,7 @@ TEST_CASE("Unicode", "[hide]") { // read a file with all unicode characters stored as single-character // strings in a JSON array - std::ifstream f("test/json_nlohmann_tests/all_unicode.json"); + std::ifstream f("test/data/json_nlohmann_tests/all_unicode.json"); json j; CHECK_NOTHROW(j << f); @@ -12146,7 +12146,7 @@ TEST_CASE("Unicode", "[hide]") SECTION("ignore byte-order-mark") { // read a file with a UTF-8 BOM - std::ifstream f("test/json_nlohmann_tests/bom.json"); + std::ifstream f("test/data/json_nlohmann_tests/bom.json"); json j; CHECK_NOTHROW(j << f); }