xref: /haiku/src/tests/system/libroot/posix/tst-wcsnlen.c (revision 02354704729d38c3b078c696adc1bbbd33cbcf72)
1 /* Copyright (C) 1999 Free Software Foundation, Inc.
2  This file is part of the GNU C Library.
3  Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
4 
5  The GNU C Library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public
7  License as published by the Free Software Foundation; either
8  version 2.1 of the License, or (at your option) any later version.
9 
10  The GNU C Library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public
16  License along with the GNU C Library; if not, write to the Free
17  Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18  02111-1307 USA.  */
19 
20 #include <stdio.h>
21 #include <stdlib.h>
22 #include <wchar.h>
23 
24 #define TEST(Str, Max, Exp)													\
25 	n = wcsnlen (L##Str, Max);												\
26   	if (n != Exp) {															\
27     	result = 1;															\
28     	printf ("wcsnlen (L\"%s\", %d) = %d, not %d\n", Str, Max, n, Exp);	\
29     }
30 
31 
32 int
33 main(void)
34 {
35 	int result = 0;
36 	int n;
37 
38 	TEST ("0123456789", 0, 0);
39 	TEST ("0123456789", 1, 1);
40 	TEST ("0123456789", 2, 2);
41 	TEST ("0123456789", 3, 3);
42 	TEST ("0123456789", 4, 4);
43 	TEST ("0123456789", 5, 5);
44 	TEST ("0123456789", 6, 6);
45 	TEST ("0123456789", 7, 7);
46 	TEST ("0123456789", 8, 8);
47 	TEST ("0123456789", 9, 9);
48 
49 	TEST ("01234", 9, 5);
50 
51 	if (result == 0)
52 		printf("all ok.\n");
53 
54 	return result;
55 }
56