mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-16 07:20:46 +00:00
LibC: Implement wcsnrtombs
This commit is contained in:
parent
e618602433
commit
552ae77f0d
Notes:
sideshowbarker
2024-07-18 02:03:49 +09:00
Author: https://github.com/timschumi
Commit: 552ae77f0d
Pull-request: https://github.com/SerenityOS/serenity/pull/10569
2 changed files with 40 additions and 5 deletions
|
@ -364,6 +364,32 @@ TEST_CASE(wcsrtombs)
|
|||
EXPECT_EQ(src, nullptr);
|
||||
}
|
||||
|
||||
TEST_CASE(wcsnrtombs)
|
||||
{
|
||||
mbstate_t state = {};
|
||||
const wchar_t good_chars[] = { L'\U0001F41E', L'\U0001F41E', L'\0' };
|
||||
const wchar_t* src;
|
||||
size_t ret = 0;
|
||||
|
||||
// Convert nothing.
|
||||
src = good_chars;
|
||||
ret = wcsnrtombs(nullptr, &src, 0, 0, &state);
|
||||
EXPECT_EQ(ret, 0ul);
|
||||
EXPECT_EQ(src, good_chars);
|
||||
|
||||
// Convert one wide char.
|
||||
src = good_chars;
|
||||
ret = wcsnrtombs(nullptr, &src, 1, 0, &state);
|
||||
EXPECT_EQ(ret, 4ul);
|
||||
EXPECT_EQ(src, good_chars + 1);
|
||||
|
||||
// Encounter a null character.
|
||||
src = good_chars;
|
||||
ret = wcsnrtombs(nullptr, &src, 4, 0, &state);
|
||||
EXPECT_EQ(ret, 8ul);
|
||||
EXPECT_EQ(src, nullptr);
|
||||
}
|
||||
|
||||
TEST_CASE(mbsrtowcs)
|
||||
{
|
||||
mbstate_t state = {};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue