| #!/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 "${SCRIPT_DIR}/futility/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 "${SCRIPT_DIR}/futility/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 |