]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
efi_selftest: Update StrToFat() unit test after CP473 map extension
authorJanne Grunau <j@jannau.net>
Sat, 16 Mar 2024 21:50:24 +0000 (22:50 +0100)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Thu, 21 Mar 2024 05:56:14 +0000 (06:56 +0100)
Test that Unicode code points which map to CP437 code points 1-31 are
converted to '_'. This ensures no FAT file names do not contain chars
which are control characters in other code pages (CP 1250 for example).

Signed-off-by: Janne Grunau <j@jannau.net>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_selftest/efi_selftest_unicode_collation.c

index 32c99caf35221abd7e3ece2d7bd4d15b49527f0c..ad7dfa9fb9bf673e5ffce8549cdbf15dc261f0f4 100644 (file)
@@ -220,6 +220,18 @@ static int test_str_to_fat(void)
                return EFI_ST_FAILURE;
        }
 
+       /*
+        * Test unicode code points which map to CP 437 0x01 - 0x1f are
+        * converted to '_'.
+        */
+       boottime->set_mem(fat, 16, 0);
+       ret = unicode_collation_protocol->str_to_fat(unicode_collation_protocol,
+               u"\u263a\u2666\u2022\u25d8\u2642\u2194\u00b6\u203c", 8, fat);
+       if (!ret || efi_st_strcmp_16_8(u"________", fat)) {
+               efi_st_error("str_to_fat returned %u, \"%s\"\n", ret, fat);
+               return EFI_ST_FAILURE;
+       }
+
        return EFI_ST_SUCCESS;
 }