mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-10-22 04:18:53 +00:00
Add testing to make sure new kernel changes does not break Kata. Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
96 lines
2.3 KiB
Bash
Executable File
96 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
#Copyright (c) 2018 Intel Corporation
|
|
#
|
|
#SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
readonly script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
readonly build_kernel_sh="${script_dir}/build-kernel.sh"
|
|
readonly tmp_dir=$(mktemp -d -t build-kernel-tmp.XXXXXXXXXX)
|
|
|
|
exit_handler() {
|
|
rm -rf "$tmp_dir"
|
|
}
|
|
trap exit_handler EXIT
|
|
|
|
OK() {
|
|
echo "OK"
|
|
}
|
|
|
|
FAIL() {
|
|
echo "FAIL: $*"
|
|
exit -1
|
|
}
|
|
|
|
export GOPATH=${GOPATH:-$HOME/go}
|
|
|
|
source "${script_dir}/../scripts/lib.sh"
|
|
|
|
kata_kernel_version=$(get_from_kata_deps "assets.kernel.version")
|
|
kata_kernel_version=${kata_kernel_version/v/}
|
|
kernel_dir="kata-linux-${kata_kernel_version}-$(cat ${script_dir}/kata_config_version)"
|
|
|
|
check_help() {
|
|
echo "Check help works"
|
|
out=$(${build_kernel_sh} -h)
|
|
[[ ${out} == *"Usage"* ]]
|
|
OK
|
|
}
|
|
|
|
build_kernel() {
|
|
echo "Setup a default kernel"
|
|
out=$(${build_kernel_sh} setup 2>&1)
|
|
[ -f "linux-${kata_kernel_version}.tar.xz" ] || FAIL "tarball does not exist"
|
|
[ -d "${kernel_dir}" ] || FAIL "kernel directory does not exist"
|
|
OK
|
|
|
|
echo "Setup a default again wont download again the kernel"
|
|
new_kernel_dir="${PWD}/kernel-kata2"
|
|
out=$(${build_kernel_sh} -k "${new_kernel_dir}" setup 2>&1)
|
|
[[ ${out} == *"kernel tarball already downloaded"* ]]
|
|
[ -f "linux-${kata_kernel_version}.tar.xz" ] || FAIL "tarball does not exist"
|
|
[ -d "${new_kernel_dir}" ] || FAIL "kernel directory does not exist"
|
|
OK
|
|
|
|
echo "Build default kernel"
|
|
out=$(${build_kernel_sh} build 2>&1)
|
|
[ -e "${kernel_dir}/arch/$(uname -m)/boot/bzImage" ] || FAIL "bzImage not found"
|
|
[ -e "${kernel_dir}/vmlinux" ] || FAIL "vmlinux not found"
|
|
OK
|
|
|
|
echo "Install kernel"
|
|
export DESTDIR="${tmp_dir}/kernel-install-path"
|
|
out=$(${build_kernel_sh} install 2>&1)
|
|
[ -e "${DESTDIR}/usr/share/kata-containers/vmlinux.container" ]
|
|
[ -e "${DESTDIR}/usr/share/kata-containers/vmlinuz.container" ]
|
|
unset DESTDIR
|
|
OK
|
|
}
|
|
|
|
test_kata() {
|
|
local cidir="${script_dir}/../.ci/"
|
|
echo "test kata with new kernel config"
|
|
[ -z "${CI:-}" ] && echo "skip: Not in CI" && return
|
|
echo "Setup kernel source"
|
|
${build_kernel_sh} setup
|
|
echo "Build kernel"
|
|
${build_kernel_sh} build
|
|
echo "Install kernel"
|
|
sudo -E PATH="$PATH" "${build_kernel_sh}" install
|
|
|
|
source "${cidir}/lib.sh"
|
|
pushd "${tests_repo_dir:-no-defined}"
|
|
.ci/run.sh
|
|
popd
|
|
}
|
|
|
|
pushd "${tmp_dir}"
|
|
check_help
|
|
build_kernel
|
|
test_kata
|
|
popd
|