metal-cos/tests/pthreadtest.c

49 lines
926 B
C
Raw Normal View History

2015-02-02 07:56:45 +00:00
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
void *
thread_simple(void *arg)
{
printf("thread_simple %p!\n", arg);
return arg;
}
int
main(int argc, const char *argv[])
{
int status;
pthread_t thr;
void *result;
printf("PThread Test\n");
// Simple thread test
printf("simple test\n");
status = pthread_create(&thr, NULL, thread_simple, NULL);
printf("status %d\n", status);
assert(status == 0);
status = pthread_join(thr, &result);
printf("status %d\n", status);
assert(status == 0);
assert(result == NULL);
// Return value test
printf("return value test\n");
status = pthread_create(&thr, NULL, thread_simple, (void *)1);
assert(status == 0);
status = pthread_join(thr, &result);
assert(status == 0);
assert(result == (void *)1);
printf("Success!\n");
return 0;
}