mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-26 23:41:50 +00:00
test/py: Drop importing utils as util
Now that we have a shorter name, we don't need this sort of thing. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # test_android
This commit is contained in:
parent
d9ed4b75ad
commit
dd693ecb60
18 changed files with 110 additions and 104 deletions
|
@ -5,7 +5,7 @@
|
|||
|
||||
import os
|
||||
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
def make_fname(ubman, basename):
|
||||
"""Make a temporary filename
|
||||
|
@ -54,7 +54,7 @@ def make_fit(ubman, mkimage, base_its, params, basename='test.fit', base_fdt=Non
|
|||
"""
|
||||
fit = make_fname(ubman, basename)
|
||||
its = make_its(ubman, base_its, params)
|
||||
util.run_and_log(ubman, [mkimage, '-f', its, fit])
|
||||
utils.run_and_log(ubman, [mkimage, '-f', its, fit])
|
||||
if base_fdt:
|
||||
with open(make_fname(ubman, 'u-boot.dts'), 'w') as fd:
|
||||
fd.write(base_fdt)
|
||||
|
@ -89,5 +89,5 @@ def make_dtb(ubman, base_fdt, basename):
|
|||
dtb = make_fname(ubman, f'{basename}.dtb')
|
||||
with open(src, 'w', encoding='utf-8') as outf:
|
||||
outf.write(base_fdt)
|
||||
util.run_and_log(ubman, ['dtc', src, '-O', 'dtb', '-o', dtb])
|
||||
utils.run_and_log(ubman, ['dtc', src, '-O', 'dtb', '-o', dtb])
|
||||
return dtb
|
||||
|
|
|
@ -15,7 +15,6 @@ For configuration verification:
|
|||
"""
|
||||
|
||||
import pytest
|
||||
import utils as util
|
||||
|
||||
# defauld mmc id
|
||||
mmc_dev = 1
|
||||
|
|
|
@ -55,7 +55,7 @@ env__efi_fit_tftp_file = {
|
|||
|
||||
import os.path
|
||||
import pytest
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
# Define the parametrized ITS data to be used for FIT images generation.
|
||||
ITS_DATA = '''
|
||||
|
@ -224,11 +224,11 @@ def test_efi_fit_launch(ubman):
|
|||
"""
|
||||
|
||||
bin_path = make_fpath(fname)
|
||||
util.run_and_log(cons,
|
||||
utils.run_and_log(cons,
|
||||
['cp', make_fpath('lib/efi_loader/helloworld.efi'),
|
||||
bin_path])
|
||||
if comp:
|
||||
util.run_and_log(cons, ['gzip', '-f', bin_path])
|
||||
utils.run_and_log(cons, ['gzip', '-f', bin_path])
|
||||
bin_path += '.gz'
|
||||
return bin_path
|
||||
|
||||
|
@ -257,9 +257,10 @@ def test_efi_fit_launch(ubman):
|
|||
|
||||
# Build the test FDT.
|
||||
dtb = make_fpath('test-efi-fit-%s.dtb' % fdt_type)
|
||||
util.run_and_log(cons, ['dtc', '-I', 'dts', '-O', 'dtb', '-o', dtb, dts])
|
||||
utils.run_and_log(cons,
|
||||
['dtc', '-I', 'dts', '-O', 'dtb', '-o', dtb, dts])
|
||||
if comp:
|
||||
util.run_and_log(cons, ['gzip', '-f', dtb])
|
||||
utils.run_and_log(cons, ['gzip', '-f', dtb])
|
||||
dtb += '.gz'
|
||||
return dtb
|
||||
|
||||
|
@ -290,7 +291,7 @@ def test_efi_fit_launch(ubman):
|
|||
|
||||
# Build the test ITS.
|
||||
fit_path = make_fpath('test-efi-fit-helloworld.fit')
|
||||
util.run_and_log(
|
||||
utils.run_and_log(
|
||||
cons, [make_fpath('tools/mkimage'), '-f', its_path, fit_path])
|
||||
return fit_path
|
||||
|
||||
|
@ -307,7 +308,7 @@ def test_efi_fit_launch(ubman):
|
|||
|
||||
addr = fit.get('addr', None)
|
||||
if not addr:
|
||||
addr = util.find_ram_base(cons)
|
||||
addr = utils.find_ram_base(cons)
|
||||
|
||||
output = cons.run_command(
|
||||
'host load hostfs - %x %s/%s' % (addr, fit['dn'], fit['fn']))
|
||||
|
@ -334,7 +335,7 @@ def test_efi_fit_launch(ubman):
|
|||
|
||||
addr = fit.get('addr', None)
|
||||
if not addr:
|
||||
addr = util.find_ram_base(cons)
|
||||
addr = utils.find_ram_base(cons)
|
||||
|
||||
file_name = fit['fn']
|
||||
output = cons.run_command('tftpboot %x %s' % (addr, file_name))
|
||||
|
@ -412,7 +413,8 @@ def test_efi_fit_launch(ubman):
|
|||
|
||||
# Copy image to TFTP root directory.
|
||||
if fit['dn'] != cons.config.build_dir:
|
||||
util.run_and_log(cons, ['mv', '-f', fit_path, '%s/' % fit['dn']])
|
||||
utils.run_and_log(cons,
|
||||
['mv', '-f', fit_path, '%s/' % fit['dn']])
|
||||
|
||||
# Load FIT image.
|
||||
addr = load_fit_from_host(fit) if is_sandbox else load_fit_from_tftp(fit)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import pytest
|
||||
import re
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
# This is only a partial test - coverting 64-bit sandbox. It does not test
|
||||
# big-endian images, nor 32-bit images
|
||||
|
@ -13,7 +13,7 @@ def test_event_dump(ubman):
|
|||
"""Test that the "help" command can be executed."""
|
||||
cons = ubman
|
||||
sandbox = cons.config.build_dir + '/u-boot'
|
||||
out = util.run_and_log(cons, ['scripts/event_dump.py', sandbox])
|
||||
out = utils.run_and_log(cons, ['scripts/event_dump.py', sandbox])
|
||||
expect = '''.*Event type Id Source location
|
||||
-------------------- ------------------------------ ------------------------------
|
||||
EVT_FT_FIXUP bootmeth_vbe_ft_fixup .*boot/vbe_request.c:.*
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
import os
|
||||
import pytest
|
||||
import struct
|
||||
import utils as util
|
||||
import utils
|
||||
import fit_util
|
||||
|
||||
# Define a base ITS which we can adjust using % and a dictionary
|
||||
|
@ -165,7 +165,7 @@ def test_fit(ubman):
|
|||
return fname
|
||||
|
||||
def make_compressed(filename):
|
||||
util.run_and_log(cons, ['gzip', '-f', '-k', filename])
|
||||
utils.run_and_log(cons, ['gzip', '-f', '-k', filename])
|
||||
return filename + '.gz'
|
||||
|
||||
def find_matching(text, match):
|
||||
|
|
|
@ -17,7 +17,7 @@ The test does not run the sandbox. It only checks the host tool mkimage.
|
|||
|
||||
import os
|
||||
import pytest
|
||||
import utils as util
|
||||
import utils
|
||||
import binascii
|
||||
from Cryptodome.Hash import SHA1
|
||||
from Cryptodome.Hash import SHA256
|
||||
|
@ -33,15 +33,15 @@ class SignedFitHelper(object):
|
|||
self.confgs_nodes = set()
|
||||
|
||||
def __fdt_list(self, path):
|
||||
return util.run_and_log(self.cons,
|
||||
return utils.run_and_log(self.cons,
|
||||
f'fdtget -l {self.fit} {path}')
|
||||
|
||||
def __fdt_get_string(self, node, prop):
|
||||
return util.run_and_log(self.cons,
|
||||
return utils.run_and_log(self.cons,
|
||||
f'fdtget -ts {self.fit} {node} {prop}')
|
||||
|
||||
def __fdt_get_binary(self, node, prop):
|
||||
numbers = util.run_and_log(self.cons,
|
||||
numbers = utils.run_and_log(self.cons,
|
||||
f'fdtget -tbi {self.fit} {node} {prop}')
|
||||
|
||||
bignum = bytearray()
|
||||
|
@ -166,7 +166,7 @@ def test_fit_auto_signed(ubman):
|
|||
s_args = " -k" + tempdir + " -g" + key_name + " -o" + sign_algo
|
||||
|
||||
# 1 - Create auto FIT with images crc32 checksum, and verify it
|
||||
util.run_and_log(cons, mkimage + ' -fauto' + b_args + " " + fit_file)
|
||||
utils.run_and_log(cons, mkimage + ' -fauto' + b_args + " " + fit_file)
|
||||
|
||||
fit = SignedFitHelper(cons, fit_file)
|
||||
if fit.build_nodes_sets() == 0:
|
||||
|
@ -175,7 +175,7 @@ def test_fit_auto_signed(ubman):
|
|||
fit.check_fit_crc32_images()
|
||||
|
||||
# 2 - Create auto FIT with signed images, and verify it
|
||||
util.run_and_log(cons, mkimage + ' -fauto' + b_args + s_args + " " +
|
||||
utils.run_and_log(cons, mkimage + ' -fauto' + b_args + s_args + " " +
|
||||
fit_file)
|
||||
|
||||
fit = SignedFitHelper(cons, fit_file)
|
||||
|
@ -185,7 +185,7 @@ def test_fit_auto_signed(ubman):
|
|||
fit.check_fit_signed_images(key_name, sign_algo, verifier)
|
||||
|
||||
# 3 - Create auto FIT with signed configs and hashed images, and verify it
|
||||
util.run_and_log(cons, mkimage + ' -fauto-conf' + b_args + s_args + " " +
|
||||
utils.run_and_log(cons, mkimage + ' -fauto-conf' + b_args + s_args + " " +
|
||||
fit_file)
|
||||
|
||||
fit = SignedFitHelper(cons, fit_file)
|
||||
|
|
|
@ -12,7 +12,7 @@ This test doesn't run the sandbox. It only checks the host tool 'mkimage'
|
|||
|
||||
import os
|
||||
import pytest
|
||||
import utils as util
|
||||
import utils
|
||||
from Cryptodome.Hash import SHA256
|
||||
from Cryptodome.PublicKey import ECC
|
||||
from Cryptodome.Signature import DSS
|
||||
|
@ -25,14 +25,16 @@ class SignableFitImage(object):
|
|||
self.signable_nodes = set()
|
||||
|
||||
def __fdt_list(self, path):
|
||||
return util.run_and_log(self.cons, f'fdtget -l {self.fit} {path}')
|
||||
return utils.run_and_log(self.cons, f'fdtget -l {self.fit} {path}')
|
||||
|
||||
def __fdt_set(self, node, **prop_value):
|
||||
for prop, value in prop_value.items():
|
||||
util.run_and_log(self.cons, f'fdtput -ts {self.fit} {node} {prop} {value}')
|
||||
utils.run_and_log(self.cons,
|
||||
f'fdtput -ts {self.fit} {node} {prop} {value}')
|
||||
|
||||
def __fdt_get_binary(self, node, prop):
|
||||
numbers = util.run_and_log(self.cons, f'fdtget -tbi {self.fit} {node} {prop}')
|
||||
numbers = utils.run_and_log(self.cons,
|
||||
f'fdtget -tbi {self.fit} {node} {prop}')
|
||||
|
||||
bignum = bytearray()
|
||||
for little_num in numbers.split():
|
||||
|
@ -53,7 +55,7 @@ class SignableFitImage(object):
|
|||
self.__fdt_set(f'{image}/signature', algo='sha256,ecdsa256')
|
||||
|
||||
def sign(self, mkimage, key_file):
|
||||
util.run_and_log(self.cons, [mkimage, '-F', self.fit, f'-G{key_file}'])
|
||||
utils.run_and_log(self.cons, [mkimage, '-F', self.fit, f'-G{key_file}'])
|
||||
|
||||
def check_signatures(self, key):
|
||||
for image in self.signable_nodes:
|
||||
|
@ -76,11 +78,11 @@ def test_fit_ecdsa(ubman):
|
|||
|
||||
def assemble_fit_image(dest_fit, its, destdir):
|
||||
dtc_args = f'-I dts -O dtb -i {destdir}'
|
||||
util.run_and_log(cons, [mkimage, '-D', dtc_args, '-f', its, dest_fit])
|
||||
utils.run_and_log(cons, [mkimage, '-D', dtc_args, '-f', its, dest_fit])
|
||||
|
||||
def dtc(dts):
|
||||
dtb = dts.replace('.dts', '.dtb')
|
||||
util.run_and_log(cons, f'dtc {datadir}/{dts} -O dtb -o {tempdir}/{dtb}')
|
||||
utils.run_and_log(cons, f'dtc {datadir}/{dts} -O dtb -o {tempdir}/{dtb}')
|
||||
|
||||
cons = ubman
|
||||
mkimage = cons.config.build_dir + '/tools/mkimage'
|
||||
|
|
|
@ -12,7 +12,7 @@ This test doesn't run the sandbox. It only checks the host tool 'mkimage'
|
|||
|
||||
import os
|
||||
import pytest
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
kernel_hashes = {
|
||||
"sha512" : "f18c1486a2c29f56360301576cdfce4dfd8e8e932d0ed8e239a1f314b8ae1d77b2a58cd7fe32e4075e69448e623ce53b0b6aa6ce5626d2c189a5beae29a68d93",
|
||||
|
@ -32,14 +32,15 @@ class ReadonlyFitImage(object):
|
|||
self.hashable_nodes = set()
|
||||
|
||||
def __fdt_list(self, path):
|
||||
return util.run_and_log(self.cons, f'fdtget -l {self.fit} {path}')
|
||||
return utils.run_and_log(self.cons, f'fdtget -l {self.fit} {path}')
|
||||
|
||||
def __fdt_get(self, node, prop):
|
||||
val = util.run_and_log(self.cons, f'fdtget {self.fit} {node} {prop}')
|
||||
val = utils.run_and_log(self.cons, f'fdtget {self.fit} {node} {prop}')
|
||||
return val.rstrip('\n')
|
||||
|
||||
def __fdt_get_sexadecimal(self, node, prop):
|
||||
numbers = util.run_and_log(self.cons, f'fdtget -tbx {self.fit} {node} {prop}')
|
||||
numbers = utils.run_and_log(self.cons,
|
||||
f'fdtget -tbx {self.fit} {node} {prop}')
|
||||
|
||||
sexadecimal = ''
|
||||
for num in numbers.rstrip('\n').split(' '):
|
||||
|
@ -85,11 +86,12 @@ def test_mkimage_hashes(ubman):
|
|||
|
||||
def assemble_fit_image(dest_fit, its, destdir):
|
||||
dtc_args = f'-I dts -O dtb -i {destdir}'
|
||||
util.run_and_log(cons, [mkimage, '-D', dtc_args, '-f', its, dest_fit])
|
||||
utils.run_and_log(cons, [mkimage, '-D', dtc_args, '-f', its, dest_fit])
|
||||
|
||||
def dtc(dts):
|
||||
dtb = dts.replace('.dts', '.dtb')
|
||||
util.run_and_log(cons, f'dtc {datadir}/{dts} -O dtb -o {tempdir}/{dtb}')
|
||||
utils.run_and_log(cons,
|
||||
f'dtc {datadir}/{dts} -O dtb -o {tempdir}/{dtb}')
|
||||
|
||||
cons = ubman
|
||||
mkimage = cons.config.build_dir + '/tools/mkimage'
|
||||
|
|
|
@ -8,7 +8,6 @@ import pytest
|
|||
import re
|
||||
from subprocess import call, check_call, check_output, CalledProcessError
|
||||
from fstest_defs import *
|
||||
import utils as util
|
||||
# pylint: disable=E0611
|
||||
from tests import fs_helper
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import pytest
|
||||
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
# This is needed for Azure, since the default '..' directory is not writeable
|
||||
TMPDIR = '/tmp/test_kconfig'
|
||||
|
@ -16,7 +16,7 @@ def test_kconfig(ubman):
|
|||
cons = ubman
|
||||
|
||||
# This detects build errors in test/lib/kconfig.c
|
||||
out = util.run_and_log(
|
||||
out = utils.run_and_log(
|
||||
cons, ['./tools/buildman/buildman', '-m', '--board', 'sandbox',
|
||||
'-a', 'TEST_KCONFIG', '-o', TMPDIR], ignore_errors=True)
|
||||
assert 'invalid_use_of_IF_ENABLED_INT' in out
|
||||
|
@ -29,7 +29,7 @@ def test_kconfig_spl(ubman):
|
|||
cons = ubman
|
||||
|
||||
# This detects build errors in test/lib/kconfig_spl.c
|
||||
out = util.run_and_log(
|
||||
out = utils.run_and_log(
|
||||
cons, ['./tools/buildman/buildman', '-m', '--board', 'sandbox_spl',
|
||||
'-a', 'TEST_KCONFIG', '-o', TMPDIR], ignore_errors=True)
|
||||
assert 'invalid_use_of_IF_ENABLED_INT' in out
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
import os
|
||||
import pytest
|
||||
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
# This is needed for Azure, since the default '..' directory is not writeable
|
||||
TMPDIR1 = '/tmp/test_no_migrate'
|
||||
|
@ -33,7 +33,7 @@ def build_for_migrate(cons, replace_pair, board, tmpdir, disable_migrate=True):
|
|||
dt_dir = os.path.join(build_dir, 'arch', 'sandbox', 'dts')
|
||||
orig_fname = os.path.join(dt_dir, 'sandbox.dtb')
|
||||
out_dts = os.path.join(dt_dir, 'sandbox_out.dts')
|
||||
util.run_and_log(cons, ['dtc', orig_fname, '-I', 'dtb', '-O', 'dts',
|
||||
utils.run_and_log(cons, ['dtc', orig_fname, '-I', 'dtb', '-O', 'dts',
|
||||
'-o', out_dts])
|
||||
|
||||
# Update it to use an old tag
|
||||
|
@ -45,7 +45,7 @@ def build_for_migrate(cons, replace_pair, board, tmpdir, disable_migrate=True):
|
|||
with open(dts_fname, 'w') as outf:
|
||||
print(data, file=outf)
|
||||
dtb_fname = os.path.join(dt_dir, 'sandbox_oldtag.dtb')
|
||||
util.run_and_log(cons, ['dtc', dts_fname, '-o', dtb_fname])
|
||||
utils.run_and_log(cons, ['dtc', dts_fname, '-o', dtb_fname])
|
||||
|
||||
migrate = ['-a', '~CONFIG_OF_TAG_MIGRATE'] if disable_migrate else []
|
||||
|
||||
|
@ -54,7 +54,7 @@ def build_for_migrate(cons, replace_pair, board, tmpdir, disable_migrate=True):
|
|||
env['EXT_DTB'] = dtb_fname
|
||||
env['DEVICE_TREE'] = 'sandbox_new'
|
||||
env['NO_LTO'] = '1' # Speed up build
|
||||
out = util.run_and_log(
|
||||
out = utils.run_and_log(
|
||||
cons, ['./tools/buildman/buildman', '-m', '--board', board,
|
||||
*migrate, '-w', '-o', tmpdir], ignore_errors=True, env=env)
|
||||
return out
|
||||
|
@ -70,7 +70,7 @@ def test_of_no_migrate(ubman):
|
|||
|
||||
# It should fail to run, since the lcd device will not be bound before
|
||||
# relocation. so won't get its frame-buffer memory
|
||||
out = util.run_and_log(
|
||||
out = utils.run_and_log(
|
||||
cons, [os.path.join(TMPDIR1, 'u-boot'), '-D', '-c', 'help'],
|
||||
ignore_errors=True)
|
||||
assert "Video device 'lcd' cannot allocate frame buffer memory" in out
|
||||
|
@ -102,7 +102,7 @@ def test_of_migrate(ubman):
|
|||
'sandbox', TMPDIR3, disable_migrate=False)
|
||||
|
||||
# It should show a migration message
|
||||
out = util.run_and_log(
|
||||
out = utils.run_and_log(
|
||||
cons, [os.path.join(TMPDIR3, 'u-boot'), '-D', '-c', 'help'],
|
||||
ignore_errors=True)
|
||||
assert "Warning: Device tree includes old 'u-boot,dm-' tags" in out
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (c) 2016 Google, Inc
|
||||
|
||||
import pytest
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
@pytest.mark.boardspec('sandbox_spl')
|
||||
@pytest.mark.buildconfigspec('spl_of_platdata')
|
||||
|
@ -11,7 +11,7 @@ def test_spl_devicetree(ubman):
|
|||
cons = ubman
|
||||
dtb = cons.config.build_dir + '/spl/u-boot-spl.dtb'
|
||||
fdtgrep = cons.config.build_dir + '/tools/fdtgrep'
|
||||
output = util.run_and_log(cons, [fdtgrep, '-l', dtb])
|
||||
output = utils.run_and_log(cons, [fdtgrep, '-l', dtb])
|
||||
|
||||
assert "bootph-all" not in output
|
||||
assert "bootph-some-ram" not in output
|
||||
|
|
|
@ -7,7 +7,7 @@ This tests optee_rpmb cmd in U-Boot
|
|||
"""
|
||||
|
||||
import pytest
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
@pytest.mark.buildconfigspec('cmd_optee_rpmb')
|
||||
def test_optee_rpmb_read_write(ubman):
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import pytest
|
||||
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
# This is needed for Azure, since the default '..' directory is not writeable
|
||||
TMPDIR = '/tmp/test_cmdline'
|
||||
|
@ -15,7 +15,7 @@ def test_sandbox_cmdline(ubman):
|
|||
"""Test building sandbox without CONFIG_CMDLINE"""
|
||||
cons = ubman
|
||||
|
||||
out = util.run_and_log(
|
||||
utils.run_and_log(
|
||||
cons, ['./tools/buildman/buildman', '-m', '--board', 'sandbox',
|
||||
'-a', '~CMDLINE', '-o', TMPDIR])
|
||||
|
||||
|
@ -25,6 +25,6 @@ def test_sandbox_lto(ubman):
|
|||
"""Test building sandbox without CONFIG_LTO"""
|
||||
cons = ubman
|
||||
|
||||
out = util.run_and_log(
|
||||
utils.run_and_log(
|
||||
cons, ['./tools/buildman/buildman', '-m', '--board', 'sandbox',
|
||||
'-a', '~LTO', '-o', TMPDIR])
|
||||
|
|
|
@ -11,7 +11,7 @@ For additional details check doc/usage/scp03.rst
|
|||
"""
|
||||
|
||||
import pytest
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
@pytest.mark.buildconfigspec('cmd_scp03')
|
||||
def test_scp03(ubman):
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
import os
|
||||
import pytest
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
@pytest.mark.boardspec('sandbox')
|
||||
@pytest.mark.buildconfigspec('cmd_echo')
|
||||
|
@ -15,7 +15,7 @@ def test_source(ubman):
|
|||
mkimage = os.path.join(cons.config.build_dir, 'tools/mkimage')
|
||||
its = os.path.join(cons.config.source_dir, 'test/py/tests/source.its')
|
||||
fit = os.path.join(cons.config.build_dir, 'source.itb')
|
||||
util.run_and_log(cons, (mkimage, '-f', its, fit))
|
||||
utils.run_and_log(cons, (mkimage, '-f', its, fit))
|
||||
cons.run_command(f'host load hostfs - $loadaddr {fit}')
|
||||
|
||||
assert '2' in cons.run_command('source')
|
||||
|
|
|
@ -6,7 +6,7 @@ import os
|
|||
import pytest
|
||||
import re
|
||||
|
||||
import utils as util
|
||||
import utils
|
||||
|
||||
# This is needed for Azure, since the default '..' directory is not writeable
|
||||
TMPDIR = '/tmp/test_trace'
|
||||
|
@ -106,12 +106,12 @@ def check_function(cons, fname, proftool, map_fname, trace_dat):
|
|||
map_fname (str): Filename of System.map
|
||||
trace_dat (str): Filename of output file
|
||||
"""
|
||||
out = util.run_and_log(
|
||||
out = utils.run_and_log(
|
||||
cons, [proftool, '-t', fname, '-o', trace_dat, '-m', map_fname,
|
||||
'dump-ftrace'])
|
||||
|
||||
# Check that trace-cmd can read it
|
||||
out = util.run_and_log(cons, ['trace-cmd', 'dump', trace_dat])
|
||||
out = utils.run_and_log(cons, ['trace-cmd', 'dump', trace_dat])
|
||||
|
||||
# Tracing meta data in file /tmp/test_trace/trace.dat:
|
||||
# [Initial format]
|
||||
|
@ -140,7 +140,7 @@ def check_function(cons, fname, proftool, map_fname, trace_dat):
|
|||
|
||||
# Check that the trace has something useful
|
||||
cmd = f"trace-cmd report -l {trace_dat} |grep -E '(initf_|initr_)'"
|
||||
out = util.run_and_log(cons, ['sh', '-c', cmd])
|
||||
out = utils.run_and_log(cons, ['sh', '-c', cmd])
|
||||
|
||||
# Format:
|
||||
# u-boot-1 0..... 60.805596: function: initf_malloc
|
||||
|
@ -182,13 +182,13 @@ def check_funcgraph(cons, fname, proftool, map_fname, trace_dat):
|
|||
"""
|
||||
|
||||
# Generate the funcgraph format
|
||||
out = util.run_and_log(
|
||||
out = utils.run_and_log(
|
||||
cons, [proftool, '-t', fname, '-o', trace_dat, '-m', map_fname,
|
||||
'dump-ftrace', '-f', 'funcgraph'])
|
||||
|
||||
# Check that the trace has what we expect
|
||||
cmd = f'trace-cmd report -l {trace_dat} |head -n 70'
|
||||
out = util.run_and_log(cons, ['sh', '-c', cmd])
|
||||
out = utils.run_and_log(cons, ['sh', '-c', cmd])
|
||||
|
||||
# First look for this:
|
||||
# u-boot-1 0..... 282.101360: funcgraph_entry: 0.004 us | initf_malloc();
|
||||
|
@ -230,7 +230,7 @@ def check_funcgraph(cons, fname, proftool, map_fname, trace_dat):
|
|||
# Now look for initf_dm() and dm_timer_init() so we can check the bootstage
|
||||
# time
|
||||
cmd = f"trace-cmd report -l {trace_dat} |grep -E '(initf_dm|dm_timer_init)'"
|
||||
out = util.run_and_log(cons, ['sh', '-c', cmd])
|
||||
out = utils.run_and_log(cons, ['sh', '-c', cmd])
|
||||
|
||||
start_timestamp = None
|
||||
end_timestamp = None
|
||||
|
@ -267,7 +267,7 @@ def check_flamegraph(cons, fname, proftool, map_fname, trace_fg):
|
|||
"""
|
||||
|
||||
# Generate the flamegraph format
|
||||
out = util.run_and_log(
|
||||
out = utils.run_and_log(
|
||||
cons, [proftool, '-t', fname, '-o', trace_fg, '-m', map_fname,
|
||||
'dump-flamegraph'])
|
||||
|
||||
|
@ -284,7 +284,7 @@ def check_flamegraph(cons, fname, proftool, map_fname, trace_fg):
|
|||
assert found == 2
|
||||
|
||||
# Generate the timing graph
|
||||
out = util.run_and_log(
|
||||
utils.run_and_log(
|
||||
cons, [proftool, '-t', fname, '-o', trace_fg, '-m', map_fname,
|
||||
'dump-flamegraph', '-f', 'timing'])
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ import os
|
|||
import shutil
|
||||
import struct
|
||||
import pytest
|
||||
import utils as util
|
||||
import utils
|
||||
import vboot_forge
|
||||
import vboot_evil
|
||||
|
||||
|
@ -62,7 +62,7 @@ def dtc(dts, cons, dtc_args, datadir, tmpdir, dtb):
|
|||
dtb: Resulting DTB file.
|
||||
"""
|
||||
dtb = dts.replace('.dts', '.dtb')
|
||||
util.run_and_log(cons, 'dtc %s %s%s -O dtb '
|
||||
utils.run_and_log(cons, 'dtc %s %s%s -O dtb '
|
||||
'-o %s%s' % (dtc_args, datadir, dts, tmpdir, dtb))
|
||||
|
||||
def make_fit(its, cons, mkimage, dtc_args, datadir, fit):
|
||||
|
@ -78,7 +78,7 @@ def make_fit(its, cons, mkimage, dtc_args, datadir, fit):
|
|||
datadir: Path to data directory.
|
||||
fit: Resulting FIT file.
|
||||
"""
|
||||
util.run_and_log(cons, [mkimage, '-D', dtc_args, '-f',
|
||||
utils.run_and_log(cons, [mkimage, '-D', dtc_args, '-f',
|
||||
'%s%s' % (datadir, its), fit])
|
||||
|
||||
# Only run the full suite on a few combinations, since it doesn't add any more
|
||||
|
@ -134,8 +134,8 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
options: Options provided to the compiler.
|
||||
"""
|
||||
dtb = dts.replace('.dts', '.dtb')
|
||||
util.run_and_log(cons, 'dtc %s %s%s -O dtb '
|
||||
'-o %s%s %s' % (dtc_args, datadir, dts, tmpdir, dtb, options))
|
||||
utils.run_and_log(cons, 'dtc %s %s%s -O dtb -o %s%s %s' %
|
||||
(dtc_args, datadir, dts, tmpdir, dtb, options))
|
||||
|
||||
def run_binman(dtb):
|
||||
"""Run binman to build an image
|
||||
|
@ -145,7 +145,7 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
"""
|
||||
pythonpath = os.environ.get('PYTHONPATH', '')
|
||||
os.environ['PYTHONPATH'] = pythonpath + ':' + '%s/../scripts/dtc/pylibfdt' % tmpdir
|
||||
util.run_and_log(cons, [binman, 'build', '-d', "%s/%s" % (tmpdir,dtb),
|
||||
utils.run_and_log(cons, [binman, 'build', '-d', "%s/%s" % (tmpdir,dtb),
|
||||
'-a', "pre-load-key-path=%s" % tmpdir, '-O',
|
||||
tmpdir, '-I', tmpdir])
|
||||
os.environ['PYTHONPATH'] = pythonpath
|
||||
|
@ -195,7 +195,7 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
if options:
|
||||
args += options.split(' ')
|
||||
cons.log.action('%s: Sign images' % sha_algo)
|
||||
util.run_and_log(cons, args)
|
||||
utils.run_and_log(cons, args)
|
||||
|
||||
def sign_fit_dtb(sha_algo, options, dtb):
|
||||
"""Sign the FIT
|
||||
|
@ -212,7 +212,7 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
if options:
|
||||
args += options.split(' ')
|
||||
cons.log.action('%s: Sign images' % sha_algo)
|
||||
util.run_and_log(cons, args)
|
||||
utils.run_and_log(cons, args)
|
||||
|
||||
def sign_fit_norequire(sha_algo, options):
|
||||
"""Sign the FIT
|
||||
|
@ -229,7 +229,7 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
if options:
|
||||
args += options.split(' ')
|
||||
cons.log.action('%s: Sign images' % sha_algo)
|
||||
util.run_and_log(cons, args)
|
||||
utils.run_and_log(cons, args)
|
||||
|
||||
def replace_fit_totalsize(size):
|
||||
"""Replace FIT header's totalsize with something greater.
|
||||
|
@ -278,13 +278,13 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
else:
|
||||
rsa_keygen_bits = 2048
|
||||
|
||||
util.run_and_log(cons, 'openssl genpkey -algorithm RSA -out %s%s.key '
|
||||
utils.run_and_log(cons, 'openssl genpkey -algorithm RSA -out %s%s.key '
|
||||
'-pkeyopt rsa_keygen_bits:%d '
|
||||
'-pkeyopt rsa_keygen_pubexp:%d' %
|
||||
(tmpdir, name, rsa_keygen_bits, public_exponent))
|
||||
|
||||
# Create a certificate containing the public key
|
||||
util.run_and_log(cons, 'openssl req -batch -new -x509 -key %s%s.key '
|
||||
utils.run_and_log(cons, 'openssl req -batch -new -x509 -key %s%s.key '
|
||||
'-out %s%s.crt' % (tmpdir, name, tmpdir, name))
|
||||
|
||||
def test_with_algo(sha_algo, padding, sign_options):
|
||||
|
@ -328,7 +328,7 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
|
||||
cons.log.action('%s: Check signed config on the host' % sha_algo)
|
||||
|
||||
util.run_and_log(cons, [fit_check_sign, '-f', fit, '-k', dtb])
|
||||
utils.run_and_log(cons, [fit_check_sign, '-f', fit, '-k', dtb])
|
||||
|
||||
if full_test:
|
||||
# Make sure that U-Boot checks that the config is in the list of
|
||||
|
@ -340,7 +340,7 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
root, strblock = vboot_forge.manipulate(root, strblock)
|
||||
with open(ffit, 'w+b') as fd:
|
||||
vboot_forge.write_fdt(root, strblock, fd)
|
||||
util.run_and_log_expect_exception(
|
||||
utils.run_and_log_expect_exception(
|
||||
cons, [fit_check_sign, '-f', ffit, '-k', dtb],
|
||||
1, 'Failed to verify required signature')
|
||||
|
||||
|
@ -351,7 +351,7 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
shutil.copyfile(fit, efit)
|
||||
vboot_evil.add_evil_node(fit, efit, evil_kernel, 'fakeroot')
|
||||
|
||||
util.run_and_log_expect_exception(
|
||||
utils.run_and_log_expect_exception(
|
||||
cons, [fit_check_sign, '-f', efit, '-k', dtb],
|
||||
1, 'Failed to verify required signature')
|
||||
run_bootm(sha_algo, 'evil fakeroot', 'Bad FIT kernel image format',
|
||||
|
@ -363,7 +363,7 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
vboot_evil.add_evil_node(fit, efit, evil_kernel, 'kernel@')
|
||||
|
||||
msg = 'Signature checking prevents use of unit addresses (@) in nodes'
|
||||
util.run_and_log_expect_exception(
|
||||
utils.run_and_log_expect_exception(
|
||||
cons, [fit_check_sign, '-f', efit, '-k', dtb],
|
||||
1, msg)
|
||||
run_bootm(sha_algo, 'evil kernel@', msg, False, efit)
|
||||
|
@ -384,20 +384,20 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
cons.log.action('%s: Check default FIT header totalsize' % sha_algo)
|
||||
|
||||
# Increment the first byte of the signature, which should cause failure
|
||||
sig = util.run_and_log(cons, 'fdtget -t bx %s %s value' %
|
||||
sig = utils.run_and_log(cons, 'fdtget -t bx %s %s value' %
|
||||
(fit, sig_node))
|
||||
byte_list = sig.split()
|
||||
byte = int(byte_list[0], 16)
|
||||
byte_list[0] = '%x' % (byte + 1)
|
||||
sig = ' '.join(byte_list)
|
||||
util.run_and_log(cons, 'fdtput -t bx %s %s value %s' %
|
||||
utils.run_and_log(cons, 'fdtput -t bx %s %s value %s' %
|
||||
(fit, sig_node, sig))
|
||||
|
||||
run_bootm(sha_algo, 'Signed config with bad hash', 'Bad Data Hash',
|
||||
False)
|
||||
|
||||
cons.log.action('%s: Check bad config on the host' % sha_algo)
|
||||
util.run_and_log_expect_exception(
|
||||
utils.run_and_log_expect_exception(
|
||||
cons, [fit_check_sign, '-f', fit, '-k', dtb],
|
||||
1, 'Failed to verify required signature')
|
||||
|
||||
|
@ -449,8 +449,8 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
# a dev signature only (sign_fit() overwrites the FIT).
|
||||
# Try to boot the FIT with dev key. This FIT should be accepted by
|
||||
# U-Boot because the dev key is required and policy is "any" required key.
|
||||
util.run_and_log(cons, 'fdtput -t s %s /signature required-mode any' %
|
||||
(dtb))
|
||||
utils.run_and_log(cons, 'fdtput -t s %s /signature required-mode any' %
|
||||
dtb)
|
||||
run_bootm(sha_algo, 'multi required key', 'dev+', True)
|
||||
|
||||
# Set the required-mode policy to "all".
|
||||
|
@ -459,8 +459,8 @@ def test_vboot(ubman, name, sha_algo, padding, sign_options, required,
|
|||
# a dev signature only (sign_fit() overwrites the FIT).
|
||||
# Try to boot the FIT with dev key. This FIT should not be accepted by
|
||||
# U-Boot because the prod key is required and policy is "all" required key
|
||||
util.run_and_log(cons, 'fdtput -t s %s /signature required-mode all' %
|
||||
(dtb))
|
||||
utils.run_and_log(cons, 'fdtput -t s %s /signature required-mode all' %
|
||||
dtb)
|
||||
run_bootm(sha_algo, 'multi required key', '', False)
|
||||
|
||||
def test_global_sign(sha_algo, padding, sign_options):
|
||||
|
@ -594,7 +594,7 @@ def test_fdt_add_pubkey(ubman, name, sha_algo, padding, sign_options, algo_arg):
|
|||
if options:
|
||||
args += options.split(' ')
|
||||
cons.log.action('%s: Sign images' % sha_algo)
|
||||
util.run_and_log(cons, args)
|
||||
utils.run_and_log(cons, args)
|
||||
|
||||
def test_add_pubkey(sha_algo, padding, sign_options):
|
||||
"""Test fdt_add_pubkey utility with given hash algorithm and padding.
|
||||
|
@ -613,7 +613,9 @@ def test_fdt_add_pubkey(ubman, name, sha_algo, padding, sign_options, algo_arg):
|
|||
|
||||
cons.log.action('%s: Test fdt_add_pubkey with signed configuration' % sha_algo)
|
||||
# Then add the dev key via the fdt_add_pubkey tool
|
||||
util.run_and_log(cons, [fdt_add_pubkey, '-a', '%s,%s' % ('sha256' if algo_arg else sha_algo, \
|
||||
utils.run_and_log(cons,
|
||||
[fdt_add_pubkey, '-a', '%s,%s' %
|
||||
('sha256' if algo_arg else sha_algo,
|
||||
'rsa3072' if sha_algo == 'sha384' else 'rsa2048'),
|
||||
'-k', tmpdir, '-n', 'dev', '-r', 'conf', dtb])
|
||||
|
||||
|
@ -623,7 +625,7 @@ def test_fdt_add_pubkey(ubman, name, sha_algo, padding, sign_options, algo_arg):
|
|||
sign_fit(sha_algo, sign_options)
|
||||
|
||||
# Check with fit_check_sign that FIT is signed with key
|
||||
util.run_and_log(cons, [fit_check_sign, '-f', fit, '-k', dtb])
|
||||
utils.run_and_log(cons, [fit_check_sign, '-f', fit, '-k', dtb])
|
||||
|
||||
cons = ubman
|
||||
tmpdir = os.path.join(cons.config.result_dir, name) + '/'
|
||||
|
|
Loading…
Add table
Reference in a new issue