test: fix parsing the mksquashfs version number
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tue, 24 May 2022 11:36:21 +0000 (13:36 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 26 May 2022 14:32:27 +0000 (10:32 -0400)
Testing with mksquasshfs 4.5.1 results in an error

    ValueError: could not convert string to float: '4.5.1'

Version 4.10 would be considered to be lower than 4.4.

Fixes: 04c9813e951f ("test/py: rewrite common tools for SquashFS tests")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
test/py/tests/test_fs/test_squashfs/sqfs_common.py

index 8b84c2c..d1621dc 100644 (file)
@@ -146,15 +146,14 @@ def get_mksquashfs_version():
     out = subprocess.run(['mksquashfs -version'], shell=True, check=True,
                          capture_output=True, text=True)
     # 'out' is: mksquashfs version X (yyyy/mm/dd) ...
-    return float(out.stdout.split()[2].split('-')[0])
+    return out.stdout.split()[2].split('.')[0:2]
 
 def check_mksquashfs_version():
     """ Checks if mksquashfs meets the required version. """
 
-    required_version = 4.4
-    if get_mksquashfs_version() < required_version:
-        print('Error: mksquashfs is too old.')
-        print('Required version: {}'.format(required_version))
+    version = get_mksquashfs_version();
+    if int(version[0]) < 4 or int(version[0]) == 4 and int(version[1]) < 4 :
+        print('Error: mksquashfs is too old, required version: 4.4')
         raise AssertionError
 
 def make_all_images(build_dir):