Add tests for mbstowcs and wcstombs.

This commit is contained in:
Ulrich Drepper 2005-08-20 01:02:04 +00:00
parent c06aad090c
commit 2a81f17880

View File

@ -1104,6 +1104,24 @@ do_test (void)
CHK_FAIL_END CHK_FAIL_END
#endif #endif
cp = "A";
if (mbstowcs (wenough, cp, 10) != 1)
{
puts ("first mbstowcs test failed");
ret = 1;
}
#if __USE_FORTIFY_LEVEL >= 1
/* We know the wchar_t encoding is ISO 10646. So pick a
character which has a multibyte representation which does not
fit. */
CHK_FAIL_START
wchar_t wsmallbuf[2];
cp = "ABC";
mbstowcs (wsmallbuf, cp, 10);
CHK_FAIL_END
#endif
memset (&s, '\0', sizeof (s)); memset (&s, '\0', sizeof (s));
cp = "A"; cp = "A";
if (mbsnrtowcs (wenough, &cp, 1, 10, &s) != 1) if (mbsnrtowcs (wenough, &cp, 1, 10, &s) != 1)
@ -1142,6 +1160,24 @@ do_test (void)
CHK_FAIL_END CHK_FAIL_END
#endif #endif
wcp = L"A";
if (wcstombs (enough, wcp, 10) != 1)
{
puts ("first wcstombs test failed");
ret = 1;
}
#if __USE_FORTIFY_LEVEL >= 1
/* We know the wchar_t encoding is ISO 10646. So pick a
character which has a multibyte representation which does not
fit. */
CHK_FAIL_START
char smallbuf[2];
wcp = L"ABC";
wcstombs (smallbuf, wcp, 10);
CHK_FAIL_END
#endif
memset (&s, '\0', sizeof (s)); memset (&s, '\0', sizeof (s));
wcp = L"A"; wcp = L"A";
if (wcsnrtombs (enough, &wcp, 1, 10, &s) != 1) if (wcsnrtombs (enough, &wcp, 1, 10, &s) != 1)