newlib-cygwin/winsup/testsuite/winsup.api/pthread/create2.c

75 lines
1.1 KiB
C

/*
* File: create2.c
*
* Test Synopsis:
* - Test that threads have a Win32 handle when started.
*
* Test Method (Validation or Falsification):
* - Statistical, not absolute (depends on sample size).
*
* Requirements Tested:
* -
*
* Features Tested:
* -
*
* Cases Tested:
* -
*
* Description:
* -
*
* Environment:
* -
*
* Input:
* - None.
*
* Output:
* - File name, Line number, and failed expression on failure.
* - No output on success.
*
* Assumptions:
* -
*
* Pass Criteria:
* - Process returns zero exit status.
*
* Fail Criteria:
* - Process returns non-zero exit status.
*/
#include "test.h"
const int NUMTHREADS = 10000;
static int washere = 0;
void * func(void * arg)
{
washere = 1;
return (void *) 0;
}
int
main()
{
pthread_t t;
pthread_attr_t attr;
void * result = NULL;
int i;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
for (i = 0; i < NUMTHREADS; i++)
{
washere = 0;
assert(pthread_create(&t, &attr, func, NULL) == 0);
pthread_join(t, &result);
assert(washere == 1);
}
return 0;
}