From 6278bae7f9b3601a53206414487150fc4bb19335 Mon Sep 17 00:00:00 2001 From: Robert Baldyga Date: Mon, 16 Mar 2026 00:08:50 +0100 Subject: [PATCH] Add support for minimum disk size requirement Signed-off-by: Robert Baldyga --- core/test_run_utils.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/core/test_run_utils.py b/core/test_run_utils.py index 59ba2ce..690252a 100644 --- a/core/test_run_utils.py +++ b/core/test_run_utils.py @@ -31,7 +31,8 @@ def __configure(cls, config): config.addinivalue_line( "markers", - "require_disk(name, type): require disk of specific type, otherwise skip" + "require_disk(name, type, min_size=None): require disk of specific type" + " (and optionally minimum size), otherwise skip" ) config.addinivalue_line( "markers", @@ -78,6 +79,12 @@ def __prepare(cls, item, config): if len(req_disks) != len(cls.req_disks): raise Exception("Disk name specified more than once!") + cls.req_disk_min_sizes = {} + for mark in cls.item.iter_markers(name="require_disk"): + min_size = mark.kwargs.get("min_size") + if min_size is not None: + cls.req_disk_min_sizes[mark.args[0]] = min_size + TestRun.prepare = __prepare @@ -97,8 +104,11 @@ def __attach_log(cls, log_path, target_name=None): @classmethod def __setup_disk(cls, disk_name, disk_type): + min_size = cls.req_disk_min_sizes.get(disk_name) cls.disks[disk_name] = next(filter( - lambda disk: disk.disk_type in disk_type.types() and disk not in cls.disks.values(), + lambda disk: disk.disk_type in disk_type.types() + and disk not in cls.disks.values() + and (min_size is None or disk.size >= min_size), cls.dut.disks ), None) if not cls.disks[disk_name]: