8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn#!/bin/bash
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# lxc: linux Container library
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# Authors:
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# Serge Hallyn <serge.hallyn@ubuntu.com>
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# This library is free software; you can redistribute it and/or
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# modify it under the terms of the GNU Lesser General Public
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# License as published by the Free Software Foundation; either
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# version 2.1 of the License, or (at your option) any later version.
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# This library is distributed in the hope that it will be useful,
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# but WITHOUT ANY WARRANTY; without even the implied warranty of
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# Lesser General Public License for more details.
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# You should have received a copy of the GNU Lesser General Public
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# License along with this library; if not, write to the Free Software
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# At the moment this only tests cgroup automount. Testing proc and
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# sys automounts would be worthwhile.
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ -f /proc/self/ns/cgroup ] && exit 0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
9ec45e7faa3648a36cb01aed9e230bd49b450fe0Serge Hallyn# cgmanager doesn't do the same cgroup filesystem mounting
9ec45e7faa3648a36cb01aed9e230bd49b450fe0Serge Hallyncgm ping && exit 0
9ec45e7faa3648a36cb01aed9e230bd49b450fe0Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynset -ex
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncleanup() {
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn set +e
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn rmdir /sys/fs/cgroup/freezer/xx
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn lxc-destroy -n lxc-test-automount -f
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn if [ $PHASE != "done" ]; then
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn echo "automount test failed at $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn exit 1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn fi
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn echo "automount test passed"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn exit 0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn}
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge HallynPHASE=setup
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyntrap cleanup EXIT
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynrmdir /sys/fs/cgroup/freezer/xx || true
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-destroy -n lxc-test-automount -f || true
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-create -t busybox -n lxc-test-automount
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge HallynPHASE=no-cgroup
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynconfig=/var/lib/lxc/lxc-test-automount/config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynsed -i '/lxc.mount.auto/d' $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-start -n lxc-test-automount
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynpid=`lxc-info -n lxc-test-automount -p -H`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 0 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# Tests are as follows:
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# 1. check that freezer controller is mounted
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# 2. check that it is cgroupfs for cgroup-full (/cgroup.procs exists) or
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# tmpfs for cgroup
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# 3. check that root cgroup dir is readonly or not (try mkdir)
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# 4. check that the container's cgroup dir is readonly or not
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# 5. check that the container's cgroup dir is cgroupfs (/cgroup.procs exists)
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-stop -n lxc-test-automount -k
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge HallynPHASE=cgroup:mixed
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynsed -i '/lxc.mount.auto/d' $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-start -n lxc-test-automount
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynpid=`lxc-info -n lxc-test-automount -p -H`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 0 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 0 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/$cg/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-stop -n lxc-test-automount -k
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge HallynPHASE=cgroup:ro
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynsed -i '/lxc.mount.auto/d' $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup:ro proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-start -n lxc-test-automount
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynpid=`lxc-info -n lxc-test-automount -p -H`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 0 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 0 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/$cg/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-stop -n lxc-test-automount -k
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge HallynPHASE=cgroup:rw
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynsed -i '/lxc.mount.auto/d' $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup:rw proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-start -n lxc-test-automount
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynpid=`lxc-info -n lxc-test-automount -p -H`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 0 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynrmdir /proc/$pid/root/sys/fs/cgroup/freezer/xx
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/$cg/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# cgroup-full
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-stop -n lxc-test-automount -k
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge HallynPHASE=cgroup-full:mixed
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynsed -i '/lxc.mount.auto/d' $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup-full:mixed proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-start -n lxc-test-automount
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynpid=`lxc-info -n lxc-test-automount -p -H`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 0 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynrmdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/$cg/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-stop -n lxc-test-automount -k
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge HallynPHASE=cgroup-full:ro
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynsed -i '/lxc.mount.auto/d' $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup-full:ro proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-start -n lxc-test-automount
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynpid=`lxc-info -n lxc-test-automount -p -H`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 0 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xy || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 0 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/$cg/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-stop -n lxc-test-automount -k
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge HallynPHASE=cgroup-full:rw
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynsed -i '/lxc.mount.auto/d' $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup-full:rw proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynlxc-start -n lxc-test-automount
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynpid=`lxc-info -n lxc-test-automount -p -H`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynrmdir /proc/$pid/root/sys/fs/cgroup/freezer/xx
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynro=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $ro -ne 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynnotfound=0
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn/proc/$pid/root/sys/fs/cgroup/freezer/$cg/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn[ $notfound -eq 1 ]
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge HallynPHASE=done