1*8617a60dSAndroid Build Coastguard Worker#!/bin/bash -eux 2*8617a60dSAndroid Build Coastguard Worker# Copyright 2014 The ChromiumOS Authors 3*8617a60dSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*8617a60dSAndroid Build Coastguard Worker# found in the LICENSE file. 5*8617a60dSAndroid Build Coastguard Worker 6*8617a60dSAndroid Build Coastguard Workerme=${0##*/} 7*8617a60dSAndroid Build Coastguard WorkerTMP="$me.tmp" 8*8617a60dSAndroid Build Coastguard Worker 9*8617a60dSAndroid Build Coastguard Worker# Work in scratch directory 10*8617a60dSAndroid Build Coastguard Workercd "$OUTDIR" 11*8617a60dSAndroid Build Coastguard Worker 12*8617a60dSAndroid Build Coastguard Worker# No args returns nonzero exit code 13*8617a60dSAndroid Build Coastguard Worker"${FUTILITY}" && false 14*8617a60dSAndroid Build Coastguard Worker 15*8617a60dSAndroid Build Coastguard Worker# It's weird but okay if the command is a full path. 16*8617a60dSAndroid Build Coastguard Worker"${FUTILITY}" /fake/path/to/help > "$TMP" 17*8617a60dSAndroid Build Coastguard Workergrep Usage "$TMP" 18*8617a60dSAndroid Build Coastguard Worker 19*8617a60dSAndroid Build Coastguard Worker# Use some known digests to verify that things work... 20*8617a60dSAndroid Build Coastguard WorkerDEVKEYS="${SRCDIR}/tests/devkeys" 21*8617a60dSAndroid Build Coastguard WorkerSHA=e78ce746a037837155388a1096212ded04fb86eb 22*8617a60dSAndroid Build Coastguard Worker 23*8617a60dSAndroid Build Coastguard Worker# all progs in the pipelines should work 24*8617a60dSAndroid Build Coastguard Workerset -o pipefail 25*8617a60dSAndroid Build Coastguard Worker 26*8617a60dSAndroid Build Coastguard Worker# If it's invoked as the name of a command we know, it should do that command 27*8617a60dSAndroid Build Coastguard Workerln -sf "${FUTILITY}" vbutil_key 28*8617a60dSAndroid Build Coastguard Worker./vbutil_key --unpack "${DEVKEYS}/installer_kernel_data_key.vbpubk" | \ 29*8617a60dSAndroid Build Coastguard Worker grep "${SHA}" 30*8617a60dSAndroid Build Coastguard Workerln -sf "${FUTILITY}" vbutil_keyblock 31*8617a60dSAndroid Build Coastguard Worker./vbutil_keyblock --unpack "${DEVKEYS}/installer_kernel.keyblock" | \ 32*8617a60dSAndroid Build Coastguard Worker grep "${SHA}" 33*8617a60dSAndroid Build Coastguard Workercp "${FUTILITY}" show 34*8617a60dSAndroid Build Coastguard Worker./show "${SCRIPT_DIR}/futility/data/rec_kernel_part.bin" | grep "${SHA}" 35*8617a60dSAndroid Build Coastguard Worker 36*8617a60dSAndroid Build Coastguard Worker# If it's invoked by any other name, expect the command to be the first arg. 37*8617a60dSAndroid Build Coastguard Workerln -sf "${FUTILITY}" muggle 38*8617a60dSAndroid Build Coastguard Worker./muggle vbutil_key --unpack "${DEVKEYS}/installer_kernel_data_key.vbpubk" \ 39*8617a60dSAndroid Build Coastguard Worker | grep "${SHA}" 40*8617a60dSAndroid Build Coastguard Workerln -sf "${FUTILITY}" buggle 41*8617a60dSAndroid Build Coastguard Worker./buggle vbutil_keyblock --unpack "${DEVKEYS}/installer_kernel.keyblock" \ 42*8617a60dSAndroid Build Coastguard Worker | grep "${SHA}" 43*8617a60dSAndroid Build Coastguard Workercp "${FUTILITY}" boo 44*8617a60dSAndroid Build Coastguard Worker./boo show "${SCRIPT_DIR}/futility/data/rec_kernel_part.bin" | grep "${SHA}" 45*8617a60dSAndroid Build Coastguard Worker 46*8617a60dSAndroid Build Coastguard Worker 47*8617a60dSAndroid Build Coastguard Worker# we expect the first command fail, but the output to match anyway 48*8617a60dSAndroid Build Coastguard Workerset +o pipefail 49*8617a60dSAndroid Build Coastguard Worker 50*8617a60dSAndroid Build Coastguard Worker# If it can't figure out the command at all, it should complain. 51*8617a60dSAndroid Build Coastguard Worker"${FUTILITY}" muggle | grep Usage: 52*8617a60dSAndroid Build Coastguard Worker./buggle futility | grep Usage: 53*8617a60dSAndroid Build Coastguard Worker./boo | grep Usage: 54*8617a60dSAndroid Build Coastguard Worker 55*8617a60dSAndroid Build Coastguard Worker# cleanup 56*8617a60dSAndroid Build Coastguard Workerrm -f "${TMP}"* vbutil_key vbutil_keyblock show muggle buggle boo 57*8617a60dSAndroid Build Coastguard Workerexit 0 58