blob: b9e75740e0c8fc9ae0fb15ee9e329986b69e3147 [file] [log] [blame]
# 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__)