Add gcov
This commit is contained in:
37
.github/workflows/busted.yml
vendored
37
.github/workflows/busted.yml
vendored
@@ -35,19 +35,38 @@ jobs:
|
||||
- name: Setup dependencies
|
||||
run: |
|
||||
luarocks install busted
|
||||
luarocks install luacov-coveralls
|
||||
- name: Build C library
|
||||
luarocks install luacov-reporter-lcov
|
||||
- name: Build C++ library
|
||||
run: |
|
||||
${{ matrix.os == 'ubuntu-latest' && 'FSANITIZE=1' || '' }} luarocks make --no-install
|
||||
luarocks make --no-install
|
||||
env:
|
||||
LJKIWI_LUA: ${{ startsWith(matrix.lua_version, 'luajit-') && '0' || '1' }}
|
||||
LJKIWI_CFFI: ${{ startsWith(matrix.lua_version, 'luajit-') && '1' || '0' }}
|
||||
FCOV: ${{ startsWith(matrix.os, 'ubuntu-') && '1' || '' }}
|
||||
# Can't assume so versions, have to update this manually below
|
||||
FSANITIZE: ${{ matrix.os == 'ubuntu-latest' && '1' || '' }}
|
||||
|
||||
- name: Run busted tests
|
||||
run: |
|
||||
${{ matrix.os == 'ubuntu-latest' && 'LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.6:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/usr/lib/x86_64-linux-gnu/libubsan.so.1' || '' }} busted -c -v
|
||||
- name: Report test coverage
|
||||
if: success() && !startsWith(matrix.os, 'windows-') && startsWith(matrix.lua_version, 'luajit-')
|
||||
continue-on-error: true
|
||||
run: luacov-coveralls -e .luarocks -e spec
|
||||
busted -c -v
|
||||
env:
|
||||
COVERALLS_REPO_TOKEN: ${{ github.token }}
|
||||
LD_PRELOAD: ${{ matrix.os == 'ubuntu-latest' && '/usr/lib/x86_64-linux-gnu/libasan.so.6:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/usr/lib/x86_64-linux-gnu/libubsan.so.1' || '' }}
|
||||
|
||||
- name: Run gcov
|
||||
if: success() && ${{ startsWith(matrix.os, 'ubuntu-') }}
|
||||
run: |
|
||||
gcov -p -b -s"$(pwd)" -r *.gcda
|
||||
|
||||
- name: generate Lua lcov test reports
|
||||
if: success() && !startsWith(matrix.os, 'windows-') && startsWith(matrix.lua_version, 'luajit-')
|
||||
run: luacov
|
||||
|
||||
- name: Report test coverage
|
||||
if: success() && !startsWith(matrix.os, 'windows-') && (startsWith(matrix.lua_version, 'luajit-') || startsWith(matrix.os, 'ubuntu-'))
|
||||
continue-on-error: true
|
||||
uses: coverallsapp/github-action@v2
|
||||
with:
|
||||
flag-name: run ${{ join(matrix.*, ' - ') }}
|
||||
|
||||
finish:
|
||||
if: always()
|
||||
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -3,6 +3,11 @@
|
||||
/lua_modules
|
||||
/.luarocks
|
||||
/config.mk
|
||||
*.gcda
|
||||
*.gcno
|
||||
*.gcov
|
||||
*.lcov
|
||||
*.out
|
||||
*.pch
|
||||
*.gch
|
||||
*.lib
|
||||
|
||||
5
.luacov
Normal file
5
.luacov
Normal file
@@ -0,0 +1,5 @@
|
||||
modules = {
|
||||
kiwi = "kiwi.lua",
|
||||
}
|
||||
reporter = "lcov"
|
||||
reportfile = "luacov.lcov"
|
||||
20
Makefile
20
Makefile
@@ -29,6 +29,7 @@ SANITIZE_FLAGS := -fsanitize=undefined -fsanitize=address -fsanitize=alignment -
|
||||
-fsanitize=shift -fsanitize=unreachable -fsanitize=bool \
|
||||
-fsanitize=enum
|
||||
|
||||
COVERAGE_FLAGS := -fprofile-arcs -ftest-coverage
|
||||
LTO_FLAGS := -flto=auto
|
||||
|
||||
-include config.mk
|
||||
@@ -52,10 +53,13 @@ endif
|
||||
|
||||
CCFLAGS += -Wall -fvisibility=hidden -Wformat=2 -Wconversion -Wimplicit-fallthrough
|
||||
|
||||
ifdef FCOV
|
||||
CCFLAGS += $(COVERAGE_FLAGS)
|
||||
endif
|
||||
ifdef FSANITIZE
|
||||
CCFLAGS += $(SANITIZE_FLAGS)
|
||||
endif
|
||||
ifndef FNOLTO
|
||||
ifdef FLTO
|
||||
CCFLAGS += $(LTO_FLAGS)
|
||||
endif
|
||||
|
||||
@@ -80,11 +84,9 @@ ifdef LUA
|
||||
LUA_VERSION ?= $(lastword $(shell "$(LUA)" -e "print(_VERSION)"))
|
||||
endif
|
||||
|
||||
ifndef LUA_VERSION
|
||||
LJKIWI_CKIWI := 1
|
||||
else
|
||||
ifeq ($(LUA_VERSION),5.1)
|
||||
LJKIWI_CKIWI := 1
|
||||
ifdef LUA_VERSION
|
||||
ifneq ($(LUA_VERSION),5.1)
|
||||
LJKIWI_CFFI ?= 0
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -92,8 +94,10 @@ kiwi_lib_srcs := AssocVector.h constraint.h debug.h errors.h expression.h kiwi.h
|
||||
row.h shareddata.h solver.h solverimpl.h strength.h symbol.h symbolics.h term.h \
|
||||
util.h variable.h version.h
|
||||
|
||||
objs := luakiwi.o
|
||||
ifdef LJKIWI_CKIWI
|
||||
ifneq ($(LJKIWI_LUA),0)
|
||||
objs += luakiwi.o
|
||||
endif
|
||||
ifneq ($(LJKIWI_CFFI),0)
|
||||
objs += ckiwi.o
|
||||
endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user