Commits
- Commit:
df1029a091fa3c6805517e11217a1e15eb71423d
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Via:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Date:
luacov config
NO_CHANGELOG=internal
NO_DOC=internal
NO_TEST=internal
- Commit:
320b6bdb33fd9b46d53eeb5651b19cd7a5b8818d
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Via:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Date:
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
- Commit:
f2d83489db5f8cf6665b5a9860346834f9df0bb9
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Via:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Date:
make: update exclusion list in lcov
NO_CHANGELOG=internal
NO_DOC=internal
NO_TEST=internal
- Commit:
f30e2f1167b17b9c886f46ca260c1d70826be336
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Via:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Date:
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
- Commit:
b4c49119d3621357c652174a33023faa2d4c0e0c
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Via:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Date:
cmake: pass --luacov to test-run on using ENABLE_GCOV
TODO: Проверить luacov для TAP и luatest тестов.
NO_CHANGELOG=internal
NO_DOC=internal
NO_TEST=internal