diff options
author | Toni <matzeton@googlemail.com> | 2022-02-28 14:58:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-28 14:58:45 +0100 |
commit | 00d9a16b6a7e3c5ca90930e3991ac3476bd48780 (patch) | |
tree | f99a46599ccb85f0a3f0b7c577cf8ee30cc2124d | |
parent | 61a3c2eb5b3cac0f36a1bfadc5261b7694d3bfab (diff) |
Added `--enable-code-coverage' build using lcov for coverage generation. (#1430)
* CI job generates a coverage report
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r-- | .github/workflows/build.yml | 33 | ||||
-rw-r--r-- | configure.ac | 7 |
2 files changed, 40 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a8214849..adcf7fe6b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,6 +10,39 @@ on: release: types: [created] jobs: + coverage: + name: Coverage (ubuntu-latest) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Install Ubuntu Prerequisites + run: | + sudo apt-get update + sudo apt-get install autoconf automake libtool pkg-config gettext libjson-c-dev flex bison libpcap-dev + sudo apt-get install rrdtool librrd-dev + sudo apt-get install libgcrypt20-dev libpcre3-dev libmaxminddb-dev lcov + - name: Configure + run: env CC=gcc CFLAGS='-Werror' ./autogen.sh --enable-debug-messages --enable-code-coverage --with-pcre --with-maxminddb + - name: Build + run: make all + - name: Test + run: | + ./tests/do.sh + ./tests/do-unit.sh + ./tests/do-dga.sh + - name: Generate Coverage Report + run: | + mkdir -p coverage_report/ndpi_coverage_report + lcov --directory . --capture --output-file lcov.info + genhtml -o coverage_report/ndpi_coverage_report lcov.info + - uses: actions/upload-artifact@v2 + with: + name: ndpi-coverage-report + path: coverage_report + retention-days: 7 + test: name: ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.gcrypt }} ${{ matrix.compiler }} ${{ matrix.pcre }} ${{ matrix.maxminddb }} ${{ matrix.msan }} runs-on: ${{ matrix.os }} diff --git a/configure.ac b/configure.ac index 2a732efe2..462847387 100644 --- a/configure.ac +++ b/configure.ac @@ -15,6 +15,8 @@ AS_IF([test "${with_only_libndpi+set}" = set],[ AC_ARG_WITH(sanitizer, AS_HELP_STRING([--with-sanitizer], [Build with support for address, undefined and leak sanitizer])) AC_ARG_ENABLE(fuzztargets, AS_HELP_STRING([--enable-fuzztargets], [Enable fuzz targets]),[enable_fuzztargets=$enableval],[enable_fuzztargets=no]) +AC_ARG_ENABLE(code-coverage, AS_HELP_STRING([--enable-code-coverage], [Generate Code Coverage report])) + AS_IF([test "x$enable_fuzztargets" = "xyes"], [BUILD_FUZZTARGETS=1], [BUILD_FUZZTARGETS=0]) AM_CONDITIONAL([BUILD_FUZZTARGETS], [test "x$enable_fuzztargets" = "xyes"]) @@ -23,6 +25,11 @@ AS_IF([test "${with_sanitizer+set}" = set],[ LDFLAGS="${LDFLAGS} -fsanitize=address -fsanitize=undefined -fno-sanitize=alignment -fsanitize=leak" ]) +AS_IF([test "x$enable_code_coverage" = "xyes"],[ + CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage" + LDFLAGS="${LDFLAGS} --coverage" +]) + LT_INIT LT_LIB_M PKG_PROG_PKG_CONFIG |