Commit Briefs

df1029a091 Sergey Bronnikov

luacov config (ligurio/lua-and-c-coverage, origin/ligurio/lua-and-c-coverage)

NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal


320b6bdb33 Sergey Bronnikov

cmake: propagate code coverage flags

TODO: propagate flags commit c6794757ce71013d9137de124aec759209004882 "build: refactor passing compiler flags to dependencies" NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal


f2d83489db Sergey Bronnikov

make: update exclusion list in lcov

NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal


f30e2f1167 Sergey Bronnikov

make: merge Lua and C code coverage reports

luatest tests tarantoolctl rocks install https://raw.githubusercontent.com/tsafin/luacov/tarantool-master/luacov-scm-1.rockspec NOTE: Patch tets-run with --coverage ./test/test-run.py --build $(pwd)/build --luacov app-luatest/msgpack_test.lua или ./test/test-run.py --build $(pwd)/build --luacov --suite app-luatest box-luatest engine-luatest replication-luatest sql-luatest stat luacov.stats.out TAP tests ln -s $(pwd)/.rocks /tmp/.rocks ./test/test-run.py --build $(pwd)/build --luacov app-tap/datetime.test.lua luarocks --tree=/tmp/.rocks/ install https://raw.githubusercontent.com/tsafin/luacov/tarantool-master/luacov-scm-1.rockspec ln -s /tmp/.rocks/share/lua/5.1/ /tmp/.rocks/share/tarantool [001] Last 15 lines of Tarantool Log file [Instance "app_server"][/tmp/t/001_app-tap/datetime.test.lua.tarantool.log]: [001] LuajitError: module 'luacov' not found: [001] no field package.preload['luacov'] [001] no file '/tmp/t/001_app-tap/luacov.lua' [001] no file '/tmp/t/001_app-tap/luacov/init.lua' [001] no file '/tmp/t/001_app-tap/luacov.so' [001] no file '/tmp/t/001_app-tap/.rocks/share/tarantool/luacov.lua' [001] no file '/tmp/t/001_app-tap/.rocks/share/tarantool/luacov/init.lua' [001] no file '/tmp/t/.rocks/share/tarantool/luacov.lua' [001] no file '/tmp/t/.rocks/share/tarantool/luacov/init.lua' [001] no file '/tmp/.rocks/share/tarantool/luacov.lua' [001] no file '/tmp/.rocks/share/t [001] fatal error, exiting the event loop Blocked by https://github.com/tarantool/tarantool/issues/7839 $ export LUA_PATH="$LUA_PATH;$(pwd)/.rocks/share/tarantool/?.lua" ``` --- a/lib/luatest_server.py +++ b/lib/luatest_server.py @@ -35,7 +35,7 @@ class LuatestTest(Test): server.current_test = self script = os.path.join(os.path.basename(server.testdir), self.name) command = ['luatest', '-c', '-v', script, '-o', 'tap', '--shuffle', - 'none'] + 'none', '--coverage'] # Tarantool's build directory is added to PATH in # TarantoolServer.find_exe(). ``` $ ./build/src/tarantool /home/sergeyb/sources/MRG/tarantool/test-run/lib/luatest/bin/luatest -v --coverage test/app-luatest/ $ stat luacov.stats.out $ sed -i -e 's|builtin|'"$(realpath .)"/src/lua'|' luacov.stats.out TODO: Couldn't open ./src/lua/internal.print.lua: No such file or directory $ luacov $ tarantool tools/luacov_to_info.lua luacov.stats.out > luacov.report.out TODO: Fix builtins https://github.com/tarantool/tarantool/wiki/How-to-generate-Lua-coverage-report-for-built-in-module%3F $ lcov --add-tracefile coverage1.info -a coverage2.info -o merged.info TODO: Merge lcov reports https://github.com/daurnimator/luacov-reporter-lcov https://gitlab.nic.cz/analogic/knot-resolver/-/blob/a75f2e9964285c80ed17d4284b27ab28a31cde03/coverage.mk https://gitlab.nic.cz/analogic/knot-resolver/-/blob/a75f2e9964285c80ed17d4284b27ab28a31cde03/scripts/luacov_to_info.lua NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal


b4c49119d3 Sergey Bronnikov

cmake: pass --luacov to test-run on using ENABLE_GCOV

TODO: Проверить luacov для TAP и luatest тестов. NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal