1
0
mirror of https://github.com/lxc/lxcfs.git synced 2026-02-05 09:46:18 +01:00
Files
lxcfs/tests/main.sh.in
Christian Brauner e5af758b36 build: use jinja2 templating
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2021-11-05 13:49:40 +01:00

107 lines
2.1 KiB
Bash
Executable File

#!/bin/sh
# SPDX-License-Identifier: LGPL-2.1+
set -eu
[ -n "${DEBUG:-}" ] && set -x
[ $(id -u) -eq 0 ]
# Run lxcfs testsuite
export LXCFSDIR=$(mktemp -d)
pidfile=$(mktemp)
export LXCFSPID=-1
cmdline=$(realpath $0)
dirname=$(dirname ${cmdline})
FAILED=1
UNSHARE=1
cleanup() {
echo "=> Cleaning up"
set +e
if [ $LXCFSPID -ne -1 ]; then
kill -9 $LXCFSPID
fi
if [ ${LXCFSDIR} != "/var/lib/lxcfs" ]; then
umount -l ${LXCFSDIR}
rmdir ${LXCFSDIR}
fi
rm -f ${pidfile}
if [ ${FAILED} -eq 1 ]; then
echo "=> FAILED at $TESTCASE"
exit 1
fi
echo "=> PASSED"
exit 0
}
TESTCASE="setup"
lxcfs="{{LXCFS_BUILD_ROOT}}/lxcfs"
if [ -x ${lxcfs} ]; then
if [ -n "${LD_LIBRARY_PATH:-}" ]; then
export LD_LIBRARY_PATH="{{LXCFS_BUILD_ROOT}}:${LD_LIBRARY_PATH}"
else
export LD_LIBRARY_PATH="{{LXCFS_BUILD_ROOT}}"
fi
echo "=> Spawning ${lxcfs} ${LXCFSDIR}"
${lxcfs} -p ${pidfile} ${LXCFSDIR} &
LXCFSPID=$!
else
UNSHARE=0
LXCFSPID=$(cat "{{RUNTIME_PATH}}/lxcfs.pid")
echo "=> Re-using host lxcfs"
rmdir $LXCFSDIR
export LXCFSDIR=/var/lib/lxcfs
fi
trap cleanup EXIT HUP INT TERM
count=1
while ! mountpoint -q $LXCFSDIR; do
sleep 1s
if [ $count -gt 5 ]; then
echo "lxcfs failed to start"
false
fi
count=$((count+1))
done
RUNTEST() {
echo ""
echo "=> Running ${TESTCASE}"
if [ "${UNSHARE:-1}" != "0" ]; then
unshare -fmp --mount-proc $*
else
$*
fi
}
TESTCASE="Stress readdir"
RUNTEST ${dirname}/test_readdir
TESTCASE="test_proc"
RUNTEST ${dirname}/test_proc
TESTCASE="test_cgroup"
RUNTEST ${dirname}/test_cgroup
TESTCASE="test_read_proc.sh"
RUNTEST ${dirname}/test_read_proc.sh
TESTCASE="cpusetrange"
RUNTEST ${dirname}/test-cpusetrange
TESTCASE="meminfo hierarchy"
RUNTEST ${dirname}/test_meminfo_hierarchy.sh
TESTCASE="liblxcfs reloading"
UNSHARE=0 RUNTEST ${dirname}/test_reload.sh
TESTCASE="SIGUSR2 virtualization mode switching"
echo "==> Switching to non-virtualization mode"
kill -USR2 $LXCFSPID
RUNTEST ${dirname}/test_sigusr2.sh
echo "==> Switching to virtualization mode"
kill -USR2 $LXCFSPID
# Check for any defunct processes - children we didn't reap
n=`ps -ef | grep lxcfs | grep defunct | wc -l`
[ $n = 0 ]
FAILED=0