diff mbox series

[7/9] arm/lib: Modify fvp.py to neglect fstype

Message ID 20230717193207.3562364-7-jon.mason@arm.com
State New
Headers show
Series [1/9] CI: track master | expand

Commit Message

Jon Mason July 17, 2023, 7:32 p.m. UTC
From: Ziad Elhanafy <ziad.elhanafy@arm.com>

Signed-off-by: Ziad Elhanafy <ziad.elhanafy@arm.com>
---
 meta-arm/lib/oeqa/controllers/fvp.py | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)
diff mbox series

Patch

diff --git a/meta-arm/lib/oeqa/controllers/fvp.py b/meta-arm/lib/oeqa/controllers/fvp.py
index 38484072..7e95ddf6 100644
--- a/meta-arm/lib/oeqa/controllers/fvp.py
+++ b/meta-arm/lib/oeqa/controllers/fvp.py
@@ -14,16 +14,20 @@  class OEFVPSSHTarget(OESSHTarget):
     def __init__(self, logger, target_ip, server_ip, timeout=300, user='root',
                  port=None, dir_image=None, rootfs=None, bootlog=None, **kwargs):
         super().__init__(logger, target_ip, server_ip, timeout, user, port)
-        image_dir = pathlib.Path(dir_image)
-        # rootfs may have multiple extensions so we need to strip *all* suffixes
+        image_dir = pathlib.Path(dir_image)    
         basename = pathlib.Path(rootfs)
-        basename = basename.name.replace("".join(basename.suffixes), "")
-        self.fvpconf = image_dir / (basename + ".fvpconf")
+        basename = basename.name.replace("".join(basename.suffixes), "")       
+        # All .fvpconf configuration files
+        configs = image_dir.glob(basename + "*.fvpconf")
+        # Just the symbolic links
+        configs = [p for p in configs if p.is_file() and p.is_symlink()]
+        if not configs:
+            raise FileNotFoundError(f"Cannot find any .fvpconf in {image_dir}")
+        # Sorted by modification time
+        configs = sorted(configs, key=lambda p: p.stat().st_mtime)
+        self.fvpconf = configs[-1]
         self.bootlog = bootlog
 
-        if not self.fvpconf.exists():
-            raise FileNotFoundError(f"Cannot find {self.fvpconf}")
-
     def _after_start(self):
         pass