Jae Hoon Kim | 2f8c62a | 2021-06-22 15:10:43 -0700 | [diff] [blame] | 1 | # Copyright 2021 The Chromium OS Authors. All rights reserved. |
| 2 | # Use of this source code is governed by a BSD-style license that can be |
| 3 | # found in the LICENSE file. |
| 4 | |
| 5 | """Unittests for build_minios.py""" |
| 6 | |
| 7 | import os |
| 8 | import tempfile |
| 9 | from unittest import mock |
| 10 | |
| 11 | from chromite.lib import constants |
| 12 | from chromite.lib import cros_test_lib |
| 13 | from chromite.lib import minios |
| 14 | from chromite.scripts import build_minios |
| 15 | |
| 16 | |
| 17 | class BuildMiniosTest(cros_test_lib.RunCommandTempDirTestCase): |
| 18 | """Unit tests for build_minios.""" |
| 19 | |
| 20 | def setUp(self): |
| 21 | self.create_minios_mock_return = '/some/kernel/path' |
| 22 | self.create_minios_mock = self.PatchObject( |
| 23 | minios, 'CreateMiniOsKernelImage', |
| 24 | return_value=self.create_minios_mock_return) |
| 25 | |
| 26 | self.insert_minios_mock = self.PatchObject( |
| 27 | minios, 'InsertMiniOsKernelImage') |
| 28 | |
| 29 | # Patch to assert against the tempdir that's created under the anchored |
| 30 | # tempdir created by cros_test_lib. |
| 31 | self._tempdir = os.path.join(self.tempdir, 'test-dir') |
| 32 | self.PatchObject(tempfile, 'mkdtemp', return_value=self._tempdir) |
| 33 | |
| 34 | def testDefaultArguments(self): |
| 35 | """Test that default arguments of build_minios are formatted correct.""" |
| 36 | test_board = 'test-board' |
Vyshu | 9215390 | 2021-06-16 13:31:53 -0400 | [diff] [blame] | 37 | test_version = '0.0.0.0' |
Jae Hoon Kim | 2f8c62a | 2021-06-22 15:10:43 -0700 | [diff] [blame] | 38 | test_image = '/some/image/path' |
| 39 | build_minios.main([ |
| 40 | # --board is a required argument. |
| 41 | '--board', test_board, |
Vyshu | 9215390 | 2021-06-16 13:31:53 -0400 | [diff] [blame] | 42 | # --version is a required argument. |
| 43 | '--version', test_version, |
Jae Hoon Kim | 2f8c62a | 2021-06-22 15:10:43 -0700 | [diff] [blame] | 44 | # --image is a required argument. |
| 45 | '--image', test_image, |
| 46 | ]) |
| 47 | |
| 48 | self.assertEqual(self.create_minios_mock.mock_calls, [mock.call( |
| 49 | test_board, |
Vyshu | 9215390 | 2021-06-16 13:31:53 -0400 | [diff] [blame] | 50 | test_version, |
Jae Hoon Kim | 2f8c62a | 2021-06-22 15:10:43 -0700 | [diff] [blame] | 51 | self._tempdir, |
| 52 | constants.VBOOT_DEVKEYS_DIR, |
| 53 | constants.RECOVERY_PUBLIC_KEY, |
Jae Hoon Kim | 4e35db8 | 2021-06-16 13:05:44 -0700 | [diff] [blame] | 54 | constants.MINIOS_DATA_PRIVATE_KEY, |
| 55 | constants.MINIOS_KEYBLOCK, |
Jae Hoon Kim | 2f8c62a | 2021-06-22 15:10:43 -0700 | [diff] [blame] | 56 | None, |
| 57 | )]) |
| 58 | |
| 59 | self.assertEqual(self.insert_minios_mock.mock_calls, [mock.call( |
| 60 | test_image, self.create_minios_mock_return, |
| 61 | )]) |
| 62 | |
| 63 | def testOverridenArguments(self): |
| 64 | """Test that overridden arguments of build_minios are formatted correct.""" |
| 65 | test_board = 'test-board' |
Vyshu | 9215390 | 2021-06-16 13:31:53 -0400 | [diff] [blame] | 66 | test_version = '1.0.0.0' |
Jae Hoon Kim | 2f8c62a | 2021-06-22 15:10:43 -0700 | [diff] [blame] | 67 | test_image = '/some/image/path' |
| 68 | test_keys_dir = '/some/path/test-keys-dir' |
| 69 | test_public_key = 'test-public-key' |
| 70 | test_private_key = 'test-private-key' |
| 71 | test_keyblock = 'test-keyblock' |
| 72 | test_serial = 'test-serial' |
| 73 | build_minios.main([ |
| 74 | # --board is a required argument. |
| 75 | '--board', test_board, |
Vyshu | 9215390 | 2021-06-16 13:31:53 -0400 | [diff] [blame] | 76 | # --version is a required argument. |
| 77 | '--version', test_version, |
Jae Hoon Kim | 2f8c62a | 2021-06-22 15:10:43 -0700 | [diff] [blame] | 78 | # --image is a required argument. |
| 79 | '--image', test_image, |
| 80 | '--keys-dir', test_keys_dir, |
| 81 | '--public-key', test_public_key, |
| 82 | '--private-key', test_private_key, |
| 83 | '--keyblock', test_keyblock, |
| 84 | '--serial', test_serial, |
| 85 | ]) |
| 86 | |
| 87 | self.assertEqual(self.create_minios_mock.mock_calls, [mock.call( |
| 88 | test_board, |
Vyshu | 9215390 | 2021-06-16 13:31:53 -0400 | [diff] [blame] | 89 | test_version, |
Jae Hoon Kim | 2f8c62a | 2021-06-22 15:10:43 -0700 | [diff] [blame] | 90 | self._tempdir, |
| 91 | test_keys_dir, |
| 92 | test_public_key, |
| 93 | test_private_key, |
| 94 | test_keyblock, |
| 95 | test_serial, |
| 96 | )]) |
| 97 | |
| 98 | self.assertEqual(self.insert_minios_mock.mock_calls, [mock.call( |
| 99 | test_image, self.create_minios_mock_return, |
| 100 | )]) |