71 lines
1.8 KiB
Bash
Executable File
71 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright 2017 The Kubernetes Authors.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
if [[ -z "${1-}" ]]; then
|
|
echo "Usage: record_testcase.sh testcase-name"
|
|
exit 1
|
|
fi
|
|
|
|
# Clean up the test server
|
|
function cleanup {
|
|
if [[ -n "${pid-}" ]]; then
|
|
echo "Stopping recording server (${pid})"
|
|
# kill the process `go run` launched
|
|
pkill -P "${pid}"
|
|
# kill the `go run` process itself
|
|
kill -9 "${pid}"
|
|
fi
|
|
}
|
|
|
|
testcase="${1}"
|
|
|
|
test_root="$(dirname "${BASH_SOURCE[0]}")"
|
|
testcase_dir="${test_root}/testcase-${testcase}"
|
|
mkdir -p "${testcase_dir}"
|
|
|
|
pushd "${testcase_dir}"
|
|
export EDITOR="../record_editor.sh"
|
|
go run "../record.go" &
|
|
pid=$!
|
|
trap cleanup EXIT
|
|
echo "Started recording server (${pid})"
|
|
|
|
# Make a kubeconfig that makes kubectl talk to our test server
|
|
edit_kubeconfig="${TMP:-/tmp}/edit_test.kubeconfig"
|
|
echo "apiVersion: v1
|
|
clusters:
|
|
- cluster:
|
|
server: http://localhost:8081
|
|
name: test
|
|
contexts:
|
|
- context:
|
|
cluster: test
|
|
user: test
|
|
name: test
|
|
current-context: test
|
|
kind: Config
|
|
users: []
|
|
" > "${edit_kubeconfig}"
|
|
export KUBECONFIG="${edit_kubeconfig}"
|
|
|
|
echo "Starting subshell. Type exit when finished."
|
|
bash
|
|
popd
|