1 /* Copyright (C) 2003-2022 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3 
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8 
9    The GNU C Library 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 GNU
12    Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, see
16    <https://www.gnu.org/licenses/>.  */
17 
18 /* Test whether it is possible to create a thread with PTHREAD_STACK_MIN
19    stack size.  */
20 
21 #include <pthread.h>
22 #include <stdlib.h>
23 #include <stdio.h>
24 #include <limits.h>
25 
26 static int seen;
27 
28 static void *
tf(void * p)29 tf (void *p)
30 {
31   ++seen;
32   return NULL;
33 }
34 
35 static int
do_test(void)36 do_test (void)
37 {
38   pthread_attr_t attr;
39   pthread_attr_init (&attr);
40 
41   int result = 0;
42   int res = pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN);
43   if (res)
44     {
45       printf ("pthread_attr_setstacksize failed %d\n", res);
46       result = 1;
47     }
48 
49   /* Create the thread.  */
50   pthread_t th;
51   res = pthread_create (&th, &attr, tf, NULL);
52   if (res)
53     {
54       printf ("pthread_create failed %d\n", res);
55       result = 1;
56     }
57   else
58     {
59       res = pthread_join (th, NULL);
60       if (res)
61 	{
62 	  printf ("pthread_join failed %d\n", res);
63 	  result = 1;
64 	}
65     }
66 
67   if (seen != 1)
68     {
69       printf ("seen %d != 1\n", seen);
70       result = 1;
71     }
72 
73   return result;
74 }
75 
76 
77 #define TEST_FUNCTION do_test ()
78 #include "../test-skeleton.c"
79