diff options
Diffstat (limited to 'llvm_tools/bb_add_test.py')
-rwxr-xr-x | llvm_tools/bb_add_test.py | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/llvm_tools/bb_add_test.py b/llvm_tools/bb_add_test.py new file mode 100755 index 00000000..6f7fe6a7 --- /dev/null +++ b/llvm_tools/bb_add_test.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python3 +# Copyright 2024 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 bb_add.py.""" + +from typing import Iterable +import unittest + +import bb_add +import cros_cls +import llvm_next + + +_ARBITRARY_BOTS = ["chromeos/cq/amd64-generic-cq"] + + +class Test(unittest.TestCase): + """Tests for bb_add.py.""" + + def set_llvm_next_cls(self, cls: Iterable[cros_cls.ChangeListURL]): + old_cls = llvm_next.LLVM_NEXT_TESTING_CLS + llvm_next.LLVM_NEXT_TESTING_CLS = cls + + def restore_cls(): + llvm_next.LLVM_NEXT_TESTING_CLS = old_cls + + self.addCleanup(restore_cls) + + def test_generate_bb_add_raises_if_no_llvm_next_cls(self): + self.set_llvm_next_cls(()) + with self.assertRaisesRegex( + ValueError, "^llvm-next testing requested.*" + ): + bb_add.generate_bb_add_command( + use_llvm_next=True, + disable_werror=False, + extra_cls=(), + bots=_ARBITRARY_BOTS, + ) + + def test_generate_bb_add_adds_llvm_next_cls(self): + self.set_llvm_next_cls((cros_cls.ChangeListURL(123, 1),)) + cmd = bb_add.generate_bb_add_command( + use_llvm_next=True, + disable_werror=False, + extra_cls=(), + bots=_ARBITRARY_BOTS, + ) + self.assertEqual( + cmd, ["bb", "add", "-cl", "crrev.com/c/123/1"] + _ARBITRARY_BOTS + ) + + def test_generate_bb_add_adds_disable_werror_cl(self): + self.set_llvm_next_cls((cros_cls.ChangeListURL(123, 1),)) + cmd = bb_add.generate_bb_add_command( + use_llvm_next=False, + disable_werror=True, + extra_cls=(), + bots=_ARBITRARY_BOTS, + ) + self.assertEqual( + cmd, + [ + "bb", + "add", + "-cl", + llvm_next.DISABLE_WERROR_CL.crrev_url_without_http(), + ] + + _ARBITRARY_BOTS, + ) + + def test_generate_bb_add_adds_extra_cls(self): + self.set_llvm_next_cls((cros_cls.ChangeListURL(123, 1),)) + cmd = bb_add.generate_bb_add_command( + use_llvm_next=False, + disable_werror=False, + extra_cls=( + cros_cls.ChangeListURL(123, 1), + cros_cls.ChangeListURL(126), + ), + bots=_ARBITRARY_BOTS, + ) + self.assertEqual( + cmd, + [ + "bb", + "add", + "-cl", + "crrev.com/c/123/1", + "-cl", + "crrev.com/c/126", + ] + + _ARBITRARY_BOTS, + ) + + +if __name__ == "__main__": + unittest.main() |