Add tests for mbstowcs and wcstombs.
authorUlrich Drepper <drepper@redhat.com>
Sat, 20 Aug 2005 01:02:04 +0000 (01:02 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 20 Aug 2005 01:02:04 +0000 (01:02 +0000)
debug/tst-chk1.c

index 755052c..e011d86 100644 (file)
@@ -1104,6 +1104,24 @@ do_test (void)
       CHK_FAIL_END
 #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));
       cp = "A";
       if (mbsnrtowcs (wenough, &cp, 1, 10, &s) != 1)
@@ -1142,6 +1160,24 @@ do_test (void)
       CHK_FAIL_END
 #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));
       wcp = L"A";
       if (wcsnrtombs (enough, &wcp, 1, 10, &s) != 1)