You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.9 KiB
65 lines
1.9 KiB
#!/bin/bash -eux
|
|
# Copyright 2014 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"
|
|
|
|
# No args returns nonzero exit code
|
|
${FUTILITY} && false
|
|
|
|
# It's weird but okay if the command is a full path.
|
|
${FUTILITY} /fake/path/to/help > "$TMP"
|
|
grep Usage "$TMP"
|
|
|
|
# Make sure logging does something.
|
|
LOG="/tmp/futility.log"
|
|
[ -f ${LOG} ] && mv ${LOG} ${LOG}.backup
|
|
touch ${LOG}
|
|
${FUTILITY} help
|
|
grep ${FUTILITY} ${LOG}
|
|
rm -f ${LOG}
|
|
[ -f ${LOG}.backup ] && mv ${LOG}.backup ${LOG}
|
|
|
|
# Use some known digests to verify that things work...
|
|
DEVKEYS=${SRCDIR}/tests/devkeys
|
|
SHA=e78ce746a037837155388a1096212ded04fb86eb
|
|
|
|
# all progs in the pipelines should work
|
|
set -o pipefail
|
|
|
|
# If it's invoked as the name of a command we know, it should do that command
|
|
ln -sf ${FUTILITY} vbutil_key
|
|
./vbutil_key --unpack ${DEVKEYS}/installer_kernel_data_key.vbpubk | grep ${SHA}
|
|
ln -sf ${FUTILITY} vbutil_keyblock
|
|
./vbutil_keyblock --unpack ${DEVKEYS}/installer_kernel.keyblock | grep ${SHA}
|
|
cp ${FUTILITY} show
|
|
./show ${SCRIPTDIR}/data/rec_kernel_part.bin | grep ${SHA}
|
|
|
|
# If it's invoked by any other name, expect the command to be the first arg.
|
|
ln -sf ${FUTILITY} muggle
|
|
./muggle vbutil_key --unpack ${DEVKEYS}/installer_kernel_data_key.vbpubk \
|
|
| grep ${SHA}
|
|
ln -sf ${FUTILITY} buggle
|
|
./buggle vbutil_keyblock --unpack ${DEVKEYS}/installer_kernel.keyblock \
|
|
| grep ${SHA}
|
|
cp ${FUTILITY} boo
|
|
./boo show ${SCRIPTDIR}/data/rec_kernel_part.bin | grep ${SHA}
|
|
|
|
|
|
# we expect the first command fail, but the output to match anyway
|
|
set +o pipefail
|
|
|
|
# If it can't figure out the command at all, it should complain.
|
|
${FUTILITY} muggle | grep Usage:
|
|
./buggle futility | grep Usage:
|
|
./boo | grep Usage:
|
|
|
|
# cleanup
|
|
rm -f ${TMP}* vbutil_key vbutil_keyblock show muggle buggle boo
|
|
exit 0
|