mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-24 16:42:05 +00:00
Make clickhouse-test to calculate coverage on a per-test basis
This commit is contained in:
parent
8e0f487387
commit
4288cb3b78
@ -1175,6 +1175,12 @@ class TestCase:
|
||||
description_full += result.description
|
||||
|
||||
if BuildFlags.SANITIZE_COVERAGE in args.build_flags:
|
||||
clickhouse_execute(
|
||||
args,
|
||||
f"INSERT INTO system.coverage SELECT '{self.case}', coverage()",
|
||||
retry_error_codes=True,
|
||||
)
|
||||
|
||||
coverage = clickhouse_execute(
|
||||
args,
|
||||
f"SELECT length(coverage())",
|
||||
@ -1241,6 +1247,14 @@ class TestCase:
|
||||
+ pattern
|
||||
)
|
||||
|
||||
# We want to calculate per-test code coverage. That's why we reset it before each test.
|
||||
if BuildFlags.SANITIZE_COVERAGE in args.build_flags:
|
||||
clickhouse_execute(
|
||||
args,
|
||||
"SYSTEM RESET COVERAGE",
|
||||
retry_error_codes=True,
|
||||
)
|
||||
|
||||
command = pattern.format(**params)
|
||||
|
||||
proc = Popen(command, shell=True, env=os.environ)
|
||||
@ -2349,6 +2363,18 @@ def main(args):
|
||||
print(f"Failed to create databases for tests: {e}")
|
||||
server_died.set()
|
||||
|
||||
if BuildFlags.SANITIZE_COVERAGE in args.build_flags:
|
||||
clickhouse_execute(
|
||||
args,
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS system.coverage
|
||||
(
|
||||
test_name String,
|
||||
coverage Array(UInt64)
|
||||
) ENGINE = MergeTree ORDER BY test_name;
|
||||
""",
|
||||
)
|
||||
|
||||
total_tests_run = 0
|
||||
|
||||
for suite in sorted(os.listdir(base_dir), key=suite_key_func):
|
||||
|
Loading…
Reference in New Issue
Block a user