tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 14586cbc060a3b4a3a0f6ff5cd92cb51695025fd
parent 6321054b3c3c93af3825da18b33fc6ba646562fa
Author: myeongjun <myeongjun.ko@gmail.com>
Date:   Wed, 19 Nov 2025 13:58:40 +0000

Bug 2000845 - Generate unique perfherder-data filenames in mozperftest to prevent overwrite r=sparky,mozperftest-reviewers

Differential Revision: https://phabricator.services.mozilla.com/D273177

Diffstat:
Mpython/mozperftest/mozperftest/metrics/perfherder.py | 7++++++-
Mpython/mozperftest/mozperftest/tests/test_perfherder.py | 2+-
2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/python/mozperftest/mozperftest/metrics/perfherder.py b/python/mozperftest/mozperftest/metrics/perfherder.py @@ -1,11 +1,13 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. +import hashlib import json import os import pathlib import statistics import sys +import time import jsonschema @@ -155,7 +157,10 @@ class Perfherder(Layer): schema = json.load(f) jsonschema.validate(all_perfherder_data, schema) - file = "perfherder-data.json" + sequence = int(time.monotonic() * 1000) + payload = json.dumps(all_perfherder_data, sort_keys=True).encode("utf-8") + digest = hashlib.sha1(payload).hexdigest()[:8] + file = f"perfherder-data-{sequence}-{digest}.json" if prefix: file = f"{prefix}-{file}" self.info(f"Writing perfherder results to {os.path.join(output, file)}") diff --git a/python/mozperftest/mozperftest/tests/test_perfherder.py b/python/mozperftest/mozperftest/tests/test_perfherder.py @@ -653,7 +653,7 @@ def test_perfherder_metrics_filtering(): with metrics as m, silence(): m(metadata) - assert not pathlib.Path(output, "perfherder-data.json").exists() + assert not any(pathlib.Path(output).glob("perfherder-data*.json")) def test_perfherder_exlude_stats():