from cgroup import Cgroup, CgroupVersion
import consts
import ftests
-import os
-from process import Process
import sys
+import os
CONTROLLER = 'cpuset'
PARENT = '002cgdelete'
CHILD = 'childcg'
GRANDCHILD = 'grandchildcg'
+
def prereqs(config):
# This test should run on both cgroup v1 and v2
return consts.TEST_PASSED, None
+
def setup(config):
Cgroup.create(config, CONTROLLER, PARENT)
Cgroup.create(config, CONTROLLER, os.path.join(PARENT, CHILD))
# Moving a process from a child cgroup to its parent isn't (easily)
# supported in cgroup v2 because of cgroup v2's restriction that
# processes only be located in leaf cgroups
+ grandchild_cgrp_path = os.path.join(PARENT, CHILD, GRANDCHILD)
config.process.create_process_in_cgroup(config, CONTROLLER,
- os.path.join(PARENT, CHILD, GRANDCHILD))
+ grandchild_cgrp_path)
+
def test(config):
Cgroup.delete(config, CONTROLLER, PARENT, recursive=True)
return consts.TEST_PASSED, None
+
def teardown(config):
pass
+
def main(config):
[result, cause] = prereqs(config)
if result != consts.TEST_PASSED:
return [result, cause]
+
if __name__ == '__main__':
config = ftests.parse_args()
# this test was invoked directly. run only it