mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 15:12:02 +00:00
Fix perf tests report when there are no tests (#56881)
* fix perf tests report when there are no tests * Automatic style fix * Update docker/test/performance-comparison/compare.sh --------- Co-authored-by: robot-clickhouse <robot-clickhouse@users.noreply.github.com>
This commit is contained in:
parent
2fe4d07c49
commit
dd626d51cb
@ -189,6 +189,8 @@ function run_tests
|
||||
test_prefix=right/performance
|
||||
fi
|
||||
|
||||
run_only_changed_tests=0
|
||||
|
||||
# Determine which tests to run.
|
||||
if [ -v CHPC_TEST_GREP ]
|
||||
then
|
||||
@ -203,6 +205,7 @@ function run_tests
|
||||
# tests. The lists of changed files are prepared in entrypoint.sh because
|
||||
# it has the repository.
|
||||
test_files=($(sed "s/tests\/performance/${test_prefix//\//\\/}/" changed-test-definitions.txt))
|
||||
run_only_changed_tests=1
|
||||
else
|
||||
# The default -- run all tests found in the test dir.
|
||||
test_files=($(ls "$test_prefix"/*.xml))
|
||||
@ -226,6 +229,13 @@ function run_tests
|
||||
test_files=("${test_files[@]}")
|
||||
fi
|
||||
|
||||
if [ "$run_only_changed_tests" -ne 0 ]; then
|
||||
if [ ${#test_files[@]} -eq 0 ]; then
|
||||
time "$script_dir/report.py" --no-tests-run > report.html
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# For PRs w/o changes in test definitons, test only a subset of queries,
|
||||
# and run them less times. If the corresponding environment variables are
|
||||
# already set, keep those values.
|
||||
|
@ -19,6 +19,7 @@ parser.add_argument(
|
||||
choices=["main", "all-queries"],
|
||||
help="Which report to build",
|
||||
)
|
||||
parser.add_argument("--no-tests-run", action="store_true", default=False)
|
||||
args = parser.parse_args()
|
||||
|
||||
tables = []
|
||||
@ -354,6 +355,36 @@ if args.report == "main":
|
||||
|
||||
add_tested_commits()
|
||||
|
||||
def print_status(status, message):
|
||||
print(
|
||||
(
|
||||
"""
|
||||
<!--status: {status}-->
|
||||
<!--message: {message}-->
|
||||
""".format(
|
||||
status=status, message=message
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
if args.no_tests_run:
|
||||
for t in tables:
|
||||
print(t)
|
||||
print(
|
||||
"<h2>No tests to run. Only changed tests were run, but all changed tests are from another batch.</h2>"
|
||||
)
|
||||
print(
|
||||
f"""
|
||||
</div>
|
||||
{os.getenv("CHPC_ADD_REPORT_LINKS") or ''}
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
)
|
||||
# Why failure? Because otherwise we will not notice if we have a bug that leads to 0 tests being run
|
||||
print_status("failure", "No tests changed, nothing to run")
|
||||
exit(0)
|
||||
|
||||
run_error_rows = tsvRows("run-errors.tsv")
|
||||
error_tests += len(run_error_rows)
|
||||
addSimpleTable("Run Errors", ["Test", "Error"], run_error_rows)
|
||||
@ -646,16 +677,7 @@ if args.report == "main":
|
||||
status = "failure"
|
||||
message = "Errors while building the report."
|
||||
|
||||
print(
|
||||
(
|
||||
"""
|
||||
<!--status: {status}-->
|
||||
<!--message: {message}-->
|
||||
""".format(
|
||||
status=status, message=message
|
||||
)
|
||||
)
|
||||
)
|
||||
print_status(status, message)
|
||||
|
||||
elif args.report == "all-queries":
|
||||
print((header_template.format()))
|
||||
|
Loading…
Reference in New Issue
Block a user