blob: 2a93953803b6b9cce7e1197258e41cbfe1c0355f [file] [log] [blame]
# Copyright 2018 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Signing tests."""
import os
from chromite.lib import cros_test_lib
from chromite.lib import osutils
from chromite.lib import signing
class GetDefaultVbootStableHashTest(cros_test_lib.TempDirTestCase):
"""GetDefaultVbootStableHash tests."""
def setUp(self) -> None:
D = cros_test_lib.Directory
filesystem = (D("configs", ("cros_common.config",)),)
cros_test_lib.CreateOnDiskHierarchy(self.tempdir, filesystem)
self.config_file = os.path.join(
self.tempdir, "configs/cros_common.config"
)
self.hash = "abc123"
content = "[signer]\nvboot_stable_hash = %s" % self.hash
osutils.WriteFile(self.config_file, content)
def testValidConfigRead(self) -> None:
"""Test successful read from valid file."""
result = signing.GetDefaultVbootStableHash(config_file=self.config_file)
self.assertEqual(self.hash, result)
def testInvalidConfigRead(self) -> None:
"""Test reading non-existent file and no option."""
# No file.
self.assertIsNone(
signing.GetDefaultVbootStableHash(
config_file=os.path.join(self.tempdir, "DOES_NOT_EXIST")
)
)
# Section exists but not the option.
osutils.WriteFile(self.config_file, "[signer]")
hash1 = signing.GetDefaultVbootStableHash(config_file=self.config_file)
self.assertIsNone(hash1)
# No section or option.
osutils.WriteFile(self.config_file, "")
hash2 = signing.GetDefaultVbootStableHash(config_file=self.config_file)
self.assertIsNone(hash2)