blob: 04b6d4fc00cee4c9ea9785b1ed3393f7d83f3bbd [file] [log] [blame]
#!/usr/bin/env python3
# Copyright 2023 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
import unittest
import configure_ci
SORTED_DEFAULT_BENCHMARK_PRESETS_STR = ",".join(
sorted(configure_ci.DEFAULT_BENCHMARK_PRESET_GROUP))
class GetBenchmarkPresetsTest(unittest.TestCase):
def test_get_benchmark_presets_no_preset(self):
presets_str = configure_ci.get_benchmark_presets(
trailers={},
labels=["unrelated-labels"],
is_pr=True,
is_llvm_integrate_pr=False)
self.assertEqual(presets_str, "")
def test_get_benchmark_presets_from_pr_labels(self):
presets_str = configure_ci.get_benchmark_presets(
trailers={},
labels=["benchmarks:x86_64", "benchmarks:cuda"],
is_pr=True,
is_llvm_integrate_pr=False)
self.assertEqual(presets_str, "comp-stats,cuda,x86_64")
def test_get_benchmark_presets_from_trailers_and_labels(self):
presets_str = configure_ci.get_benchmark_presets(
trailers={"benchmark-extra": "android-cpu,cuda-large,x86_64-large"},
labels=["benchmarks:vulkan-nvidia"],
is_pr=True,
is_llvm_integrate_pr=False)
self.assertEqual(
presets_str,
"android-cpu,comp-stats,cuda-large,vulkan-nvidia,x86_64-large")
def test_get_benchmark_presets_from_default_group(self):
presets_str = configure_ci.get_benchmark_presets(
trailers={"benchmark-extra": "default"},
labels=[],
is_pr=True,
is_llvm_integrate_pr=False)
self.assertEqual(presets_str, SORTED_DEFAULT_BENCHMARK_PRESETS_STR)
# Sanity check to ensure no `*-large` preset in the default group.
self.assertNotIn("-large", presets_str)
def test_get_benchmark_presets_for_non_pr(self):
presets_str = configure_ci.get_benchmark_presets(trailers={},
labels=[],
is_pr=False,
is_llvm_integrate_pr=False)
self.assertEqual(presets_str, SORTED_DEFAULT_BENCHMARK_PRESETS_STR)
def test_get_benchmark_presets_for_llvm_integrate_pr(self):
presets_str = configure_ci.get_benchmark_presets(trailers={},
labels=[],
is_pr=True,
is_llvm_integrate_pr=True)
self.assertEqual(presets_str, SORTED_DEFAULT_BENCHMARK_PRESETS_STR)
# Sample PR description:
# ```
# PR Title
#
# PR body...
#
# skip-llvm-integrate-benchmark: some good reasons
# ```
# Result: No benchmark is automatically enabled on the LLVM integrate PR.
def test_get_benchmark_presets_skip_llvm_integrate_benchmark(self):
presets_str = configure_ci.get_benchmark_presets(
trailers={"skip-llvm-integrate-benchmark": "some good reasons"},
labels=[],
is_pr=True,
is_llvm_integrate_pr=True)
self.assertEqual(presets_str, "")
def test_get_benchmark_presets_unknown_preset(self):
self.assertRaises(
ValueError, lambda: configure_ci.get_benchmark_presets(
trailers={"benchmark-extra": "unknown"},
labels=[],
is_pr=True,
is_llvm_integrate_pr=False))
if __name__ == "__main__":
unittest.main()