mirror of
https://github.com/netdata/libbpf.git
synced 2026-04-09 01:59:06 +08:00
vmtests: add log folding
Sprinkle log folds around, including timing. Signed-off-by: Andrii Nakryiko <andriin@fb.com>
This commit is contained in:
committed by
Andrii Nakryiko
parent
dc1cd8503f
commit
4001a658e0
@@ -1,6 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -eux
|
set -eu
|
||||||
|
|
||||||
|
source $(cd $(dirname $0) && pwd)/helpers.sh
|
||||||
|
|
||||||
|
travis_fold start build_pahole "Building pahole"
|
||||||
|
|
||||||
CWD=$(pwd)
|
CWD=$(pwd)
|
||||||
REPO_PATH=$1
|
REPO_PATH=$1
|
||||||
@@ -23,3 +27,4 @@ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}:/usr/local/lib
|
|||||||
ldd $(which pahole)
|
ldd $(which pahole)
|
||||||
pahole --version
|
pahole --version
|
||||||
|
|
||||||
|
travis_fold end build_pahole
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -euxo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
|
source $(cd $(dirname $0) && pwd)/helpers.sh
|
||||||
|
|
||||||
|
travis_fold start prepare_selftests "Building selftests"
|
||||||
|
|
||||||
LLVM_VER=12
|
LLVM_VER=12
|
||||||
LIBBPF_PATH="${REPO_ROOT}"
|
LIBBPF_PATH="${REPO_ROOT}"
|
||||||
@@ -33,3 +37,5 @@ rm selftests/bpf/.gitignore
|
|||||||
git add selftests
|
git add selftests
|
||||||
|
|
||||||
git add "${VMTEST_ROOT}/configs/blacklist"
|
git add "${VMTEST_ROOT}/configs/blacklist"
|
||||||
|
|
||||||
|
travis_fold end prepare_selftests
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -eux
|
set -eu
|
||||||
|
|
||||||
|
source $(cd $(dirname $0) && pwd)/helpers.sh
|
||||||
|
|
||||||
CWD=$(pwd)
|
CWD=$(pwd)
|
||||||
LIBBPF_PATH=$(pwd)
|
LIBBPF_PATH=$(pwd)
|
||||||
@@ -14,6 +16,9 @@ echo REPO_PATH = ${REPO_PATH}
|
|||||||
echo LINUX_SHA = ${LINUX_SHA}
|
echo LINUX_SHA = ${LINUX_SHA}
|
||||||
|
|
||||||
if [ ! -d "${REPO_PATH}" ]; then
|
if [ ! -d "${REPO_PATH}" ]; then
|
||||||
|
echo
|
||||||
|
travis_fold start pull_kernel_srcs "Fetching kernel sources"
|
||||||
|
|
||||||
mkdir -p $(dirname "${REPO_PATH}")
|
mkdir -p $(dirname "${REPO_PATH}")
|
||||||
cd $(dirname "${REPO_PATH}")
|
cd $(dirname "${REPO_PATH}")
|
||||||
# attempt to fetch desired bpf-next repo snapshot
|
# attempt to fetch desired bpf-next repo snapshot
|
||||||
@@ -34,4 +39,6 @@ if [ ! -d "${REPO_PATH}" ]; then
|
|||||||
fi
|
fi
|
||||||
git reset --hard ${LINUX_SHA}
|
git reset --hard ${LINUX_SHA}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
travis_fold end pull_kernel_srcs
|
||||||
fi
|
fi
|
||||||
|
|||||||
12
travis-ci/vmtest/helpers.sh
Normal file
12
travis-ci/vmtest/helpers.sh
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# $1 - start or end
|
||||||
|
# $2 - fold identifier, no spaces
|
||||||
|
# $3 - fold section description
|
||||||
|
travis_fold() {
|
||||||
|
local YELLOW='\033[1;33m'
|
||||||
|
local NOCOLOR='\033[0m'
|
||||||
|
echo travis_fold:$1:$2
|
||||||
|
if [ ! -z "${3:-}" ]; then
|
||||||
|
echo -e "${YELLOW}$3${NOCOLOR}"
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -eux
|
set -eu
|
||||||
|
|
||||||
|
source $(cd $(dirname $0) && pwd)/helpers.sh
|
||||||
|
|
||||||
REPO_PATH=$1
|
REPO_PATH=$1
|
||||||
|
|
||||||
@@ -8,7 +10,11 @@ ${VMTEST_ROOT}/checkout_latest_kernel.sh ${REPO_PATH}
|
|||||||
cd ${REPO_PATH}
|
cd ${REPO_PATH}
|
||||||
|
|
||||||
if [[ "${KERNEL}" = 'LATEST' ]]; then
|
if [[ "${KERNEL}" = 'LATEST' ]]; then
|
||||||
|
travis_fold start build_kernel "Kernel build"
|
||||||
|
|
||||||
cp ${VMTEST_ROOT}/configs/latest.config .config
|
cp ${VMTEST_ROOT}/configs/latest.config .config
|
||||||
make -j $((4*$(nproc))) olddefconfig all
|
make -j $((4*$(nproc))) olddefconfig all
|
||||||
|
|
||||||
|
travis_fold end build_kernel
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
set -uo pipefail
|
set -uo pipefail
|
||||||
trap 'exit 2' ERR
|
trap 'exit 2' ERR
|
||||||
|
|
||||||
|
source $(cd $(dirname $0) && pwd)/helpers.sh
|
||||||
|
|
||||||
usage () {
|
usage () {
|
||||||
USAGE_STRING="usage: $0 [-k KERNELRELEASE|-b DIR] [[-r ROOTFSVERSION] [-fo]|-I] [-Si] [-d DIR] IMG
|
USAGE_STRING="usage: $0 [-k KERNELRELEASE|-b DIR] [[-r ROOTFSVERSION] [-fo]|-I] [-Si] [-d DIR] IMG
|
||||||
$0 [-k KERNELRELEASE] -l
|
$0 [-k KERNELRELEASE] -l
|
||||||
@@ -275,6 +277,10 @@ if [[ $SKIPIMG -eq 0 && ! -v ROOTFSVERSION ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Kernel release: $KERNELRELEASE" >&2
|
echo "Kernel release: $KERNELRELEASE" >&2
|
||||||
|
echo
|
||||||
|
|
||||||
|
travis_fold start vmlinux_setup "Preparing Linux image"
|
||||||
|
|
||||||
if (( SKIPIMG )); then
|
if (( SKIPIMG )); then
|
||||||
echo "Not extracting root filesystem" >&2
|
echo "Not extracting root filesystem" >&2
|
||||||
else
|
else
|
||||||
@@ -366,11 +372,15 @@ else
|
|||||||
sudo chmod 644 "$vmlinux"
|
sudo chmod 644 "$vmlinux"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
travis_fold end vmlinux_setup
|
||||||
|
|
||||||
LIBBPF_PATH="${REPO_ROOT}" \
|
LIBBPF_PATH="${REPO_ROOT}" \
|
||||||
REPO_PATH="travis-ci/vmtest/bpf-next" \
|
REPO_PATH="travis-ci/vmtest/bpf-next" \
|
||||||
VMTEST_ROOT="${VMTEST_ROOT}" \
|
VMTEST_ROOT="${VMTEST_ROOT}" \
|
||||||
VMLINUX_BTF=${vmlinux} ${VMTEST_ROOT}/build_selftests.sh
|
VMLINUX_BTF=${vmlinux} ${VMTEST_ROOT}/build_selftests.sh
|
||||||
|
|
||||||
|
travis_fold start vm_init "Starting virtual machine..."
|
||||||
|
|
||||||
if (( SKIPSOURCE )); then
|
if (( SKIPSOURCE )); then
|
||||||
echo "Not copying source files..." >&2
|
echo "Not copying source files..." >&2
|
||||||
else
|
else
|
||||||
@@ -415,13 +425,15 @@ sudo chmod 755 "$mnt/etc/rcS.d/S50-run-tests"
|
|||||||
|
|
||||||
poweroff_script="#!/bin/sh
|
poweroff_script="#!/bin/sh
|
||||||
|
|
||||||
|
echo travis_fold:start:shutdown
|
||||||
|
echo -e '\033[1;33mShutdown\033[0m\n'
|
||||||
|
|
||||||
poweroff"
|
poweroff"
|
||||||
echo "${poweroff_script}" | sudo tee "$mnt/etc/rcS.d/S99-poweroff" > /dev/null
|
echo "${poweroff_script}" | sudo tee "$mnt/etc/rcS.d/S99-poweroff" > /dev/null
|
||||||
sudo chmod 755 "$mnt/etc/rcS.d/S99-poweroff"
|
sudo chmod 755 "$mnt/etc/rcS.d/S99-poweroff"
|
||||||
|
|
||||||
sudo umount "$mnt"
|
sudo umount "$mnt"
|
||||||
|
|
||||||
echo "Starting virtual machine..." >&2
|
|
||||||
qemu-system-x86_64 -nodefaults -display none -serial mon:stdio \
|
qemu-system-x86_64 -nodefaults -display none -serial mon:stdio \
|
||||||
-cpu kvm64 -enable-kvm -smp "$(nproc)" -m 2G \
|
-cpu kvm64 -enable-kvm -smp "$(nproc)" -m 2G \
|
||||||
-drive file="$IMG",format=raw,index=1,media=disk,if=virtio,cache=none \
|
-drive file="$IMG",format=raw,index=1,media=disk,if=virtio,cache=none \
|
||||||
@@ -435,4 +447,7 @@ else
|
|||||||
exitstatus=1
|
exitstatus=1
|
||||||
fi
|
fi
|
||||||
sudo umount "$mnt"
|
sudo umount "$mnt"
|
||||||
|
|
||||||
|
travis_fold end shutdown
|
||||||
|
|
||||||
exit "$exitstatus"
|
exit "$exitstatus"
|
||||||
|
|||||||
@@ -1,27 +1,35 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -euxo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
|
source $(cd $(dirname $0) && pwd)/helpers.sh
|
||||||
|
|
||||||
test_progs() {
|
test_progs() {
|
||||||
if [[ "${KERNEL}" != '4.9.0' ]]; then
|
if [[ "${KERNEL}" != '4.9.0' ]]; then
|
||||||
echo TEST_PROGS
|
travis_fold start test_progs "Testing test_progs"
|
||||||
./test_progs ${BLACKLIST:+-b$BLACKLIST} ${WHITELIST:+-t$WHITELIST}
|
./test_progs ${BLACKLIST:+-b$BLACKLIST} ${WHITELIST:+-t$WHITELIST}
|
||||||
|
travis_fold end test_progs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo TEST_PROGS-NO_ALU32
|
travis_fold start test_progs-no_alu32 "Testing test_progs-no_alu32"
|
||||||
./test_progs-no_alu32 ${BLACKLIST:+-b$BLACKLIST} ${WHITELIST:+-t$WHITELIST}
|
./test_progs-no_alu32 ${BLACKLIST:+-b$BLACKLIST} ${WHITELIST:+-t$WHITELIST}
|
||||||
|
travis_fold end test_progs-no_alu32
|
||||||
}
|
}
|
||||||
|
|
||||||
test_maps() {
|
test_maps() {
|
||||||
echo TEST_MAPS
|
travis_fold start test_maps "Testing test_maps"
|
||||||
./test_maps
|
./test_maps
|
||||||
|
travis_fold end test_maps
|
||||||
}
|
}
|
||||||
|
|
||||||
test_verifier() {
|
test_verifier() {
|
||||||
echo TEST_VERIFIER
|
travis_fold start test_verifier "Testing test_verifier"
|
||||||
./test_verifier
|
./test_verifier
|
||||||
|
travis_fold end test_verifier
|
||||||
}
|
}
|
||||||
|
|
||||||
|
travis_fold end vm_init
|
||||||
|
|
||||||
configs_path='libbpf/travis-ci/vmtest/configs'
|
configs_path='libbpf/travis-ci/vmtest/configs'
|
||||||
blacklist_path="$configs_path/blacklist/BLACKLIST-${KERNEL}"
|
blacklist_path="$configs_path/blacklist/BLACKLIST-${KERNEL}"
|
||||||
if [[ -s "${blacklist_path}" ]]; then
|
if [[ -s "${blacklist_path}" ]]; then
|
||||||
|
|||||||
@@ -1,20 +1,27 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -eux
|
set -eu
|
||||||
|
|
||||||
|
source $(cd $(dirname $0) && pwd)/helpers.sh
|
||||||
|
|
||||||
VMTEST_SETUPCMD="PROJECT_NAME=${PROJECT_NAME} ./${PROJECT_NAME}/travis-ci/vmtest/run_selftests.sh"
|
VMTEST_SETUPCMD="PROJECT_NAME=${PROJECT_NAME} ./${PROJECT_NAME}/travis-ci/vmtest/run_selftests.sh"
|
||||||
|
|
||||||
echo "KERNEL: $KERNEL"
|
echo "KERNEL: $KERNEL"
|
||||||
|
echo
|
||||||
|
|
||||||
# Build latest pahole
|
# Build latest pahole
|
||||||
${VMTEST_ROOT}/build_pahole.sh travis-ci/vmtest/pahole
|
${VMTEST_ROOT}/build_pahole.sh travis-ci/vmtest/pahole
|
||||||
|
|
||||||
|
travis_fold start install_clang "Installing Clang/LLVM"
|
||||||
|
|
||||||
# Install required packages
|
# Install required packages
|
||||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
||||||
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic main" | sudo tee -a /etc/apt/sources.list
|
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic main" | sudo tee -a /etc/apt/sources.list
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get -y install clang-12 lld-12 llvm-12
|
sudo apt-get -y install clang-12 lld-12 llvm-12
|
||||||
|
|
||||||
|
travis_fold end install_clang
|
||||||
|
|
||||||
# Build selftests (and latest kernel, if necessary)
|
# Build selftests (and latest kernel, if necessary)
|
||||||
KERNEL="${KERNEL}" ${VMTEST_ROOT}/prepare_selftests.sh travis-ci/vmtest/bpf-next
|
KERNEL="${KERNEL}" ${VMTEST_ROOT}/prepare_selftests.sh travis-ci/vmtest/bpf-next
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user