The problem with using "virt-make-fs" to make a filesystem image is that
it is extremely slow. Switch to using the fs_helper functions we have
instead from the filesystem tests as these can add files to images and
are significantly faster and still do not require root access.

Signed-off-by: Tom Rini <tr...@konsulko.com>
---
 test/py/tests/test_cat.py          | 37 ++++++++++++++++++++++++++++++
 test/py/tests/test_cat/conftest.py | 36 -----------------------------
 test/py/tests/test_cat/test_cat.py | 20 ----------------
 3 files changed, 37 insertions(+), 56 deletions(-)
 create mode 100644 test/py/tests/test_cat.py
 delete mode 100644 test/py/tests/test_cat/conftest.py
 delete mode 100644 test/py/tests/test_cat/test_cat.py

diff --git a/test/py/tests/test_cat.py b/test/py/tests/test_cat.py
new file mode 100644
index 000000000000..8b545e9de255
--- /dev/null
+++ b/test/py/tests/test_cat.py
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier:      GPL-2.0+
+
+""" Unit test for cat command
+"""
+
+import pytest
+from subprocess import call, check_call, CalledProcessError
+from tests import fs_helper
+
+@pytest.mark.boardspec('sandbox')
+@pytest.mark.buildconfigspec('cmd_cat')
+def test_cat(u_boot_console):
+    """ Unit test for cat
+
+    Args:
+        u_boot_console -- U-Boot console
+    """
+    try:
+        scratch_dir = u_boot_console.config.persistent_data_dir + '/scratch'
+
+        check_call('mkdir -p %s' % scratch_dir, shell=True)
+
+        with open(scratch_dir + '/hello', 'w', encoding = 'ascii') as file:
+            file.write('hello world\n')
+
+        cat_data = fs_helper.mk_fs(u_boot_console.config, 'vfat', 0x100000,
+                                   'test_cat', scratch_dir)
+        response = u_boot_console.run_command_list([ f'host bind 0 {cat_data}',
+                                                    'cat host 0 hello'])
+        assert 'hello world' in response
+    except CalledProcessError as err:
+        pytest.skip('Preparing test_cat image failed')
+        call('rm -f %s' % cat_data, shell=True)
+        return
+    finally:
+        call('rm -rf %s' % scratch_dir, shell=True)
+        call('rm -f %s' % cat_data, shell=True)
diff --git a/test/py/tests/test_cat/conftest.py 
b/test/py/tests/test_cat/conftest.py
deleted file mode 100644
index 320e7ebd295f..000000000000
--- a/test/py/tests/test_cat/conftest.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier:      GPL-2.0+
-
-"""Fixture for cat command test
-"""
-
-import os
-import shutil
-from subprocess import check_call, CalledProcessError
-import pytest
-
-@pytest.fixture(scope='session')
-def cat_data(u_boot_config):
-    """Set up a file system to be used in cat tests
-
-    Args:
-        u_boot_config -- U-Boot configuration.
-    """
-    mnt_point = u_boot_config.persistent_data_dir + '/test_cat'
-    image_path = u_boot_config.persistent_data_dir + '/cat.img'
-
-    try:
-        os.mkdir(mnt_point, mode = 0o755)
-
-        with open(mnt_point + '/hello', 'w', encoding = 'ascii') as file:
-            file.write('hello world\n')
-
-        check_call(f'virt-make-fs --partition=gpt --size=+1M --type=vfat 
{mnt_point} {image_path}',
-                   shell=True)
-
-        yield image_path
-    except CalledProcessError:
-        pytest.skip('Setup failed')
-    finally:
-        shutil.rmtree(mnt_point)
-        if os.path.exists(image_path):
-            os.remove(image_path)
diff --git a/test/py/tests/test_cat/test_cat.py 
b/test/py/tests/test_cat/test_cat.py
deleted file mode 100644
index 132527bd4c29..000000000000
--- a/test/py/tests/test_cat/test_cat.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier:      GPL-2.0+
-
-""" Unit test for cat command
-"""
-
-import pytest
-
-@pytest.mark.boardspec('sandbox')
-@pytest.mark.buildconfigspec('cmd_cat')
-def test_cat(u_boot_console, cat_data):
-    """ Unit test for cat
-
-    Args:
-        u_boot_console -- U-Boot console
-        cat_data -- Path to the disk image used for testing.
-    """
-    response = u_boot_console.run_command_list([
-        f'host bind 0 {cat_data}',
-        'cat host 0 hello'])
-    assert 'hello world' in response
-- 
2.43.0

Reply via email to