| #!/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() |