| #!/bin/bash |
| |
| # Copyright (c) 2010 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. |
| |
| # Determine script directory. |
| SCRIPT_DIR="$(dirname $(realpath "${BASH_SOURCE[0]}"))" |
| ROOT_DIR="$(dirname "${SCRIPT_DIR}")" |
| SRCDIR="${SRCDIR:-${ROOT_DIR}}" |
| BUILD="${BUILD:-${ROOT_DIR}/build}" |
| BUILD_RUN="${BUILD_RUN:-${BUILD}}" |
| SRC_RUN="${SRC_RUN:-${SRCDIR}}" |
| BUILD_DIR="${BUILD}" |
| BIN_DIR="${BUILD_DIR}/install_for_test/usr/bin" |
| FUTILITY="${BIN_DIR}/futility" |
| TEST_DIR="${BUILD_DIR}/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=$(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." |
| } |
| |