]> git.proxmox.com Git - mirror_lxcfs.git/blob - tests/test_cgroup
Fix test_proc on s390x
[mirror_lxcfs.git] / tests / test_cgroup
1 #!/bin/sh -eux
2
3 PASS=0
4 UUID=$(uuidgen)
5
6 cleanup() {
7 [ "$PASS" = "1" ] || (echo FAIL && exit 1)
8 }
9
10 LXCFSDIR=${LXCFSDIR:-/var/lib/lxcfs}
11
12 trap cleanup EXIT HUP INT TERM
13
14 if ! mountpoint -q ${LXCFSDIR}; then
15 echo "lxcfs isn't mounted on ${LXCFSDIR}"
16 exit 1
17 fi
18
19 for c in memory freezer cpuset; do
20 [ ! -d /sys/fs/cgroup/${c} ] && exit 0
21 done
22
23 initcpuset=`awk -F: '/cpuset/ { print $3 }' /proc/1/cgroup`
24 initmemory=`awk -F: '/memory/ { print $3 }' /proc/1/cgroup`
25 initfreezer=`awk -F: '/freezer/ { print $3 }' /proc/1/cgroup`
26
27 cpupath=/sys/fs/cgroup/cpuset/${initcpuset}
28 mempath=/sys/fs/cgroup/memory/${initmemory}
29 frzpath=/sys/fs/cgroup/freezer/${initfreezer}
30
31 rmdir ${cpupath}/${UUID} || true
32 rmdir ${mempath}/${UUID} || true
33 rmdir ${frzpath}/${UUID} || true
34 mkdir ${cpupath}/${UUID}
35 mkdir ${mempath}/${UUID}
36 mkdir ${frzpath}/${UUID}
37
38 # Check that the fs is readable
39 for p in ${mempath} ${frzpath} ${cpupath}; do
40 find ${p} > /dev/null
41 echo 1 > ${p}/${UUID}/tasks
42 done
43
44 # set values though lxcfs
45 echo $((64*1024*1024)) > ${LXCFSDIR}/cgroup/memory/${initmemory}/${UUID}/memory.limit_in_bytes
46 echo 0 > ${LXCFSDIR}/cgroup/cpuset/${initcpuset}/${UUID}/cpuset.cpus
47
48 # and verify them through cgroupfs
49 v=`cat $mempath/${UUID}/memory.limit_in_bytes`
50 [ "$v" = "$((64*1024*1024))" ]
51 v=`cat ${cpupath}/${UUID}/cpuset.cpus`
52 [ "$v" = "0" ]
53
54 PASS=1
55 echo PASS