]> git.proxmox.com Git - mirror_lxcfs.git/blame - tests/main.sh
tree-wide: align lxcfs and lxc licensing
[mirror_lxcfs.git] / tests / main.sh
CommitLineData
1c511f26 1#!/bin/bash
db0463bf 2# SPDX-License-Identifier: LGPL-2.1+
1c511f26
SH
3
4set -ex
5
6[ $(id -u) -eq 0 ]
7
8# Run lxcfs testsuite
9export LXCFSDIR=$(mktemp -d)
e190ee91 10pidfile=$(mktemp)
1c511f26
SH
11
12cmdline=$(realpath $0)
13dirname=$(dirname ${cmdline})
14topdir=$(dirname ${dirname})
15
16p=-1
17FAILED=1
18cleanup() {
19 set +e
20 if [ $p -ne -1 ]; then
21 kill -9 $p
22 fi
bb682ba8
SH
23 if [ ${LXCFSDIR} != "/var/lib/lxcfs" ]; then
24 umount -l ${LXCFSDIR}
25 rmdir ${LXCFSDIR}
26 fi
e190ee91 27 rm -f ${pidfile}
1c511f26
SH
28 if [ ${FAILED} -eq 1 ]; then
29 echo "FAILED at $TESTCASE"
30 exit 1
31 fi
32 echo PASSED
33 exit 0
34}
35
36TESTCASE="setup"
37lxcfs=${topdir}/lxcfs
38
bb682ba8
SH
39if [ -x ${lxcfs} ]; then
40 echo "Running ${lxcfs} ${LXCFSDIR}"
e190ee91 41 ${lxcfs} -p ${pidfile} ${LXCFSDIR} &
bb682ba8
SH
42 p=$!
43else
44 pidof lxcfs
45 echo "Using host lxcfs"
46 rmdir $LXCFSDIR
47 export LXCFSDIR=/var/lib/lxcfs
48fi
1c511f26
SH
49
50trap cleanup EXIT SIGHUP SIGINT SIGTERM
51
52count=1
53while ! mountpoint -q $LXCFSDIR; do
54 sleep 1s
55 if [ $count -gt 5 ]; then
56 echo "lxcfs failed to start"
57 false
58 fi
59 count=$((count+1))
60done
61
754c2080
SH
62RUNTEST() {
63 unshare -fmp --mount-proc $*
64}
65
1c511f26 66TESTCASE="test_proc"
754c2080 67RUNTEST ${dirname}/test_proc
1c511f26 68TESTCASE="test_cgroup"
754c2080 69RUNTEST ${dirname}/test_cgroup
1c511f26 70TESTCASE="test_read_proc.sh"
754c2080 71RUNTEST ${dirname}/test_read_proc.sh
1c511f26 72TESTCASE="cpusetrange"
754c2080 73RUNTEST ${dirname}/cpusetrange
7bc95a75 74TESTCASE="meminfo hierarchy"
754c2080 75RUNTEST ${dirname}/test_meminfo_hierarchy.sh
237e200e
SH
76TESTCASE="liblxcfs reloading"
77${dirname}/test_reload.sh
1c511f26 78
a6c00375
SH
79# Check for any defunct processes - children we didn't reap
80n=`ps -ef | grep lxcfs | grep defunct | wc -l`
81[ $n = 0 ]
82
1c511f26 83FAILED=0