from cgroup import Cgroup, CgroupVersion
import consts
import ftests
+import utils
import sys
import os
version = CgroupVersion.get_version(CONTROLLER)
if version == CgroupVersion.CGROUP_V1:
- for expected_out in consts.EXPECTED_CPU_OUT_V1:
- if len(out.splitlines()) == len(expected_out.splitlines()):
- break
- elif version == CgroupVersion.CGROUP_V2:
- for expected_out in consts.EXPECTED_CPU_OUT_V2:
- if len(out.splitlines()) == len(expected_out.splitlines()):
+ EXPECTED_OUT = consts.EXPECTED_CPU_OUT_V1
+ else:
+ EXPECTED_OUT = consts.EXPECTED_CPU_OUT_V2
+
+ for expected_out in EXPECTED_OUT:
+ if len(out.splitlines()) == len(expected_out.splitlines()):
+ result_, tmp_cause = utils.is_output_same(config, out, expected_out)
+ if result_ is True:
+ result = consts.TEST_PASSED
+ cause = None
break
+ else:
+ if cause is None:
+ cause = "Tried Matching:\n==============="
- 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
-
- if len(out.splitlines()) != len(expected_out.splitlines()):
- result = consts.TEST_FAILED
- cause = (
- 'Expected {} lines but received {} lines'
- ''.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():
- result = consts.TEST_FAILED
- cause = (
- 'Expected line:\n\t{}\nbut received line:\n\t{}'
- ''.format(expected_out.splitlines()[line_num].strip(),
- line.strip())
- )
- return result, cause
+ cause = '\n'.join(filter(None, [cause, expected_out]))
return result, cause