#!/bin/bash
# Copyright (c) 2011 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.
find_common_sh() {
local common_paths=(/usr/lib/crosutils $(dirname "$0"))
local path
SCRIPT_ROOT=
for path in "${common_paths[@]}"; do
local common="${path}/common.sh"
if ([ -r "${common}" ] && . "${common}" && [ -d "${SCRIPTS_DIR}" ]); then
SCRIPT_ROOT="${path}"
break
fi
done
}
find_common_sh
. "${SCRIPT_ROOT}/common.sh" || ! echo "Unable to load common.sh" || exit 1
DEFAULT_PRIVATE_KEY="${GCLIENT_ROOT}/src/scripts/mod_for_test_scripts/\
ssh_keys/testing_rsa"
TMP="/tmp/dejagnu-tests/"
TMP_PRIVATE_KEY=${TMP}/private_key
TMP_KNOWN_HOSTS=${TMP}/known_hosts
CONTROL_PATH="${TMP}/%r@%h:%p"
SSH_ARGS="-p22 -o StrictHostKeyChecking=no \
-o UserKnownHostsFile=${TMP_KNOWN_HOSTS} -i ${TMP_PRIVATE_KEY}"
dejagnu_init_remote() {
mkdir -p ${TMP}
cp ${DEFAULT_PRIVATE_KEY} ${TMP_PRIVATE_KEY}
chmod 0400 ${TMP_PRIVATE_KEY}
PS1=. TERM=linux ssh ${SSH_ARGS} -t -t -M -S "${CONTROL_PATH}" root@$1 \
>/dev/null 2>&1 &
echo $! > "${TMP}/master-pid"
dejagnu_ssh root@$1 -- "echo Connection OK."
}
dejagnu_cleanup_remote() {
set +e
kill "$(cat ${TMP}/master-pid)"
set -e
rm -rf "${TMP}"
}
dejagnu_ssh() {
COMMAND="ssh ${SSH_ARGS} -t -o ControlPath=${CONTROL_PATH} $@"
# TODO(raymes): Remove this timeout hack once our tests run without
# infinite loops.
TIMEOUT_COMMAND="$(echo "$COMMAND" | sed "s/sh -c '/sh -c 'timeout 5 /g")"
$TIMEOUT_COMMAND
}
dejagnu_scp() {
scp ${SSH_ARGS} -o ControlPath="${CONTROL_PATH}" $@
}