blob: 9f08101ff2bd7ced65e2b4c6949bd819cb72a132 [file] [log] [blame]
# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Unittests for build_minios.py"""
import os
import tempfile
from unittest import mock
from chromite.lib import constants
from chromite.lib import cros_test_lib
from chromite.lib import minios
from chromite.scripts import build_minios
class BuildMiniosTest(cros_test_lib.RunCommandTempDirTestCase):
"""Unit tests for build_minios."""
def setUp(self):
self.create_minios_mock_return = '/some/kernel/path'
self.create_minios_mock = self.PatchObject(
minios, 'CreateMiniOsKernelImage',
return_value=self.create_minios_mock_return)
self.insert_minios_mock = self.PatchObject(
minios, 'InsertMiniOsKernelImage')
# Patch to assert against the tempdir that's created under the anchored
# tempdir created by cros_test_lib.
self._tempdir = os.path.join(self.tempdir, 'test-dir')
self.PatchObject(tempfile, 'mkdtemp', return_value=self._tempdir)
def testDefaultArguments(self):
"""Test that default arguments of build_minios are formatted correct."""
test_board = 'test-board'
test_version = '0.0.0.0'
test_image = '/some/image/path'
build_minios.main([
# --board is a required argument.
'--board', test_board,
# --version is a required argument.
'--version', test_version,
# --image is a required argument.
'--image', test_image,
])
self.assertEqual(self.create_minios_mock.mock_calls, [mock.call(
test_board,
test_version,
self._tempdir,
constants.VBOOT_DEVKEYS_DIR,
constants.RECOVERY_PUBLIC_KEY,
constants.MINIOS_DATA_PRIVATE_KEY,
constants.MINIOS_KEYBLOCK,
None,
True,
False,
)])
self.assertEqual(self.insert_minios_mock.mock_calls, [mock.call(
test_image, self.create_minios_mock_return,
)])
def testOverridenArguments(self):
"""Test that overridden arguments of build_minios are formatted correct."""
test_board = 'test-board'
test_version = '1.0.0.0'
test_image = '/some/image/path'
test_keys_dir = '/some/path/test-keys-dir'
test_public_key = 'test-public-key'
test_private_key = 'test-private-key'
test_keyblock = 'test-keyblock'
test_serial = 'test-serial'
build_minios.main([
# --board is a required argument.
'--board', test_board,
# --version is a required argument.
'--version', test_version,
# --image is a required argument.
'--image', test_image,
'--keys-dir', test_keys_dir,
'--public-key', test_public_key,
'--private-key', test_private_key,
'--keyblock', test_keyblock,
'--serial', test_serial,
'--force-build',
])
self.assertEqual(self.create_minios_mock.mock_calls, [mock.call(
test_board,
test_version,
self._tempdir,
test_keys_dir,
test_public_key,
test_private_key,
test_keyblock,
test_serial,
True,
False,
)])
self.assertEqual(self.insert_minios_mock.mock_calls, [mock.call(
test_image, self.create_minios_mock_return,
)])
def testModForDev(self):
"""Test that default arguments of build_minios are formatted correct."""
test_board = 'test-board'
test_version = '0.0.0.0'
test_image = '/some/image/path'
build_minios.main([
# --board is a required argument.
'--board', test_board,
# --version is a required argument.
'--version', test_version,
# --image is a required argument.
'--image', test_image,
'--mod-for-dev',
])
self.assertEqual(self.create_minios_mock.mock_calls, [mock.call(
test_board,
test_version,
self._tempdir,
constants.VBOOT_DEVKEYS_DIR,
constants.RECOVERY_PUBLIC_KEY,
constants.MINIOS_DATA_PRIVATE_KEY,
constants.MINIOS_KEYBLOCK,
None,
False,
True,
)])
self.assertEqual(self.insert_minios_mock.mock_calls, [mock.call(
test_image, self.create_minios_mock_return,
)])
def testModForDevWithForceBuild(self):
"""Test that default arguments of build_minios are formatted correct."""
test_board = 'test-board'
test_version = '0.0.0.0'
test_image = '/some/image/path'
build_minios.main([
# --board is a required argument.
'--board', test_board,
# --version is a required argument.
'--version', test_version,
# --image is a required argument.
'--image', test_image,
'--mod-for-dev',
'--force-build',
])
self.assertEqual(self.create_minios_mock.mock_calls, [mock.call(
test_board,
test_version,
self._tempdir,
constants.VBOOT_DEVKEYS_DIR,
constants.RECOVERY_PUBLIC_KEY,
constants.MINIOS_DATA_PRIVATE_KEY,
constants.MINIOS_KEYBLOCK,
None,
True,
True,
)])
self.assertEqual(self.insert_minios_mock.mock_calls, [mock.call(
test_image, self.create_minios_mock_return,
)])