From 492f9b8dd818659ca3e3f0ad2b80a8ebe1a71cb6 Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Tue, 2 Jul 2019 14:48:16 -0700 Subject: [PATCH 01/13] point to latest cmake master --- c/cmake/common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/c/cmake/common b/c/cmake/common index ed44946e1a..0616a352eb 160000 --- a/c/cmake/common +++ b/c/cmake/common @@ -1 +1 @@ -Subproject commit ed44946e1acf06acea6963393a56879caea600de +Subproject commit 0616a352eb7b3141393efb65614fdae90f4d7e6a From cc90ff0e8e0a14e46d7612018fcb8a69f6bf7614 Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Tue, 2 Jul 2019 16:27:41 -0700 Subject: [PATCH 02/13] add targets --- c/CMakeLists.txt | 2 ++ c/src/CMakeLists.txt | 1 + c/test/CMakeLists.txt | 1 + 3 files changed, 4 insertions(+) diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt index 3e4f3499fd..dbfaa74752 100644 --- a/c/CMakeLists.txt +++ b/c/CMakeLists.txt @@ -11,6 +11,8 @@ swift_create_project_options( HAS_DOCS TEST_PACKAGES "Check" ) +include(CodeCoverage) +add_code_coverage_all_targets() ########################################################## # Set some reasonable default compiler flags. diff --git a/c/src/CMakeLists.txt b/c/src/CMakeLists.txt index 1568255e2f..c58749f3c0 100644 --- a/c/src/CMakeLists.txt +++ b/c/src/CMakeLists.txt @@ -46,6 +46,7 @@ set_target_properties(sbp PROPERTIES POSITION_INDEPENDENT_CODE ON C_STANDARD 99 C_STANDARD_REQUIRED ON) +target_code_coverage(sbp AUTO ALL) install(TARGETS sbp EXPORT sbp-export diff --git a/c/test/CMakeLists.txt b/c/test/CMakeLists.txt index 71300d8d33..4dcd99f225 100644 --- a/c/test/CMakeLists.txt +++ b/c/test/CMakeLists.txt @@ -30,6 +30,7 @@ else() target_link_libraries(test_libsbp PRIVATE "-L/usr/local/lib") endif() endif() +target_code_coverage(test_libsbp AUTO ALL) add_custom_command( TARGET test_libsbp POST_BUILD From 95cad131ada82656f868691bbde70972d2927e2e Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Tue, 2 Jul 2019 17:14:57 -0700 Subject: [PATCH 03/13] add travis support --- .travis.yml | 4 +++- Makefile | 8 +++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index e0a47f22c2..a26f99aa72 100644 --- a/.travis.yml +++ b/.travis.yml @@ -62,7 +62,9 @@ matrix: - sudo pip install --upgrade Sphinx - npm install -g mocha - npm install - script: make test-c test-haskell test-java test-javascript + script: make test-c test-haskell test-java test-javascript && make clean test-c CMAKEFLAGS="-DCODE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug" + after_success: + bash <(curl -s https://codecov.io/bash) -s c/build || echo "Codecov did not collect coverage reports"; deploy: provider: releases diff --git a/Makefile b/Makefile index 6e1cb3f344..1ad5fda576 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ SBP_PATCH_VERSION := $(word 3, $(subst ., , $(SBP_VERSION))) CHANGELOG_MAX_ISSUES := 100 -.PHONY: help test release dist silly all docs pdf html c deps-c gen-c test-c python deps-python gen-python test-python javascript deps-javascript gen-javascript test-javascript java deps-java gen-java test-java haskell deps-haskell gen-haskell test-haskell haskell deps-protobuf gen-protobuf test-protobuf verify-prereq-generator verify-prereq-c verify-prereq-javascript verify-prereq-python verify-prereq-java verify-prereq-haskell verify-prereq-protobuf mapping +.PHONY: help test release dist clean all docs pdf html c deps-c gen-c test-c python deps-python gen-python test-python javascript deps-javascript gen-javascript test-javascript java deps-java gen-java test-java haskell deps-haskell gen-haskell test-haskell haskell deps-protobuf gen-protobuf test-protobuf verify-prereq-generator verify-prereq-c verify-prereq-javascript verify-prereq-python verify-prereq-java verify-prereq-haskell verify-prereq-protobuf mapping # Functions define announce-begin @@ -58,6 +58,8 @@ help: @echo all: c python pythonNG javascript java docs haskell protobuf +clean: + rm -r $(SWIFTNAV_ROOT)/c/build docs: verify-prereq-docs pdf html c: deps-c gen-c test-c @@ -212,7 +214,7 @@ test-c: $(call announce-begin,"Running C tests") cd $(SWIFTNAV_ROOT)/c; \ mkdir -p build/ && cd build/; \ - cmake ../; \ + cmake $(CMAKEFLAGS) ../; \ make $(call announce-end,"Finished running C tests") @@ -247,7 +249,7 @@ test-protobuf: dist-python: $(call announce-begin,"Deploying Python package") - make -C $(SWIFTNAV_ROOT)/python SBP_VERSION="$(SBP_MAJOR_VERSION).$(SBP_MINOR_VERSION).$(SBP_PATCH_VERSION)" deploy + make -C $(SWIFTNAV_ROOT)/python SBP_VERSION="$(SBP_MAJOR_VERSION).$(SBP_MINOR_VERSION).$(SBP_PATCH_VERSION)" deploy $(call announce-end,"Finished deploying Python package") dist-javascript: From 9181f89f8ad0388f58875a87533da82607d6375c Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Tue, 2 Jul 2019 17:49:32 -0700 Subject: [PATCH 04/13] add comments to Makefile clean --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 1ad5fda576..c27c0fa654 100644 --- a/Makefile +++ b/Makefile @@ -43,6 +43,7 @@ help: @echo "Please use \`make ' where is one of" @echo " help to display this help message" @echo " all to make SBP clients across all languages" + @echo " clean to remove any output files" @echo " c to make C headers" @echo " dist to distribute packages" @echo " docs to make HTML and pdf documentation" @@ -59,6 +60,7 @@ help: all: c python pythonNG javascript java docs haskell protobuf clean: + @echo "Removing the ./c/build directory..." rm -r $(SWIFTNAV_ROOT)/c/build docs: verify-prereq-docs pdf html From 1b388a2d9eeec914d7ec12b9a2c0f1647d0617ff Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Tue, 2 Jul 2019 17:52:04 -0700 Subject: [PATCH 05/13] always install lcov --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index a26f99aa72..6639719b99 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,7 @@ addons: - check - doxygen - cmake + - lcov - gradle - libgmp-dev From 8a2873ff98b7b5acb76be00b0efffeb04314ad67 Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Tue, 2 Jul 2019 17:58:31 -0700 Subject: [PATCH 06/13] see if installing g++-6 works --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 6639719b99..8502b4dd40 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,7 @@ addons: - check - doxygen - cmake + - g++-6 - lcov - gradle - libgmp-dev From b2265659cb97e4b557158063009063f861aaee27 Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Tue, 2 Jul 2019 22:44:24 -0700 Subject: [PATCH 07/13] forget about g++-6 for now --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8502b4dd40..6639719b99 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,6 @@ addons: - check - doxygen - cmake - - g++-6 - lcov - gradle - libgmp-dev From d2d8474011fd598d967c941cc9693301ebec1e6a Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Tue, 2 Jul 2019 23:09:12 -0700 Subject: [PATCH 08/13] moving forward, this will be the cleaner solution --- .travis.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6639719b99..6bbb4703fd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,6 @@ addons: - check - doxygen - cmake - - lcov - gradle - libgmp-dev @@ -63,7 +62,14 @@ matrix: - sudo pip install --upgrade Sphinx - npm install -g mocha - npm install - script: make test-c test-haskell test-java test-javascript && make clean test-c CMAKEFLAGS="-DCODE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug" + script: make -j4 test-c test-haskell test-java test-javascript + - env: + - TRAVIS_TARGET=codecov + addons: + apt: + packages: + - lcov + script: make -j4 CMAKEFLAGS="-DCODE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug" test-c after_success: bash <(curl -s https://codecov.io/bash) -s c/build || echo "Codecov did not collect coverage reports"; From 66b6f93a2d30a813ff0caf614ee19161c48cbd25 Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Tue, 2 Jul 2019 23:14:59 -0700 Subject: [PATCH 09/13] split script into multiple lines --- .travis.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6bbb4703fd..0314d1889c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -62,14 +62,20 @@ matrix: - sudo pip install --upgrade Sphinx - npm install -g mocha - npm install - script: make -j4 test-c test-haskell test-java test-javascript + script: + - make -j4 test-c + - make -j4 test-haskell + - make -j4 test-java + - make -j4 test-javascript - env: - TRAVIS_TARGET=codecov + - CMAKEFLAGS="-DCODE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug" addons: apt: packages: - lcov - script: make -j4 CMAKEFLAGS="-DCODE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug" test-c + script: + - make -j4 test-c after_success: bash <(curl -s https://codecov.io/bash) -s c/build || echo "Codecov did not collect coverage reports"; From 899e7d4fb73ac6334c6ee093b257439373eaeeb5 Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Tue, 2 Jul 2019 23:28:32 -0700 Subject: [PATCH 10/13] remove the -j4 since it's just a convenience makefile --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0314d1889c..646bd3e766 100644 --- a/.travis.yml +++ b/.travis.yml @@ -63,10 +63,10 @@ matrix: - npm install -g mocha - npm install script: - - make -j4 test-c - - make -j4 test-haskell - - make -j4 test-java - - make -j4 test-javascript + - make test-c + - make test-haskell + - make test-java + - make test-javascript - env: - TRAVIS_TARGET=codecov - CMAKEFLAGS="-DCODE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug" @@ -75,7 +75,7 @@ matrix: packages: - lcov script: - - make -j4 test-c + - make test-c after_success: bash <(curl -s https://codecov.io/bash) -s c/build || echo "Codecov did not collect coverage reports"; From 1a4f16b624df644ec0b876520a39429c7f385202 Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Wed, 3 Jul 2019 11:05:54 -0700 Subject: [PATCH 11/13] install lcov for all, not just for codecov step --- .travis.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 646bd3e766..8f1fe6e03f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,7 @@ addons: - check - doxygen - cmake + - lcov - gradle - libgmp-dev @@ -70,10 +71,6 @@ matrix: - env: - TRAVIS_TARGET=codecov - CMAKEFLAGS="-DCODE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug" - addons: - apt: - packages: - - lcov script: - make test-c after_success: From 11a94f921df94f1e343404d60988b48b36ff20fb Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Wed, 3 Jul 2019 12:07:08 -0700 Subject: [PATCH 12/13] add a codecov.yml --- codecov.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 codecov.yml diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000000..3c95e2227b --- /dev/null +++ b/codecov.yml @@ -0,0 +1,13 @@ +coverage: + status: + project: + tests: + target: 75% + paths: + - c/test/ + libsbp: + paths: + - c/include/ + - c/src/ + +comment: off From 9da5aab15bc34259302d0519de91f8b7ed346bc9 Mon Sep 17 00:00:00 2001 From: Michael Wurm Date: Wed, 3 Jul 2019 13:48:38 -0700 Subject: [PATCH 13/13] lower codecov pass threshold to 30% on tests --- codecov.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codecov.yml b/codecov.yml index 3c95e2227b..878c974688 100644 --- a/codecov.yml +++ b/codecov.yml @@ -2,7 +2,7 @@ coverage: status: project: tests: - target: 75% + target: 30% paths: - c/test/ libsbp: