Mercurial > hg > octave-lojdl > gnulib-hg
annotate tests/test-mbsinit.c @ 14344:5cdebc45677d
mbsinit: Don't crash for a NULL argument.
* lib/mbsinit.c (mbsinit): When the argument is NULL, return 1.
* tests/test-mbsinit.c (mbsinit): Check this behaviour.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 13 Feb 2011 18:04:55 +0100 |
parents | 97fc9a21a8fb |
children | 8250f2777afc |
rev | line source |
---|---|
10908 | 1 /* Test of test for initial conversion state. |
14079
97fc9a21a8fb
maint: update almost all copyright ranges to include 2011
Jim Meyering <meyering@redhat.com>
parents:
12559
diff
changeset
|
2 Copyright (C) 2008-2011 Free Software Foundation, Inc. |
10908 | 3 |
4 This program is free software: you can redistribute it and/or modify | |
5 it under the terms of the GNU General Public License as published by | |
6 the Free Software Foundation; either version 3 of the License, or | |
7 (at your option) any later version. | |
8 | |
9 This program is distributed in the hope that it will be useful, | |
10 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 GNU General Public License for more details. | |
13 | |
14 You should have received a copy of the GNU General Public License | |
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */ | |
16 | |
17 /* Written by Bruno Haible <bruno@clisp.org>, 2008. */ | |
18 | |
19 #include <config.h> | |
20 | |
21 #include <wchar.h> | |
22 | |
12489 | 23 #include "signature.h" |
24 SIGNATURE_CHECK (mbsinit, int, (const mbstate_t *)); | |
25 | |
10908 | 26 #include <locale.h> |
27 | |
12496
a48d3d749ca5
Refactor common macros used in tests.
Bruno Haible <bruno@clisp.org>
parents:
12489
diff
changeset
|
28 #include "macros.h" |
10908 | 29 |
30 int | |
31 main (int argc, char *argv[]) | |
32 { | |
33 static mbstate_t state; | |
34 | |
14344
5cdebc45677d
mbsinit: Don't crash for a NULL argument.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
35 ASSERT (mbsinit (NULL)); |
5cdebc45677d
mbsinit: Don't crash for a NULL argument.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
36 |
10908 | 37 ASSERT (mbsinit (&state)); |
38 | |
39 if (argc > 1) | |
40 { | |
41 static const char input[1] = "\303"; | |
42 wchar_t wc; | |
43 size_t ret; | |
44 | |
45 /* configure should already have checked that the locale is supported. */ | |
46 if (setlocale (LC_ALL, "") == NULL) | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
10908
diff
changeset
|
47 return 1; |
10908 | 48 |
49 ret = mbrtowc (&wc, input, 1, &state); | |
50 ASSERT (ret == (size_t)(-2)); | |
51 ASSERT (!mbsinit (&state)); | |
52 } | |
53 | |
54 return 0; | |
55 } |