Skip to content

Commit b47fe9a

Browse files
committed
[ISSUE-10]: coverage github workflow
1 parent f7af382 commit b47fe9a

2 files changed

Lines changed: 48 additions & 16 deletions

File tree

.github/workflows/coverage.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Coverage CI
2+
3+
on:
4+
push:
5+
branches: [ develop ]
6+
pull_request:
7+
branches: [ develop ]
8+
9+
jobs:
10+
build:
11+
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- uses: actions/checkout@v2
16+
- name: prepare
17+
run: aclocal && autoconf && automake --add-missing
18+
working-directory: tests
19+
- name: generate
20+
run: make -f coverage.mk gcov
21+
working-directory: cov
22+
- name: Upload coverage reports to Codecov
23+
uses: codecov/codecov-action@v5
24+
with:
25+
token: ${{ secrets.CODECOV_TOKEN }}
26+
directory: cov

cov/coverage.mk

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,41 @@ GCOV=gcov
88
## paths
99
HTML=html/index.html
1010
SRCDIR=../src
11+
MODDIR=../modules
12+
1113
## we get direct information about modification time
1214
## note: I do not like wildcard, but could not find better solution
1315
SOURCES=$(wildcard $(SRCDIR)/*.c)
1416
HEADERS=$(wildcard $(SRCDIR)/*.h)
1517
OBJS=$(addprefix src/, $(notdir $(SOURCES:.c=.o)))
16-
GCDA=$(OBJS:.o=.gcda)
17-
GCNO=$(OBJS:.o=.gcno)
18+
19+
SOURCES_UTILS=$(wildcard $(SRCDIR)/utils/*.c)
20+
HEADERS_UTILS=$(wildcard $(SRCDIR)/utils/*.h)
21+
OBJS_UTILS=$(addprefix src/utils/, $(notdir $(SOURCES_UTILS:.c=.o)))
22+
23+
SOURCES_MODULES=$(wildcard $(MODDIR)/*.c)
24+
HEADERS_MODULES=$(wildcard $(MODDIR)/*.h)
25+
OBJS_MODULES=$(addprefix modules/, $(notdir $(SOURCES_MODULES:.c=.o)))
26+
27+
GCDA=$(OBJS:.o=.gcda) $(OBJS_UTILS:.o=.gcda) $(OBJS_MODULES:.o=.gcda)
28+
GCNO=$(OBJS:.o=.gcno) $(OBJS_UTILS:.o=.gcno) $(OBJS_MODULES:.o=.gcda)
29+
1830
GCDA_EXIST := $(foreach gcda,$(GCDA),$(wildcard $(gcda)))
19-
#$(info $$GCDA = $(GCDA))
20-
#$(info $$GCDA_EXIST = $(GCDA_EXIST))
31+
GCNO_EXIST := $(foreach gcno,$(GCNO),$(wildcard $(gcno)))
32+
33+
$(info $$GCNO = $(GCNO))
34+
$(info $$GCNO_EXIST = $(GCNO_EXIST))
2135

2236
all: $(HTML)
2337

2438
gcov: testrun
2539
$(MAKE) -f $(SELF_MKFILE) _gcov
2640

27-
_gcov: $(GCNO:%.gcno=%.c.gcov)
28-
29-
%.c.gcov: %.gcno
30-
cd src; $(GCOV) -wrabcfu -s ../.. -o $(notdir $<) $(notdir $(@:.gcov=))
31-
32-
#src/%.gcda: testrun
41+
_gcov: $(GCNO_EXIST:%.gcno=%.c.gcov)
3342

43+
src/%.c.gcov: src/%.gcno
44+
cd src && $(GCOV) -wrabcfu -s ../.. $(<:src/%.gcno=%.o)
45+
[ -f $@ ] || mv src/$(notdir $@) $@
3446

3547
$(HTML): $(PROJ).info
3648
genhtml -s --branch-coverage $(PROJ).info --output-directory $(dir $(HTML))
@@ -41,7 +53,6 @@ $(PROJ).info: $(PROJ).pre.info
4153
$(PROJ).pre.info: $(PROJ).base.info $(PROJ).test.info
4254
lcov --rc lcov_branch_coverage=1 -a $(PROJ).base.info -a $(PROJ).test.info -o $@
4355

44-
#$(PROJ).base.info: src/lib$(PROJ).a
4556
$(PROJ).base.info: testrun
4657
lcov -z -d src
4758
lcov --rc lcov_branch_coverage=1 -c -i -d src -o $@
@@ -51,10 +62,6 @@ $(PROJ).test.info: $(PROJ).base.info
5162
lcov --rc lcov_branch_coverage=1 -c -d src -o $@
5263

5364

54-
#source: Makefile FORCE
55-
# $(MAKE) -C src
56-
57-
#testrun: source FORCE
5865
testrun: tests/Makefile FORCE
5966
$(MAKE) -C tests check
6067

@@ -80,4 +87,3 @@ distclean: clean
8087
rm -rf tests
8188

8289
.PHONY: clean distclean source testrun gcov _gcov
83-

0 commit comments

Comments
 (0)