summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Richardson <wfrichar@chromium.org>2014-07-14 15:05:54 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-07-17 06:50:37 +0000
commit3e3790d00827e75d39b77a14bca2756a14a51b3c (patch)
treecbc397cfa9eb60fc7f3e08f3cd29b04962e2c972
parent0f6679e8582219b40e2ab5485992827a92c18bcd (diff)
downloadvboot-3e3790d00827e75d39b77a14bca2756a14a51b3c.tar.gz
Install and use futility when running tests
As we build features into futility, the standalone executables disappear. Tests that invoke those executables will need to invoke futility instead. BUG=chromium:224734 BRANCH=ToT TEST=make runtests Signed-off-by: Bill Richardson <wfrichar@chromium.org> Change-Id: I75230f6901aab8d978fa5d12505c243e1c90c938 Reviewed-on: https://chromium-review.googlesource.com/207926 Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r--Makefile11
-rw-r--r--tests/common.sh2
-rwxr-xr-xtests/gen_fuzz_test_cases.sh8
-rwxr-xr-xtests/gen_test_cases.sh2
-rwxr-xr-xtests/gen_test_keys.sh6
-rwxr-xr-xtests/gen_test_vbpubks.sh2
-rwxr-xr-xtests/run_preamble_tests.sh6
-rwxr-xr-xtests/run_rsa_tests.sh2
-rwxr-xr-xtests/run_vbutil_kernel_arg_tests.sh18
-rwxr-xr-xtests/run_vbutil_tests.sh16
-rwxr-xr-xtests/vb2_firmware_tests.sh16
-rwxr-xr-xtests/vb2_rsa_tests.sh2
12 files changed, 47 insertions, 44 deletions
diff --git a/Makefile b/Makefile
index 2fc37ecf..7bb34dca 100644
--- a/Makefile
+++ b/Makefile
@@ -695,6 +695,10 @@ clean:
.PHONY: install
install: cgpt_install utils_install signing_install futil_install
+.PHONY: install_for_test
+install_for_test: override DESTDIR = ${TEST_INSTALL_DIR}
+install_for_test: install
+
# Don't delete intermediate object files
.SECONDARY:
@@ -1069,7 +1073,7 @@ test_targets:: runtestscripts
endif
.PHONY: test_setup
-test_setup:: cgpt utils futil tests
+test_setup:: cgpt utils futil tests install_for_test
# Qemu setup for cross-compiled tests. Need to copy qemu binary into the
# sysroot.
@@ -1163,9 +1167,8 @@ run2tests: test_setup
${RUNTEST} ${BUILD_RUN}/tests/vb2_sha_tests
.PHONY: runfutiltests
-runfutiltests: override DESTDIR = ${TEST_INSTALL_DIR}
-runfutiltests: test_setup install
- tests/futility/run_test_scripts.sh ${DESTDIR}
+runfutiltests: test_setup
+ tests/futility/run_test_scripts.sh ${TEST_INSTALL_DIR}
${RUNTEST} ${BUILD_RUN}/tests/futility/test_not_really
# Run long tests, including all permutations of encryption keys (instead of
diff --git a/tests/common.sh b/tests/common.sh
index 43cdf6d2..5ae56295 100644
--- a/tests/common.sh
+++ b/tests/common.sh
@@ -9,7 +9,7 @@ SCRIPT_DIR=$(dirname $(readlink -f "$0"))
ROOT_DIR="$(dirname ${SCRIPT_DIR})"
BUILD_DIR="${BUILD}"
-UTIL_DIR="${BUILD_DIR}/utility"
+BIN_DIR="${BUILD_DIR}/install_for_test"
TEST_DIR="${BUILD_DIR}/tests"
TESTKEY_DIR=${SCRIPT_DIR}/testkeys
TESTCASE_DIR=${SCRIPT_DIR}/testcases
diff --git a/tests/gen_fuzz_test_cases.sh b/tests/gen_fuzz_test_cases.sh
index 13d605b2..97c22304 100755
--- a/tests/gen_fuzz_test_cases.sh
+++ b/tests/gen_fuzz_test_cases.sh
@@ -26,19 +26,19 @@ function generate_fuzzing_images {
echo "Generating key blocks..."
# Firmware key block - RSA8192/SHA512 root key, RSA4096/SHA512 firmware
# signing key.
- ${UTIL_DIR}/vbutil_keyblock --pack ${TESTCASE_DIR}/firmware.keyblock \
+ ${BIN_DIR}/vbutil_keyblock --pack ${TESTCASE_DIR}/firmware.keyblock \
--datapubkey ${TESTKEY_DIR}/key_rsa4096.sha512.vbpubk \
--signprivate ${TESTKEY_DIR}/key_rsa8192.sha1.vbprivk
# Kernel key block - RSA4096/SHA512 kernel signing subkey, RSA4096/SHA512
# kernel signing key.
- ${UTIL_DIR}/vbutil_keyblock --pack ${TESTCASE_DIR}/kernel.keyblock \
+ ${BIN_DIR}/vbutil_keyblock --pack ${TESTCASE_DIR}/kernel.keyblock \
--datapubkey ${TESTKEY_DIR}/key_rsa4096.sha512.vbpubk \
--signprivate ${TESTKEY_DIR}/key_rsa4096.sha1.vbprivk \
--flags 15
echo "Generating signed firmware test image..."
- ${UTIL_DIR}/vbutil_firmware \
+ ${BIN_DIR}/vbutil_firmware \
--vblock ${TESTCASE_DIR}/firmware.vblock \
--keyblock ${TESTCASE_DIR}/firmware.keyblock\
--signprivate ${TESTKEY_DIR}/key_rsa4096.sha256.vbprivk \
@@ -49,7 +49,7 @@ function generate_fuzzing_images {
cp ${TESTKEY_DIR}/key_rsa8192.sha512.vbpubk ${TESTCASE_DIR}/root_key.vbpubk
echo "Generating signed kernel test image..."
- ${UTIL_DIR}/vbutil_kernel \
+ ${BIN_DIR}/vbutil_kernel \
--pack ${TESTCASE_DIR}/kernel.vblock.image \
--keyblock ${TESTCASE_DIR}/kernel.keyblock \
--signprivate ${TESTKEY_DIR}/key_rsa4096.sha256.vbprivk \
diff --git a/tests/gen_test_cases.sh b/tests/gen_test_cases.sh
index bad7e334..19b74472 100755
--- a/tests/gen_test_cases.sh
+++ b/tests/gen_test_cases.sh
@@ -23,7 +23,7 @@ function generate_test_signatures {
do
openssl dgst -${hashalgo} -binary ${TEST_FILE} > \
${TEST_FILE}.${hashalgo}.digest
- ${UTIL_DIR}/signature_digest_utility $algorithmcounter \
+ ${BIN_DIR}/signature_digest_utility $algorithmcounter \
${TEST_FILE} | openssl rsautl \
-sign -pkcs -inkey ${TESTKEY_DIR}/key_rsa${keylen}.pem \
> ${TEST_FILE}.rsa${keylen}_${hashalgo}.sig
diff --git a/tests/gen_test_keys.sh b/tests/gen_test_keys.sh
index fff5ec75..5575cd56 100755
--- a/tests/gen_test_keys.sh
+++ b/tests/gen_test_keys.sh
@@ -30,7 +30,7 @@ function generate_keys {
-out ${key_base}.crt
# Generate pre-processed key for use by RSA signature verification code.
- ${UTIL_DIR}/dumpRSAPublicKey -cert ${key_base}.crt \
+ ${BIN_DIR}/dumpRSAPublicKey -cert ${key_base}.crt \
> ${key_base}.keyb
alg_index=0
@@ -38,14 +38,14 @@ function generate_keys {
do
alg=$((${key_index} * 3 + ${alg_index}))
# wrap the public key
- ${UTIL_DIR}/vbutil_key \
+ ${BIN_DIR}/vbutil_key \
--pack "${key_base}.sha${sha_type}.vbpubk" \
--key "${key_base}.keyb" \
--version 1 \
--algorithm ${alg}
# wrap the private key
- ${UTIL_DIR}/vbutil_key \
+ ${BIN_DIR}/vbutil_key \
--pack "${key_base}.sha${sha_type}.vbprivk" \
--key "${key_base}.pem" \
--algorithm ${alg}
diff --git a/tests/gen_test_vbpubks.sh b/tests/gen_test_vbpubks.sh
index 995a48b9..3f8dee17 100755
--- a/tests/gen_test_vbpubks.sh
+++ b/tests/gen_test_vbpubks.sh
@@ -15,7 +15,7 @@ function generate_vpubks {
do
for hashalgo in ${hash_algos[@]}
do
- ${UTIL_DIR}/vbutil_key --pack \
+ ${BIN_DIR}/vbutil_key --pack \
--in ${TESTKEY_DIR}/key_rsa${keylen}.keyb \
--out ${TESTKEY_DIR}/key_rsa${keylen}.${hashalgo}.vbpubk \
--version 1 \
diff --git a/tests/run_preamble_tests.sh b/tests/run_preamble_tests.sh
index 2ca86ad6..80deebb0 100755
--- a/tests/run_preamble_tests.sh
+++ b/tests/run_preamble_tests.sh
@@ -41,7 +41,7 @@ for d in $algs; do
fi
: $(( tests++ ))
echo -n "${what} fw_${d}_${r}.vblock with root_${rr}.vbpubk ... "
- "${UTIL_DIR}/vbutil_firmware" --verify "${V2DIR}/fw_${d}_${r}.vblock" \
+ "${BIN_DIR}/vbutil_firmware" --verify "${V2DIR}/fw_${d}_${r}.vblock" \
--signpubkey "${DATADIR}/root_${rr}.vbpubk" \
--fv "${DATADIR}/FWDATA" >/dev/null 2>&1
if [ "$?" "$cmp" 0 ]; then
@@ -68,7 +68,7 @@ for d in $algs; do
fi
: $(( tests++ ))
echo -n "${what} kern_${d}_${r}.vblock with root_${rr}.vbpubk ... "
- "${UTIL_DIR}/vbutil_kernel" --verify "${V2DIR}/kern_${d}_${r}.vblock" \
+ "${BIN_DIR}/vbutil_kernel" --verify "${V2DIR}/kern_${d}_${r}.vblock" \
--signpubkey "${DATADIR}/root_${rr}.vbpubk" >/dev/null 2>&1
if [ "$?" "$cmp" 0 ]; then
echo -e "${COL_RED}FAILED${COL_STOP}"
@@ -86,7 +86,7 @@ for d in $algs; do
for r in $algs; do
: $(( tests++ ))
echo -n "verify kern_${d}_${r}.vblock with hash only ... "
- "${UTIL_DIR}/vbutil_kernel" \
+ "${BIN_DIR}/vbutil_kernel" \
--verify "${V2DIR}/kern_${d}_${r}.vblock" >/dev/null 2>&1
if [ "$?" -ne 0 ]; then
echo -e "${COL_RED}FAILED${COL_STOP}"
diff --git a/tests/run_rsa_tests.sh b/tests/run_rsa_tests.sh
index ed15cf81..d73f7374 100755
--- a/tests/run_rsa_tests.sh
+++ b/tests/run_rsa_tests.sh
@@ -21,7 +21,7 @@ function test_signatures {
for hashalgo in ${hash_algos[@]}
do
echo -e "For ${COL_YELLOW}RSA-$keylen and $hashalgo${COL_STOP}:"
- ${UTIL_DIR}/verify_data $algorithmcounter \
+ ${BIN_DIR}/verify_data $algorithmcounter \
${TESTKEY_DIR}/key_rsa${keylen}.keyb \
${TEST_FILE}.rsa${keylen}_${hashalgo}.sig \
${TEST_FILE}
diff --git a/tests/run_vbutil_kernel_arg_tests.sh b/tests/run_vbutil_kernel_arg_tests.sh
index 7f59ef91..9558ca57 100755
--- a/tests/run_vbutil_kernel_arg_tests.sh
+++ b/tests/run_vbutil_kernel_arg_tests.sh
@@ -44,7 +44,7 @@ while [ "$k" -lt "${#KERN_VALS[*]}" ]; do
while [ "$b" -lt "${#BOOT_VALS[*]}" ]; do
echo -n "pack kern_${k}_${b}.vblock ... "
: $(( tests++ ))
- "${UTIL_DIR}/vbutil_kernel" --pack "${TMPDIR}/kern_${k}_${b}.vblock" \
+ "${BIN_DIR}/vbutil_kernel" --pack "${TMPDIR}/kern_${k}_${b}.vblock" \
--keyblock "${KEYBLOCK}" \
--signprivate "${SIGNPRIVATE}" \
--version 1 \
@@ -68,7 +68,7 @@ for v in ${TMPDIR}/kern_*.vblock; do
: $(( tests++ ))
vv=$(basename "$v")
echo -n "verify $vv ... "
- "${UTIL_DIR}/vbutil_kernel" --verify "$v" >/dev/null
+ "${BIN_DIR}/vbutil_kernel" --verify "$v" >/dev/null
if [ "$?" -ne 0 ]; then
echo -e "${COL_RED}FAILED${COL_STOP}"
: $(( errs++ ))
@@ -77,7 +77,7 @@ for v in ${TMPDIR}/kern_*.vblock; do
fi
: $(( tests++ ))
echo -n "verify $vv signed ... "
- "${UTIL_DIR}/vbutil_kernel" --verify "$v" \
+ "${BIN_DIR}/vbutil_kernel" --verify "$v" \
--signpubkey "${SIGNPUBLIC}" >/dev/null
if [ "$?" -ne 0 ]; then
echo -e "${COL_RED}FAILED${COL_STOP}"
@@ -99,7 +99,7 @@ USB_SIGNPRIVATE="${DEVKEYS}/recovery_kernel_data_key.vbprivk"
USB_SIGNPUBKEY="${DEVKEYS}/recovery_key.vbpubk"
echo -n "pack USB kernel ... "
: $(( tests++ ))
-"${UTIL_DIR}/vbutil_kernel" \
+"${BIN_DIR}/vbutil_kernel" \
--pack "${USB_KERN}" \
--keyblock "${USB_KEYBLOCK}" \
--signprivate "${USB_SIGNPRIVATE}" \
@@ -118,7 +118,7 @@ fi
# And verify it.
echo -n "verify USB kernel ... "
: $(( tests++ ))
-"${UTIL_DIR}/vbutil_kernel" \
+"${BIN_DIR}/vbutil_kernel" \
--verify "${USB_KERN}" \
--signpubkey "${USB_SIGNPUBKEY}" >/dev/null
if [ "$?" -ne 0 ]; then
@@ -138,7 +138,7 @@ SSD_SIGNPRIVATE="${DEVKEYS}/kernel_data_key.vbprivk"
SSD_SIGNPUBKEY="${DEVKEYS}/kernel_subkey.vbpubk"
echo -n "repack to SSD kernel ... "
: $(( tests++ ))
-"${UTIL_DIR}/vbutil_kernel" \
+"${BIN_DIR}/vbutil_kernel" \
--repack "${SSD_KERN}" \
--vblockonly \
--keyblock "${SSD_KEYBLOCK}" \
@@ -158,7 +158,7 @@ dd if="${USB_KERN}" bs=65536 skip=1 >> $tempfile 2>/dev/null
echo -n "verify SSD kernel ... "
: $(( tests++ ))
-"${UTIL_DIR}/vbutil_kernel" \
+"${BIN_DIR}/vbutil_kernel" \
--verify "$tempfile" \
--signpubkey "${SSD_SIGNPUBKEY}" >/dev/null
if [ "$?" -ne 0 ]; then
@@ -170,7 +170,7 @@ fi
# Finally make sure that the kernel command line stays good.
orig=$(cat "${CONFIG}" | tr '\012' ' ')
-packed=$("${UTIL_DIR}/dump_kernel_config" "${USB_KERN}")
+packed=$("${BIN_DIR}/dump_kernel_config" "${USB_KERN}")
echo -n "check USB kernel config ..."
: $(( tests++ ))
if [ "$orig" != "$packed" ]; then
@@ -180,7 +180,7 @@ else
echo -e "${COL_GREEN}PASSED${COL_STOP}"
fi
-repacked=$("${UTIL_DIR}/dump_kernel_config" "${tempfile}")
+repacked=$("${BIN_DIR}/dump_kernel_config" "${tempfile}")
echo -n "check SSD kernel config ..."
: $(( tests++ ))
if [ "$orig" != "$packed" ]; then
diff --git a/tests/run_vbutil_tests.sh b/tests/run_vbutil_tests.sh
index 2b15d53f..47d8dfc0 100755
--- a/tests/run_vbutil_tests.sh
+++ b/tests/run_vbutil_tests.sh
@@ -18,7 +18,7 @@ function test_vbutil_key_single {
echo -e "For signing key ${COL_YELLOW}RSA-$keylen/$hashalgo${COL_STOP}:"
# Pack the key
- ${UTIL_DIR}/vbutil_key \
+ ${BIN_DIR}/vbutil_key \
--pack ${TESTKEY_SCRATCH_DIR}/key_alg${algonum}.vbpubk \
--key ${TESTKEY_DIR}/key_rsa${keylen}.keyb \
--version 1 \
@@ -30,7 +30,7 @@ function test_vbutil_key_single {
# Unpack the key
# TODO: should verify we get the same key back out?
- ${UTIL_DIR}/vbutil_key \
+ ${BIN_DIR}/vbutil_key \
--unpack ${TESTKEY_SCRATCH_DIR}/key_alg${algonum}.vbpubk
if [ $? -ne 0 ]
then
@@ -75,7 +75,7 @@ ${datahashalgo}${COL_STOP}"
rm -f ${keyblockfile}
# Wrap private key
- ${UTIL_DIR}/vbutil_key \
+ ${BIN_DIR}/vbutil_key \
--pack ${TESTKEY_SCRATCH_DIR}/key_alg${algonum}.vbprivk \
--key ${TESTKEY_DIR}/key_rsa${signing_keylen}.pem \
--algorithm $signing_algonum
@@ -86,7 +86,7 @@ ${datahashalgo}${COL_STOP}"
fi
# Wrap public key
- ${UTIL_DIR}/vbutil_key \
+ ${BIN_DIR}/vbutil_key \
--pack ${TESTKEY_SCRATCH_DIR}/key_alg${algonum}.vbpubk \
--key ${TESTKEY_DIR}/key_rsa${signing_keylen}.keyb \
--algorithm $signing_algonum
@@ -97,7 +97,7 @@ ${datahashalgo}${COL_STOP}"
fi
# Pack
- ${UTIL_DIR}/vbutil_keyblock --pack ${keyblockfile} \
+ ${BIN_DIR}/vbutil_keyblock --pack ${keyblockfile} \
--datapubkey \
${TESTKEY_SCRATCH_DIR}/key_alg${data_algonum}.vbpubk \
--signprivate \
@@ -109,7 +109,7 @@ ${datahashalgo}${COL_STOP}"
fi
# Unpack
- ${UTIL_DIR}/vbutil_keyblock --unpack ${keyblockfile} \
+ ${BIN_DIR}/vbutil_keyblock --unpack ${keyblockfile} \
--datapubkey \
${TESTKEY_SCRATCH_DIR}/key_alg${data_algonum}.vbpubk2 \
--signpubkey \
@@ -134,7 +134,7 @@ ${datahashalgo}${COL_STOP}"
external signer.${COL_STOP}"
# Pack using external signer
# Pack
- ${UTIL_DIR}/vbutil_keyblock --pack ${keyblockfile} \
+ ${BIN_DIR}/vbutil_keyblock --pack ${keyblockfile} \
--datapubkey \
${TESTKEY_SCRATCH_DIR}/key_alg${data_algonum}.vbpubk \
--signprivate_pem \
@@ -149,7 +149,7 @@ external signer.${COL_STOP}"
fi
# Unpack
- ${UTIL_DIR}/vbutil_keyblock --unpack ${keyblockfile} \
+ ${BIN_DIR}/vbutil_keyblock --unpack ${keyblockfile} \
--datapubkey \
${TESTKEY_SCRATCH_DIR}/key_alg${data_algonum}.vbpubk2 \
--signpubkey \
diff --git a/tests/vb2_firmware_tests.sh b/tests/vb2_firmware_tests.sh
index 39c4dd97..a32dc6d8 100755
--- a/tests/vb2_firmware_tests.sh
+++ b/tests/vb2_firmware_tests.sh
@@ -24,24 +24,24 @@ echo 'This is a test firmware body. This is only a test. Lalalalala' \
> body.test
# Pack keys using original vboot utilities
-${UTIL_DIR}/vbutil_key --pack rootkey.test \
+${BIN_DIR}/vbutil_key --pack rootkey.test \
--key ${TESTKEY_DIR}/key_rsa8192.keyb --algorithm 11
-${UTIL_DIR}/vbutil_key --pack fwsubkey.test \
+${BIN_DIR}/vbutil_key --pack fwsubkey.test \
--key ${TESTKEY_DIR}/key_rsa4096.keyb --algorithm 7
-${UTIL_DIR}/vbutil_key --pack kernkey.test \
+${BIN_DIR}/vbutil_key --pack kernkey.test \
--key ${TESTKEY_DIR}/key_rsa2048.keyb --algorithm 4
# Create a GBB with the root key
-${UTIL_DIR}/gbb_utility -c 128,2400,0,0 gbb.test
-${UTIL_DIR}/gbb_utility gbb.test -s --hwid='Test GBB' --rootkey=rootkey.test
+${BIN_DIR}/gbb_utility -c 128,2400,0,0 gbb.test
+${BIN_DIR}/gbb_utility gbb.test -s --hwid='Test GBB' --rootkey=rootkey.test
# Keyblock with firmware subkey is signed by root key
-${UTIL_DIR}/vbutil_keyblock --pack keyblock.test \
+${BIN_DIR}/vbutil_keyblock --pack keyblock.test \
--datapubkey fwsubkey.test \
--signprivate ${TESTKEY_DIR}/key_rsa8192.sha512.vbprivk
# Firmware preamble is signed with the firmware subkey
-${UTIL_DIR}/vbutil_firmware \
+${BIN_DIR}/vbutil_firmware \
--vblock vblock.test \
--keyblock keyblock.test \
--signprivate ${TESTKEY_DIR}/key_rsa4096.sha256.vbprivk \
@@ -52,6 +52,6 @@ ${UTIL_DIR}/vbutil_firmware \
echo 'Verifying test firmware using vb2_verify_fw'
# Verify the firmware using vboot2 utility
-${UTIL_DIR}/vb2_verify_fw gbb.test vblock.test body.test
+${BIN_DIR}/vb2_verify_fw gbb.test vblock.test body.test
happy 'vb2_verify_fw succeeded'
diff --git a/tests/vb2_rsa_tests.sh b/tests/vb2_rsa_tests.sh
index 331b0669..ff570d01 100755
--- a/tests/vb2_rsa_tests.sh
+++ b/tests/vb2_rsa_tests.sh
@@ -21,7 +21,7 @@ function test_signatures {
for hashalgo in ${hash_algos[@]}
do
echo -e "For ${COL_YELLOW}RSA-$keylen and $hashalgo${COL_STOP}:"
- ${UTIL_DIR}/verify_data $algorithmcounter \
+ ${BIN_DIR}/verify_data $algorithmcounter \
${TESTKEY_DIR}/key_rsa${keylen}.keyb \
${TEST_FILE}.rsa${keylen}_${hashalgo}.sig \
${TEST_FILE}