mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 02:24:24 +02:00
selftests/damon/sysfs.py: merge DAMON status dumping into commitment assertion
For each test case, sysfs.py makes changes to DAMON, dumps DAMON internal status and asserts the expectation is met. The dumping part should be the same for all cases, so it is duplicated for each test case. Which means it is easy to make mistakes. Actually a few of those duplicates are not turning DAMON off in case of the dumping failure. It makes following selftests that need to turn DAMON on fails with -EBUSY. Merge the status dumping into commitment assertion with proper dumping failure handling, to deduplicate and avoid the unnecessary following tests failures. Link: https://lkml.kernel.org/r/20251112154114.66053-8-sj@kernel.org Signed-off-by: SeongJae Park <sj@kernel.org> Cc: Bill Wendling <morbo@google.com> Cc: Brendan Higgins <brendan.higgins@linux.dev> Cc: David Gow <davidgow@google.com> Cc: David Hildenbrand <david@kernel.org> Cc: Hugh Dickins <hughd@google.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Justin Stitt <justinstitt@google.com> Cc: Liam Howlett <liam.howlett@oracle.com> Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Miguel Ojeda <ojeda@kernel.org> Cc: Mike Rapoport <rppt@kernel.org> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Shuah Khan <shuah@kernel.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
10e8c7ba64
commit
675774adbe
|
|
@ -185,7 +185,15 @@ def assert_ctx_committed(ctx, dump):
|
|||
assert_monitoring_targets_committed(ctx.targets, dump['adaptive_targets'])
|
||||
assert_schemes_committed(ctx.schemes, dump['schemes'])
|
||||
|
||||
def assert_ctxs_committed(ctxs, dump):
|
||||
def assert_ctxs_committed(kdamonds):
|
||||
status, err = dump_damon_status_dict(kdamonds.kdamonds[0].pid)
|
||||
if err is not None:
|
||||
print(err)
|
||||
kdamonds.stop()
|
||||
exit(1)
|
||||
|
||||
ctxs = kdamonds.kdamonds[0].contexts
|
||||
dump = status['contexts']
|
||||
assert_true(len(ctxs) == len(dump), 'ctxs length', dump)
|
||||
for idx, ctx in enumerate(ctxs):
|
||||
assert_ctx_committed(ctx, dump[idx])
|
||||
|
|
@ -202,13 +210,7 @@ def main():
|
|||
print('kdamond start failed: %s' % err)
|
||||
exit(1)
|
||||
|
||||
status, err = dump_damon_status_dict(kdamonds.kdamonds[0].pid)
|
||||
if err is not None:
|
||||
print(err)
|
||||
kdamonds.stop()
|
||||
exit(1)
|
||||
|
||||
assert_ctxs_committed(kdamonds.kdamonds[0].contexts, status['contexts'])
|
||||
assert_ctxs_committed(kdamonds)
|
||||
|
||||
context = _damon_sysfs.DamonCtx(
|
||||
monitoring_attrs=_damon_sysfs.DamonAttrs(
|
||||
|
|
@ -256,12 +258,7 @@ def main():
|
|||
kdamonds.kdamonds[0].contexts = [context]
|
||||
kdamonds.kdamonds[0].commit()
|
||||
|
||||
status, err = dump_damon_status_dict(kdamonds.kdamonds[0].pid)
|
||||
if err is not None:
|
||||
print(err)
|
||||
exit(1)
|
||||
|
||||
assert_ctxs_committed(kdamonds.kdamonds[0].contexts, status['contexts'])
|
||||
assert_ctxs_committed(kdamonds)
|
||||
|
||||
# test online commitment of minimum context.
|
||||
context = _damon_sysfs.DamonCtx()
|
||||
|
|
@ -270,12 +267,7 @@ def main():
|
|||
kdamonds.kdamonds[0].contexts = [context]
|
||||
kdamonds.kdamonds[0].commit()
|
||||
|
||||
status, err = dump_damon_status_dict(kdamonds.kdamonds[0].pid)
|
||||
if err is not None:
|
||||
print(err)
|
||||
exit(1)
|
||||
|
||||
assert_ctxs_committed(kdamonds.kdamonds[0].contexts, status['contexts'])
|
||||
assert_ctxs_committed(kdamonds)
|
||||
|
||||
kdamonds.stop()
|
||||
|
||||
|
|
@ -303,17 +295,8 @@ def main():
|
|||
exit(1)
|
||||
kdamonds.kdamonds[0].contexts[0].targets[1].obsolete = True
|
||||
kdamonds.kdamonds[0].commit()
|
||||
|
||||
status, err = dump_damon_status_dict(kdamonds.kdamonds[0].pid)
|
||||
if err is not None:
|
||||
print(err)
|
||||
kdamonds.stop()
|
||||
exit(1)
|
||||
|
||||
del kdamonds.kdamonds[0].contexts[0].targets[1]
|
||||
|
||||
assert_ctxs_committed(kdamonds.kdamonds[0].contexts, status['contexts'])
|
||||
|
||||
assert_ctxs_committed(kdamonds)
|
||||
kdamonds.stop()
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user