mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-24 10:14:55 +00:00
Currently, the unit tests verify a 0 exit code, but don't check the output. Add tests to check the output. BUG=chromium:617247 BRANCH=none TEST=make runtests Change-Id: I842046bb6f788eee05a1f2f511c6fb08df4a5379 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/349670 Reviewed-by: Daisuke Nojiri <dnojiri@google.com>
107 lines
3.0 KiB
Bash
Executable File
107 lines
3.0 KiB
Bash
Executable File
#!/bin/bash -eux
|
|
# Copyright 2015 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.
|
|
|
|
me=${0##*/}
|
|
TMP="$me.tmp"
|
|
|
|
# Work in scratch directory
|
|
cd "$OUTDIR"
|
|
|
|
# Test 'futility show' against expected output
|
|
SHOW_FILES="
|
|
tests/devkeys/root_key.vbpubk
|
|
tests/devkeys/root_key.vbprivk
|
|
tests/devkeys/kernel.keyblock
|
|
tests/futility/data/fw_vblock.bin
|
|
tests/futility/data/fw_gbb.bin
|
|
tests/futility/data/bios_zgb_mp.bin
|
|
tests/futility/data/bios_mario_mp.bin
|
|
tests/futility/data/kern_preamble.bin
|
|
tests/futility/data/sample.vbpubk2
|
|
tests/futility/data/sample.vbprik2
|
|
tests/testkeys/key_rsa2048.pem
|
|
tests/testkeys/key_rsa8192.pub.pem
|
|
"
|
|
|
|
for file in $SHOW_FILES; do
|
|
outfile="show.${file//\//_}"
|
|
gotfile="${OUTDIR}/${outfile}"
|
|
wantfile="${SRCDIR}/tests/futility/expect_output/${outfile}"
|
|
${FUTILITY} show "${SRCDIR}/${file}" | tee "${gotfile}"
|
|
|
|
# Uncomment this to update the expected output
|
|
#cp ${gotfile} ${wantfile}
|
|
|
|
diff ${wantfile} ${gotfile}
|
|
done
|
|
|
|
|
|
# Test 'futility vbutil_key' against expected output
|
|
VBUTIL_KEY_FILES="
|
|
tests/devkeys/root_key.vbpubk
|
|
tests/devkeys/root_key.vbprivk
|
|
"
|
|
|
|
for file in $VBUTIL_KEY_FILES; do
|
|
outfile="vbutil_key.${file//\//_}"
|
|
gotfile="${OUTDIR}/${outfile}"
|
|
wantfile="${SRCDIR}/tests/futility/expect_output/${outfile}"
|
|
${FUTILITY} vbutil_key --unpack "${SRCDIR}/${file}" | tee "${gotfile}"
|
|
|
|
# Uncomment this to update the expected output
|
|
#cp ${gotfile} ${wantfile}
|
|
|
|
diff ${wantfile} ${gotfile}
|
|
done
|
|
|
|
|
|
# Test 'futility vbutil_keyblock' against expected output
|
|
file="tests/devkeys/kernel.keyblock"
|
|
outfile="vbutil_keyblock.${file//\//_}"
|
|
gotfile="${OUTDIR}/${outfile}"
|
|
wantfile="${SRCDIR}/tests/futility/expect_output/${outfile}"
|
|
${FUTILITY} vbutil_keyblock --unpack "${SRCDIR}/${file}" \
|
|
--signpubkey "${SRCDIR}/tests/devkeys/kernel_subkey.vbpubk" \
|
|
| tee "${gotfile}"
|
|
|
|
# Uncomment this to update the expected output
|
|
#cp ${gotfile} ${wantfile}
|
|
|
|
diff ${wantfile} ${gotfile}
|
|
|
|
|
|
# Test 'futility vbutil_firmware' against expected output
|
|
KEYDIR=${SRCDIR}/tests/devkeys
|
|
outfile="vbutil_firmware.verify"
|
|
gotfile="${OUTDIR}/${outfile}"
|
|
wantfile="${SRCDIR}/tests/futility/expect_output/${outfile}"
|
|
|
|
# Create a firmware blob and vblock. Version and flags are just
|
|
# arbitrary non-zero numbers so we can verify they're printed
|
|
# properly.
|
|
dd bs=1024 count=16 if=/dev/urandom of=${TMP}.fw_main
|
|
${FUTILITY} vbutil_firmware --vblock ${TMP}.vblock.old \
|
|
--keyblock ${KEYDIR}/firmware.keyblock \
|
|
--signprivate ${KEYDIR}/firmware_data_key.vbprivk \
|
|
--version 12 \
|
|
--fv ${TMP}.fw_main \
|
|
--kernelkey ${KEYDIR}/kernel_subkey.vbpubk \
|
|
--flags 42
|
|
|
|
# Verify
|
|
${FUTILITY} vbutil_firmware --verify ${TMP}.vblock.old \
|
|
--signpubkey ${KEYDIR}/root_key.vbpubk \
|
|
--fv ${TMP}.fw_main | tee "${gotfile}"
|
|
|
|
# Uncomment this to update the expected output
|
|
#cp ${gotfile} ${wantfile}
|
|
|
|
diff ${wantfile} ${gotfile}
|
|
|
|
|
|
# cleanup
|
|
rm -rf ${TMP}*
|
|
exit 0
|