Merge glibc-ports into ports/ directory.
[platform/upstream/glibc.git] / string / tst-inlcall.c
1 /* Tester for calling inline string functions.
2    Copyright (C) 1998, 2000, 2004 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
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, see
17    <http://www.gnu.org/licenses/>.  */
18
19 #ifndef _GNU_SOURCE
20 #define _GNU_SOURCE
21 #endif
22
23 /* Make sure we test the optimized inline functions.  */
24 #define __USE_STRING_INLINES    1
25
26 #include <errno.h>
27 #include <stdio.h>
28 #include <stdlib.h>
29 #include <string.h>
30 #include <strings.h>
31 #include <fcntl.h>
32
33
34 int
35 main (void)
36 {
37   int status;
38   int errors = 0;
39   char buf1[1000];
40   char *cp;
41   char ch;
42
43   cp = strcpy (buf1, "hello world");
44   if (strcmp ("hello world", cp++) != 0)
45     {
46       puts ("strcmp test 1 failed");
47       ++errors;
48     }
49
50   cp = buf1;
51   if (strcmp (cp++, "hello world") != 0)
52     {
53       puts ("strcmp test 2 failed");
54       ++errors;
55     }
56
57   ch = 'h';
58   if (strchr ("hello world", ch++) == NULL)
59     {
60       puts ("strchr test 1 failed");
61       ++errors;
62     }
63
64   const char * const hw = "hello world";
65   if (strpbrk (hw, "o") - hw != 4)
66     {
67       puts ("strpbrk test 1 failed");
68       ++errors;
69     }
70
71   if (errors == 0)
72     {
73       status = EXIT_SUCCESS;
74       puts ("No errors.");
75     }
76   else
77     {
78       status = EXIT_FAILURE;
79       printf ("%d errors.\n", errors);
80     }
81   return status;
82 }