Signed-off-by: Heinrich Schuchardt <[email protected]>
---
 lib/efi_selftest/efi_selftest_block_device.c | 56 ++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/lib/efi_selftest/efi_selftest_block_device.c 
b/lib/efi_selftest/efi_selftest_block_device.c
index 4af8bd8cb28..9209ce678ee 100644
--- a/lib/efi_selftest/efi_selftest_block_device.c
+++ b/lib/efi_selftest/efi_selftest_block_device.c
@@ -377,6 +377,7 @@ static int execute(void)
                        "Wrong volume label '%ps', expected 'U-BOOT TEST'\n",
                        system_info.info.volume_label);
        }
+       /* Read file */
        ret = root->open(root, &file, (s16 *)L"hello.txt", EFI_FILE_MODE_READ,
                         0);
        if (ret != EFI_SUCCESS) {
@@ -389,6 +390,11 @@ static int execute(void)
                efi_st_error("Failed to read file\n");
                return EFI_ST_FAILURE;
        }
+       if (buf_size != 13) {
+               efi_st_error("Wrong number of bytes read: %u\n",
+                            (unsigned int)buf_size);
+               return EFI_ST_FAILURE;
+       }
        if (efi_st_memcmp(buf, "Hello world!", 12)) {
                efi_st_error("Unexpected file content\n");
                return EFI_ST_FAILURE;
@@ -399,6 +405,56 @@ static int execute(void)
                return EFI_ST_FAILURE;
        }
        ret = root->close(root);
+       /* Write file */
+       ret = root->open(root, &file, (s16 *)L"u-boot.txt",
+                        EFI_FILE_MODE_WRITE | EFI_FILE_MODE_CREATE, 0);
+       if (ret != EFI_SUCCESS) {
+               efi_st_error("Failed to open file\n");
+               return EFI_ST_FAILURE;
+       }
+       buf_size = 7;
+       boottime->set_mem(buf, sizeof(buf), 0);
+       boottime->copy_mem(buf, "U-Boot", buf_size);
+       ret = file->write(file, &buf_size, buf);
+       if (ret != EFI_SUCCESS || buf_size != 7) {
+               efi_st_error("Failed to write file\n");
+               return EFI_ST_FAILURE;
+       }
+       ret = file->close(file);
+       if (ret != EFI_SUCCESS) {
+               efi_st_error("Failed to close file\n");
+               return EFI_ST_FAILURE;
+       }
+       ret = root->close(root);
+       /* Verify file */
+       boottime->set_mem(buf, sizeof(buf), 0);
+       ret = root->open(root, &file, (s16 *)L"u-boot.txt", EFI_FILE_MODE_READ,
+                        0);
+       if (ret != EFI_SUCCESS) {
+               efi_st_error("Failed to open file\n");
+               return EFI_ST_FAILURE;
+       }
+       buf_size = sizeof(buf) - 1;
+       ret = file->read(file, &buf_size, buf);
+       if (ret != EFI_SUCCESS) {
+               efi_st_error("Failed to read file\n");
+               return EFI_ST_FAILURE;
+       }
+       if (buf_size != 7) {
+               efi_st_error("Wrong number of bytes read: %u\n",
+                            (unsigned int) buf_size);
+               return EFI_ST_FAILURE;
+       }
+       if (efi_st_memcmp(buf, "U-Boot", 7)) {
+               efi_st_error("Unexpected file content %s\n", buf);
+               return EFI_ST_FAILURE;
+       }
+       ret = file->close(file);
+       if (ret != EFI_SUCCESS) {
+               efi_st_error("Failed to close file\n");
+               return EFI_ST_FAILURE;
+       }
+       ret = root->close(root);
        if (ret != EFI_SUCCESS) {
                efi_st_error("Failed to close volume\n");
                return EFI_ST_FAILURE;
-- 
2.17.0

_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to