summaryrefslogtreecommitdiff
path: root/tests/test-mbrtowc.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-mbrtowc.c')
-rw-r--r--tests/test-mbrtowc.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/tests/test-mbrtowc.c b/tests/test-mbrtowc.c
index 5477677c..d24b93e7 100644
--- a/tests/test-mbrtowc.c
+++ b/tests/test-mbrtowc.c
@@ -1,5 +1,5 @@
/* Test of conversion of multibyte character to wide character.
- Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2008-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -46,10 +46,7 @@ main (int argc, char *argv[])
memset (&state, '\0', sizeof (mbstate_t));
wc = (wchar_t) 0xBADFACE;
ret = mbrtowc (&wc, "x", 0, &state);
- /* gnulib's implementation returns (size_t)(-2).
- The AIX 5.1 implementation returns (size_t)(-1).
- glibc's implementation returns 0. */
- ASSERT (ret == (size_t)(-2) || ret == (size_t)(-1) || ret == 0);
+ ASSERT (ret == (size_t)(-2));
ASSERT (mbsinit (&state));
}
@@ -143,6 +140,11 @@ main (int argc, char *argv[])
ASSERT (mbsinit (&state));
input[1] = '\0';
+ /* Test support of NULL first argument. */
+ ret = mbrtowc (NULL, input + 2, 3, &state);
+ ASSERT (ret == 1);
+ ASSERT (mbsinit (&state));
+
wc = (wchar_t) 0xBADFACE;
ret = mbrtowc (&wc, input + 2, 3, &state);
ASSERT (ret == 1);
@@ -192,6 +194,11 @@ main (int argc, char *argv[])
ASSERT (mbsinit (&state));
input[2] = '\0';
+ /* Test support of NULL first argument. */
+ ret = mbrtowc (NULL, input + 3, 4, &state);
+ ASSERT (ret == 2);
+ ASSERT (mbsinit (&state));
+
wc = (wchar_t) 0xBADFACE;
ret = mbrtowc (&wc, input + 3, 4, &state);
ASSERT (ret == 2);
@@ -250,6 +257,11 @@ main (int argc, char *argv[])
ASSERT (mbsinit (&state));
input[4] = '\0';
+ /* Test support of NULL first argument. */
+ ret = mbrtowc (NULL, input + 5, 3, &state);
+ ASSERT (ret == 2);
+ ASSERT (mbsinit (&state));
+
wc = (wchar_t) 0xBADFACE;
ret = mbrtowc (&wc, input + 5, 3, &state);
ASSERT (ret == 2);
@@ -293,6 +305,11 @@ main (int argc, char *argv[])
ASSERT (mbsinit (&state));
input[2] = '\0';
+ /* Test support of NULL first argument. */
+ ret = mbrtowc (NULL, input + 3, 6, &state);
+ ASSERT (ret == 4);
+ ASSERT (mbsinit (&state));
+
wc = (wchar_t) 0xBADFACE;
ret = mbrtowc (&wc, input + 3, 6, &state);
ASSERT (ret == 4);