| # Copyright 2024 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from __future__ import annotations |
| |
| import unittest |
| |
| from ordered_set import OrderedSet |
| |
| from crossbench.benchmarks.experimental.power.power_benchmark import \ |
| PowerBenchmark |
| from crossbench.benchmarks.jetstream.jetstream_2_0 import JetStream20Benchmark |
| from crossbench.benchmarks.jetstream.jetstream_2_1 import JetStream21Benchmark |
| from crossbench.benchmarks.jetstream.jetstream_2_2 import JetStream22Benchmark |
| from crossbench.benchmarks.jetstream.jetstream_3_0 import JetStream30Benchmark |
| from crossbench.benchmarks.loading.loading_benchmark import PageLoadBenchmark |
| from crossbench.benchmarks.manual.manual_benchmark import ManualBenchmark |
| from crossbench.benchmarks.motionmark.motionmark_1_0 import \ |
| MotionMark10Benchmark |
| from crossbench.benchmarks.motionmark.motionmark_1_1 import \ |
| MotionMark11Benchmark |
| from crossbench.benchmarks.motionmark.motionmark_1_2 import \ |
| MotionMark12Benchmark |
| from crossbench.benchmarks.motionmark.motionmark_1_3 import \ |
| MotionMark13Benchmark |
| from crossbench.benchmarks.speedometer.speedometer_2_0 import \ |
| Speedometer20Benchmark |
| from crossbench.benchmarks.speedometer.speedometer_2_1 import \ |
| Speedometer21Benchmark |
| from crossbench.benchmarks.speedometer.speedometer_3_0 import \ |
| Speedometer30Benchmark |
| from tests import test_helper |
| |
| ALL = ( |
| PowerBenchmark, |
| JetStream20Benchmark, |
| JetStream21Benchmark, |
| JetStream22Benchmark, |
| JetStream30Benchmark, |
| PageLoadBenchmark, |
| ManualBenchmark, |
| MotionMark10Benchmark, |
| MotionMark11Benchmark, |
| MotionMark12Benchmark, |
| MotionMark13Benchmark, |
| Speedometer20Benchmark, |
| Speedometer21Benchmark, |
| Speedometer30Benchmark, |
| ) |
| |
| |
| class AllBenchmarksTestCase(unittest.TestCase): |
| |
| def test_unique_classes(self): |
| self.assertTupleEqual(ALL, tuple(OrderedSet(ALL))) |
| |
| def test_aliases(self): |
| seen_names = OrderedSet() |
| seen_aliases = OrderedSet() |
| for benchmark_cls in ALL: |
| with self.subTest(benchmark_cls=benchmark_cls): |
| self.assertNotIn(benchmark_cls.NAME, seen_names) |
| seen_names.add(benchmark_cls.NAME) |
| for alias in benchmark_cls.aliases(): |
| self.assertNotIn(alias, seen_aliases) |
| seen_aliases.add(alias) |
| |
| def test_story_classes(self): |
| seen_story_classes = OrderedSet() |
| for benchmark_cls in ALL: |
| self.assertNotIn(benchmark_cls.DEFAULT_STORY_CLS, seen_story_classes) |
| seen_story_classes.add(benchmark_cls.DEFAULT_STORY_CLS) |
| |
| |
| if __name__ == "__main__": |
| test_helper.run_pytest(__file__) |