]> WPIA git - cassiopeia.git/commitdiff
ADD: gcov make launch
authorFelix Dörre <felix@dogcraft.de>
Mon, 9 Feb 2015 23:53:03 +0000 (00:53 +0100)
committerFelix Dörre <felix@dogcraft.de>
Tue, 10 Feb 2015 00:32:38 +0000 (01:32 +0100)
.gitignore
Makefile
src/util.cpp
test/Makefile
test/src/time.cpp

index 56e0b1c730ec09f2d7678c9bc606a6f877bfdfb4..2bc7011f18d2f0f836bd5d650ed5c3106f674e6f 100644 (file)
@@ -35,3 +35,5 @@ obj
 *.csr
 config.txt
 serial
+*.gcov
+gcov.log
index d39af3e6fcacd9ca225c243fc6f10abc904c9449..12bf2e4156bb7c285f6c86a2ff41b99e3f994527 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -36,6 +36,12 @@ CFLAGS+=${ADDFLAGS} -Wall -Werror -Wextra -pedantic -std=c++11 -Ilib/openssl/inc
 CXXFLAGS=$(CFLAGS)
 LDFLAGS+=${ADDFLAGS} -L/usr/lib/i386-linux-gnu/ -lssl -lcrypto -ldl -Llib/openssl
 
+ifneq (,$(filter coverage,$(DEB_BUILD_OPTIONS)))
+    LDFLAGS += -lgcov
+    CFLAGS += -fprofile-arcs -ftest-coverage
+endif
+
+
 SRC_DIR=src
 OBJ_DIR=obj
 DEP_DIR=dep
@@ -55,6 +61,8 @@ all: build
 .PHONY: clean
 clean::
        -rm -rf .libs
+       -rm -rf *.gcov
+       -rm -rf gcov.log
        -rm -rf *.a
        -rm -rf *.d
        -rm -rf *.o
@@ -96,6 +104,13 @@ openssl:
 collissiondetect:
        ${MAKE} -C lib/collissiondetect
 
+.PHONY: coverage
+coverage:
+       find . -name "*.gcda" -exec rm {} +
+       ${MAKE} "DEB_BUILD_OPTIONS=coverage noopt"
+       find obj -name "*.gcda" -exec gcov -p {} + > gcov.log
+
+
 # --------
 
 cassiopeia: bin/cassiopeia bin/cassiopeia-signer
index f3d95c0ad522f3933ab1e7e57bf94d445a28d715..20d46606762d1aec69db186a9c24843bf9c60c5a 100644 (file)
@@ -78,7 +78,7 @@ std::pair<bool, time_t> parseDate( const std::string& date ) {
     std::size_t siz = strftime( check, 11, "%Y-%m-%d", &t );
 
     if( siz != 10 ) {
-        return std::pair<bool, time_t>( false, 0 );
+        return std::pair<bool, time_t>( false, 0 ); // NO-COVERAGE (by contract of strftime)
     }
 
     std::string checkS( check, siz );
index 114e9ee51bfed51a16822407dfe41927f4466d5c..68e794e055359465bab2a409e5fdb54bd8690bea 100644 (file)
@@ -23,6 +23,12 @@ CFLAGS+=${ADDFLAGS} -Wall -Werror -Wextra -pedantic -std=c++11 -I../src -I../lib
 CXXFLAGS=$(CFLAGS)
 LDFLAGS+=${ADDFLAGS} -lmysqlclient -lssl -lcrypto -ldl -lboost_unit_test_framework -L../lib/openssl -L/usr/lib/i386-linux-gnu
 
+ifneq (,$(filter coverage,$(DEB_BUILD_OPTIONS)))
+    LDFLAGS += -lgcov
+    CFLAGS += -fprofile-arcs -ftest-coverage
+endif
+
+
 SRC_DIR=src
 OBJ_DIR=obj
 DEP_DIR=dep
index ccdd1f43f19d1725f5c0c85914f6251729a88cee..b6081d015be01495e80a0ad100509d089df99590 100644 (file)
@@ -8,10 +8,6 @@
 BOOST_AUTO_TEST_SUITE( TestTime )
 
 BOOST_AUTO_TEST_CASE( testParseDate ) {
-    if( 1 ) {
-        return;
-    }
-
     auto r = parseDate( "2012-01-01" );
     BOOST_CHECK( r.first );
     BOOST_CHECK( r.second == 1325376000 );
@@ -24,6 +20,7 @@ BOOST_AUTO_TEST_CASE( testParseDate ) {
     BOOST_CHECK( !( parseDate( "hallo" ) ).first );
     BOOST_CHECK( !( parseDate( "aaaa-aa-aa" ) ).first );
     BOOST_CHECK( !( parseDate( "32-12-12" ) ).first );
+    BOOST_CHECK( !( parseDate( "2000-12-01z" ) ).first );
     BOOST_CHECK( !( parseDate( "2000-13-01" ) ).first );
     BOOST_CHECK( !( parseDate( "2000-00-01" ) ).first );
     BOOST_CHECK( !( parseDate( "2000-02-30" ) ).first );
@@ -71,6 +68,7 @@ BOOST_AUTO_TEST_CASE( testInvalidInverval ) {
     BOOST_CHECK( !( parseMonthInterval( base, "--2m" ).first ) );
     BOOST_CHECK( !( parseMonthInterval( base, "25m" ).first ) ); // too big
 
+    BOOST_CHECK( !( parseYearInterval( base, "12k" ).first ) );
     BOOST_CHECK( !( parseYearInterval( base, "12my" ).first ) );
     BOOST_CHECK( !( parseYearInterval( base, "-2m2y" ).first ) );
     BOOST_CHECK( !( parseYearInterval( base, "--2y" ).first ) );