
This change adds the following: * Default paths to REPORT_DIR, CONTAINERD_STATE and CONTAINERD_ROOT for Windows * Removes the need for nssm on Windows. The nssm service has issues dealing with paths that contain spaces. Also, the containerd binary is perfectly capable of registering itself as a service in Windows, and Windows itself can take care of any failure handling of the service. NSSM is useful for binaries that do not have any kind of Windows service logic built into them. That is not the case of containerd. * Use wrapper functions that run containerd, ctr and criclt with properly quoted paths to pipes, sockets, state and root dirs. Currently, if the state and root dirs contain spaces in them, the command line flags on both Windows and Linux are not properly set. The wrapper functions will allow us to use the readiness_check and keepalive functions to retry the commands, while properly quoting the paths and avoiding eval. Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
56 lines
1.6 KiB
Bash
Executable File
56 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright The containerd 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
|
|
|
|
basedir="$(dirname "${BASH_SOURCE[0]}")"
|
|
source "${basedir}/utils.sh"
|
|
|
|
trap test_teardown EXIT
|
|
|
|
ROOT="$( cd "${basedir}" && pwd )"/../..
|
|
cd "${ROOT}"
|
|
|
|
# FOCUS focuses the test to run.
|
|
FOCUS=${FOCUS:-""}
|
|
# REPORT_DIR is the the directory to store test logs.
|
|
if [ $IS_WINDOWS -eq 0 ]; then
|
|
REPORT_DIR=${REPORT_DIR:-"/tmp/test-integration"}
|
|
else
|
|
REPORT_DIR=${REPORT_DIR:-"C:/Windows/Temp/test-integration"}
|
|
fi
|
|
# RUNTIME is the runtime handler to use in the test.
|
|
RUNTIME=${RUNTIME:-""}
|
|
|
|
CRI_ROOT="${CONTAINERD_ROOT}/io.containerd.grpc.v1.cri"
|
|
mkdir -p "${REPORT_DIR}"
|
|
test_setup "${REPORT_DIR}"
|
|
|
|
# Run integration test.
|
|
${sudo} bin/cri-integration.test --test.run="${FOCUS}" --test.v \
|
|
--cri-endpoint="${CONTAINERD_SOCK}" \
|
|
--cri-root="${CRI_ROOT}" \
|
|
--runtime-handler="${RUNTIME}" \
|
|
--containerd-bin="${CONTAINERD_BIN}" \
|
|
--image-list="${TEST_IMAGE_LIST:-}" && test_exit_code=$? || test_exit_code=$?
|
|
|
|
test $test_exit_code -ne 0 && \
|
|
cat "$REPORT_DIR/containerd.log"
|
|
|
|
exit ${test_exit_code}
|