servo/etc/ci/performance/test_submit_to_perfherder.py
zefr0x c96de69e80
Use ruff to enforce python code formatting (#37117)
Requires servo/servo#37045 for deps and config.

Testing: No need for tests to test tests.
Fixes: servo/servo#37041

---------

Signed-off-by: zefr0x <zer0-x.7ty50@aleeas.com>
2025-05-26 11:54:43 +00:00

126 lines
4.3 KiB
Python

#!/usr/bin/env python3
# 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 https://mozilla.org/MPL/2.0/.
import submit_to_perfherder
def test_format_testcase_name():
assert "about:blank" == submit_to_perfherder.format_testcase_name("about:blank")
assert "163.com" == submit_to_perfherder.format_testcase_name(
("http://localhost:8000/page_load_test/163.com/p.mail.163.com/mailinfo/shownewmsg_www_1222.htm.html")
)
assert (
"12345678902234567890323456789042345678905234567890623456789072345678908234567890"
) == submit_to_perfherder.format_testcase_name(
("123456789022345678903234567890423456789052345678906234567890723456789082345678909234567890")
)
assert "news.ycombinator.com" == submit_to_perfherder.format_testcase_name(
"http://localhost:8000/tp6/news.ycombinator.com/index.html"
)
def test_format_perf_data():
mock_result = [
{
"unloadEventStart": None,
"domLoading": 1460444930000,
"fetchStart": None,
"responseStart": None,
"loadEventEnd": None,
"connectStart": None,
"domainLookupStart": None,
"redirectStart": None,
"domContentLoadedEventEnd": 1460444930000,
"requestStart": None,
"secureConnectionStart": None,
"connectEnd": None,
"navigationStart": 1460444930000,
"loadEventStart": None,
"domInteractive": 1460444930000,
"domContentLoadedEventStart": 1460444930000,
"redirectEnd": None,
"domainLookupEnd": None,
"unloadEventEnd": None,
"responseEnd": None,
"testcase": "about:blank",
"domComplete": 1460444931000,
},
{
"unloadEventStart": None,
"domLoading": 1460444934000,
"fetchStart": None,
"responseStart": None,
"loadEventEnd": None,
"connectStart": None,
"domainLookupStart": None,
"redirectStart": None,
"domContentLoadedEventEnd": 1460444946000,
"requestStart": None,
"secureConnectionStart": None,
"connectEnd": None,
"navigationStart": 1460444934000,
"loadEventStart": None,
"domInteractive": 1460444946000,
"domContentLoadedEventStart": 1460444946000,
"redirectEnd": None,
"domainLookupEnd": None,
"unloadEventEnd": None,
"responseEnd": None,
"testcase": (
"http://localhost:8000/page_load_test/163.com/p.mail.163.com/mailinfo/shownewmsg_www_1222.htm.html"
),
"domComplete": 1460444948000,
},
]
expected = {
"performance_data": {
"framework": {"name": "servo-perf"},
"suites": [
{
"name": "domComplete",
"value": 3741.657386773941,
"subtests": [
{"name": "about:blank", "value": 1000},
{"name": "163.com", "value": 14000},
],
}
],
}
}
result = submit_to_perfherder.format_perf_data(mock_result)
assert expected == result
def test_format_bad_perf_data():
mock_result = [
{"navigationStart": 1460444930000, "testcase": "about:blank", "domComplete": 0},
{
"navigationStart": 1460444934000,
"testcase": (
"http://localhost:8000/page_load_test/163.com/p.mail.163.com/mailinfo/shownewmsg_www_1222.htm.html"
),
"domComplete": 1460444948000,
},
]
expected = {
"performance_data": {
"framework": {"name": "servo-perf"},
"suites": [
{
"name": "domComplete",
"value": 14000.0,
"subtests": [
{"name": "about:blank", "value": -1}, # Timeout
{"name": "163.com", "value": 14000},
],
}
],
}
}
result = submit_to_perfherder.format_perf_data(mock_result)
assert expected == result