diff --git a/.gitignore b/.gitignore index 8157f1a98..35dc9b42c 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ fuzz-testing build build_coverage +clang_analyze_build doc/xml doc/html diff --git a/Makefile b/Makefile index 63c9cd784..a873292bb 100644 --- a/Makefile +++ b/Makefile @@ -258,6 +258,12 @@ fuzzing-stop: cppcheck: cppcheck --enable=warning --inconclusive --force --std=c++11 $(AMALGAMATED_FILE) --error-exitcode=1 +# compile and check with Clang Static Analyzer +clang_analyze: + rm -fr clang_analyze_build + mkdir clang_analyze_build + cd clang_analyze_build ; CCC_CXX=/Users/niels/Documents/projects/llvm-clang/local/bin/clang++ /Users/niels/Documents/projects/llvm-clang/local/bin/scan-build cmake .. + /Users/niels/Documents/projects/llvm-clang/local/bin/scan-build -enable-checker alpha.core.DynamicTypeChecker,alpha.core.PointerArithm,alpha.core.PointerSub,alpha.cplusplus.DeleteWithNonVirtualDtor,alpha.cplusplus.IteratorRange,alpha.cplusplus.MisusedMovedObject,alpha.security.ArrayBoundV2,alpha.core.Conversion --use-c++=/Users/niels/Documents/projects/llvm-clang/local/bin/clang++ --view -analyze-headers -o clang_analyze_build/report.html make -j10 -C clang_analyze_build ########################################################################## # maintainer targets diff --git a/test/src/unit-readme.cpp b/test/src/unit-readme.cpp index bdcbd73e1..05f356a8d 100644 --- a/test/src/unit-readme.cpp +++ b/test/src/unit-readme.cpp @@ -168,6 +168,7 @@ TEST_CASE("README", "[hide]") const std::string tmp = j[0]; j[1] = 42; bool foo = j.at(2); + CHECK(foo == true); // other stuff j.size(); // 3 entries @@ -177,6 +178,7 @@ TEST_CASE("README", "[hide]") // comparison bool x = (j == "[\"foo\", 1, true]"_json); // true + CHECK(x == true); // create an object json o; @@ -257,17 +259,21 @@ TEST_CASE("README", "[hide]") bool b1 = true; json jb = b1; bool b2 = jb; + CHECK(b2 == true); // numbers int i = 42; json jn = i; double f = jn; + CHECK(f == 42); // etc. std::string vs = js.get(); bool vb = jb.get(); + CHECK(vb == true); int vi = jn.get(); + CHECK(vi == 42); // etc. }