Index: third_party/lcov/example/Makefile |
=================================================================== |
--- third_party/lcov/example/Makefile (revision 0) |
+++ third_party/lcov/example/Makefile (revision 0) |
@@ -0,0 +1,98 @@ |
+# |
+# Makefile for the LCOV example program. |
+# |
+# Make targets: |
+# - example: compile the example program |
+# - output: run test cases on example program and create HTML output |
+# - clean: clean up directory |
+# |
+ |
+CC := gcc |
+CFLAGS := -Wall -I. -fprofile-arcs -ftest-coverage |
+ |
+LCOV := ../bin/lcov |
+GENHTML := ../bin/genhtml |
+GENDESC := ../bin/gendesc |
+GENPNG := ../bin/genpng |
+ |
+# Depending on the presence of the GD.pm perl module, we can use the |
+# special option '--frames' for genhtml |
+USE_GENPNG := $(shell $(GENPNG) --help >/dev/null 2>/dev/null; echo $$?) |
+ |
+ifeq ($(USE_GENPNG),0) |
+ FRAMES := --frames |
+else |
+ FRAMES := |
+endif |
+ |
+.PHONY: clean output test_noargs test_2_to_2000 test_overflow |
+ |
+all: output |
+ |
+example: example.o iterate.o gauss.o |
+ $(CC) example.o iterate.o gauss.o -o example -lgcov |
+ |
+example.o: example.c iterate.h gauss.h |
+ $(CC) $(CFLAGS) -c example.c -o example.o |
+ |
+iterate.o: methods/iterate.c iterate.h |
+ $(CC) $(CFLAGS) -c methods/iterate.c -o iterate.o |
+ |
+gauss.o: methods/gauss.c gauss.h |
+ $(CC) $(CFLAGS) -c methods/gauss.c -o gauss.o |
+ |
+output: example descriptions test_noargs test_2_to_2000 test_overflow |
+ @echo |
+ @echo '*' |
+ @echo '* Generating HTML output' |
+ @echo '*' |
+ @echo |
+ $(GENHTML) trace_noargs.info trace_args.info trace_overflow.info \ |
+ --output-directory output --title "Basic example" \ |
+ --show-details --description-file descriptions $(FRAMES) \ |
+ --legend |
+ @echo |
+ @echo '*' |
+ @echo '* See '`pwd`/output/index.html |
+ @echo '*' |
+ @echo |
+ |
+descriptions: descriptions.txt |
+ $(GENDESC) descriptions.txt -o descriptions |
+ |
+all_tests: example test_noargs test_2_to_2000 test_overflow |
+ |
+test_noargs: |
+ @echo |
+ @echo '*' |
+ @echo '* Test case 1: running ./example without parameters' |
+ @echo '*' |
+ @echo |
+ $(LCOV) --zerocounters --directory . |
+ ./example |
+ $(LCOV) --capture --directory . --output-file trace_noargs.info --test-name test_noargs |
+ |
+test_2_to_2000: |
+ @echo |
+ @echo '*' |
+ @echo '* Test case 2: running ./example 2 2000' |
+ @echo '*' |
+ @echo |
+ $(LCOV) --zerocounters --directory . |
+ ./example 2 2000 |
+ $(LCOV) --capture --directory . --output-file trace_args.info --test-name test_2_to_2000 |
+ |
+test_overflow: |
+ @echo |
+ @echo '*' |
+ @echo '* Test case 3: running ./example 0 100000 (causes an overflow)' |
+ @echo '*' |
+ @echo |
+ $(LCOV) --zerocounters --directory . |
+ ./example 0 100000 || true |
+ $(LCOV) --capture --directory . --output-file trace_overflow.info --test-name "test_overflow" |
+ |
+clean: |
+ rm -rf *.o *.bb *.bbg *.da *.gcno *.gcda *.info output example \ |
+ descriptions |
+ |