| #!/bin/bash |
| |
| # Copyright 2010 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Determine script directory. |
| SCRIPT_DIR="$(dirname "$(realpath "${BASH_SOURCE[0]}")")" |
| ROOT_DIR="$(dirname "${SCRIPT_DIR}")" |
| SRCDIR="${ROOT_DIR}" |
| # BUILD_RUN should be supplied from the Makefile. |
| # Some test scripts change the cwd so use an absolute path. |
| BUILD_RUN="$(realpath "${BUILD_RUN}")" |
| BIN_DIR="${BUILD_RUN}/install_for_test/usr/bin" |
| FUTILITY="${BIN_DIR}/futility" |
| TEST_DIR="${BUILD_RUN}/tests" |
| TESTKEY_DIR="${SCRIPT_DIR}/testkeys" |
| TESTCASE_DIR="${SCRIPT_DIR}/testcases" |
| TESTKEY_SCRATCH_DIR="${TEST_DIR}/testkeys" |
| |
| if [ ! -d "${TESTKEY_SCRATCH_DIR}" ]; then |
| mkdir -p "${TESTKEY_SCRATCH_DIR}" |
| fi |
| |
| # Color output encodings. |
| COL_RED='\E[31;1m' |
| COL_GREEN='\E[32;1m' |
| COL_YELLOW='\E[33;1m' |
| COL_BLUE='\E[34;1m' |
| COL_STOP='\E[0;m' |
| |
| hash_algos=( sha1 sha256 sha512 ) |
| key_lengths=( 1024 2048 4096 8192 2048_exp3 3072_exp3 ) |
| |
| function happy { |
| echo -e "${COL_GREEN}$*${COL_STOP}" 1>&2 |
| } |
| |
| # args: [nested level [message]] |
| function warning { |
| echo -e "${COL_YELLOW}WARNING: $*${COL_STOP}" 1>&2 |
| } |
| |
| # args: [nested level [message]] |
| function error { |
| local lev=${1:-} |
| case "${1:-}" in |
| [0-9]*) |
| lev=$1 |
| shift |
| ;; |
| *) lev=0 |
| ;; |
| esac |
| local x |
| x=$(caller $lev) |
| local cline=${x%% *} |
| local cfunc=${x#* } |
| cfunc=${cfunc##*/} |
| local args="$*" |
| local spacer=${args:+: } |
| echo -e "${COL_RED}ERROR at ${cfunc}, line ${cline}${spacer}${args}" \ |
| "${COL_STOP}" 1>&2 |
| exit 1 |
| } |
| |
| function check_test_keys { |
| [ -d "${TESTKEY_DIR}" ] || \ |
| error 1 "You must run gen_test_keys.sh to generate test keys first." |
| } |