efi_selftest: Update StrToFat() unit test after CP473 map extension

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>
This commit is contained in:
Janne Grunau 2024-03-16 22:50:24 +01:00 committed by Heinrich Schuchardt
parent e35feb99ab
commit 9566b3b321

View 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;
}