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