From 2b0ed88370172e7ab78d2cd26b0fbe6c89ca5413 Mon Sep 17 00:00:00 2001 From: Sandy Carter Date: Mon, 20 May 2024 14:23:57 -0400 Subject: [PATCH 1/7] export profiling data --- post/clang_tidy_review/clang_tidy_review/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/post/clang_tidy_review/clang_tidy_review/__init__.py b/post/clang_tidy_review/clang_tidy_review/__init__.py index 60fb2b8..6406b84 100644 --- a/post/clang_tidy_review/clang_tidy_review/__init__.py +++ b/post/clang_tidy_review/clang_tidy_review/__init__.py @@ -33,6 +33,7 @@ FIXES_FILE = "clang_tidy_review.yaml" METADATA_FILE = "clang-tidy-review-metadata.json" REVIEW_FILE = "clang-tidy-review-output.json" +PROFILE_DIR = "clang-tidy-review-profile" MAX_ANNOTATIONS = 10 @@ -175,6 +176,8 @@ def build_clang_tidy_warnings( f"-p={build_dir}", f"-line-filter={line_filter}", f"--export-fixes={FIXES_FILE}", + "--enable-check-profile", + f"-store-check-profile={PROFILE_DIR}" ] if config: From b5765507815df4858d67e7b84eff9d38f3ff7c4c Mon Sep 17 00:00:00 2001 From: Sandy Carter Date: Mon, 20 May 2024 21:49:48 -0400 Subject: [PATCH 2/7] Print stats from the profile files --- .../clang_tidy_review/__init__.py | 46 +++++++++++++++++-- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/post/clang_tidy_review/clang_tidy_review/__init__.py b/post/clang_tidy_review/clang_tidy_review/__init__.py index 6406b84..c6ec3e6 100644 --- a/post/clang_tidy_review/clang_tidy_review/__init__.py +++ b/post/clang_tidy_review/clang_tidy_review/__init__.py @@ -6,6 +6,7 @@ import argparse import base64 import fnmatch +import glob import itertools import json import os @@ -177,7 +178,7 @@ def build_clang_tidy_warnings( f"-line-filter={line_filter}", f"--export-fixes={FIXES_FILE}", "--enable-check-profile", - f"-store-check-profile={PROFILE_DIR}" + f"-store-check-profile={PROFILE_DIR}", ] if config: @@ -188,7 +189,6 @@ def build_clang_tidy_warnings( args += files - start = datetime.datetime.now() try: with message_group(f"Running:\n\t{args}"): env = dict(os.environ) @@ -204,9 +204,6 @@ def build_clang_tidy_warnings( print( f"\n\nclang-tidy failed with return code {e.returncode} and error:\n{e.stderr}\nOutput was:\n{e.stdout}" ) - end = datetime.datetime.now() - - print(f"Took: {end - start}") def clang_tidy_version(clang_tidy_binary: pathlib.Path): @@ -895,6 +892,23 @@ def create_review( # Read and parse the CLANG_TIDY_FIXES file clang_tidy_warnings = load_clang_tidy_warnings() + # Read and parse the timing data + clang_tidy_profiling = load_and_merge_profiling() + + if clang_tidy_profiling: + total_wall = sum( + timings["time.clang-tidy.total.wall"] for _, timings in clang_tidy_profiling + ) + total_user = sum( + timings["time.clang-tidy.total.user"] for _, timings in clang_tidy_profiling + ) + total_sys = sum( + timings["time.clang-tidy.total.sys"] for _, timings in clang_tidy_profiling + ) + print( + f"Took: {total_user:.2f}s user {total_sys:.2f} system {total_wall:.2f} total" + ) + print("clang-tidy had the following warnings:\n", clang_tidy_warnings, flush=True) diff_lookup = make_file_line_lookup(diff) @@ -981,6 +995,28 @@ def load_review(review_file: pathlib.Path) -> Optional[PRReview]: return payload or None +def load_and_merge_profiling() -> Dict: + result = dict() + for profile_file in glob.iglob(os.path.join(PROFILE_DIR, "*.json")): + profile_dict = json.load(open(profile_file)) + filename = profile_dict["file"] + current_profile = result.get(filename, dict()) + for check, timing in profile_dict["profile"]: + current_profile[check] = current_profile.get(check, 0.0) + timing + result[filename] = current_profile + for filename, timings in result: + result["time.clang-tidy.total.wall"] = sum( + v for k, v in timings if k.endswith("wall") + ) + result["time.clang-tidy.total.user"] = sum( + v for k, v in timings if k.endswith("user") + ) + result["time.clang-tidy.total.sys"] = sum( + v for k, v in timings if k.endswith("sys") + ) + return result + + def load_and_merge_reviews(review_files: List[pathlib.Path]) -> Optional[PRReview]: reviews = [] for file in review_files: From d8973f1f23dd816082036fdaf1284d8d3a4515d8 Mon Sep 17 00:00:00 2001 From: Sandy Carter Date: Mon, 20 May 2024 22:53:30 -0400 Subject: [PATCH 3/7] Push timing information to the job summary --- .../clang_tidy_review/__init__.py | 119 +- .../20240521223715110927964-hello.cxx.json | 1071 +++++++++++++++++ tests/test_review.py | 10 + 3 files changed, 1178 insertions(+), 22 deletions(-) create mode 100644 tests/src/clang-tidy-profile/20240521223715110927964-hello.cxx.json diff --git a/post/clang_tidy_review/clang_tidy_review/__init__.py b/post/clang_tidy_review/clang_tidy_review/__init__.py index c6ec3e6..93d4d50 100644 --- a/post/clang_tidy_review/clang_tidy_review/__init__.py +++ b/post/clang_tidy_review/clang_tidy_review/__init__.py @@ -22,13 +22,14 @@ import datetime import re import io +import textwrap import zipfile from github import Github, Auth from github.GithubException import GithubException from github.Requester import Requester from github.PaginatedList import PaginatedList from github.WorkflowRun import WorkflowRun -from typing import Any, List, Optional, TypedDict +from typing import Any, List, Optional, TypedDict, Dict DIFF_HEADER_LINE_LENGTH = 5 FIXES_FILE = "clang_tidy_review.yaml" @@ -813,6 +814,77 @@ def create_review_file( return review +def make_timing_summary(clang_tidy_profiling: Dict) -> str: + if not clang_tidy_profiling: + return "" + top_amount = 10 + wall_key = "time.clang-tidy.total.wall" + user_key = "time.clang-tidy.total.user" + sys_key = "time.clang-tidy.total.sys" + total_wall = sum(timings[wall_key] for timings in clang_tidy_profiling.values()) + total_user = sum(timings[user_key] for timings in clang_tidy_profiling.values()) + total_sys = sum(timings[sys_key] for timings in clang_tidy_profiling.values()) + print(f"Took: {total_user:.2f}s user {total_sys:.2f} system {total_wall:.2f} total") + file_summary = textwrap.dedent( + f"""\ + ### Top {top_amount} files + | File | user (s) | system (s) | total (s) | + | ----- | ---------------- | --------------- | ---------------- | + | Total | {total_user:.2f} | {total_sys:.2f} | {total_wall:.2f} | + """ + ) + topfiles = sorted( + ( + ( + os.path.relpath(file), + timings[user_key], + timings[sys_key], + timings[wall_key], + ) + for file, timings in clang_tidy_profiling.items() + ), + key=lambda x: x[3], + reverse=True, + ) + for f, u, s, w in list(topfiles)[:top_amount]: + file_summary += f"|{f}|{u:.2f}|{s:.2f}|{w:.2f}|\n" + + check_timings = {} + for timings in clang_tidy_profiling.values(): + for check, timing in timings.items(): + if check in [wall_key, user_key, sys_key]: + continue + base_check, time_type = check.rsplit(".", 1) + t = check_timings.get(base_check, (0.0, 0.0, 0.0)) + if time_type == "user": + t = t[0] + timing, t[1], t[2] + elif time_type == "sys": + t = t[0], t[1] + timing, t[2] + elif time_type == "wall": + t = t[0], t[1], t[2] + timing + check_timings[base_check] = t + + check_summary = "" + if check_timings: + check_summary = textwrap.dedent( + f"""\ + ### Top {top_amount} checks + | Check | user (s) | system (s) | total (s) | + | ----- | -------- | ---------- | --------- | + | Total | {total_user:.2f} | {total_sys:.2f} | {total_wall:.2f} | + """ + ) + topchecks = sorted( + ((check_name, *timings) for check_name, timings in check_timings.items()), + key=lambda x: x[3], + reverse=True, + ) + for c, u, s, w in list(topchecks)[:top_amount]: + check_summary += f"|{c}|{u:.2f}|{s:.2f}|{w:.2f}|\n" + + return f"## Timing\n{file_summary}{check_summary}" + + def filter_files(diff, include: List[str], exclude: List[str]) -> List: changed_files = [filename.target_file[2:] for filename in diff] files = [] @@ -895,19 +967,10 @@ def create_review( # Read and parse the timing data clang_tidy_profiling = load_and_merge_profiling() - if clang_tidy_profiling: - total_wall = sum( - timings["time.clang-tidy.total.wall"] for _, timings in clang_tidy_profiling - ) - total_user = sum( - timings["time.clang-tidy.total.user"] for _, timings in clang_tidy_profiling - ) - total_sys = sum( - timings["time.clang-tidy.total.sys"] for _, timings in clang_tidy_profiling - ) - print( - f"Took: {total_user:.2f}s user {total_sys:.2f} system {total_wall:.2f} total" - ) + # Post to the action job summary + step_summary = "" + step_summary += make_timing_summary(clang_tidy_profiling) + set_summary(step_summary) print("clang-tidy had the following warnings:\n", clang_tidy_warnings, flush=True) @@ -1001,19 +1064,20 @@ def load_and_merge_profiling() -> Dict: profile_dict = json.load(open(profile_file)) filename = profile_dict["file"] current_profile = result.get(filename, dict()) - for check, timing in profile_dict["profile"]: + for check, timing in profile_dict["profile"].items(): current_profile[check] = current_profile.get(check, 0.0) + timing result[filename] = current_profile - for filename, timings in result: - result["time.clang-tidy.total.wall"] = sum( - v for k, v in timings if k.endswith("wall") + for filename, timings in list(result.items()): + timings["time.clang-tidy.total.wall"] = sum( + v for k, v in timings.items() if k.endswith("wall") ) - result["time.clang-tidy.total.user"] = sum( - v for k, v in timings if k.endswith("user") + timings["time.clang-tidy.total.user"] = sum( + v for k, v in timings.items() if k.endswith("user") ) - result["time.clang-tidy.total.sys"] = sum( - v for k, v in timings if k.endswith("sys") + timings["time.clang-tidy.total.sys"] = sum( + v for k, v in timings.items() if k.endswith("sys") ) + result[filename] = timings return result @@ -1124,6 +1188,17 @@ def set_output(key: str, val: str) -> bool: return True +def set_summary(val: str) -> bool: + if "GITHUB_STEP_SUMMARY" not in os.environ: + return False + + # append key-val pair to file + with open(os.environ["GITHUB_STEP_SUMMARY"], "a") as f: + f.write(val) + + return True + + def decorate_comment_body(comment: str) -> str: """ Split on first dash into two groups of string in [] at end of line diff --git a/tests/src/clang-tidy-profile/20240521223715110927964-hello.cxx.json b/tests/src/clang-tidy-profile/20240521223715110927964-hello.cxx.json new file mode 100644 index 0000000..cefac05 --- /dev/null +++ b/tests/src/clang-tidy-profile/20240521223715110927964-hello.cxx.json @@ -0,0 +1,1071 @@ +{ +"file": "hello.cxx", +"timestamp": "2024-05-21 22:37:15.110927964", +"profile": { + "time.clang-tidy.cppcoreguidelines-virtual-class-destructor.wall": 7.0521831512451172e-03, + "time.clang-tidy.cppcoreguidelines-virtual-class-destructor.user": 4.2479999999960327e-03, + "time.clang-tidy.cppcoreguidelines-virtual-class-destructor.sys": 2.8169999999996254e-03, + "time.clang-tidy.cppcoreguidelines-pro-type-reinterpret-cast.wall": 4.5537948608398438e-05, + "time.clang-tidy.cppcoreguidelines-pro-type-reinterpret-cast.user": 4.0999999999957737e-05, + "time.clang-tidy.cppcoreguidelines-pro-type-reinterpret-cast.sys": 4.0000000001150227e-06, + "time.clang-tidy.hicpp-vararg.wall": 9.9234580993652344e-03, + "time.clang-tidy.hicpp-vararg.user": 5.8040000000039171e-03, + "time.clang-tidy.hicpp-vararg.sys": 4.0180000000080707e-03, + "time.clang-tidy.google-readability-namespace-comments.wall": 7.7388286590576172e-03, + "time.clang-tidy.google-readability-namespace-comments.user": 5.3390000000002047e-03, + "time.clang-tidy.google-readability-namespace-comments.sys": 2.3929999999994234e-03, + "time.clang-tidy.cppcoreguidelines-noexcept-move-operations.wall": 3.3085346221923828e-03, + "time.clang-tidy.cppcoreguidelines-noexcept-move-operations.user": 1.9319999999907189e-03, + "time.clang-tidy.cppcoreguidelines-noexcept-move-operations.sys": 1.4070000000003802e-03, + "time.clang-tidy.cert-oop57-cpp.wall": 5.1546096801757812e-03, + "time.clang-tidy.cert-oop57-cpp.user": 3.2830000000032555e-03, + "time.clang-tidy.cert-oop57-cpp.sys": 1.8459999999957954e-03, + "time.clang-tidy.performance-no-automatic-move.wall": 1.6140937805175781e-03, + "time.clang-tidy.performance-no-automatic-move.user": 1.0000000000007780e-03, + "time.clang-tidy.performance-no-automatic-move.sys": 6.0700000000202259e-04, + "time.clang-tidy.hicpp-avoid-c-arrays.wall": 4.0050029754638672e-02, + "time.clang-tidy.hicpp-avoid-c-arrays.user": 2.2819999999994067e-02, + "time.clang-tidy.hicpp-avoid-c-arrays.sys": 1.7392999999996661e-02, + "time.clang-tidy.android-cloexec-pipe2.wall": 3.2284259796142578e-03, + "time.clang-tidy.android-cloexec-pipe2.user": 2.0420000000034300e-03, + "time.clang-tidy.android-cloexec-pipe2.sys": 1.1790000000020395e-03, + "time.clang-tidy.fuchsia-header-anon-namespaces.wall": 1.5044212341308594e-04, + "time.clang-tidy.fuchsia-header-anon-namespaces.user": 1.0499999999957765e-04, + "time.clang-tidy.fuchsia-header-anon-namespaces.sys": 3.7000000000064759e-05, + "time.clang-tidy.hicpp-noexcept-move.wall": 2.8979778289794922e-03, + "time.clang-tidy.hicpp-noexcept-move.user": 1.6849999999961618e-03, + "time.clang-tidy.hicpp-noexcept-move.sys": 1.2029999999962904e-03, + "time.clang-tidy.abseil-duration-division.wall": 4.1122436523437500e-03, + "time.clang-tidy.abseil-duration-division.user": 2.3809999999921949e-03, + "time.clang-tidy.abseil-duration-division.sys": 1.6610000000010228e-03, + "time.clang-tidy.hicpp-deprecated-headers.wall": 1.1411428451538086e-02, + "time.clang-tidy.hicpp-deprecated-headers.user": 1.1240999999999612e-02, + "time.clang-tidy.hicpp-deprecated-headers.sys": 1.4399999999992197e-04, + "time.clang-tidy.performance-trivially-destructible.wall": 1.5735626220703125e-04, + "time.clang-tidy.performance-trivially-destructible.user": 9.3999999999816453e-05, + "time.clang-tidy.performance-trivially-destructible.sys": 7.8000000001354763e-05, + "time.clang-tidy.google-global-names-in-headers.wall": 1.9238233566284180e-02, + "time.clang-tidy.google-global-names-in-headers.user": 1.0919000000013668e-02, + "time.clang-tidy.google-global-names-in-headers.sys": 8.1479999999949371e-03, + "time.clang-tidy.readability-inconsistent-declaration-parameter-name.wall": 4.4579505920410156e-03, + "time.clang-tidy.readability-inconsistent-declaration-parameter-name.user": 2.4429999999968643e-03, + "time.clang-tidy.readability-inconsistent-declaration-parameter-name.sys": 1.9489999999977581e-03, + "time.clang-tidy.modernize-replace-random-shuffle.wall": 4.6191215515136719e-03, + "time.clang-tidy.modernize-replace-random-shuffle.user": 2.9509999999870473e-03, + "time.clang-tidy.modernize-replace-random-shuffle.sys": 1.6490000000037863e-03, + "time.clang-tidy.cert-dcl59-cpp.wall": 9.9182128906250000e-05, + "time.clang-tidy.cert-dcl59-cpp.user": 6.8999999999874717e-05, + "time.clang-tidy.cert-dcl59-cpp.sys": 2.3999999999801958e-05, + "time.clang-tidy.zircon-temporary-objects.wall": 3.2949447631835938e-04, + "time.clang-tidy.zircon-temporary-objects.user": 2.1799999999894126e-04, + "time.clang-tidy.zircon-temporary-objects.sys": 1.0700000000007925e-04, + "time.clang-tidy.readability-redundant-access-specifiers.wall": 4.0946006774902344e-03, + "time.clang-tidy.readability-redundant-access-specifiers.user": 2.4959999999971672e-03, + "time.clang-tidy.readability-redundant-access-specifiers.sys": 1.6299999999993542e-03, + "time.clang-tidy.cert-pos47-c.wall": 3.8197040557861328e-03, + "time.clang-tidy.cert-pos47-c.user": 2.4260000000002613e-03, + "time.clang-tidy.cert-pos47-c.sys": 1.3980000000046733e-03, + "time.clang-tidy.hicpp-uppercase-literal-suffix.wall": 4.3672084808349609e-02, + "time.clang-tidy.hicpp-uppercase-literal-suffix.user": 2.6537999999982187e-02, + "time.clang-tidy.hicpp-uppercase-literal-suffix.sys": 1.7105000000003923e-02, + "time.clang-tidy.performance-inefficient-string-concatenation.wall": 1.0006427764892578e-03, + "time.clang-tidy.performance-inefficient-string-concatenation.user": 6.5399999999860015e-04, + "time.clang-tidy.performance-inefficient-string-concatenation.sys": 3.3699999999958763e-04, + "time.clang-tidy.modernize-make-shared.wall": 8.0657005310058594e-04, + "time.clang-tidy.modernize-make-shared.user": 4.9899999999869493e-04, + "time.clang-tidy.modernize-make-shared.sys": 3.0399999999874971e-04, + "time.clang-tidy.cert-msc30-c.wall": 3.1509399414062500e-03, + "time.clang-tidy.cert-msc30-c.user": 2.0229999999989978e-03, + "time.clang-tidy.cert-msc30-c.sys": 1.1199999999997878e-03, + "time.clang-tidy.bugprone-sizeof-container.wall": 3.7097930908203125e-04, + "time.clang-tidy.bugprone-sizeof-container.user": 2.1699999999791331e-04, + "time.clang-tidy.bugprone-sizeof-container.sys": 1.6500000000041481e-04, + "time.clang-tidy.boost-use-to-string.wall": 3.3724308013916016e-03, + "time.clang-tidy.boost-use-to-string.user": 2.1240000000077863e-03, + "time.clang-tidy.boost-use-to-string.sys": 1.2290000000014789e-03, + "time.clang-tidy.cert-exp42-c.wall": 3.5216808319091797e-03, + "time.clang-tidy.cert-exp42-c.user": 2.2400000000017961e-03, + "time.clang-tidy.cert-exp42-c.sys": 1.2760000000020533e-03, + "time.clang-tidy.readability-const-return-type.wall": 3.9372444152832031e-03, + "time.clang-tidy.readability-const-return-type.user": 2.2400000000044606e-03, + "time.clang-tidy.readability-const-return-type.sys": 1.6650000000018039e-03, + "time.clang-tidy.abseil-string-find-startswith.wall": 2.1224021911621094e-03, + "time.clang-tidy.abseil-string-find-startswith.user": 1.2660000000086491e-03, + "time.clang-tidy.abseil-string-find-startswith.sys": 8.6399999999731136e-04, + "time.clang-tidy.google-upgrade-googletest-case.wall": 7.2291135787963867e-02, + "time.clang-tidy.google-upgrade-googletest-case.user": 4.1725000000016443e-02, + "time.clang-tidy.google-upgrade-googletest-case.sys": 3.0206000000001954e-02, + "time.clang-tidy.modernize-pass-by-value.wall": 7.2646141052246094e-04, + "time.clang-tidy.modernize-pass-by-value.user": 4.1800000000069559e-04, + "time.clang-tidy.modernize-pass-by-value.sys": 3.0899999999967065e-04, + "time.clang-tidy.readability-avoid-const-params-in-decls.wall": 5.6788921356201172e-03, + "time.clang-tidy.readability-avoid-const-params-in-decls.user": 3.2590000000030095e-03, + "time.clang-tidy.readability-avoid-const-params-in-decls.sys": 2.5280000000014180e-03, + "time.clang-tidy.abseil-no-namespace.wall": 1.3303756713867188e-04, + "time.clang-tidy.abseil-no-namespace.user": 8.5000000000778897e-05, + "time.clang-tidy.abseil-no-namespace.sys": 4.0000000000040004e-05, + "time.clang-tidy.cert-oop58-cpp.wall": 4.0805339813232422e-03, + "time.clang-tidy.cert-oop58-cpp.user": 2.2739999999989990e-03, + "time.clang-tidy.cert-oop58-cpp.sys": 1.7540000000055844e-03, + "time.clang-tidy.cppcoreguidelines-c-copy-assignment-signature.wall": 8.6638927459716797e-03, + "time.clang-tidy.cppcoreguidelines-c-copy-assignment-signature.user": 4.9659999999898119e-03, + "time.clang-tidy.cppcoreguidelines-c-copy-assignment-signature.sys": 3.6759999999937953e-03, + "time.clang-tidy.cert-oop54-cpp.wall": 3.2560825347900391e-03, + "time.clang-tidy.cert-oop54-cpp.user": 1.7519999999970892e-03, + "time.clang-tidy.cert-oop54-cpp.sys": 1.4360000000031015e-03, + "time.clang-tidy.modernize-use-bool-literals.wall": 9.4058513641357422e-03, + "time.clang-tidy.modernize-use-bool-literals.user": 5.1390000000224312e-03, + "time.clang-tidy.modernize-use-bool-literals.sys": 4.3770000000009635e-03, + "time.clang-tidy.misc-redundant-expression.wall": 1.4100313186645508e-02, + "time.clang-tidy.misc-redundant-expression.user": 8.4430000000184080e-03, + "time.clang-tidy.misc-redundant-expression.sys": 5.7490000000033348e-03, + "time.clang-tidy.performance-noexcept-swap.wall": 4.1360855102539062e-03, + "time.clang-tidy.performance-noexcept-swap.user": 2.3660000000091941e-03, + "time.clang-tidy.performance-noexcept-swap.sys": 1.7959999999990206e-03, + "time.clang-tidy.abseil-no-internal-dependencies.wall": 3.5114288330078125e-03, + "time.clang-tidy.abseil-no-internal-dependencies.user": 2.2000000000073072e-03, + "time.clang-tidy.abseil-no-internal-dependencies.sys": 1.2449999999988304e-03, + "time.clang-tidy.modernize-deprecated-headers.wall": 8.0726146697998047e-03, + "time.clang-tidy.modernize-deprecated-headers.user": 7.9720000000000901e-03, + "time.clang-tidy.modernize-deprecated-headers.sys": 9.9999999991773336e-07, + "time.clang-tidy.bugprone-suspicious-realloc-usage.wall": 1.6269683837890625e-03, + "time.clang-tidy.bugprone-suspicious-realloc-usage.user": 9.2499999999562377e-04, + "time.clang-tidy.bugprone-suspicious-realloc-usage.sys": 6.2299999999937405e-04, + "time.clang-tidy.hicpp-move-const-arg.wall": 3.3003091812133789e-02, + "time.clang-tidy.hicpp-move-const-arg.user": 2.0145999999976016e-02, + "time.clang-tidy.hicpp-move-const-arg.sys": 1.2732999999986561e-02, + "time.clang-tidy.abseil-redundant-strcat-calls.wall": 3.9427280426025391e-03, + "time.clang-tidy.abseil-redundant-strcat-calls.user": 2.4979999999974467e-03, + "time.clang-tidy.abseil-redundant-strcat-calls.sys": 1.4180000000010295e-03, + "time.clang-tidy.modernize-avoid-bind.wall": 3.5469532012939453e-03, + "time.clang-tidy.modernize-avoid-bind.user": 2.2519999999945917e-03, + "time.clang-tidy.modernize-avoid-bind.sys": 1.2970000000018800e-03, + "time.clang-tidy.cert-dcl16-c.wall": 3.3996105194091797e-02, + "time.clang-tidy.cert-dcl16-c.user": 2.1805000000037822e-02, + "time.clang-tidy.cert-dcl16-c.sys": 1.2153999999993781e-02, + "time.clang-tidy.android-cloexec-accept.wall": 3.2320022583007812e-03, + "time.clang-tidy.android-cloexec-accept.user": 2.0449999999958557e-03, + "time.clang-tidy.android-cloexec-accept.sys": 1.1340000000010786e-03, + "time.clang-tidy.performance-inefficient-vector-operation.wall": 8.1777572631835938e-05, + "time.clang-tidy.performance-inefficient-vector-operation.user": 5.8000000000557606e-05, + "time.clang-tidy.performance-inefficient-vector-operation.sys": 1.8999999999991246e-05, + "time.clang-tidy.llvm-else-after-return.wall": 7.2233676910400391e-03, + "time.clang-tidy.llvm-else-after-return.user": 4.7029999999943506e-03, + "time.clang-tidy.llvm-else-after-return.sys": 2.5580000000007264e-03, + "time.clang-tidy.hicpp-member-init.wall": 1.1773824691772461e-02, + "time.clang-tidy.hicpp-member-init.user": 6.9369999999828735e-03, + "time.clang-tidy.hicpp-member-init.sys": 4.7520000000025320e-03, + "time.clang-tidy.cert-flp30-c.wall": 5.3167343139648438e-05, + "time.clang-tidy.cert-flp30-c.user": 4.4000000000377071e-05, + "time.clang-tidy.cert-flp30-c.sys": 1.6000000000016001e-05, + "time.clang-tidy.llvmlibc-inline-function-decl.wall": 1.3705730438232422e-02, + "time.clang-tidy.llvmlibc-inline-function-decl.user": 7.8970000000029295e-03, + "time.clang-tidy.llvmlibc-inline-function-decl.sys": 5.8870000000017519e-03, + "time.clang-tidy.misc-uniqueptr-reset-release.wall": 3.1828880310058594e-04, + "time.clang-tidy.misc-uniqueptr-reset-release.user": 1.9300000000255224e-04, + "time.clang-tidy.misc-uniqueptr-reset-release.sys": 1.2000000000034206e-04, + "time.clang-tidy.fuchsia-trailing-return.wall": 3.7443637847900391e-03, + "time.clang-tidy.fuchsia-trailing-return.user": 2.0960000000065371e-03, + "time.clang-tidy.fuchsia-trailing-return.sys": 1.6159999999987296e-03, + "time.clang-tidy.android-cloexec-socket.wall": 3.5159587860107422e-03, + "time.clang-tidy.android-cloexec-socket.user": 2.2699999999984399e-03, + "time.clang-tidy.android-cloexec-socket.sys": 1.2510000000045540e-03, + "time.clang-tidy.fuchsia-statically-constructed-objects.wall": 8.2118511199951172e-03, + "time.clang-tidy.fuchsia-statically-constructed-objects.user": 4.6340000000069104e-03, + "time.clang-tidy.fuchsia-statically-constructed-objects.sys": 3.5259999999950331e-03, + "time.clang-tidy.readability-misplaced-array-index.wall": 2.0718574523925781e-04, + "time.clang-tidy.readability-misplaced-array-index.user": 1.1599999999889476e-04, + "time.clang-tidy.readability-misplaced-array-index.sys": 9.3999999999816453e-05, + "time.clang-tidy.modernize-deprecated-ios-base-aliases.wall": 3.8014411926269531e-02, + "time.clang-tidy.modernize-deprecated-ios-base-aliases.user": 2.1541999999987294e-02, + "time.clang-tidy.modernize-deprecated-ios-base-aliases.sys": 1.6469000000004508e-02, + "time.clang-tidy.cert-con36-c.wall": 3.2949447631835938e-03, + "time.clang-tidy.cert-con36-c.user": 2.2180000000004974e-03, + "time.clang-tidy.cert-con36-c.sys": 1.1109999999991960e-03, + "time.clang-tidy.google-runtime-operator.wall": 5.4092407226562500e-03, + "time.clang-tidy.google-runtime-operator.user": 2.9900000000053772e-03, + "time.clang-tidy.google-runtime-operator.sys": 2.3159999999997627e-03, + "time.clang-tidy.misc-no-recursion.wall": 8.7034702301025391e-03, + "time.clang-tidy.misc-no-recursion.user": 8.6709999999996512e-03, + "time.clang-tidy.misc-no-recursion.sys": 0.0000000000000000e+00, + "time.clang-tidy.cppcoreguidelines-pro-bounds-array-to-pointer-decay.wall": 1.8010854721069336e-02, + "time.clang-tidy.cppcoreguidelines-pro-bounds-array-to-pointer-decay.user": 1.0702000000000655e-02, + "time.clang-tidy.cppcoreguidelines-pro-bounds-array-to-pointer-decay.sys": 7.3830000000019158e-03, + "time.clang-tidy.bugprone-switch-missing-default-case.wall": 4.2915344238281250e-06, + "time.clang-tidy.bugprone-switch-missing-default-case.user": 5.0000000002548006e-06, + "time.clang-tidy.bugprone-switch-missing-default-case.sys": 0.0000000000000000e+00, + "time.clang-tidy.android-cloexec-pipe.wall": 3.1669139862060547e-03, + "time.clang-tidy.android-cloexec-pipe.user": 2.0130000000020409e-03, + "time.clang-tidy.android-cloexec-pipe.sys": 1.1639999999981665e-03, + "time.clang-tidy.bugprone-bool-pointer-implicit-conversion.wall": 2.1967887878417969e-03, + "time.clang-tidy.bugprone-bool-pointer-implicit-conversion.user": 1.4419999999999433e-03, + "time.clang-tidy.bugprone-bool-pointer-implicit-conversion.sys": 7.5500000000028322e-04, + "time.clang-tidy.altera-id-dependent-backward-branch.wall": 1.3964343070983887e-01, + "time.clang-tidy.altera-id-dependent-backward-branch.user": 8.6064999999990732e-02, + "time.clang-tidy.altera-id-dependent-backward-branch.sys": 5.4357000000012867e-02, + "time.clang-tidy.cppcoreguidelines-non-private-member-variables-in-classes.wall": 4.5387744903564453e-03, + "time.clang-tidy.cppcoreguidelines-non-private-member-variables-in-classes.user": 2.9289999999964067e-03, + "time.clang-tidy.cppcoreguidelines-non-private-member-variables-in-classes.sys": 1.6259999999992392e-03, + "time.clang-tidy.modernize-use-using.wall": 1.3533592224121094e-02, + "time.clang-tidy.modernize-use-using.user": 7.9959999999967835e-03, + "time.clang-tidy.modernize-use-using.sys": 5.5910000000019000e-03, + "time.clang-tidy.abseil-duration-comparison.wall": 1.9152164459228516e-03, + "time.clang-tidy.abseil-duration-comparison.user": 1.0889999999945665e-03, + "time.clang-tidy.abseil-duration-comparison.sys": 7.9999999999791349e-04, + "time.clang-tidy.bugprone-throw-keyword-missing.wall": 7.2860717773437500e-04, + "time.clang-tidy.bugprone-throw-keyword-missing.user": 3.5899999999955412e-04, + "time.clang-tidy.bugprone-throw-keyword-missing.sys": 1.3700000000049783e-04, + "time.clang-tidy.cppcoreguidelines-avoid-do-while.wall": 1.6212463378906250e-04, + "time.clang-tidy.cppcoreguidelines-avoid-do-while.user": 8.4999999999446629e-05, + "time.clang-tidy.cppcoreguidelines-avoid-do-while.sys": 8.0999999999775696e-05, + "time.clang-tidy.android-cloexec-epoll-create1.wall": 3.7992000579833984e-03, + "time.clang-tidy.android-cloexec-epoll-create1.user": 2.3329999999925910e-03, + "time.clang-tidy.android-cloexec-epoll-create1.sys": 1.3110000000016164e-03, + "time.clang-tidy.bugprone-suspicious-memset-usage.wall": 5.8763027191162109e-03, + "time.clang-tidy.bugprone-suspicious-memset-usage.user": 3.7640000000109808e-03, + "time.clang-tidy.bugprone-suspicious-memset-usage.sys": 2.0870000000088318e-03, + "time.clang-tidy.cert-dcl37-c.wall": 1.6343545913696289e-01, + "time.clang-tidy.cert-dcl37-c.user": 1.5972499999999989e-01, + "time.clang-tidy.cert-dcl37-c.sys": 3.3669999999998979e-03, + "time.clang-tidy.cert-msc24-c.wall": 6.4532756805419922e-03, + "time.clang-tidy.cert-msc24-c.user": 3.9180000000049731e-03, + "time.clang-tidy.cert-msc24-c.sys": 2.4689999999967238e-03, + "time.clang-tidy.bugprone-redundant-branch-condition.wall": 9.5343589782714844e-04, + "time.clang-tidy.bugprone-redundant-branch-condition.user": 6.5400000000348513e-04, + "time.clang-tidy.bugprone-redundant-branch-condition.sys": 3.2300000000273776e-04, + "time.clang-tidy.hicpp-use-equals-default.wall": 5.9161186218261719e-03, + "time.clang-tidy.hicpp-use-equals-default.user": 3.5569999999998103e-03, + "time.clang-tidy.hicpp-use-equals-default.sys": 2.3500000000009624e-03, + "time.clang-tidy.cert-err60-cpp.wall": 6.8664550781250000e-05, + "time.clang-tidy.cert-err60-cpp.user": 4.5000000000516849e-05, + "time.clang-tidy.cert-err60-cpp.sys": 1.9999999999464890e-05, + "time.clang-tidy.modernize-use-uncaught-exceptions.wall": 1.0484218597412109e-02, + "time.clang-tidy.modernize-use-uncaught-exceptions.user": 6.5999999999903913e-03, + "time.clang-tidy.modernize-use-uncaught-exceptions.sys": 3.9269999999991256e-03, + "time.clang-tidy.readability-redundant-smartptr-get.wall": 6.5665245056152344e-03, + "time.clang-tidy.readability-redundant-smartptr-get.user": 3.9570000000179739e-03, + "time.clang-tidy.readability-redundant-smartptr-get.sys": 2.4280000000032054e-03, + "time.clang-tidy.hicpp-undelegated-constructor.wall": 3.2951831817626953e-03, + "time.clang-tidy.hicpp-undelegated-constructor.user": 2.0119999999987925e-03, + "time.clang-tidy.hicpp-undelegated-constructor.sys": 1.2199999999993327e-03, + "time.clang-tidy.cert-err52-cpp.wall": 3.3173561096191406e-03, + "time.clang-tidy.cert-err52-cpp.user": 2.1019999999967176e-03, + "time.clang-tidy.cert-err52-cpp.sys": 1.1650000000007488e-03, + "time.clang-tidy.misc-new-delete-overloads.wall": 5.1236152648925781e-03, + "time.clang-tidy.misc-new-delete-overloads.user": 2.9099999999964155e-03, + "time.clang-tidy.misc-new-delete-overloads.sys": 2.1950000000001690e-03, + "time.clang-tidy.bugprone-move-forwarding-reference.wall": 4.7557353973388672e-03, + "time.clang-tidy.bugprone-move-forwarding-reference.user": 3.0429999999976864e-03, + "time.clang-tidy.bugprone-move-forwarding-reference.sys": 1.7579999999994822e-03, + "time.clang-tidy.google-readability-braces-around-statements.wall": 1.1115789413452148e-02, + "time.clang-tidy.google-readability-braces-around-statements.user": 7.2019999999977102e-03, + "time.clang-tidy.google-readability-braces-around-statements.sys": 3.9129999999980569e-03, + "time.clang-tidy.readability-redundant-string-cstr.wall": 2.6252269744873047e-03, + "time.clang-tidy.readability-redundant-string-cstr.user": 1.7159999999942777e-03, + "time.clang-tidy.readability-redundant-string-cstr.sys": 9.0000000000101110e-04, + "time.clang-tidy.bugprone-string-constructor.wall": 4.6801567077636719e-04, + "time.clang-tidy.bugprone-string-constructor.user": 3.2100000000045981e-04, + "time.clang-tidy.bugprone-string-constructor.sys": 1.5699999999929659e-04, + "time.clang-tidy.bugprone-incorrect-roundings.wall": 4.6954154968261719e-03, + "time.clang-tidy.bugprone-incorrect-roundings.user": 2.6829999999864462e-03, + "time.clang-tidy.bugprone-incorrect-roundings.sys": 1.8429999999951541e-03, + "time.clang-tidy.google-explicit-constructor.wall": 2.3362636566162109e-03, + "time.clang-tidy.google-explicit-constructor.user": 1.3949999999947060e-03, + "time.clang-tidy.google-explicit-constructor.sys": 9.4400000000094408e-04, + "time.clang-tidy.altera-struct-pack-align.wall": 2.2187232971191406e-03, + "time.clang-tidy.altera-struct-pack-align.user": 1.3059999999995853e-03, + "time.clang-tidy.altera-struct-pack-align.sys": 9.0299999999920999e-04, + "time.clang-tidy.modernize-use-transparent-functors.wall": 3.9747714996337891e-02, + "time.clang-tidy.modernize-use-transparent-functors.user": 2.2638999999992748e-02, + "time.clang-tidy.modernize-use-transparent-functors.sys": 1.7135999999996487e-02, + "time.clang-tidy.misc-use-anonymous-namespace.wall": 1.0103464126586914e-02, + "time.clang-tidy.misc-use-anonymous-namespace.user": 5.6219999999989057e-03, + "time.clang-tidy.misc-use-anonymous-namespace.sys": 4.3809999999961935e-03, + "time.clang-tidy.bugprone-forwarding-reference-overload.wall": 7.8487396240234375e-04, + "time.clang-tidy.bugprone-forwarding-reference-overload.user": 4.7100000000455111e-04, + "time.clang-tidy.bugprone-forwarding-reference-overload.sys": 3.1700000000101092e-04, + "time.clang-tidy.bugprone-misplaced-pointer-arithmetic-in-alloc.wall": 1.8367767333984375e-03, + "time.clang-tidy.bugprone-misplaced-pointer-arithmetic-in-alloc.user": 1.0750000000041560e-03, + "time.clang-tidy.bugprone-misplaced-pointer-arithmetic-in-alloc.sys": 7.4600000000235589e-04, + "time.clang-tidy.bugprone-reserved-identifier.wall": 1.5588665008544922e-01, + "time.clang-tidy.bugprone-reserved-identifier.user": 1.4900800000000025e-01, + "time.clang-tidy.bugprone-reserved-identifier.sys": 6.5129999999999910e-03, + "time.clang-tidy.cert-err09-cpp.wall": 1.1229515075683594e-04, + "time.clang-tidy.cert-err09-cpp.user": 8.7999999999865963e-05, + "time.clang-tidy.cert-err09-cpp.sys": 2.9999999999530402e-05, + "time.clang-tidy.hicpp-use-equals-delete.wall": 3.4523010253906250e-03, + "time.clang-tidy.hicpp-use-equals-delete.user": 1.9700000000093532e-03, + "time.clang-tidy.hicpp-use-equals-delete.sys": 1.4240000000007580e-03, + "time.clang-tidy.hicpp-use-override.wall": 3.8192272186279297e-03, + "time.clang-tidy.hicpp-use-override.user": 2.1519999999846107e-03, + "time.clang-tidy.hicpp-use-override.sys": 1.6570000000013518e-03, + "time.clang-tidy.cppcoreguidelines-misleading-capture-default-by-value.wall": 9.2983245849609375e-06, + "time.clang-tidy.cppcoreguidelines-misleading-capture-default-by-value.user": 6.9999999992020889e-06, + "time.clang-tidy.cppcoreguidelines-misleading-capture-default-by-value.sys": 3.9999999998929781e-06, + "time.clang-tidy.cert-flp37-c.wall": 3.3900737762451172e-03, + "time.clang-tidy.cert-flp37-c.user": 2.1649999999953096e-03, + "time.clang-tidy.cert-flp37-c.sys": 1.2259999999935101e-03, + "time.clang-tidy.abseil-string-find-str-contains.wall": 3.4123659133911133e-02, + "time.clang-tidy.abseil-string-find-str-contains.user": 2.0379000000032121e-02, + "time.clang-tidy.abseil-string-find-str-contains.sys": 1.2961999999993701e-02, + "time.clang-tidy.cppcoreguidelines-narrowing-conversions.wall": 1.3095617294311523e-02, + "time.clang-tidy.cppcoreguidelines-narrowing-conversions.user": 7.4889999999867563e-03, + "time.clang-tidy.cppcoreguidelines-narrowing-conversions.sys": 5.6040000000001644e-03, + "time.clang-tidy.cert-pos44-c.wall": 3.3152103424072266e-03, + "time.clang-tidy.cert-pos44-c.user": 2.1070000000049660e-03, + "time.clang-tidy.cert-pos44-c.sys": 1.1949999999976146e-03, + "time.clang-tidy.hicpp-avoid-goto.wall": 2.3841857910156250e-06, + "time.clang-tidy.hicpp-avoid-goto.user": 2.0000000002795559e-06, + "time.clang-tidy.hicpp-avoid-goto.sys": 0.0000000000000000e+00, + "time.clang-tidy.cppcoreguidelines-noexcept-swap.wall": 4.4786930084228516e-03, + "time.clang-tidy.cppcoreguidelines-noexcept-swap.user": 2.5470000000096249e-03, + "time.clang-tidy.cppcoreguidelines-noexcept-swap.sys": 1.9369999999938603e-03, + "time.clang-tidy.portability-simd-intrinsics.wall": 7.8909397125244141e-03, + "time.clang-tidy.portability-simd-intrinsics.user": 5.0120000000024589e-03, + "time.clang-tidy.portability-simd-intrinsics.sys": 2.9120000000026902e-03, + "time.clang-tidy.cert-msc51-cpp.wall": 4.2593479156494141e-03, + "time.clang-tidy.cert-msc51-cpp.user": 2.6739999999958464e-03, + "time.clang-tidy.cert-msc51-cpp.sys": 1.5430000000009603e-03, + "time.clang-tidy.cppcoreguidelines-avoid-non-const-global-variables.wall": 8.1450939178466797e-03, + "time.clang-tidy.cppcoreguidelines-avoid-non-const-global-variables.user": 4.6649999999974767e-03, + "time.clang-tidy.cppcoreguidelines-avoid-non-const-global-variables.sys": 3.4919999999971640e-03, + "time.clang-tidy.google-build-explicit-make-pair.wall": 8.5129737854003906e-03, + "time.clang-tidy.google-build-explicit-make-pair.user": 6.0280000000036971e-03, + "time.clang-tidy.google-build-explicit-make-pair.sys": 2.5260000000024707e-03, + "time.clang-tidy.bugprone-assert-side-effect.wall": 3.1441926956176758e-02, + "time.clang-tidy.bugprone-assert-side-effect.user": 1.8935999999959652e-02, + "time.clang-tidy.bugprone-assert-side-effect.sys": 1.2025999999990322e-02, + "time.clang-tidy.abseil-duration-addition.wall": 1.2702941894531250e-03, + "time.clang-tidy.abseil-duration-addition.user": 7.3899999999760269e-04, + "time.clang-tidy.abseil-duration-addition.sys": 5.1599999999796253e-04, + "time.clang-tidy.llvmlibc-implementation-in-namespace.wall": 7.7181577682495117e-02, + "time.clang-tidy.llvmlibc-implementation-in-namespace.user": 6.2155999999998990e-02, + "time.clang-tidy.llvmlibc-implementation-in-namespace.sys": 1.4738999999995173e-02, + "time.clang-tidy.google-build-using-namespace.wall": 9.2983245849609375e-06, + "time.clang-tidy.google-build-using-namespace.user": 9.0000000003698233e-06, + "time.clang-tidy.google-build-using-namespace.sys": 0.0000000000000000e+00, + "time.clang-tidy.mpi-type-mismatch.wall": 3.7734508514404297e-03, + "time.clang-tidy.mpi-type-mismatch.user": 2.4629999999974395e-03, + "time.clang-tidy.mpi-type-mismatch.sys": 1.3740000000037611e-03, + "time.clang-tidy.abseil-upgrade-duration-conversions.wall": 1.2427568435668945e-02, + "time.clang-tidy.abseil-upgrade-duration-conversions.user": 7.6219999999991295e-03, + "time.clang-tidy.abseil-upgrade-duration-conversions.sys": 4.8799999999886712e-03, + "time.clang-tidy.bugprone-signed-char-misuse.wall": 1.2284040451049805e-02, + "time.clang-tidy.bugprone-signed-char-misuse.user": 7.1219999999705408e-03, + "time.clang-tidy.bugprone-signed-char-misuse.sys": 5.1330000000078257e-03, + "time.clang-tidy.readability-else-after-return.wall": 5.1138401031494141e-03, + "time.clang-tidy.readability-else-after-return.user": 3.2830000000010351e-03, + "time.clang-tidy.readability-else-after-return.sys": 1.8490000000013218e-03, + "time.clang-tidy.bugprone-unsafe-functions.wall": 6.7646503448486328e-03, + "time.clang-tidy.bugprone-unsafe-functions.user": 4.2329999999992651e-03, + "time.clang-tidy.bugprone-unsafe-functions.sys": 2.5970000000044013e-03, + "time.clang-tidy.cppcoreguidelines-use-default-member-init.wall": 1.1191368103027344e-03, + "time.clang-tidy.cppcoreguidelines-use-default-member-init.user": 7.0800000000215135e-04, + "time.clang-tidy.cppcoreguidelines-use-default-member-init.sys": 4.2299999999872995e-04, + "time.clang-tidy.readability-function-size.wall": 1.3463735580444336e-02, + "time.clang-tidy.readability-function-size.user": 8.4160000000035318e-03, + "time.clang-tidy.readability-function-size.sys": 5.1540000000038777e-03, + "time.clang-tidy.android-comparison-in-temp-failure-retry.wall": 1.3544559478759766e-03, + "time.clang-tidy.android-comparison-in-temp-failure-retry.user": 8.1900000000389994e-04, + "time.clang-tidy.android-comparison-in-temp-failure-retry.sys": 5.4499999999935156e-04, + "time.clang-tidy.misc-unused-alias-decls.wall": 3.2312870025634766e-03, + "time.clang-tidy.misc-unused-alias-decls.user": 2.0830000000020554e-03, + "time.clang-tidy.misc-unused-alias-decls.sys": 1.1839999999991857e-03, + "time.clang-tidy.bugprone-stringview-nullptr.wall": 7.8516483306884766e-02, + "time.clang-tidy.bugprone-stringview-nullptr.user": 4.6620000000016315e-02, + "time.clang-tidy.bugprone-stringview-nullptr.sys": 3.1772999999998719e-02, + "time.clang-tidy.cert-msc32-c.wall": 3.9227008819580078e-03, + "time.clang-tidy.cert-msc32-c.user": 2.5059999999959004e-03, + "time.clang-tidy.cert-msc32-c.sys": 1.4179999999943682e-03, + "time.clang-tidy.cert-err34-c.wall": 3.6230087280273438e-03, + "time.clang-tidy.cert-err34-c.user": 2.2889999999931021e-03, + "time.clang-tidy.cert-err34-c.sys": 1.2900000000002354e-03, + "time.clang-tidy.cppcoreguidelines-avoid-magic-numbers.wall": 2.2354125976562500e-03, + "time.clang-tidy.cppcoreguidelines-avoid-magic-numbers.user": 1.2820000000068887e-03, + "time.clang-tidy.cppcoreguidelines-avoid-magic-numbers.sys": 9.6599999999824604e-04, + "time.clang-tidy.modernize-concat-nested-namespaces.wall": 2.7298927307128906e-04, + "time.clang-tidy.modernize-concat-nested-namespaces.user": 2.0799999999976393e-04, + "time.clang-tidy.modernize-concat-nested-namespaces.sys": 5.4000000000220538e-05, + "time.clang-tidy.android-cloexec-accept4.wall": 3.2424926757812500e-03, + "time.clang-tidy.android-cloexec-accept4.user": 2.0170000000092614e-03, + "time.clang-tidy.android-cloexec-accept4.sys": 1.1470000000060043e-03, + "time.clang-tidy.bugprone-unhandled-self-assignment.wall": 3.5259723663330078e-03, + "time.clang-tidy.bugprone-unhandled-self-assignment.user": 2.2010000000065588e-03, + "time.clang-tidy.bugprone-unhandled-self-assignment.sys": 1.3199999999990997e-03, + "time.clang-tidy.modernize-use-override.wall": 3.2141208648681641e-03, + "time.clang-tidy.modernize-use-override.user": 1.7870000000033137e-03, + "time.clang-tidy.modernize-use-override.sys": 1.3430000000025366e-03, + "time.clang-tidy.readability-simplify-boolean-expr.wall": 1.1194705963134766e-02, + "time.clang-tidy.readability-simplify-boolean-expr.user": 1.1122000000000298e-02, + "time.clang-tidy.readability-simplify-boolean-expr.sys": 0.0000000000000000e+00, + "time.clang-tidy.cppcoreguidelines-interfaces-global-init.wall": 7.5609683990478516e-03, + "time.clang-tidy.cppcoreguidelines-interfaces-global-init.user": 4.3190000000050688e-03, + "time.clang-tidy.cppcoreguidelines-interfaces-global-init.sys": 3.2790000000029185e-03, + "time.clang-tidy.readability-identifier-naming.wall": 4.1101694107055664e-02, + "time.clang-tidy.readability-identifier-naming.user": 3.7573999999999774e-02, + "time.clang-tidy.readability-identifier-naming.sys": 3.3840000000000536e-03, + "time.clang-tidy.bugprone-too-small-loop-variable.wall": 1.0240077972412109e-03, + "time.clang-tidy.bugprone-too-small-loop-variable.user": 1.4299999999867197e-04, + "time.clang-tidy.bugprone-too-small-loop-variable.sys": 8.8200000000004941e-04, + "time.clang-tidy.misc-static-assert.wall": 9.3545913696289062e-03, + "time.clang-tidy.misc-static-assert.user": 6.2150000000071870e-03, + "time.clang-tidy.misc-static-assert.sys": 3.1350000000018863e-03, + "time.clang-tidy.bugprone-unused-return-value.wall": 3.8152694702148438e-02, + "time.clang-tidy.bugprone-unused-return-value.user": 2.3322000000029597e-02, + "time.clang-tidy.bugprone-unused-return-value.sys": 1.4688000000010915e-02, + "time.clang-tidy.android-cloexec-open.wall": 4.0051937103271484e-03, + "time.clang-tidy.android-cloexec-open.user": 2.5470000000025195e-03, + "time.clang-tidy.android-cloexec-open.sys": 1.4420000000001654e-03, + "time.clang-tidy.android-cloexec-epoll-create.wall": 3.0281543731689453e-03, + "time.clang-tidy.android-cloexec-epoll-create.user": 1.9519999999926263e-03, + "time.clang-tidy.android-cloexec-epoll-create.sys": 1.1070000000004132e-03, + "time.clang-tidy.misc-non-private-member-variables-in-classes.wall": 9.6695423126220703e-03, + "time.clang-tidy.misc-non-private-member-variables-in-classes.user": 4.6629999999989735e-03, + "time.clang-tidy.misc-non-private-member-variables-in-classes.sys": 5.0040000000011187e-03, + "time.clang-tidy.altera-single-work-item-barrier.wall": 3.9558410644531250e-03, + "time.clang-tidy.altera-single-work-item-barrier.user": 2.2079999999928823e-03, + "time.clang-tidy.altera-single-work-item-barrier.sys": 1.7299999999975668e-03, + "time.clang-tidy.hicpp-signed-bitwise.wall": 3.5564899444580078e-03, + "time.clang-tidy.hicpp-signed-bitwise.user": 2.0070000000087518e-03, + "time.clang-tidy.hicpp-signed-bitwise.sys": 1.6219999999993462e-03, + "time.clang-tidy.bugprone-forward-declaration-namespace.wall": 3.6160945892333984e-03, + "time.clang-tidy.bugprone-forward-declaration-namespace.user": 2.1619999999966666e-03, + "time.clang-tidy.bugprone-forward-declaration-namespace.sys": 1.4039999999995167e-03, + "time.clang-tidy.abseil-duration-subtraction.wall": 1.2226104736328125e-03, + "time.clang-tidy.abseil-duration-subtraction.user": 7.4199999999446931e-04, + "time.clang-tidy.abseil-duration-subtraction.sys": 5.1199999999873569e-04, + "time.clang-tidy.cppcoreguidelines-no-malloc.wall": 4.3196678161621094e-03, + "time.clang-tidy.cppcoreguidelines-no-malloc.user": 2.7740000000093801e-03, + "time.clang-tidy.cppcoreguidelines-no-malloc.sys": 1.5419999999974898e-03, + "time.clang-tidy.hicpp-use-nullptr.wall": 3.3916711807250977e-02, + "time.clang-tidy.hicpp-use-nullptr.user": 2.0611999999976760e-02, + "time.clang-tidy.hicpp-use-nullptr.sys": 1.3180000000006631e-02, + "time.clang-tidy.modernize-return-braced-init-list.wall": 1.4960765838623047e-03, + "time.clang-tidy.modernize-return-braced-init-list.user": 9.6699999999483310e-04, + "time.clang-tidy.modernize-return-braced-init-list.sys": 5.0300000000080836e-04, + "time.clang-tidy.readability-string-compare.wall": 5.7086944580078125e-03, + "time.clang-tidy.readability-string-compare.user": 3.3480000000003507e-03, + "time.clang-tidy.readability-string-compare.sys": 2.3009999999938913e-03, + "time.clang-tidy.modernize-redundant-void-arg.wall": 1.5767097473144531e-02, + "time.clang-tidy.modernize-redundant-void-arg.user": 9.0940000000072629e-03, + "time.clang-tidy.modernize-redundant-void-arg.sys": 6.6829999999942213e-03, + "time.clang-tidy.fuchsia-virtual-inheritance.wall": 1.7867088317871094e-03, + "time.clang-tidy.fuchsia-virtual-inheritance.user": 1.0320000000025864e-03, + "time.clang-tidy.fuchsia-virtual-inheritance.sys": 7.3700000000020971e-04, + "time.clang-tidy.performance-noexcept-destructor.wall": 1.4376640319824219e-04, + "time.clang-tidy.performance-noexcept-destructor.user": 8.1999999999915474e-05, + "time.clang-tidy.performance-noexcept-destructor.sys": 5.8000000000113516e-05, + "time.clang-tidy.cert-dcl58-cpp.wall": 3.0324459075927734e-02, + "time.clang-tidy.cert-dcl58-cpp.user": 1.7588000000003490e-02, + "time.clang-tidy.cert-dcl58-cpp.sys": 1.2815000000002685e-02, + "time.clang-tidy.readability-static-definition-in-anonymous-namespace.wall": 1.9739627838134766e-02, + "time.clang-tidy.readability-static-definition-in-anonymous-namespace.user": 1.1222999999993988e-02, + "time.clang-tidy.readability-static-definition-in-anonymous-namespace.sys": 8.2980000000045795e-03, + "time.clang-tidy.bugprone-shared-ptr-array-mismatch.wall": 2.1004676818847656e-04, + "time.clang-tidy.bugprone-shared-ptr-array-mismatch.user": 1.3300000000171508e-04, + "time.clang-tidy.bugprone-shared-ptr-array-mismatch.sys": 7.1999999999627917e-05, + "time.clang-tidy.bugprone-unique-ptr-array-mismatch.wall": 1.7404556274414062e-04, + "time.clang-tidy.bugprone-unique-ptr-array-mismatch.user": 1.2000000000167432e-04, + "time.clang-tidy.bugprone-unique-ptr-array-mismatch.sys": 6.2999999999480139e-05, + "time.clang-tidy.misc-non-copyable-objects.wall": 2.1961450576782227e-02, + "time.clang-tidy.misc-non-copyable-objects.user": 1.2473999999964125e-02, + "time.clang-tidy.misc-non-copyable-objects.sys": 9.2359999999924725e-03, + "time.clang-tidy.altera-unroll-loops.wall": 3.2154798507690430e-02, + "time.clang-tidy.altera-unroll-loops.user": 1.9489999999970919e-02, + "time.clang-tidy.altera-unroll-loops.sys": 1.2449000000001487e-02, + "time.clang-tidy.readability-identifier-length.wall": 1.2805223464965820e-02, + "time.clang-tidy.readability-identifier-length.user": 7.2930000000188677e-03, + "time.clang-tidy.readability-identifier-length.sys": 5.5519999999991132e-03, + "time.clang-tidy.readability-braces-around-statements.wall": 7.4517726898193359e-03, + "time.clang-tidy.readability-braces-around-statements.user": 5.1630000000013609e-03, + "time.clang-tidy.readability-braces-around-statements.sys": 2.3030000000003881e-03, + "time.clang-tidy.bugprone-multiple-new-in-one-expression.wall": 1.2129068374633789e-02, + "time.clang-tidy.bugprone-multiple-new-in-one-expression.user": 7.6810000000064882e-03, + "time.clang-tidy.bugprone-multiple-new-in-one-expression.sys": 4.6000000000094854e-03, + "time.clang-tidy.performance-move-constructor-init.wall": 6.5183639526367188e-04, + "time.clang-tidy.performance-move-constructor-init.user": 3.8799999999783452e-04, + "time.clang-tidy.performance-move-constructor-init.sys": 3.0000000000041105e-04, + "time.clang-tidy.android-cloexec-dup.wall": 3.4224987030029297e-03, + "time.clang-tidy.android-cloexec-dup.user": 2.1170000000010347e-03, + "time.clang-tidy.android-cloexec-dup.sys": 1.1799999999964061e-03, + "time.clang-tidy.bugprone-not-null-terminated-result.wall": 1.3634681701660156e-02, + "time.clang-tidy.bugprone-not-null-terminated-result.user": 8.3610000000042817e-03, + "time.clang-tidy.bugprone-not-null-terminated-result.sys": 5.2120000000042133e-03, + "time.clang-tidy.cppcoreguidelines-pro-type-cstyle-cast.wall": 3.2734870910644531e-04, + "time.clang-tidy.cppcoreguidelines-pro-type-cstyle-cast.user": 1.8799999999918882e-04, + "time.clang-tidy.cppcoreguidelines-pro-type-cstyle-cast.sys": 1.4300000000067037e-04, + "time.clang-tidy.cert-dcl21-cpp.wall": 3.7267208099365234e-03, + "time.clang-tidy.cert-dcl21-cpp.user": 2.1230000000040938e-03, + "time.clang-tidy.cert-dcl21-cpp.sys": 1.6089999999995275e-03, + "time.clang-tidy.llvmlibc-callee-namespace.wall": 9.5252990722656250e-03, + "time.clang-tidy.llvmlibc-callee-namespace.user": 5.8230000000052407e-03, + "time.clang-tidy.llvmlibc-callee-namespace.sys": 3.6969999999998393e-03, + "time.clang-tidy.fuchsia-overloaded-operator.wall": 5.0721168518066406e-03, + "time.clang-tidy.fuchsia-overloaded-operator.user": 2.8909999999990887e-03, + "time.clang-tidy.fuchsia-overloaded-operator.sys": 2.2049999999980141e-03, + "time.clang-tidy.llvm-twine-local.wall": 6.7658424377441406e-03, + "time.clang-tidy.llvm-twine-local.user": 3.7620000000040399e-03, + "time.clang-tidy.llvm-twine-local.sys": 2.8399999999959569e-03, + "time.clang-tidy.fuchsia-default-arguments-declarations.wall": 1.1453151702880859e-02, + "time.clang-tidy.fuchsia-default-arguments-declarations.user": 5.9509999999898255e-03, + "time.clang-tidy.fuchsia-default-arguments-declarations.sys": 5.5490000000002482e-03, + "time.clang-tidy.readability-redundant-control-flow.wall": 3.4821033477783203e-02, + "time.clang-tidy.readability-redundant-control-flow.user": 2.0923000000028669e-02, + "time.clang-tidy.readability-redundant-control-flow.sys": 1.3490000000001112e-02, + "time.clang-tidy.bugprone-empty-catch.wall": 1.0228157043457031e-04, + "time.clang-tidy.bugprone-empty-catch.user": 8.5999999999142318e-05, + "time.clang-tidy.bugprone-empty-catch.sys": 2.2999999999440135e-05, + "time.clang-tidy.bugprone-suspicious-semicolon.wall": 2.8746604919433594e-02, + "time.clang-tidy.bugprone-suspicious-semicolon.user": 1.7428000000029975e-02, + "time.clang-tidy.bugprone-suspicious-semicolon.sys": 1.1148999999994080e-02, + "time.clang-tidy.modernize-macro-to-enum.wall": 2.0339965820312500e-02, + "time.clang-tidy.modernize-macro-to-enum.user": 1.1941999999987907e-02, + "time.clang-tidy.modernize-macro-to-enum.sys": 8.2670000000044652e-03, + "time.clang-tidy.bugprone-fold-init-type.wall": 5.4650306701660156e-03, + "time.clang-tidy.bugprone-fold-init-type.user": 3.5119999999975171e-03, + "time.clang-tidy.bugprone-fold-init-type.sys": 1.9719999999989746e-03, + "time.clang-tidy.bugprone-branch-clone.wall": 2.7198791503906250e-03, + "time.clang-tidy.bugprone-branch-clone.user": 1.8150000000045630e-03, + "time.clang-tidy.bugprone-branch-clone.sys": 9.1900000000166848e-04, + "time.clang-tidy.cert-dcl03-c.wall": 2.8197765350341797e-03, + "time.clang-tidy.cert-dcl03-c.user": 1.8779999999996022e-03, + "time.clang-tidy.cert-dcl03-c.sys": 9.7899999999895293e-04, + "time.clang-tidy.bugprone-undefined-memory-manipulation.wall": 3.9629936218261719e-03, + "time.clang-tidy.bugprone-undefined-memory-manipulation.user": 2.5449999999960227e-03, + "time.clang-tidy.bugprone-undefined-memory-manipulation.sys": 1.4469999999981997e-03, + "time.clang-tidy.bugprone-infinite-loop.wall": 3.8602590560913086e-02, + "time.clang-tidy.bugprone-infinite-loop.user": 2.4729999999990593e-02, + "time.clang-tidy.bugprone-infinite-loop.sys": 1.3929999999988674e-02, + "time.clang-tidy.performance-no-int-to-ptr.wall": 3.4904479980468750e-03, + "time.clang-tidy.performance-no-int-to-ptr.user": 2.0299999999968676e-03, + "time.clang-tidy.performance-no-int-to-ptr.sys": 1.4800000000010360e-03, + "time.clang-tidy.abseil-duration-factory-float.wall": 3.4439563751220703e-03, + "time.clang-tidy.abseil-duration-factory-float.user": 2.1970000000011147e-03, + "time.clang-tidy.abseil-duration-factory-float.sys": 1.2439999999960261e-03, + "time.clang-tidy.cppcoreguidelines-init-variables.wall": 2.2105932235717773e-02, + "time.clang-tidy.cppcoreguidelines-init-variables.user": 1.2521000000004001e-02, + "time.clang-tidy.cppcoreguidelines-init-variables.sys": 9.8219999999957786e-03, + "time.clang-tidy.bugprone-string-literal-with-embedded-nul.wall": 1.1236667633056641e-03, + "time.clang-tidy.bugprone-string-literal-with-embedded-nul.user": 7.2299999999803077e-04, + "time.clang-tidy.bugprone-string-literal-with-embedded-nul.sys": 3.8599999999999746e-04, + "time.clang-tidy.android-cloexec-memfd-create.wall": 3.2145977020263672e-03, + "time.clang-tidy.android-cloexec-memfd-create.user": 2.0570000000010857e-03, + "time.clang-tidy.android-cloexec-memfd-create.sys": 1.1349999999992200e-03, + "time.clang-tidy.performance-type-promotion-in-math-fn.wall": 9.8135471343994141e-03, + "time.clang-tidy.performance-type-promotion-in-math-fn.user": 6.2650000000150641e-03, + "time.clang-tidy.performance-type-promotion-in-math-fn.sys": 3.5940000000040939e-03, + "time.clang-tidy.bugprone-assignment-in-if-condition.wall": 7.3616504669189453e-03, + "time.clang-tidy.bugprone-assignment-in-if-condition.user": 7.3209999999996889e-03, + "time.clang-tidy.bugprone-assignment-in-if-condition.sys": 0.0000000000000000e+00, + "time.clang-tidy.misc-misleading-bidirectional.wall": 1.6927719116210938e-04, + "time.clang-tidy.misc-misleading-bidirectional.user": 1.0300000000018628e-04, + "time.clang-tidy.misc-misleading-bidirectional.sys": 5.6000000000500094e-05, + "time.clang-tidy.bugprone-terminating-continue.wall": 4.0769577026367188e-05, + "time.clang-tidy.bugprone-terminating-continue.user": 1.0000000000065512e-05, + "time.clang-tidy.bugprone-terminating-continue.sys": 3.1999999999809958e-05, + "time.clang-tidy.bugprone-non-zero-enum-to-bool-conversion.wall": 3.6737918853759766e-03, + "time.clang-tidy.bugprone-non-zero-enum-to-bool-conversion.user": 2.1779999999891331e-03, + "time.clang-tidy.bugprone-non-zero-enum-to-bool-conversion.sys": 1.5230000000023836e-03, + "time.clang-tidy.cppcoreguidelines-pro-type-vararg.wall": 1.0499238967895508e-02, + "time.clang-tidy.cppcoreguidelines-pro-type-vararg.user": 6.2069999999949665e-03, + "time.clang-tidy.cppcoreguidelines-pro-type-vararg.sys": 4.3330000000063595e-03, + "time.clang-tidy.android-cloexec-inotify-init1.wall": 3.1909942626953125e-03, + "time.clang-tidy.android-cloexec-inotify-init1.user": 2.0239999999982494e-03, + "time.clang-tidy.android-cloexec-inotify-init1.sys": 1.1749999999999261e-03, + "time.clang-tidy.cert-con54-cpp.wall": 3.5529136657714844e-03, + "time.clang-tidy.cert-con54-cpp.user": 2.6270000000021554e-03, + "time.clang-tidy.cert-con54-cpp.sys": 9.2600000000020444e-04, + "time.clang-tidy.bugprone-misplaced-operator-in-strlen-in-alloc.wall": 4.7876834869384766e-03, + "time.clang-tidy.bugprone-misplaced-operator-in-strlen-in-alloc.user": 3.0619999999994540e-03, + "time.clang-tidy.bugprone-misplaced-operator-in-strlen-in-alloc.sys": 1.7210000000007497e-03, + "time.clang-tidy.bugprone-undelegated-constructor.wall": 2.1650791168212891e-03, + "time.clang-tidy.bugprone-undelegated-constructor.user": 1.3470000000044280e-03, + "time.clang-tidy.bugprone-undelegated-constructor.sys": 8.4700000000093034e-04, + "time.clang-tidy.performance-unnecessary-copy-initialization.wall": 1.4622449874877930e-02, + "time.clang-tidy.performance-unnecessary-copy-initialization.user": 9.4059999999895894e-03, + "time.clang-tidy.performance-unnecessary-copy-initialization.sys": 5.2389999999993275e-03, + "time.clang-tidy.bugprone-spuriously-wake-up-functions.wall": 2.4933815002441406e-03, + "time.clang-tidy.bugprone-spuriously-wake-up-functions.user": 1.6839999999964661e-03, + "time.clang-tidy.bugprone-spuriously-wake-up-functions.sys": 8.0100000000005167e-04, + "time.clang-tidy.performance-faster-string-find.wall": 3.5738945007324219e-04, + "time.clang-tidy.performance-faster-string-find.user": 2.2100000000024878e-04, + "time.clang-tidy.performance-faster-string-find.sys": 1.1800000000028454e-04, + "time.clang-tidy.cppcoreguidelines-pro-type-union-access.wall": 1.0409355163574219e-03, + "time.clang-tidy.cppcoreguidelines-pro-type-union-access.user": 6.1199999999939081e-04, + "time.clang-tidy.cppcoreguidelines-pro-type-union-access.sys": 4.3699999999757821e-04, + "time.clang-tidy.cppcoreguidelines-rvalue-reference-param-not-moved.wall": 1.1698484420776367e-02, + "time.clang-tidy.cppcoreguidelines-rvalue-reference-param-not-moved.user": 6.6160000000028418e-03, + "time.clang-tidy.cppcoreguidelines-rvalue-reference-param-not-moved.sys": 4.8429999999968221e-03, + "time.clang-tidy.bugprone-sizeof-expression.wall": 2.6397943496704102e-02, + "time.clang-tidy.bugprone-sizeof-expression.user": 1.5911999999998816e-02, + "time.clang-tidy.bugprone-sizeof-expression.sys": 1.0464999999991287e-02, + "time.clang-tidy.google-runtime-int.wall": 6.8775415420532227e-02, + "time.clang-tidy.google-runtime-int.user": 3.8228000000018802e-02, + "time.clang-tidy.google-runtime-int.sys": 3.0707000000009144e-02, + "time.clang-tidy.llvm-namespace-comment.wall": 5.7318210601806641e-03, + "time.clang-tidy.llvm-namespace-comment.user": 4.0109999999993207e-03, + "time.clang-tidy.llvm-namespace-comment.sys": 1.7020000000003144e-03, + "time.clang-tidy.misc-definitions-in-headers.wall": 2.4253845214843750e-02, + "time.clang-tidy.misc-definitions-in-headers.user": 1.3878999999999753e-02, + "time.clang-tidy.misc-definitions-in-headers.sys": 1.0253000000002288e-02, + "time.clang-tidy.bugprone-use-after-move.wall": 7.3285579681396484e-02, + "time.clang-tidy.bugprone-use-after-move.user": 4.6233999999990338e-02, + "time.clang-tidy.bugprone-use-after-move.sys": 2.7540000000000342e-02, + "time.clang-tidy.cppcoreguidelines-noexcept-destructor.wall": 1.7499923706054688e-04, + "time.clang-tidy.cppcoreguidelines-noexcept-destructor.user": 1.0600000000104970e-04, + "time.clang-tidy.cppcoreguidelines-noexcept-destructor.sys": 7.1999999999849962e-05, + "time.clang-tidy.fuchsia-default-arguments-calls.wall": 1.9264221191406250e-04, + "time.clang-tidy.fuchsia-default-arguments-calls.user": 1.4599999999997948e-04, + "time.clang-tidy.fuchsia-default-arguments-calls.sys": 4.6000000000212538e-05, + "time.clang-tidy.concurrency-thread-canceltype-asynchronous.wall": 3.2484531402587891e-03, + "time.clang-tidy.concurrency-thread-canceltype-asynchronous.user": 2.0459999999991041e-03, + "time.clang-tidy.concurrency-thread-canceltype-asynchronous.sys": 1.1729999999963159e-03, + "time.clang-tidy.readability-make-member-function-const.wall": 3.2110214233398438e-03, + "time.clang-tidy.readability-make-member-function-const.user": 1.7890000000075901e-03, + "time.clang-tidy.readability-make-member-function-const.sys": 1.3970000000025351e-03, + "time.clang-tidy.darwin-dispatch-once-nonstatic.wall": 1.2310743331909180e-02, + "time.clang-tidy.darwin-dispatch-once-nonstatic.user": 7.0620000000061189e-03, + "time.clang-tidy.darwin-dispatch-once-nonstatic.sys": 5.3309999999993085e-03, + "time.clang-tidy.bugprone-exception-escape.wall": 6.6206455230712891e-03, + "time.clang-tidy.bugprone-exception-escape.user": 3.7869999999959880e-03, + "time.clang-tidy.bugprone-exception-escape.sys": 2.8110000000030055e-03, + "time.clang-tidy.abseil-cleanup-ctad.wall": 2.7761936187744141e-02, + "time.clang-tidy.abseil-cleanup-ctad.user": 1.7057999999970708e-02, + "time.clang-tidy.abseil-cleanup-ctad.sys": 1.0736000000000745e-02, + "time.clang-tidy.abseil-str-cat-append.wall": 1.7788410186767578e-03, + "time.clang-tidy.abseil-str-cat-append.user": 1.4309999999975176e-03, + "time.clang-tidy.abseil-str-cat-append.sys": 3.2600000000226892e-04, + "time.clang-tidy.readability-non-const-parameter.wall": 5.0954580307006836e-02, + "time.clang-tidy.readability-non-const-parameter.user": 3.0495999999973211e-02, + "time.clang-tidy.readability-non-const-parameter.sys": 1.9624999999999782e-02, + "time.clang-tidy.cert-dcl50-cpp.wall": 3.7794113159179688e-03, + "time.clang-tidy.cert-dcl50-cpp.user": 2.1610000000062968e-03, + "time.clang-tidy.cert-dcl50-cpp.sys": 1.6450000000007847e-03, + "time.clang-tidy.misc-unused-using-decls.wall": 6.4182996749877930e-02, + "time.clang-tidy.misc-unused-using-decls.user": 3.6835000000022600e-02, + "time.clang-tidy.misc-unused-using-decls.sys": 2.6949999999999807e-02, + "time.clang-tidy.bugprone-multiple-statement-macro.wall": 2.9764890670776367e-02, + "time.clang-tidy.bugprone-multiple-statement-macro.user": 1.8187000000045472e-02, + "time.clang-tidy.bugprone-multiple-statement-macro.sys": 1.1432000000012987e-02, + "time.clang-tidy.cppcoreguidelines-missing-std-forward.wall": 1.6875267028808594e-02, + "time.clang-tidy.cppcoreguidelines-missing-std-forward.user": 1.0149000000000186e-02, + "time.clang-tidy.cppcoreguidelines-missing-std-forward.sys": 6.8240000000023837e-03, + "time.clang-tidy.cppcoreguidelines-avoid-goto.wall": 1.9073486328125000e-06, + "time.clang-tidy.cppcoreguidelines-avoid-goto.user": 1.9999999998354667e-06, + "time.clang-tidy.cppcoreguidelines-avoid-goto.sys": 0.0000000000000000e+00, + "time.clang-tidy.cert-fio38-c.wall": 2.0780563354492188e-02, + "time.clang-tidy.cert-fio38-c.user": 1.1705999999984229e-02, + "time.clang-tidy.cert-fio38-c.sys": 8.7069999999935810e-03, + "time.clang-tidy.cppcoreguidelines-special-member-functions.wall": 1.0780811309814453e-02, + "time.clang-tidy.cppcoreguidelines-special-member-functions.user": 7.3230000000004125e-03, + "time.clang-tidy.cppcoreguidelines-special-member-functions.sys": 3.4979999999997791e-03, + "time.clang-tidy.modernize-use-nodiscard.wall": 5.1679611206054688e-03, + "time.clang-tidy.modernize-use-nodiscard.user": 2.8129999999984001e-03, + "time.clang-tidy.modernize-use-nodiscard.sys": 2.3279999999994416e-03, + "time.clang-tidy.performance-inefficient-algorithm.wall": 3.6537647247314453e-03, + "time.clang-tidy.performance-inefficient-algorithm.user": 2.3149999999940718e-03, + "time.clang-tidy.performance-inefficient-algorithm.sys": 1.2930000000004327e-03, + "time.clang-tidy.readability-container-size-empty.wall": 4.6033143997192383e-02, + "time.clang-tidy.readability-container-size-empty.user": 2.9048000000012841e-02, + "time.clang-tidy.readability-container-size-empty.sys": 1.6964999999991903e-02, + "time.clang-tidy.readability-misleading-indentation.wall": 6.0284137725830078e-03, + "time.clang-tidy.readability-misleading-indentation.user": 4.0879999999994254e-03, + "time.clang-tidy.readability-misleading-indentation.sys": 1.9339999999996582e-03, + "time.clang-tidy.modernize-type-traits.wall": 6.6205501556396484e-02, + "time.clang-tidy.modernize-type-traits.user": 3.8947999999984884e-02, + "time.clang-tidy.modernize-type-traits.sys": 2.6812000000004721e-02, + "time.clang-tidy.cert-str34-c.wall": 1.0745286941528320e-02, + "time.clang-tidy.cert-str34-c.user": 6.1180000000065071e-03, + "time.clang-tidy.cert-str34-c.sys": 4.5770000000076028e-03, + "time.clang-tidy.hicpp-braces-around-statements.wall": 7.2669982910156250e-03, + "time.clang-tidy.hicpp-braces-around-statements.user": 5.0299999999992018e-03, + "time.clang-tidy.hicpp-braces-around-statements.sys": 2.2149999999985237e-03, + "time.clang-tidy.bugprone-dangling-handle.wall": 1.9539833068847656e-02, + "time.clang-tidy.bugprone-dangling-handle.user": 1.1668999999993268e-02, + "time.clang-tidy.bugprone-dangling-handle.sys": 7.8599999999879877e-03, + "time.clang-tidy.portability-std-allocator-const.wall": 3.3136606216430664e-02, + "time.clang-tidy.portability-std-allocator-const.user": 1.8612999999988222e-02, + "time.clang-tidy.portability-std-allocator-const.sys": 1.4205999999997498e-02, + "time.clang-tidy.performance-unnecessary-value-param.wall": 4.5345544815063477e-02, + "time.clang-tidy.performance-unnecessary-value-param.user": 3.7605000000003219e-02, + "time.clang-tidy.performance-unnecessary-value-param.sys": 7.8230000000012456e-03, + "time.clang-tidy.google-build-namespaces.wall": 9.4413757324218750e-05, + "time.clang-tidy.google-build-namespaces.user": 6.5999999999899472e-05, + "time.clang-tidy.google-build-namespaces.sys": 2.0999999999826713e-05, + "time.clang-tidy.cppcoreguidelines-pro-type-static-cast-downcast.wall": 5.6791305541992188e-04, + "time.clang-tidy.cppcoreguidelines-pro-type-static-cast-downcast.user": 3.2500000000279528e-04, + "time.clang-tidy.cppcoreguidelines-pro-type-static-cast-downcast.sys": 2.5500000000056033e-04, + "time.clang-tidy.hicpp-use-noexcept.wall": 1.2997865676879883e-02, + "time.clang-tidy.hicpp-use-noexcept.user": 7.0289999999837427e-03, + "time.clang-tidy.hicpp-use-noexcept.sys": 5.8680000000039811e-03, + "time.clang-tidy.bugprone-standalone-empty.wall": 6.0884475708007812e-02, + "time.clang-tidy.bugprone-standalone-empty.user": 3.7888999999977635e-02, + "time.clang-tidy.bugprone-standalone-empty.sys": 2.3191999999991886e-02, + "time.clang-tidy.cppcoreguidelines-prefer-member-initializer.wall": 8.2445144653320312e-04, + "time.clang-tidy.cppcoreguidelines-prefer-member-initializer.user": 4.6600000000251995e-04, + "time.clang-tidy.cppcoreguidelines-prefer-member-initializer.sys": 3.5200000000035203e-04, + "time.clang-tidy.readability-implicit-bool-conversion.wall": 1.0226249694824219e-02, + "time.clang-tidy.readability-implicit-bool-conversion.user": 6.0899999999950438e-03, + "time.clang-tidy.readability-implicit-bool-conversion.sys": 4.1709999999912650e-03, + "time.clang-tidy.hicpp-use-emplace.wall": 1.0833740234375000e-03, + "time.clang-tidy.hicpp-use-emplace.user": 7.2000000000027597e-04, + "time.clang-tidy.hicpp-use-emplace.sys": 3.8199999999966039e-04, + "time.clang-tidy.bugprone-virtual-near-miss.wall": 4.2095184326171875e-03, + "time.clang-tidy.bugprone-virtual-near-miss.user": 2.3539999999968586e-03, + "time.clang-tidy.bugprone-virtual-near-miss.sys": 1.8449999999923250e-03, + "time.clang-tidy.modernize-shrink-to-fit.wall": 3.6549568176269531e-04, + "time.clang-tidy.modernize-shrink-to-fit.user": 2.2800000000255949e-04, + "time.clang-tidy.modernize-shrink-to-fit.sys": 1.3799999999908330e-04, + "time.clang-tidy.hicpp-no-malloc.wall": 4.4510364532470703e-03, + "time.clang-tidy.hicpp-no-malloc.user": 2.8459999999967955e-03, + "time.clang-tidy.hicpp-no-malloc.sys": 1.6200000000003989e-03, + "time.clang-tidy.hicpp-function-size.wall": 7.2860717773437500e-03, + "time.clang-tidy.hicpp-function-size.user": 4.3310000000005289e-03, + "time.clang-tidy.hicpp-function-size.sys": 3.0170000000038222e-03, + "time.clang-tidy.android-cloexec-fopen.wall": 3.5364627838134766e-03, + "time.clang-tidy.android-cloexec-fopen.user": 2.2439999999965821e-03, + "time.clang-tidy.android-cloexec-fopen.sys": 1.2530000000026131e-03, + "time.clang-tidy.performance-avoid-endl.wall": 5.0461292266845703e-03, + "time.clang-tidy.performance-avoid-endl.user": 3.1339999999993040e-03, + "time.clang-tidy.performance-avoid-endl.sys": 1.7329999999959877e-03, + "time.clang-tidy.readability-static-accessed-through-instance.wall": 9.3436241149902344e-04, + "time.clang-tidy.readability-static-accessed-through-instance.user": 5.6200000000350414e-04, + "time.clang-tidy.readability-static-accessed-through-instance.sys": 3.5700000000260523e-04, + "time.clang-tidy.modernize-use-nullptr.wall": 3.1411170959472656e-02, + "time.clang-tidy.modernize-use-nullptr.user": 1.8987000000036502e-02, + "time.clang-tidy.modernize-use-nullptr.sys": 1.2096000000004103e-02, + "time.clang-tidy.android-cloexec-creat.wall": 3.1781196594238281e-03, + "time.clang-tidy.android-cloexec-creat.user": 2.0470000000023525e-03, + "time.clang-tidy.android-cloexec-creat.sys": 1.1959999999981985e-03, + "time.clang-tidy.performance-move-const-arg.wall": 3.0680179595947266e-02, + "time.clang-tidy.performance-move-const-arg.user": 1.8751999999977897e-02, + "time.clang-tidy.performance-move-const-arg.sys": 1.1839000000003264e-02, + "time.clang-tidy.bugprone-unused-raii.wall": 2.7405023574829102e-02, + "time.clang-tidy.bugprone-unused-raii.user": 1.6755999999976456e-02, + "time.clang-tidy.bugprone-unused-raii.sys": 1.0517000000007437e-02, + "time.clang-tidy.bugprone-suspicious-memory-comparison.wall": 3.3578872680664062e-03, + "time.clang-tidy.bugprone-suspicious-memory-comparison.user": 2.1790000000048160e-03, + "time.clang-tidy.bugprone-suspicious-memory-comparison.sys": 1.2530000000028352e-03, + "time.clang-tidy.readability-redundant-member-init.wall": 6.8712234497070312e-04, + "time.clang-tidy.readability-redundant-member-init.user": 3.9800000000589364e-04, + "time.clang-tidy.readability-redundant-member-init.sys": 2.9700000000021376e-04, + "time.clang-tidy.readability-magic-numbers.wall": 1.5952587127685547e-03, + "time.clang-tidy.readability-magic-numbers.user": 9.1399999999852710e-04, + "time.clang-tidy.readability-magic-numbers.sys": 7.2199999999988940e-04, + "time.clang-tidy.modernize-use-emplace.wall": 1.4629364013671875e-03, + "time.clang-tidy.modernize-use-emplace.user": 9.5399999999923324e-04, + "time.clang-tidy.modernize-use-emplace.sys": 5.1400000000079160e-04, + "time.clang-tidy.misc-const-correctness.wall": 1.4410519599914551e-01, + "time.clang-tidy.misc-const-correctness.user": 1.1386399999997954e-01, + "time.clang-tidy.misc-const-correctness.sys": 2.9832999999995780e-02, + "time.clang-tidy.bugprone-swapped-arguments.wall": 1.3163328170776367e-02, + "time.clang-tidy.bugprone-swapped-arguments.user": 7.9820000000041524e-03, + "time.clang-tidy.bugprone-swapped-arguments.sys": 5.2209999999963674e-03, + "time.clang-tidy.hicpp-use-auto.wall": 7.8434944152832031e-03, + "time.clang-tidy.hicpp-use-auto.user": 3.8889999999991431e-03, + "time.clang-tidy.hicpp-use-auto.sys": 3.9460000000017814e-03, + "time.clang-tidy.hicpp-special-member-functions.wall": 9.8199844360351562e-03, + "time.clang-tidy.hicpp-special-member-functions.user": 5.7090000000035168e-03, + "time.clang-tidy.hicpp-special-member-functions.sys": 4.0829999999982824e-03, + "time.clang-tidy.hicpp-no-assembler.wall": 6.2932968139648438e-03, + "time.clang-tidy.hicpp-no-assembler.user": 3.5419999999994900e-03, + "time.clang-tidy.hicpp-no-assembler.sys": 2.6750000000006491e-03, + "time.clang-tidy.cert-msc33-c.wall": 6.5572261810302734e-03, + "time.clang-tidy.cert-msc33-c.user": 4.0230000000036625e-03, + "time.clang-tidy.cert-msc33-c.sys": 2.4560000000029003e-03, + "time.clang-tidy.modernize-use-noexcept.wall": 1.2166976928710938e-02, + "time.clang-tidy.modernize-use-noexcept.user": 6.7120000000020497e-03, + "time.clang-tidy.modernize-use-noexcept.sys": 5.2930000000015465e-03, + "time.clang-tidy.cppcoreguidelines-owning-memory.wall": 5.2043199539184570e-02, + "time.clang-tidy.cppcoreguidelines-owning-memory.user": 3.1492000000043596e-02, + "time.clang-tidy.cppcoreguidelines-owning-memory.sys": 2.0631999999998429e-02, + "time.clang-tidy.cppcoreguidelines-explicit-virtual-functions.wall": 3.2677650451660156e-03, + "time.clang-tidy.cppcoreguidelines-explicit-virtual-functions.user": 1.8980000000055064e-03, + "time.clang-tidy.cppcoreguidelines-explicit-virtual-functions.sys": 1.3859999999976669e-03, + "time.clang-tidy.android-cloexec-inotify-init.wall": 3.7245750427246094e-03, + "time.clang-tidy.android-cloexec-inotify-init.user": 2.3309999999989728e-03, + "time.clang-tidy.android-cloexec-inotify-init.sys": 1.3330000000011388e-03, + "time.clang-tidy.hicpp-named-parameter.wall": 6.1960220336914062e-03, + "time.clang-tidy.hicpp-named-parameter.user": 3.5400000000005427e-03, + "time.clang-tidy.hicpp-named-parameter.sys": 2.6050000000019669e-03, + "time.clang-tidy.cppcoreguidelines-avoid-c-arrays.wall": 3.7666797637939453e-02, + "time.clang-tidy.cppcoreguidelines-avoid-c-arrays.user": 2.1304000000001544e-02, + "time.clang-tidy.cppcoreguidelines-avoid-c-arrays.sys": 1.6361000000006065e-02, + "time.clang-tidy.readability-container-data-pointer.wall": 9.4461441040039062e-04, + "time.clang-tidy.readability-container-data-pointer.user": 5.8199999999697383e-04, + "time.clang-tidy.readability-container-data-pointer.sys": 3.4700000000209563e-04, + "time.clang-tidy.hicpp-static-assert.wall": 3.0999183654785156e-03, + "time.clang-tidy.hicpp-static-assert.user": 2.0669999999984867e-03, + "time.clang-tidy.hicpp-static-assert.sys": 1.0679999999994028e-03, + "time.clang-tidy.performance-implicit-conversion-in-loop.wall": 2.6226043701171875e-06, + "time.clang-tidy.performance-implicit-conversion-in-loop.user": 4.0000000005591119e-06, + "time.clang-tidy.performance-implicit-conversion-in-loop.sys": 0.0000000000000000e+00, + "time.clang-tidy.bugprone-string-integer-assignment.wall": 6.8616867065429688e-04, + "time.clang-tidy.bugprone-string-integer-assignment.user": 4.3599999999788253e-04, + "time.clang-tidy.bugprone-string-integer-assignment.sys": 2.3300000000014975e-04, + "time.clang-tidy.modernize-make-unique.wall": 6.3467025756835938e-04, + "time.clang-tidy.modernize-make-unique.user": 4.0899999999854941e-04, + "time.clang-tidy.modernize-make-unique.sys": 2.1900000000063535e-04, + "time.clang-tidy.bugprone-copy-constructor-init.wall": 5.7244300842285156e-04, + "time.clang-tidy.bugprone-copy-constructor-init.user": 3.3100000000141350e-04, + "time.clang-tidy.bugprone-copy-constructor-init.sys": 2.4000000000179433e-04, + "time.clang-tidy.readability-isolate-declaration.wall": 6.8521499633789062e-04, + "time.clang-tidy.readability-isolate-declaration.user": 4.5400000000039853e-04, + "time.clang-tidy.readability-isolate-declaration.sys": 2.0499999999867846e-04, + "time.clang-tidy.llvm-prefer-isa-or-dyn-cast-in-conditionals.wall": 3.4470319747924805e-02, + "time.clang-tidy.llvm-prefer-isa-or-dyn-cast-in-conditionals.user": 2.0990999999995541e-02, + "time.clang-tidy.llvm-prefer-isa-or-dyn-cast-in-conditionals.sys": 1.3323000000007301e-02, + "time.clang-tidy.hicpp-new-delete-operators.wall": 4.9932003021240234e-03, + "time.clang-tidy.hicpp-new-delete-operators.user": 2.8349999999921494e-03, + "time.clang-tidy.hicpp-new-delete-operators.sys": 2.1590000000009102e-03, + "time.clang-tidy.readability-redundant-string-init.wall": 8.8369846343994141e-03, + "time.clang-tidy.readability-redundant-string-init.user": 5.0049999999979278e-03, + "time.clang-tidy.readability-redundant-string-init.sys": 3.8999999999984603e-03, + "time.clang-tidy.bugprone-easily-swappable-parameters.wall": 2.1511793136596680e-02, + "time.clang-tidy.bugprone-easily-swappable-parameters.user": 1.3109999999998401e-02, + "time.clang-tidy.bugprone-easily-swappable-parameters.sys": 8.3879999999922905e-03, + "time.clang-tidy.readability-convert-member-functions-to-static.wall": 3.2825469970703125e-03, + "time.clang-tidy.readability-convert-member-functions-to-static.user": 1.8570000000086573e-03, + "time.clang-tidy.readability-convert-member-functions-to-static.sys": 1.3660000000064176e-03, + "time.clang-tidy.abseil-time-subtraction.wall": 8.7747573852539062e-03, + "time.clang-tidy.abseil-time-subtraction.user": 5.5140000000037936e-03, + "time.clang-tidy.abseil-time-subtraction.sys": 3.2539999999949831e-03, + "time.clang-tidy.readability-uppercase-literal-suffix.wall": 3.1664848327636719e-02, + "time.clang-tidy.readability-uppercase-literal-suffix.user": 1.9245999999986552e-02, + "time.clang-tidy.readability-uppercase-literal-suffix.sys": 1.2213000000010910e-02, + "time.clang-tidy.bugprone-suspicious-enum-usage.wall": 2.3319721221923828e-03, + "time.clang-tidy.bugprone-suspicious-enum-usage.user": 1.3779999999949943e-03, + "time.clang-tidy.bugprone-suspicious-enum-usage.sys": 9.4700000000425000e-04, + "time.clang-tidy.modernize-loop-convert.wall": 4.6801567077636719e-04, + "time.clang-tidy.modernize-loop-convert.user": 3.1399999999903727e-04, + "time.clang-tidy.modernize-loop-convert.sys": 1.5600000000026704e-04, + "time.clang-tidy.bugprone-unchecked-optional-access.wall": 1.9855499267578125e-02, + "time.clang-tidy.bugprone-unchecked-optional-access.user": 1.1293000000000664e-02, + "time.clang-tidy.bugprone-unchecked-optional-access.sys": 8.4130000000088856e-03, + "time.clang-tidy.google-readability-casting.wall": 4.0564537048339844e-03, + "time.clang-tidy.google-readability-casting.user": 2.5680000000036785e-03, + "time.clang-tidy.google-readability-casting.sys": 1.5149999999997110e-03, + "time.clang-tidy.abseil-duration-conversion-cast.wall": 2.5171041488647461e-02, + "time.clang-tidy.abseil-duration-conversion-cast.user": 1.5146999999977151e-02, + "time.clang-tidy.abseil-duration-conversion-cast.sys": 9.9599999999924194e-03, + "time.clang-tidy.readability-suspicious-call-argument.wall": 1.9197225570678711e-02, + "time.clang-tidy.readability-suspicious-call-argument.user": 1.1296000000008632e-02, + "time.clang-tidy.readability-suspicious-call-argument.sys": 8.0550000000003674e-03, + "time.clang-tidy.google-default-arguments.wall": 3.5181045532226562e-03, + "time.clang-tidy.google-default-arguments.user": 1.8879999999916741e-03, + "time.clang-tidy.google-default-arguments.sys": 1.4850000000019570e-03, + "time.clang-tidy.readability-uniqueptr-delete-release.wall": 7.4148178100585938e-05, + "time.clang-tidy.readability-uniqueptr-delete-release.user": 3.7999999999982492e-05, + "time.clang-tidy.readability-uniqueptr-delete-release.sys": 3.5000000000007248e-05, + "time.clang-tidy.cppcoreguidelines-avoid-const-or-ref-data-members.wall": 5.1593780517578125e-04, + "time.clang-tidy.cppcoreguidelines-avoid-const-or-ref-data-members.user": 2.2199999999861220e-04, + "time.clang-tidy.cppcoreguidelines-avoid-const-or-ref-data-members.sys": 2.7800000000111069e-04, + "time.clang-tidy.modernize-use-trailing-return-type.wall": 7.0708990097045898e-02, + "time.clang-tidy.modernize-use-trailing-return-type.user": 4.0364000000002065e-02, + "time.clang-tidy.modernize-use-trailing-return-type.sys": 3.0322000000001070e-02, + "time.clang-tidy.readability-redundant-function-ptr-dereference.wall": 1.2276172637939453e-03, + "time.clang-tidy.readability-redundant-function-ptr-dereference.user": 7.6700000000284874e-04, + "time.clang-tidy.readability-redundant-function-ptr-dereference.sys": 4.7500000000044729e-04, + "time.clang-tidy.cppcoreguidelines-pro-type-const-cast.wall": 2.4318695068359375e-05, + "time.clang-tidy.cppcoreguidelines-pro-type-const-cast.user": 2.7000000000221291e-05, + "time.clang-tidy.cppcoreguidelines-pro-type-const-cast.sys": 0.0000000000000000e+00, + "time.clang-tidy.modernize-avoid-c-arrays.wall": 3.6789417266845703e-02, + "time.clang-tidy.modernize-avoid-c-arrays.user": 2.0782999999990448e-02, + "time.clang-tidy.modernize-avoid-c-arrays.sys": 1.5802999999990686e-02, + "time.clang-tidy.misc-unconventional-assign-operator.wall": 1.0016441345214844e-02, + "time.clang-tidy.misc-unconventional-assign-operator.user": 5.8619999999978134e-03, + "time.clang-tidy.misc-unconventional-assign-operator.sys": 4.2350000000015431e-03, + "time.clang-tidy.readability-qualified-auto.wall": 3.3955574035644531e-03, + "time.clang-tidy.readability-qualified-auto.user": 2.2970000000017698e-03, + "time.clang-tidy.readability-qualified-auto.sys": 1.0840000000014172e-03, + "time.clang-tidy.concurrency-mt-unsafe.wall": 1.4573574066162109e-02, + "time.clang-tidy.concurrency-mt-unsafe.user": 9.1530000000106249e-03, + "time.clang-tidy.concurrency-mt-unsafe.sys": 5.3749999999990195e-03, + "time.clang-tidy.linuxkernel-must-check-errs.wall": 8.1057548522949219e-03, + "time.clang-tidy.linuxkernel-must-check-errs.user": 5.0750000000019391e-03, + "time.clang-tidy.linuxkernel-must-check-errs.sys": 2.9070000000017693e-03, + "time.clang-tidy.bugprone-integer-division.wall": 1.5993118286132812e-03, + "time.clang-tidy.bugprone-integer-division.user": 9.6600000000623965e-04, + "time.clang-tidy.bugprone-integer-division.sys": 6.6099999999735815e-04, + "time.clang-tidy.hicpp-invalid-access-moved.wall": 6.3853502273559570e-02, + "time.clang-tidy.hicpp-invalid-access-moved.user": 3.9818000000033660e-02, + "time.clang-tidy.hicpp-invalid-access-moved.sys": 2.4359000000005349e-02, + "time.clang-tidy.misc-include-cleaner.wall": 4.9948692321777344e-04, + "time.clang-tidy.misc-include-cleaner.user": 4.9800000000033151e-04, + "time.clang-tidy.misc-include-cleaner.sys": 1.0000000001397780e-06, + "time.clang-tidy.google-readability-function-size.wall": 9.4814300537109375e-03, + "time.clang-tidy.google-readability-function-size.user": 5.8889999999918174e-03, + "time.clang-tidy.google-readability-function-size.sys": 3.4319999999954387e-03, + "time.clang-tidy.cppcoreguidelines-slicing.wall": 4.9498081207275391e-03, + "time.clang-tidy.cppcoreguidelines-slicing.user": 3.1010000000049054e-03, + "time.clang-tidy.cppcoreguidelines-slicing.sys": 1.8049999999969479e-03, + "time.clang-tidy.bugprone-posix-return.wall": 1.8124580383300781e-03, + "time.clang-tidy.bugprone-posix-return.user": 1.0529999999961959e-03, + "time.clang-tidy.bugprone-posix-return.sys": 7.4199999999602362e-04, + "time.clang-tidy.bugprone-argument-comment.wall": 4.7996044158935547e-03, + "time.clang-tidy.bugprone-argument-comment.user": 3.0919999999921011e-03, + "time.clang-tidy.bugprone-argument-comment.sys": 1.7150000000023535e-03, + "time.clang-tidy.cppcoreguidelines-pro-type-member-init.wall": 1.4810085296630859e-02, + "time.clang-tidy.cppcoreguidelines-pro-type-member-init.user": 8.3009999999856809e-03, + "time.clang-tidy.cppcoreguidelines-pro-type-member-init.sys": 6.4790000000025660e-03, + "time.clang-tidy.cert-dcl54-cpp.wall": 5.3670406341552734e-03, + "time.clang-tidy.cert-dcl54-cpp.user": 3.0370000000221609e-03, + "time.clang-tidy.cert-dcl54-cpp.sys": 2.2560000000035885e-03, + "time.clang-tidy.darwin-avoid-spinlock.wall": 3.2033920288085938e-03, + "time.clang-tidy.darwin-avoid-spinlock.user": 2.0459999999906664e-03, + "time.clang-tidy.darwin-avoid-spinlock.sys": 1.1339999999988581e-03, + "time.clang-tidy.abseil-time-comparison.wall": 1.8851757049560547e-03, + "time.clang-tidy.abseil-time-comparison.user": 1.1159999999974524e-03, + "time.clang-tidy.abseil-time-comparison.sys": 7.9900000000399096e-04, + "time.clang-tidy.modernize-unary-static-assert.wall": 1.0418891906738281e-04, + "time.clang-tidy.modernize-unary-static-assert.user": 6.3999999999619916e-05, + "time.clang-tidy.modernize-unary-static-assert.sys": 3.9999999999595914e-05, + "time.clang-tidy.hicpp-explicit-conversions.wall": 1.4524459838867188e-03, + "time.clang-tidy.hicpp-explicit-conversions.user": 9.1399999999985937e-04, + "time.clang-tidy.hicpp-explicit-conversions.sys": 5.4299999999951609e-04, + "time.clang-tidy.cert-env33-c.wall": 3.4286975860595703e-03, + "time.clang-tidy.cert-env33-c.user": 2.1809999999979901e-03, + "time.clang-tidy.cert-env33-c.sys": 1.2350000000005412e-03, + "time.clang-tidy.cert-msc50-cpp.wall": 3.1504631042480469e-03, + "time.clang-tidy.cert-msc50-cpp.user": 2.0140000000061775e-03, + "time.clang-tidy.cert-msc50-cpp.sys": 1.1269999999983238e-03, + "time.clang-tidy.modernize-use-default-member-init.wall": 1.0023117065429688e-03, + "time.clang-tidy.modernize-use-default-member-init.user": 6.3199999999730139e-04, + "time.clang-tidy.modernize-use-default-member-init.sys": 3.5599999999869070e-04, + "time.clang-tidy.bugprone-narrowing-conversions.wall": 8.7285041809082031e-03, + "time.clang-tidy.bugprone-narrowing-conversions.user": 5.0510000000083544e-03, + "time.clang-tidy.bugprone-narrowing-conversions.sys": 3.5849999999948423e-03, + "time.clang-tidy.bugprone-implicit-widening-of-multiplication-result.wall": 1.4597177505493164e-02, + "time.clang-tidy.bugprone-implicit-widening-of-multiplication-result.user": 8.3929999999980964e-03, + "time.clang-tidy.bugprone-implicit-widening-of-multiplication-result.sys": 6.2750000000018069e-03, + "time.clang-tidy.modernize-use-equals-delete.wall": 3.2958984375000000e-03, + "time.clang-tidy.modernize-use-equals-delete.user": 1.8479999999980734e-03, + "time.clang-tidy.modernize-use-equals-delete.sys": 1.3729999999978482e-03, + "time.clang-tidy.bugprone-lambda-function-name.wall": 1.6689300537109375e-06, + "time.clang-tidy.bugprone-lambda-function-name.user": 1.0000000001397780e-06, + "time.clang-tidy.bugprone-lambda-function-name.sys": 0.0000000000000000e+00, + "time.clang-tidy.abseil-faster-strsplit-delimiter.wall": 4.6725273132324219e-03, + "time.clang-tidy.abseil-faster-strsplit-delimiter.user": 2.9979999999962814e-03, + "time.clang-tidy.abseil-faster-strsplit-delimiter.sys": 1.6999999999989246e-03, + "time.clang-tidy.readability-use-anyofallof.wall": 3.3378601074218750e-06, + "time.clang-tidy.readability-use-anyofallof.user": 3.0000000004193339e-06, + "time.clang-tidy.readability-use-anyofallof.sys": 1.0000000001397780e-06, + "time.clang-tidy.readability-function-cognitive-complexity.wall": 8.6231231689453125e-03, + "time.clang-tidy.readability-function-cognitive-complexity.user": 5.3809999999936409e-03, + "time.clang-tidy.readability-function-cognitive-complexity.sys": 3.2820000000000071e-03, + "time.clang-tidy.performance-for-range-copy.wall": 2.6226043701171875e-06, + "time.clang-tidy.performance-for-range-copy.user": 1.9999999998354667e-06, + "time.clang-tidy.performance-for-range-copy.sys": 0.0000000000000000e+00, + "time.clang-tidy.performance-noexcept-move-constructor.wall": 2.8913021087646484e-03, + "time.clang-tidy.performance-noexcept-move-constructor.user": 1.6869999999986618e-03, + "time.clang-tidy.performance-noexcept-move-constructor.sys": 1.1979999999969237e-03, + "time.clang-tidy.readability-delete-null-pointer.wall": 1.3563632965087891e-03, + "time.clang-tidy.readability-delete-null-pointer.user": 9.2699999999856786e-04, + "time.clang-tidy.readability-delete-null-pointer.sys": 4.1499999999961013e-04, + "time.clang-tidy.cert-dcl51-cpp.wall": 1.6449522972106934e-01, + "time.clang-tidy.cert-dcl51-cpp.user": 1.6057600000000027e-01, + "time.clang-tidy.cert-dcl51-cpp.sys": 3.2499999999999751e-03, + "time.clang-tidy.fuchsia-multiple-inheritance.wall": 2.1698474884033203e-03, + "time.clang-tidy.fuchsia-multiple-inheritance.user": 1.2760000000020533e-03, + "time.clang-tidy.fuchsia-multiple-inheritance.sys": 8.8800000000177626e-04, + "time.clang-tidy.readability-named-parameter.wall": 7.2009563446044922e-03, + "time.clang-tidy.readability-named-parameter.user": 4.0790000000021642e-03, + "time.clang-tidy.readability-named-parameter.sys": 3.1630000000024694e-03, + "time.clang-tidy.misc-misplaced-const.wall": 1.1611223220825195e-02, + "time.clang-tidy.misc-misplaced-const.user": 6.5279999999998672e-03, + "time.clang-tidy.misc-misplaced-const.sys": 5.0059999999974014e-03, + "time.clang-tidy.bugprone-parent-virtual-call.wall": 7.2622299194335938e-04, + "time.clang-tidy.bugprone-parent-virtual-call.user": 4.7500000000022524e-04, + "time.clang-tidy.bugprone-parent-virtual-call.sys": 2.6099999999962264e-04, + "time.clang-tidy.readability-simplify-subscript-expr.wall": 2.0503997802734375e-04, + "time.clang-tidy.readability-simplify-subscript-expr.user": 1.2000000000034206e-04, + "time.clang-tidy.readability-simplify-subscript-expr.sys": 8.7000000000836408e-05, + "time.clang-tidy.mpi-buffer-deref.wall": 3.5655498504638672e-03, + "time.clang-tidy.mpi-buffer-deref.user": 2.3030000000026085e-03, + "time.clang-tidy.mpi-buffer-deref.sys": 1.2579999999982050e-03, + "time.clang-tidy.llvm-prefer-register-over-unsigned.wall": 7.6169967651367188e-03, + "time.clang-tidy.llvm-prefer-register-over-unsigned.user": 4.3119999999969849e-03, + "time.clang-tidy.llvm-prefer-register-over-unsigned.sys": 3.2699999999963314e-03, + "time.clang-tidy.hicpp-no-array-decay.wall": 8.0807209014892578e-03, + "time.clang-tidy.hicpp-no-array-decay.user": 4.8000000000048004e-03, + "time.clang-tidy.hicpp-no-array-decay.sys": 3.3369999999963706e-03, + "time.clang-tidy.cert-err33-c.wall": 3.6635875701904297e-02, + "time.clang-tidy.cert-err33-c.user": 2.2372000000029590e-02, + "time.clang-tidy.cert-err33-c.sys": 1.4024999999994847e-02, + "time.clang-tidy.bugprone-suspicious-missing-comma.wall": 1.1563301086425781e-04, + "time.clang-tidy.bugprone-suspicious-missing-comma.user": 6.8999999999430628e-05, + "time.clang-tidy.bugprone-suspicious-missing-comma.sys": 4.7000000000130271e-05, + "time.clang-tidy.bugprone-suspicious-string-compare.wall": 3.5453081130981445e-02, + "time.clang-tidy.bugprone-suspicious-string-compare.user": 2.1489000000038061e-02, + "time.clang-tidy.bugprone-suspicious-string-compare.sys": 1.3785999999999410e-02, + "time.clang-tidy.abseil-duration-factory-scale.wall": 3.2606124877929688e-03, + "time.clang-tidy.abseil-duration-factory-scale.user": 2.0719999999907479e-03, + "time.clang-tidy.abseil-duration-factory-scale.sys": 1.1459999999976489e-03, + "time.clang-tidy.bugprone-misplaced-widening-cast.wall": 1.6383409500122070e-02, + "time.clang-tidy.bugprone-misplaced-widening-cast.user": 1.0036000000018142e-02, + "time.clang-tidy.bugprone-misplaced-widening-cast.sys": 6.3860000000006689e-03, + "time.clang-tidy.hicpp-exception-baseclass.wall": 8.9406967163085938e-05, + "time.clang-tidy.hicpp-exception-baseclass.user": 6.0000000000837161e-05, + "time.clang-tidy.hicpp-exception-baseclass.sys": 2.7999999999916980e-05, + "time.clang-tidy.cert-oop11-cpp.wall": 6.0558319091796875e-04, + "time.clang-tidy.cert-oop11-cpp.user": 3.4200000000073061e-04, + "time.clang-tidy.cert-oop11-cpp.sys": 2.6800000000104518e-04, + "time.clang-tidy.hicpp-multiway-paths-covered.wall": 3.8146972656250000e-06, + "time.clang-tidy.hicpp-multiway-paths-covered.user": 4.0000000001150227e-06, + "time.clang-tidy.hicpp-multiway-paths-covered.sys": 0.0000000000000000e+00, + "time.clang-tidy.misc-confusable-identifiers.wall": 3.9042472839355469e-02, + "time.clang-tidy.misc-confusable-identifiers.user": 2.3698999999978376e-02, + "time.clang-tidy.misc-confusable-identifiers.sys": 1.5578000000010528e-02, + "time.clang-tidy.bugprone-unhandled-exception-at-new.wall": 4.4822692871093750e-05, + "time.clang-tidy.bugprone-unhandled-exception-at-new.user": 3.3000000000171781e-05, + "time.clang-tidy.bugprone-unhandled-exception-at-new.sys": 1.3000000000040757e-05, + "time.clang-tidy.modernize-raw-string-literal.wall": 3.0064582824707031e-04, + "time.clang-tidy.modernize-raw-string-literal.user": 1.9599999999808659e-04, + "time.clang-tidy.modernize-raw-string-literal.sys": 1.0100000000012876e-04, + "time.clang-tidy.abseil-duration-unnecessary-conversion.wall": 6.6182613372802734e-03, + "time.clang-tidy.abseil-duration-unnecessary-conversion.user": 4.2790000000074713e-03, + "time.clang-tidy.abseil-duration-unnecessary-conversion.sys": 2.3719999999993746e-03, + "time.clang-tidy.misc-misleading-identifier.wall": 2.2807598114013672e-02, + "time.clang-tidy.misc-misleading-identifier.user": 1.3155999999985291e-02, + "time.clang-tidy.misc-misleading-identifier.sys": 9.7309999999939389e-03, + "time.clang-tidy.bugprone-inaccurate-erase.wall": 5.0163269042968750e-04, + "time.clang-tidy.bugprone-inaccurate-erase.user": 3.1699999999945661e-04, + "time.clang-tidy.bugprone-inaccurate-erase.sys": 1.8500000000254424e-04, + "time.clang-tidy.bugprone-bad-signal-to-kill-thread.wall": 3.1561851501464844e-03, + "time.clang-tidy.bugprone-bad-signal-to-kill-thread.user": 1.9649999999988843e-03, + "time.clang-tidy.bugprone-bad-signal-to-kill-thread.sys": 1.1260000000028469e-03, + "time.clang-tidy.llvm-qualified-auto.wall": 1.2001991271972656e-03, + "time.clang-tidy.llvm-qualified-auto.user": 8.1099999999256767e-04, + "time.clang-tidy.llvm-qualified-auto.sys": 3.8699999999591839e-04, + "time.clang-tidy.cppcoreguidelines-pro-bounds-constant-array-index.wall": 1.3384819030761719e-03, + "time.clang-tidy.cppcoreguidelines-pro-bounds-constant-array-index.user": 8.1900000000345585e-04, + "time.clang-tidy.cppcoreguidelines-pro-bounds-constant-array-index.sys": 5.1900000000015822e-04, + "time.clang-tidy.misc-unused-parameters.wall": 4.6737194061279297e-03, + "time.clang-tidy.misc-unused-parameters.user": 2.6920000000032474e-03, + "time.clang-tidy.misc-unused-parameters.sys": 2.0019999999996152e-03, + "time.clang-tidy.modernize-use-auto.wall": 4.8241615295410156e-03, + "time.clang-tidy.modernize-use-auto.user": 3.2390000000086516e-03, + "time.clang-tidy.modernize-use-auto.sys": 1.6020000000001033e-03, + "time.clang-tidy.modernize-replace-auto-ptr.wall": 3.7234544754028320e-02, + "time.clang-tidy.modernize-replace-auto-ptr.user": 2.1313999999993172e-02, + "time.clang-tidy.modernize-replace-auto-ptr.sys": 1.5913999999999984e-02, + "time.clang-tidy.modernize-use-equals-default.wall": 4.7051906585693359e-03, + "time.clang-tidy.modernize-use-equals-default.user": 2.7880000000055638e-03, + "time.clang-tidy.modernize-use-equals-default.sys": 1.8970000000018139e-03, + "time.clang-tidy.cppcoreguidelines-pro-bounds-pointer-arithmetic.wall": 3.0293464660644531e-03, + "time.clang-tidy.cppcoreguidelines-pro-bounds-pointer-arithmetic.user": 1.7829999999943169e-03, + "time.clang-tidy.cppcoreguidelines-pro-bounds-pointer-arithmetic.sys": 1.1999999999996458e-03, + "time.clang-tidy.cert-err58-cpp.wall": 9.1676712036132812e-03, + "time.clang-tidy.cert-err58-cpp.user": 5.5640000000054535e-03, + "time.clang-tidy.cert-err58-cpp.sys": 3.6419999999965924e-03, + "time.clang-tidy.readability-redundant-declaration.wall": 2.4203538894653320e-02, + "time.clang-tidy.readability-redundant-declaration.user": 1.3489000000008744e-02, + "time.clang-tidy.readability-redundant-declaration.sys": 1.0371000000003239e-02, + "time.clang-tidy.cert-err61-cpp.wall": 9.5129013061523438e-05, + "time.clang-tidy.cert-err61-cpp.user": 7.3999999997909072e-05, + "time.clang-tidy.cert-err61-cpp.sys": 2.5000000000829914e-05, + "time.clang-tidy.misc-throw-by-value-catch-by-reference.wall": 7.9154968261718750e-05, + "time.clang-tidy.misc-throw-by-value-catch-by-reference.user": 6.3999999998731738e-05, + "time.clang-tidy.misc-throw-by-value-catch-by-reference.sys": 1.7999999999629424e-05 +} +} diff --git a/tests/test_review.py b/tests/test_review.py index dd67570..60e887f 100644 --- a/tests/test_review.py +++ b/tests/test_review.py @@ -462,3 +462,13 @@ def test_decorate_comment_body(): # version_message_1500 = "warning: missing username/bug in TODO [google-readability-todo]" # version_message_1500_decorated = "warning: missing username/bug in TODO [[google-readability-todo](https://releases.llvm.org/15.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-todo.html)]" # assert ctr.decorate_comment_body(version_message_1500, version_message_1500_version) == version_message_1500_decorated + + +def test_timing_summary(monkeypatch): + monkeypatch.setattr(ctr, "PROFILE_DIR", str(TEST_DIR / f"src/clang-tidy-profile")) + profiling = ctr.load_and_merge_profiling() + assert "time.clang-tidy.total.wall" in profiling["hello.cxx"].keys() + assert "time.clang-tidy.total.user" in profiling["hello.cxx"].keys() + assert "time.clang-tidy.total.sys" in profiling["hello.cxx"].keys() + summary = ctr.make_timing_summary(profiling) + assert len(summary.split("\n")) == 21 From 0603e9ef73ccb0cf6d96ef8863420e208b8d0046 Mon Sep 17 00:00:00 2001 From: Sandy Carter Date: Wed, 22 May 2024 23:20:54 -0400 Subject: [PATCH 4/7] Link test in summary --- post/clang_tidy_review/clang_tidy_review/__init__.py | 10 ++++++---- tests/test_review.py | 12 ++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/post/clang_tidy_review/clang_tidy_review/__init__.py b/post/clang_tidy_review/clang_tidy_review/__init__.py index 93d4d50..38150bc 100644 --- a/post/clang_tidy_review/clang_tidy_review/__init__.py +++ b/post/clang_tidy_review/clang_tidy_review/__init__.py @@ -855,14 +855,15 @@ def make_timing_summary(clang_tidy_profiling: Dict) -> str: if check in [wall_key, user_key, sys_key]: continue base_check, time_type = check.rsplit(".", 1) - t = check_timings.get(base_check, (0.0, 0.0, 0.0)) + check_name = base_check.split(".", 2)[2] + t = check_timings.get(check_name, (0.0, 0.0, 0.0)) if time_type == "user": t = t[0] + timing, t[1], t[2] elif time_type == "sys": t = t[0], t[1] + timing, t[2] elif time_type == "wall": t = t[0], t[1], t[2] + timing - check_timings[base_check] = t + check_timings[check_name] = t check_summary = "" if check_timings: @@ -880,6 +881,7 @@ def make_timing_summary(clang_tidy_profiling: Dict) -> str: reverse=True, ) for c, u, s, w in list(topchecks)[:top_amount]: + c = decorate_check_names(f"[{c}]").replace("[[", "[").rstrip("]") check_summary += f"|{c}|{u:.2f}|{s:.2f}|{w:.2f}|\n" return f"## Timing\n{file_summary}{check_summary}" @@ -1199,7 +1201,7 @@ def set_summary(val: str) -> bool: return True -def decorate_comment_body(comment: str) -> str: +def decorate_check_names(comment: str) -> str: """ Split on first dash into two groups of string in [] at end of line exception: if the first group starts with 'clang' such as 'clang-diagnostic-error' @@ -1213,7 +1215,7 @@ def decorate_comment_body(comment: str) -> str: def decorate_comment(comment: PRReviewComment) -> PRReviewComment: - comment["body"] = decorate_comment_body(comment["body"]) + comment["body"] = decorate_check_names(comment["body"]) return comment diff --git a/tests/test_review.py b/tests/test_review.py index 60e887f..9fa1527 100644 --- a/tests/test_review.py +++ b/tests/test_review.py @@ -434,20 +434,20 @@ def test_decorate_comment_body(): error_message = ( "warning: no member named 'ranges' in namespace 'std' [clang-diagnostic-error]" ) - assert ctr.decorate_comment_body(error_message) == error_message + assert ctr.decorate_check_names(error_message) == error_message todo_message = "warning: missing username/bug in TODO [google-readability-todo]" todo_message_decorated = "warning: missing username/bug in TODO [[google-readability-todo](https://clang.llvm.org/extra/clang-tidy/checks/google/readability-todo.html)]" - assert ctr.decorate_comment_body(todo_message) == todo_message_decorated + assert ctr.decorate_check_names(todo_message) == todo_message_decorated naming_message = "warning: invalid case style for constexpr variable 'foo' [readability-identifier-naming]" naming_message_decorated = "warning: invalid case style for constexpr variable 'foo' [[readability-identifier-naming](https://clang.llvm.org/extra/clang-tidy/checks/readability/identifier-naming.html)]" - assert ctr.decorate_comment_body(naming_message) == naming_message_decorated + assert ctr.decorate_check_names(naming_message) == naming_message_decorated clang_analyzer_message = "warning: Array access (from variable 'foo') results in a null pointer dereference [clang-analyzer-core.NullDereference]" clang_analyzer_message_decorated = "warning: Array access (from variable 'foo') results in a null pointer dereference [[clang-analyzer-core.NullDereference](https://clang.llvm.org/extra/clang-tidy/checks/clang-analyzer/core.NullDereference.html)]" assert ( - ctr.decorate_comment_body(clang_analyzer_message) + ctr.decorate_check_names(clang_analyzer_message) == clang_analyzer_message_decorated ) @@ -456,12 +456,12 @@ def test_decorate_comment_body(): # version_message_pre_15_version = "14.0.0" # version_message_pre_15 = "warning: missing username/bug in TODO [google-readability-todo]" # version_message_pre_15_decorated = "warning: missing username/bug in TODO [[google-readability-todo](https://releases.llvm.org/14.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/google-readability-todo.html)]" - # assert ctr.decorate_comment_body(version_message_pre_15, version_message_pre_15_version) == version_message_pre_15_decorated + # assert ctr.decorate_check_names(version_message_pre_15, version_message_pre_15_version) == version_message_pre_15_decorated # # version_message_1500_version = "15.0.0" # version_message_1500 = "warning: missing username/bug in TODO [google-readability-todo]" # version_message_1500_decorated = "warning: missing username/bug in TODO [[google-readability-todo](https://releases.llvm.org/15.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-todo.html)]" - # assert ctr.decorate_comment_body(version_message_1500, version_message_1500_version) == version_message_1500_decorated + # assert ctr.decorate_check_names(version_message_1500, version_message_1500_version) == version_message_1500_decorated def test_timing_summary(monkeypatch): From 1fc4a33db4f64d14ab81ffc4d65e0468531f9586 Mon Sep 17 00:00:00 2001 From: Sandy Carter Date: Thu, 23 May 2024 08:21:48 -0400 Subject: [PATCH 5/7] Link file in summary --- post/clang_tidy_review/clang_tidy_review/__init__.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/post/clang_tidy_review/clang_tidy_review/__init__.py b/post/clang_tidy_review/clang_tidy_review/__init__.py index 38150bc..01beaea 100644 --- a/post/clang_tidy_review/clang_tidy_review/__init__.py +++ b/post/clang_tidy_review/clang_tidy_review/__init__.py @@ -846,7 +846,13 @@ def make_timing_summary(clang_tidy_profiling: Dict) -> str: key=lambda x: x[3], reverse=True, ) + if "GITHUB_SERVER_URL" in os.environ and "GITHUB_REPOSITORY" in os.environ and "GITHUB_SHA" in os.environ: + blob = f"{os.environ['GITHUB_SERVER_URL']}/{os.environ['GITHUB_REPOSITORY']}/blob/{os.environ['GITHUB_SHA']}" + else: + blob = None for f, u, s, w in list(topfiles)[:top_amount]: + if blob is not None: + f = f"[{f}]({blob}/{f})" file_summary += f"|{f}|{u:.2f}|{s:.2f}|{w:.2f}|\n" check_timings = {} From e08211ce545c53e65f9ccffc0c51b174251d5823 Mon Sep 17 00:00:00 2001 From: Sandy Carter Date: Thu, 23 May 2024 12:18:03 -0400 Subject: [PATCH 6/7] Get sha from PR --- .../clang_tidy_review/__init__.py | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/post/clang_tidy_review/clang_tidy_review/__init__.py b/post/clang_tidy_review/clang_tidy_review/__init__.py index 01beaea..8767a30 100644 --- a/post/clang_tidy_review/clang_tidy_review/__init__.py +++ b/post/clang_tidy_review/clang_tidy_review/__init__.py @@ -287,6 +287,13 @@ def pull_request(self): self._pull_request = self.repo.get_pull(int(self.pr_number)) return self._pull_request + @property + def head_sha(self): + if self._pull_request is None: + raise RuntimeError("Missing PR") + + return self._pull_request.get_commits().reversed[0].sha + def get_pr_diff(self) -> List[unidiff.PatchSet]: """Download the PR diff, return a list of PatchedFile""" @@ -814,7 +821,7 @@ def create_review_file( return review -def make_timing_summary(clang_tidy_profiling: Dict) -> str: +def make_timing_summary(clang_tidy_profiling: Dict, sha: Optional[str] = None) -> str: if not clang_tidy_profiling: return "" top_amount = 10 @@ -846,8 +853,9 @@ def make_timing_summary(clang_tidy_profiling: Dict) -> str: key=lambda x: x[3], reverse=True, ) - if "GITHUB_SERVER_URL" in os.environ and "GITHUB_REPOSITORY" in os.environ and "GITHUB_SHA" in os.environ: - blob = f"{os.environ['GITHUB_SERVER_URL']}/{os.environ['GITHUB_REPOSITORY']}/blob/{os.environ['GITHUB_SHA']}" + + if "GITHUB_SERVER_URL" in os.environ and "GITHUB_REPOSITORY" in os.environ: + blob = f"{os.environ['GITHUB_SERVER_URL']}/{os.environ['GITHUB_REPOSITORY']}/blob/{sha}" else: blob = None for f, u, s, w in list(topfiles)[:top_amount]: @@ -975,9 +983,14 @@ def create_review( # Read and parse the timing data clang_tidy_profiling = load_and_merge_profiling() + try: + sha = pull_request.head_sha + except Exception: + sha = os.environ.get("GITHUB_SHA") + # Post to the action job summary step_summary = "" - step_summary += make_timing_summary(clang_tidy_profiling) + step_summary += make_timing_summary(clang_tidy_profiling, sha) set_summary(step_summary) print("clang-tidy had the following warnings:\n", clang_tidy_warnings, flush=True) From 44ec28392652aeaf55b9357d58ed1a8840a1a24e Mon Sep 17 00:00:00 2001 From: Peter Hill Date: Fri, 19 Jul 2024 15:39:08 +0100 Subject: [PATCH 7/7] Remove unnecessary intermediate variable --- post/clang_tidy_review/clang_tidy_review/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/post/clang_tidy_review/clang_tidy_review/__init__.py b/post/clang_tidy_review/clang_tidy_review/__init__.py index 4186cbf..fca4ded 100644 --- a/post/clang_tidy_review/clang_tidy_review/__init__.py +++ b/post/clang_tidy_review/clang_tidy_review/__init__.py @@ -992,8 +992,7 @@ def create_review( sha = os.environ.get("GITHUB_SHA") # Post to the action job summary - step_summary = "" - step_summary += make_timing_summary(clang_tidy_profiling, sha) + step_summary = make_timing_summary(clang_tidy_profiling, sha) set_summary(step_summary) print("clang-tidy had the following warnings:\n", clang_tidy_warnings, flush=True)