Add cgroup v2 support to the 010-cgget-g_flag_controller_and_cgroup.py
functional test.  It continues to support cgroup v1 as well.

Signed-off-by: Tom Hromatka <tom.hroma...@oracle.com>
---
 .../010-cgget-g_flag_controller_and_cgroup.py | 36 +++++++++++++++++--
 1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/ftests/010-cgget-g_flag_controller_and_cgroup.py 
b/ftests/010-cgget-g_flag_controller_and_cgroup.py
index 246490edf5a5..910204681108 100755
--- a/ftests/010-cgget-g_flag_controller_and_cgroup.py
+++ b/ftests/010-cgget-g_flag_controller_and_cgroup.py
@@ -29,7 +29,7 @@ import sys
 CONTROLLER = 'cpu'
 CGNAME = '010cgget'
 
-EXPECTED_OUT = '''cpu.cfs_period_us: 100000
+EXPECTED_OUT_V1 = '''cpu.cfs_period_us: 100000
 cpu.stat: nr_periods 0
         nr_throttled 0
         throttled_time 0
@@ -39,6 +39,20 @@ cpu.uclamp.min: 0.00
 cpu.uclamp.max: max
 '''
 
+EXPECTED_OUT_V2 = '''cpu.weight: 100
+cpu.stat: usage_usec 0
+        user_usec 0
+        system_usec 0
+        nr_periods 0
+        nr_throttled 0
+        throttled_usec 0
+cpu.weight.nice: 0
+cpu.uclamp.max: max
+cpu.max: max 100000
+cpu.uclamp.min: 0.00
+cpu.uclamp.max: max
+'''
+
 def prereqs(config):
     result = consts.TEST_PASSED
     cause = None
@@ -55,11 +69,27 @@ def test(config):
     out = Cgroup.get(config, controller="{}:{}".format(CONTROLLER, CGNAME),
                      print_headers=False)
 
+    version = CgroupVersion.get_version(CONTROLLER)
+
+    if version == CgroupVersion.CGROUP_V1:
+        expected_out = EXPECTED_OUT_V1
+    elif version == CgroupVersion.CGROUP_V2:
+        expected_out = EXPECTED_OUT_V2
+
+    if len(out.splitlines()) != len(expected_out.splitlines()):
+        result = consts.TEST_FAILED
+        cause = "Expected line count: {}, but received line count: {}".format(
+                len(expected_out.splitlines()), len(out.splitlines()))
+        return result, cause
+
     for line_num, line in enumerate(out.splitlines()):
-        if line.strip() != EXPECTED_OUT.splitlines()[line_num].strip():
+        if line.strip().startswith("cpu.pressure"):
+            continue
+
+        if line.strip() != expected_out.splitlines()[line_num].strip():
             result = consts.TEST_FAILED
             cause = "Expected line:\n\t{}\nbut received line:\n\t{}".format(
-                    EXPECTED_OUT.splitlines()[line_num].strip(), line.strip())
+                    expected_out.splitlines()[line_num].strip(), line.strip())
             return result, cause
 
     return result, cause
-- 
2.26.3



_______________________________________________
Libcg-devel mailing list
Libcg-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libcg-devel

Reply via email to