Upload Tizen:Base source
[external/gdb.git] / sim / testsuite / sim / cris / c / pipe3.c
1 /* Check that TRT happens when error on pipe call.
2 #notarget: cris*-*-elf
3 */
4
5 #include <stddef.h>
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <unistd.h>
9 #include <errno.h>
10 #include <limits.h>
11
12 int main (void)
13 {
14   int i;
15   int filemax;
16
17 #ifdef OPEN_MAX
18   filemax = OPEN_MAX;
19 #else
20   filemax = sysconf (_SC_OPEN_MAX);
21 #endif
22
23   /* Check that TRT happens when error on pipe call.  */
24   for (i = 0; i < filemax + 1; i++)
25     {
26       int pip[2];
27       if (pipe (pip) != 0)
28         {
29           /* Shouldn't happen too early.  */
30           if (i < filemax / 2 - 3 - 1)
31             {
32               fprintf (stderr, "i: %d\n", i);
33               abort ();
34             }
35           if (errno != EMFILE)
36             {
37               perror ("pipe");
38               abort ();
39             }
40           goto ok;
41         }
42     }
43   abort ();
44
45 ok:
46   printf ("pass\n");
47   exit (0);
48 }