-CFLAGS=-ansi -pedantic -Wall -I .. -g -O0
-DEPS=../pb_decode.c ../pb_decode.h ../pb.h
-
-all: test_decode1
+all:
+ scons
clean:
- rm -f test_decode1
+ scons -c
+
+coverage:
+ rm -rf build coverage
+
+ # LCOV does not like the newer gcov format
+ scons CC=gcc-4.6 CXX=gcc-4.6
+
+ # We are only interested in pb_encode.o and pb_decode.o
+ find build -name '*.gcda' -and \! \( -name '*pb_encode*' -or -name '*pb_decode*' \) -exec rm '{}' \;
-test_decode1: test_decode1.c $(DEPS)
- $(CC) $(CFLAGS) -o $@ $< ../pb_decode.c
+ # Collect the data
+ mkdir build/coverage
+ lcov --base-directory . --directory build/ --gcov-tool gcov-4.6 -c -o build/coverage/nanopb.info
-fuzztest: test_decode1
- bash -c 'I=1; while cat /dev/urandom | ./test_decode1 > /dev/null; do I=$$(($$I+1)); echo -en "\r$$I"; done'
\ No newline at end of file
+ # Generate HTML
+ genhtml -o build/coverage build/coverage/nanopb.info