cbuildbot: add HWTest DUT dims override flag
BUG=b:188802911
TEST=unit tests
Change-Id: Ia1ce51c4c6ebd1c958dee5973c331d1344c0a4c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2992014
Reviewed-by: LaMont Jones <lamontjones@chromium.org>
Reviewed-by: Dhanya Ganesh <dhanyaganesh@chromium.org>
Commit-Queue: Jared Loucks <jaredloucks@google.com>
Tested-by: Jared Loucks <jaredloucks@google.com>
diff --git a/scripts/cbuildbot_unittest.py b/scripts/cbuildbot_unittest.py
index 2ecfb83..16a4b4f 100644
--- a/scripts/cbuildbot_unittest.py
+++ b/scripts/cbuildbot_unittest.py
@@ -5,6 +5,7 @@
"""Unit tests for the cbuildbot program"""
from chromite.lib import constants
+from chromite.lib import cros_build_lib
from chromite.lib import cros_test_lib
from chromite.scripts import cbuildbot
@@ -60,3 +61,25 @@
expected = ['pkgA', 'pkgB']
self.assertEqual(expected, options.cbb_build_packages)
self.assertEqual('hash1234', options.cbb_snapshot_revision)
+
+
+class ParseHWTestDUTDimsTest(cros_test_lib.TestCase):
+ """Test for ParseHWTestDUTDims function."""
+
+ def testParseInvalidDims(self):
+ invalid_dims = ['label-board:foo', 'label-model:bar', 'label-pol:baz',
+ 'extra:haha']
+ with self.assertRaises(cros_build_lib.DieSystemExit):
+ cbuildbot.ParseHWTestDUTDims(invalid_dims)
+
+ def testParseValidDims(self):
+ dimsObject = cbuildbot.ParseHWTestDUTDims([
+ 'label-board:foo', 'label-model:bar', 'label-pool:baz', 'a:b', 'c:d'])
+ self.assertEqual(dimsObject.board, 'foo')
+ self.assertEqual(dimsObject.model, 'bar')
+ self.assertEqual(dimsObject.pool, 'baz')
+ self.assertEqual(dimsObject.extra_dims, ['a:b', 'c:d'])
+
+ def testParseNoDims(self):
+ self.assertIsNone(cbuildbot.ParseHWTestDUTDims([]))
+ self.assertIsNone(cbuildbot.ParseHWTestDUTDims(None))