blob: 993094c051bbdd88d0d7bc2b813f4c3a2e72da0e [file] [edit]
#!/usr/bin/env python3
# Copyright 2023 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Tests for ensure_pgo_is_a_win."""
from typing import Tuple
import unittest
import benchmark_pgo_profiles
import ensure_pgo_is_a_win
def synthesize_run_data(
no_profile_user_time: float, profile_user_time: float
) -> Tuple[benchmark_pgo_profiles.RunData, benchmark_pgo_profiles.RunData]:
return (
benchmark_pgo_profiles.RunData(
tag=str(ensure_pgo_is_a_win.NO_PROFILE),
user_time=no_profile_user_time,
system_time=1,
),
benchmark_pgo_profiles.RunData(
tag=str(ensure_pgo_is_a_win.DEFAULT_PROFILE),
user_time=profile_user_time,
system_time=1,
),
)
class Test(unittest.TestCase):
"""Tests for ensure_pgo_is_a_win."""
def test_speedup_calculation_works(self):
no_profile, profile = synthesize_run_data(
no_profile_user_time=1, profile_user_time=1
)
self.assertEqual(
ensure_pgo_is_a_win.calculate_pgo_speedup(no_profile, profile), 1
)
no_profile, profile = synthesize_run_data(
no_profile_user_time=3, profile_user_time=2
)
self.assertEqual(
ensure_pgo_is_a_win.calculate_pgo_speedup(no_profile, profile), 1.5
)
if __name__ == "__main__":
unittest.main()