...

Text file src/k8s.io/kubectl/pkg/cmd/edit/testdata/record_testcase.sh

Documentation: k8s.io/kubectl/pkg/cmd/edit/testdata

     1#!/usr/bin/env bash
     2
     3# Copyright 2017 The Kubernetes Authors.
     4#
     5# Licensed under the Apache License, Version 2.0 (the "License");
     6# you may not use this file except in compliance with the License.
     7# You may obtain a copy of the License at
     8#
     9#     http://www.apache.org/licenses/LICENSE-2.0
    10#
    11# Unless required by applicable law or agreed to in writing, software
    12# distributed under the License is distributed on an "AS IS" BASIS,
    13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14# See the License for the specific language governing permissions and
    15# limitations under the License.
    16
    17set -o errexit
    18set -o nounset
    19set -o pipefail
    20
    21if [[ -z "${1-}" ]]; then
    22    echo "Usage: record_testcase.sh testcase-name"
    23    exit 1
    24fi
    25
    26# Clean up the test server
    27function cleanup {
    28    if [[ -n "${pid-}" ]]; then
    29        echo "Stopping recording server (${pid})"
    30        # kill the process `go run` launched
    31        pkill -P "${pid}"
    32        # kill the `go run` process itself
    33        kill -9 "${pid}"
    34    fi
    35}
    36
    37testcase="${1}"
    38
    39test_root="$(dirname "${BASH_SOURCE[0]}")"
    40testcase_dir="${test_root}/testcase-${testcase}"
    41mkdir -p "${testcase_dir}"
    42
    43pushd "${testcase_dir}"
    44    export EDITOR="../record_editor.sh"
    45    go run "../record.go" &
    46    pid=$!
    47    trap cleanup EXIT
    48    echo "Started recording server (${pid})"
    49
    50    # Make a kubeconfig that makes kubectl talk to our test server
    51    edit_kubeconfig="${TMP:-/tmp}/edit_test.kubeconfig"
    52    echo "apiVersion: v1
    53clusters:
    54- cluster:
    55    server: http://localhost:8081
    56  name: test
    57contexts:
    58- context:
    59    cluster: test
    60    user: test
    61  name: test
    62current-context: test
    63kind: Config
    64users: []
    65" > "${edit_kubeconfig}"
    66    export KUBECONFIG="${edit_kubeconfig}"
    67
    68    echo "Starting subshell. Type exit when finished."
    69    bash
    70popd

View as plain text