| #!/usr/bin/env fuchsia-vendored-python |
| # Copyright 2024 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import os |
| import sys |
| import unittest |
| from pathlib import Path |
| from unittest import mock |
| from typing import Iterable, Sequence |
| |
| import build_summary |
| |
| |
| class LabelsToDictTests(unittest.TestCase): |
| def test_one_label(self) -> None: |
| self.assertEqual( |
| build_summary.labels_to_dict("bar=foo"), {"bar": "foo"} |
| ) |
| |
| def test_two_labels(self) -> None: |
| self.assertEqual( |
| build_summary.labels_to_dict("baz=1,spice=sugar"), |
| {"baz": "1", "spice": "sugar"}, |
| ) |
| |
| def test_duplicate_last_wins(self) -> None: |
| self.assertEqual( |
| build_summary.labels_to_dict("bar=foo,bar=quux"), {"bar": "quux"} |
| ) |
| |
| |
| class GetActionCategoryFromLabelsTests(unittest.TestCase): |
| def test_cxx(self) -> None: |
| self.assertEqual( |
| build_summary.get_action_category_from_labels( |
| "lang=cpp,type=compile,tool=clang" |
| ), |
| "cxx", |
| ) |
| |
| def test_link(self) -> None: |
| self.assertEqual( |
| build_summary.get_action_category_from_labels( |
| "type=link,tool=clang" |
| ), |
| "link", |
| ) |
| |
| def test_rust(self) -> None: |
| self.assertEqual( |
| build_summary.get_action_category_from_labels( |
| "type=tool,toolname=rustc" |
| ), |
| "rust", |
| ) |
| |
| def test_custom_tool(self) -> None: |
| self.assertEqual( |
| build_summary.get_action_category_from_labels( |
| "type=tool,toolname=protoc" |
| ), |
| "protoc", |
| ) |
| |
| def test_unknown(self) -> None: |
| self.assertEqual( |
| build_summary.get_action_category_from_labels("type=tool"), "other" |
| ) |
| |
| |
| class GetActionCategoryAndMetricTests(unittest.TestCase): |
| def test_metric_for_all(self) -> None: |
| self.assertEqual( |
| build_summary.get_action_category_and_metric("Foo.Metadata.Time"), |
| (None, "Foo.Metadata.Time"), |
| ) |
| |
| def test_metric_for_one_tool(self) -> None: |
| self.assertEqual( |
| build_summary.get_action_category_and_metric( |
| "[toolname=catter].Foo.Metadata.Time" |
| ), |
| ("catter", "Foo.Metadata.Time"), |
| ) |
| |
| |
| RBE_METRICS_TXT_DATA = """ |
| num_records: 47 |
| stats: { |
| name: "CompletionStatus" |
| counts_by_value: { |
| name: "STATUS_NON_ZERO_EXIT" |
| count: 2 |
| } |
| counts_by_value: { |
| name: "STATUS_REMOTE_EXECUTION" |
| count: 45 |
| } |
| } |
| stats: { |
| name: "LocalMetadata.EventTimes.AtomicOutputOverheadMillis" |
| count: 45 |
| outliers: { |
| command_id: "1c2a12e4-3cbc3101" |
| value: 1 |
| } |
| outliers: { |
| command_id: "1c2a12e4-eb41eb70" |
| value: 1 |
| } |
| percentile95: 1 |
| average: 0.08888888888888889 |
| } |
| stats: { |
| name: "LocalMetadata.EventTimes.CPPInputProcessorMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-cfde6b4a" |
| value: 275 |
| } |
| outliers: { |
| command_id: "1c2a12e4-6f7c7849" |
| value: 271 |
| } |
| median: 239 |
| percentile75: 253 |
| percentile85: 260 |
| percentile95: 270 |
| average: 216.70212765957447 |
| } |
| stats: { |
| name: "LocalMetadata.EventTimes.InputProcessorWaitMillis" |
| count: 47 |
| } |
| stats: { |
| name: "LocalMetadata.EventTimes.LocalCommandExecutionMillis" |
| count: 2 |
| outliers: { |
| command_id: "1c2a12e4-ec7fb7e0" |
| value: 10330 |
| } |
| outliers: { |
| command_id: "1c2a12e4-8df6e4b4" |
| value: 10047 |
| } |
| median: 10330 |
| percentile75: 10330 |
| percentile85: 10330 |
| percentile95: 10330 |
| average: 10188.5 |
| } |
| stats: { |
| name: "LocalMetadata.EventTimes.LocalCommandQueuedMillis" |
| count: 2 |
| } |
| stats: { |
| name: "LocalMetadata.EventTimes.ProcessInputsMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-cfde6b4a" |
| value: 307 |
| } |
| outliers: { |
| command_id: "1c2a12e4-6f7c7849" |
| value: 303 |
| } |
| median: 272 |
| percentile75: 285 |
| percentile85: 292 |
| percentile95: 301 |
| average: 248.10638297872342 |
| } |
| stats: { |
| name: "LocalMetadata.EventTimes.ProxyExecutionMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-ec7fb7e0" |
| value: 28953 |
| } |
| outliers: { |
| command_id: "1c2a12e4-5fc72963" |
| value: 26916 |
| } |
| median: 12248 |
| percentile75: 14475 |
| percentile85: 15016 |
| percentile95: 25648 |
| average: 11568.851063829787 |
| } |
| stats: { |
| name: "LocalMetadata.EventTimes.WrapperOverheadMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-59ee7648" |
| value: 61 |
| } |
| outliers: { |
| command_id: "1c2a12e4-2acc7a82" |
| value: 61 |
| } |
| median: 27 |
| percentile75: 29 |
| percentile85: 29 |
| percentile95: 59 |
| average: 28.893617021276597 |
| } |
| stats: { |
| name: "LocalMetadata.ExecutedLocally" |
| count: 2 |
| } |
| stats: { |
| name: "LocalMetadata.Result.Status" |
| counts_by_value: { |
| name: "NON_ZERO_EXIT" |
| count: 2 |
| } |
| } |
| stats: { |
| name: "RemoteMetadata.EventTimes.CheckActionCacheMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 248 |
| } |
| outliers: { |
| command_id: "1c2a12e4-458a7e63" |
| value: 194 |
| } |
| median: 39 |
| percentile75: 45 |
| percentile85: 49 |
| percentile95: 88 |
| average: 47.851063829787236 |
| } |
| stats: { |
| name: "RemoteMetadata.EventTimes.ComputeMerkleTreeMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-1fdf7bca" |
| value: 893 |
| } |
| outliers: { |
| command_id: "1c2a12e4-7447be93" |
| value: 869 |
| } |
| median: 796 |
| percentile75: 822 |
| percentile85: 836 |
| percentile95: 855 |
| average: 805.7446808510638 |
| } |
| stats: { |
| name: "RemoteMetadata.EventTimes.DownloadResultsMillis" |
| count: 45 |
| outliers: { |
| command_id: "1c2a12e4-cd0cc4aa" |
| value: 143 |
| } |
| outliers: { |
| command_id: "1c2a12e4-cc0daf2c" |
| value: 132 |
| } |
| median: 49 |
| percentile75: 93 |
| percentile85: 109 |
| percentile95: 129 |
| average: 64.97777777777777 |
| } |
| stats: { |
| name: "RemoteMetadata.EventTimes.ExecuteRemotelyMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-5fc72963" |
| value: 25567 |
| } |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 18720 |
| } |
| median: 10934 |
| percentile75: 12951 |
| percentile85: 13762 |
| percentile95: 18123 |
| average: 9794.68085106383 |
| } |
| stats: { |
| name: "RemoteMetadata.EventTimes.ServerQueuedMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-3c25a847" |
| value: 17 |
| } |
| outliers: { |
| command_id: "1c2a12e4-1fdf7bca" |
| value: 14 |
| } |
| median: 9 |
| percentile75: 11 |
| percentile85: 12 |
| percentile95: 14 |
| average: 9.191489361702128 |
| } |
| stats: { |
| name: "RemoteMetadata.EventTimes.ServerWorkerExecutionMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-5fc72963" |
| value: 24872 |
| } |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 17943 |
| } |
| median: 10297 |
| percentile75: 12277 |
| percentile85: 12831 |
| percentile95: 17062 |
| average: 9110.404255319148 |
| } |
| stats: { |
| name: "RemoteMetadata.EventTimes.ServerWorkerInputFetchMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-d563e7ab" |
| value: 366 |
| } |
| outliers: { |
| command_id: "1c2a12e4-ec7fb7e0" |
| value: 290 |
| } |
| median: 108 |
| percentile75: 140 |
| percentile85: 164 |
| percentile95: 262 |
| average: 121.29787234042553 |
| } |
| stats: { |
| name: "RemoteMetadata.EventTimes.ServerWorkerMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-5fc72963" |
| value: 25315 |
| } |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 18479 |
| } |
| median: 10770 |
| percentile75: 12694 |
| percentile85: 13490 |
| percentile95: 17905 |
| average: 9553.851063829787 |
| } |
| stats: { |
| name: "RemoteMetadata.EventTimes.ServerWorkerOutputUploadMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-cd0cc4aa" |
| value: 341 |
| } |
| outliers: { |
| command_id: "1c2a12e4-8e33b72c" |
| value: 154 |
| } |
| median: 69 |
| percentile75: 85 |
| percentile85: 139 |
| percentile95: 146 |
| average: 82.91489361702128 |
| } |
| stats: { |
| name: "RemoteMetadata.EventTimes.UploadInputsMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-2acc7a82" |
| value: 727 |
| } |
| outliers: { |
| command_id: "1c2a12e4-4fcd9f90" |
| value: 419 |
| } |
| median: 143 |
| percentile75: 164 |
| percentile85: 212 |
| percentile95: 239 |
| average: 166.25531914893617 |
| } |
| stats: { |
| name: "RemoteMetadata.LogicalBytesDownloaded" |
| count: 35608332 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 2633657 |
| } |
| outliers: { |
| command_id: "1c2a12e4-eb41eb70" |
| value: 2395373 |
| } |
| median: 657753 |
| percentile75: 1051777 |
| percentile85: 1264361 |
| percentile95: 1786261 |
| average: 757624.085106383 |
| } |
| stats: { |
| name: "RemoteMetadata.LogicalBytesUploaded" |
| count: 327048 |
| outliers: { |
| command_id: "1c2a12e4-8df6e4b4" |
| value: 33008 |
| } |
| outliers: { |
| command_id: "1c2a12e4-ec7fb7e0" |
| value: 33008 |
| } |
| median: 5432 |
| percentile75: 5749 |
| percentile85: 5864 |
| percentile95: 18399 |
| average: 6958.468085106383 |
| } |
| stats: { |
| name: "RemoteMetadata.NumInputDirectories" |
| count: 12952 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 372 |
| } |
| outliers: { |
| command_id: "1c2a12e4-f47e9b45" |
| value: 362 |
| } |
| median: 289 |
| percentile75: 320 |
| percentile85: 324 |
| percentile95: 345 |
| average: 275.5744680851064 |
| } |
| stats: { |
| name: "RemoteMetadata.NumInputFiles" |
| count: 44646 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 1240 |
| } |
| outliers: { |
| command_id: "1c2a12e4-cfde6b4a" |
| value: 1235 |
| } |
| median: 1029 |
| percentile75: 1082 |
| percentile85: 1145 |
| percentile95: 1226 |
| average: 949.9148936170212 |
| } |
| stats: { |
| name: "RemoteMetadata.NumOutputFiles" |
| count: 92 |
| outliers: { |
| command_id: "1c2a12e4-1fdf7bca" |
| value: 2 |
| } |
| outliers: { |
| command_id: "1c2a12e4-a85b51f3" |
| value: 2 |
| } |
| median: 2 |
| percentile75: 2 |
| percentile85: 2 |
| percentile95: 2 |
| average: 1.9574468085106382 |
| } |
| stats: { |
| name: "RemoteMetadata.RealBytesDownloaded" |
| count: 35608332 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 2633657 |
| } |
| outliers: { |
| command_id: "1c2a12e4-eb41eb70" |
| value: 2395373 |
| } |
| median: 657753 |
| percentile75: 1051777 |
| percentile85: 1264361 |
| percentile95: 1786261 |
| average: 757624.085106383 |
| } |
| stats: { |
| name: "RemoteMetadata.RealBytesUploaded" |
| count: 327048 |
| outliers: { |
| command_id: "1c2a12e4-8df6e4b4" |
| value: 33008 |
| } |
| outliers: { |
| command_id: "1c2a12e4-ec7fb7e0" |
| value: 33008 |
| } |
| median: 5432 |
| percentile75: 5749 |
| percentile85: 5864 |
| percentile95: 18399 |
| average: 6958.468085106383 |
| } |
| stats: { |
| name: "RemoteMetadata.Result.Status" |
| counts_by_value: { |
| name: "NON_ZERO_EXIT" |
| count: 2 |
| } |
| counts_by_value: { |
| name: "SUCCESS" |
| count: 45 |
| } |
| } |
| stats: { |
| name: "RemoteMetadata.TotalInputBytes" |
| count: 8443562883 |
| outliers: { |
| command_id: "1c2a12e4-5fc72963" |
| value: 192203614 |
| } |
| outliers: { |
| command_id: "1c2a12e4-cfde6b4a" |
| value: 190111791 |
| } |
| median: 181259894 |
| percentile75: 182335622 |
| percentile85: 184712342 |
| percentile95: 187618652 |
| average: 1.7965027410638297e+08 |
| } |
| stats: { |
| name: "RemoteMetadata.TotalOutputBytes" |
| count: 35777071 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 2633657 |
| } |
| outliers: { |
| command_id: "1c2a12e4-eb41eb70" |
| value: 2395373 |
| } |
| median: 657753 |
| percentile75: 1051777 |
| percentile85: 1264361 |
| percentile95: 1786261 |
| average: 761214.2765957447 |
| } |
| stats: { |
| name: "Result.Status" |
| counts_by_value: { |
| name: "NON_ZERO_EXIT" |
| count: 2 |
| } |
| counts_by_value: { |
| name: "SUCCESS" |
| count: 45 |
| } |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].CompletionStatus" |
| counts_by_value: { |
| name: "STATUS_NON_ZERO_EXIT" |
| count: 2 |
| } |
| counts_by_value: { |
| name: "STATUS_REMOTE_EXECUTION" |
| count: 45 |
| } |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].LocalMetadata.EventTimes.AtomicOutputOverheadMillis" |
| count: 45 |
| outliers: { |
| command_id: "1c2a12e4-3cbc3101" |
| value: 1 |
| } |
| outliers: { |
| command_id: "1c2a12e4-eb41eb70" |
| value: 1 |
| } |
| percentile95: 1 |
| average: 0.08888888888888889 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].LocalMetadata.EventTimes.CPPInputProcessorMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-cfde6b4a" |
| value: 275 |
| } |
| outliers: { |
| command_id: "1c2a12e4-6f7c7849" |
| value: 271 |
| } |
| median: 239 |
| percentile75: 253 |
| percentile85: 260 |
| percentile95: 270 |
| average: 216.70212765957447 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].LocalMetadata.EventTimes.InputProcessorWaitMillis" |
| count: 47 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].LocalMetadata.EventTimes.LocalCommandExecutionMillis" |
| count: 2 |
| outliers: { |
| command_id: "1c2a12e4-ec7fb7e0" |
| value: 10330 |
| } |
| outliers: { |
| command_id: "1c2a12e4-8df6e4b4" |
| value: 10047 |
| } |
| median: 10330 |
| percentile75: 10330 |
| percentile85: 10330 |
| percentile95: 10330 |
| average: 10188.5 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].LocalMetadata.EventTimes.LocalCommandQueuedMillis" |
| count: 2 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].LocalMetadata.EventTimes.ProcessInputsMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-cfde6b4a" |
| value: 307 |
| } |
| outliers: { |
| command_id: "1c2a12e4-6f7c7849" |
| value: 303 |
| } |
| median: 272 |
| percentile75: 285 |
| percentile85: 292 |
| percentile95: 301 |
| average: 248.10638297872342 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].LocalMetadata.EventTimes.ProxyExecutionMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-ec7fb7e0" |
| value: 28953 |
| } |
| outliers: { |
| command_id: "1c2a12e4-5fc72963" |
| value: 26916 |
| } |
| median: 12248 |
| percentile75: 14475 |
| percentile85: 15016 |
| percentile95: 25648 |
| average: 11568.851063829787 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].LocalMetadata.EventTimes.WrapperOverheadMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-59ee7648" |
| value: 61 |
| } |
| outliers: { |
| command_id: "1c2a12e4-2acc7a82" |
| value: 61 |
| } |
| median: 27 |
| percentile75: 29 |
| percentile85: 29 |
| percentile95: 59 |
| average: 28.893617021276597 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].LocalMetadata.ExecutedLocally" |
| count: 2 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].LocalMetadata.Result.Status" |
| counts_by_value: { |
| name: "NON_ZERO_EXIT" |
| count: 2 |
| } |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.EventTimes.CheckActionCacheMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 248 |
| } |
| outliers: { |
| command_id: "1c2a12e4-458a7e63" |
| value: 194 |
| } |
| median: 39 |
| percentile75: 45 |
| percentile85: 49 |
| percentile95: 88 |
| average: 47.851063829787236 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.EventTimes.ComputeMerkleTreeMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-1fdf7bca" |
| value: 893 |
| } |
| outliers: { |
| command_id: "1c2a12e4-7447be93" |
| value: 869 |
| } |
| median: 796 |
| percentile75: 822 |
| percentile85: 836 |
| percentile95: 855 |
| average: 805.7446808510638 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.EventTimes.DownloadResultsMillis" |
| count: 45 |
| outliers: { |
| command_id: "1c2a12e4-cd0cc4aa" |
| value: 143 |
| } |
| outliers: { |
| command_id: "1c2a12e4-cc0daf2c" |
| value: 132 |
| } |
| median: 49 |
| percentile75: 93 |
| percentile85: 109 |
| percentile95: 129 |
| average: 64.97777777777777 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.EventTimes.ExecuteRemotelyMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-5fc72963" |
| value: 25567 |
| } |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 18720 |
| } |
| median: 10934 |
| percentile75: 12951 |
| percentile85: 13762 |
| percentile95: 18123 |
| average: 9794.68085106383 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.EventTimes.ServerQueuedMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-3c25a847" |
| value: 17 |
| } |
| outliers: { |
| command_id: "1c2a12e4-1fdf7bca" |
| value: 14 |
| } |
| median: 9 |
| percentile75: 11 |
| percentile85: 12 |
| percentile95: 14 |
| average: 9.191489361702128 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.EventTimes.ServerWorkerExecutionMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-5fc72963" |
| value: 24872 |
| } |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 17943 |
| } |
| median: 10297 |
| percentile75: 12277 |
| percentile85: 12831 |
| percentile95: 17062 |
| average: 9110.404255319148 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.EventTimes.ServerWorkerInputFetchMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-d563e7ab" |
| value: 366 |
| } |
| outliers: { |
| command_id: "1c2a12e4-ec7fb7e0" |
| value: 290 |
| } |
| median: 108 |
| percentile75: 140 |
| percentile85: 164 |
| percentile95: 262 |
| average: 121.29787234042553 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.EventTimes.ServerWorkerMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-5fc72963" |
| value: 25315 |
| } |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 18479 |
| } |
| median: 10770 |
| percentile75: 12694 |
| percentile85: 13490 |
| percentile95: 17905 |
| average: 9553.851063829787 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.EventTimes.ServerWorkerOutputUploadMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-cd0cc4aa" |
| value: 341 |
| } |
| outliers: { |
| command_id: "1c2a12e4-8e33b72c" |
| value: 154 |
| } |
| median: 69 |
| percentile75: 85 |
| percentile85: 139 |
| percentile95: 146 |
| average: 82.91489361702128 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.EventTimes.UploadInputsMillis" |
| count: 47 |
| outliers: { |
| command_id: "1c2a12e4-2acc7a82" |
| value: 727 |
| } |
| outliers: { |
| command_id: "1c2a12e4-4fcd9f90" |
| value: 419 |
| } |
| median: 143 |
| percentile75: 164 |
| percentile85: 212 |
| percentile95: 239 |
| average: 166.25531914893617 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.LogicalBytesDownloaded" |
| count: 35608332 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 2633657 |
| } |
| outliers: { |
| command_id: "1c2a12e4-eb41eb70" |
| value: 2395373 |
| } |
| median: 657753 |
| percentile75: 1051777 |
| percentile85: 1264361 |
| percentile95: 1786261 |
| average: 757624.085106383 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.LogicalBytesUploaded" |
| count: 327048 |
| outliers: { |
| command_id: "1c2a12e4-8df6e4b4" |
| value: 33008 |
| } |
| outliers: { |
| command_id: "1c2a12e4-ec7fb7e0" |
| value: 33008 |
| } |
| median: 5432 |
| percentile75: 5749 |
| percentile85: 5864 |
| percentile95: 18399 |
| average: 6958.468085106383 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.NumInputDirectories" |
| count: 12952 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 372 |
| } |
| outliers: { |
| command_id: "1c2a12e4-f47e9b45" |
| value: 362 |
| } |
| median: 289 |
| percentile75: 320 |
| percentile85: 324 |
| percentile95: 345 |
| average: 275.5744680851064 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.NumInputFiles" |
| count: 44646 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 1240 |
| } |
| outliers: { |
| command_id: "1c2a12e4-cfde6b4a" |
| value: 1235 |
| } |
| median: 1029 |
| percentile75: 1082 |
| percentile85: 1145 |
| percentile95: 1226 |
| average: 949.9148936170212 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.NumOutputFiles" |
| count: 92 |
| outliers: { |
| command_id: "1c2a12e4-1fdf7bca" |
| value: 2 |
| } |
| outliers: { |
| command_id: "1c2a12e4-a85b51f3" |
| value: 2 |
| } |
| median: 2 |
| percentile75: 2 |
| percentile85: 2 |
| percentile95: 2 |
| average: 1.9574468085106382 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.RealBytesDownloaded" |
| count: 35608332 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 2633657 |
| } |
| outliers: { |
| command_id: "1c2a12e4-eb41eb70" |
| value: 2395373 |
| } |
| median: 657753 |
| percentile75: 1051777 |
| percentile85: 1264361 |
| percentile95: 1786261 |
| average: 757624.085106383 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.RealBytesUploaded" |
| count: 327048 |
| outliers: { |
| command_id: "1c2a12e4-8df6e4b4" |
| value: 33008 |
| } |
| outliers: { |
| command_id: "1c2a12e4-ec7fb7e0" |
| value: 33008 |
| } |
| median: 5432 |
| percentile75: 5749 |
| percentile85: 5864 |
| percentile95: 18399 |
| average: 6958.468085106383 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.Result.Status" |
| counts_by_value: { |
| name: "NON_ZERO_EXIT" |
| count: 2 |
| } |
| counts_by_value: { |
| name: "SUCCESS" |
| count: 45 |
| } |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.TotalInputBytes" |
| count: 8443562883 |
| outliers: { |
| command_id: "1c2a12e4-5fc72963" |
| value: 192203614 |
| } |
| outliers: { |
| command_id: "1c2a12e4-cfde6b4a" |
| value: 190111791 |
| } |
| median: 181259894 |
| percentile75: 182335622 |
| percentile85: 184712342 |
| percentile95: 187618652 |
| average: 1.7965027410638297e+08 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].RemoteMetadata.TotalOutputBytes" |
| count: 35777071 |
| outliers: { |
| command_id: "1c2a12e4-d56ac563" |
| value: 2633657 |
| } |
| outliers: { |
| command_id: "1c2a12e4-eb41eb70" |
| value: 2395373 |
| } |
| median: 657753 |
| percentile75: 1051777 |
| percentile85: 1264361 |
| percentile95: 1786261 |
| average: 761214.2765957447 |
| } |
| stats: { |
| name: "[compiler=clang,lang=cpp,type=compile].Result.Status" |
| counts_by_value: { |
| name: "NON_ZERO_EXIT" |
| count: 2 |
| } |
| counts_by_value: { |
| name: "SUCCESS" |
| count: 45 |
| } |
| } |
| tool_version: "0.141.1.29a9d3c" |
| invocation_ids: "user:9cef0a51-1b70-4552-826e-1a13f9308359" |
| machine_info: { |
| num_cpu: 96 |
| ram_mbs: 181310 |
| os_family: "linux" |
| arch: "amd64" |
| } |
| build_latency: 28 |
| """ |
| |
| |
| class PrintBuildSummarySmokeTest(unittest.TestCase): |
| def test_build_summary(self) -> None: |
| # Smoke test that `print_build_summary()` does not error. |
| lines = RBE_METRICS_TXT_DATA.split("\n") |
| build_summary.print_build_summary(lines, "reproxy_logdir") |
| |
| |
| if __name__ == "__main__": |
| unittest.main() |