test: unit test for semihosting

Provide a unit test for semihosting testing reading and writing a file.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Sean Anderson <sean.anderson@seco.com>
diff --git a/test/py/tests/test_semihosting/test_hostfs.py b/test/py/tests/test_semihosting/test_hostfs.py
new file mode 100644
index 0000000..51f6fa7
--- /dev/null
+++ b/test/py/tests/test_semihosting/test_hostfs.py
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier:      GPL-2.0+
+
+""" Unit test for semihosting
+"""
+
+import pytest
+
+@pytest.mark.buildconfigspec('semihosting')
+def test_semihosting_hostfs(u_boot_console, semihosting_data):
+    """ Unit test for semihosting
+
+    Args:
+        u_boot_console -- U-Boot console
+        semihosting_data -- Path to the disk image used for testing.
+    """
+    response = u_boot_console.run_command(
+        f'load hostfs - $loadaddr {semihosting_data}')
+    assert '11 bytes read' in response
+
+    response = u_boot_console.run_command(
+        'crc32 $loadaddr $filesize')
+    assert '==> 60cfccfc' in response
+
+    u_boot_console.run_command(
+        f'save hostfs - $loadaddr {semihosting_data} 11 11')
+
+    response = u_boot_console.run_command(
+        f'load hostfs - $loadaddr {semihosting_data} 4 13')
+    assert '4 bytes read' in response
+
+    response = u_boot_console.run_command(
+        'crc32 $loadaddr $filesize')
+    assert '==> e29063ea' in response