Files
dts-scripts/scripts/dts-boot.sh
Michał Iwanicki 8e7a660783 dts-scripts: Enhance mocking for purposes of profile comparison
common-mock-func: set dmidecode to return 0 by default

if test variable isn't defined this likely means that this value
doesn't matter for test purposes.

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock-func: cbmem shouldn't exit in failure in normal check

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock-func: cbfstool: allow specifying fmap regions in binary

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

dts-functions: set_flashrom_update_params: don't use $1 directly

It's hard to know exactly what this argument is for otherwise as this
function isn't documented

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

deploy: don't use mktemp so profile arguments are always the same

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

dts-boot: create TEMP_DIR

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: cbfstool: return 1 if not coreboot

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

cbfstool: don't mock when we check update binary config

Except in some cases where we want to possibly test for identical
config between update binary and current firmware.

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

dasharo-deploy: add 2>>ERR_LOG_FILE redirection

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: cbmem: check if coreboot

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

dts-functions: download_keys: use 'mkdir -p' so it doesn't error out

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: add cbmem_common_mock which returns error if not coreboot

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: add msrtool and mei-amt-check common mock

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: ifdtool: call original ifdtool if used with update binary

Fixes situation on QEMU that results in user not being asked whether to
continue flashing without ME even though we want to test with ME enabled

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: flashrom: verify internal chip use

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: add bootsplash presence mocking

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: both flashrom and cbfstool allow writing over existing file

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: bootsplash region might exist without custom bootsplash

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

check_if_me_disabled: Don't use mocked functions with 'grep -q'

Otherwise grep will break pipe immediately after matching searched
string which will result in mocked function being immediately stopped
even before finishing. It also results in e.g. tool wrapper not writing
used command to profile

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: Add separate ME disabled and ME HAP disabled

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: add cbfstool smmstore mocking

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

common-mock: simplify fuse mock

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

dts-functions: check_if_boot_guard_enabled: hide rdmsr output

remove non-existent command, likely pasted by mistake

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>

include: hal: add cbfstool_add_firmware_section_mock

Signed-off-by: Daniil Klimuk <daniil.klimuk@3mdeb.com>

use dont_mock instead of cbfstool_add_firmware_section_mock

Signed-off-by: Daniil Klimuk <daniil.klimuk@3mdeb.com>

common-mock: rename regions to _regions

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>
2025-08-27 14:45:01 +02:00

55 lines
1.6 KiB
Bash

#!/bin/bash
# SPDX-FileCopyrightText: 2024 3mdeb <contact@3mdeb.com>
#
# SPDX-License-Identifier: Apache-2.0
SBIN_DIR="/usr/sbin"
FUM_EFIVAR="/sys/firmware/efi/efivars/FirmwareUpdateMode-d15b327e-ff2d-4fc1-abf6-c12bd08c1359"
export DTS_FUNCS="$SBIN_DIR/dts-functions.sh"
export DTS_ENV="$SBIN_DIR/dts-environment.sh"
export DTS_SUBS="$SBIN_DIR/dts-subscription.sh"
export DTS_HAL="$SBIN_DIR/dts-hal.sh"
export DTS_MOCK_COMMON="$SBIN_DIR/common-mock-func.sh"
export BASH_ENV="$SBIN_DIR/logging"
export TMP_LOG_DIR="/tmp/logs"
export ERR_LOG_FILE_REALPATH
export DTS_LOG_FILE
export DTS_VERBOSE_LOG_FILE
export ERR_LOG_FILE
export SHELLOPTS
mkdir -p "$TMP_LOG_DIR"
# $ERR_LOG_FILE is fd that can only be written to: '>()'. To copy logs
# we need underlying file that can be copied
ERR_LOG_FILE_REALPATH="/var/local/dts-err_$(basename "$(tty)").log"
DTS_LOG_FILE="$TMP_LOG_DIR/dts_$(basename "$(tty)").log"
DTS_VERBOSE_LOG_FILE="$TMP_LOG_DIR/dts-verbose_$(basename "$(tty)").log"
# shellcheck source=./logging
source "$BASH_ENV"
start_trace_logging
start_logging
if [ -z "$ERR_LOG_FILE" ]; then
# pass everything written to $ERR_LOG_FILE to logger function and save it's
# output to $ERR_LOG_FILE_REALPATH file
exec {ERR_LOG_FILE}> >(logger >>"$ERR_LOG_FILE_REALPATH")
ERR_LOG_FILE="/proc/$$/fd/$ERR_LOG_FILE"
fi
# shellcheck source=../include/dts-environment.sh
source $DTS_ENV
# shellcheck source=../include/dts-functions.sh
source $DTS_FUNCS
# shellcheck source=../include/hal/dts-hal.sh
source $DTS_HAL
mkdir -p "$TEMP_DIR"
if [ -f $FUM_EFIVAR ]; then
$SBIN_DIR/dasharo-deploy update fum
else
$SBIN_DIR/dts
fi