diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/equal.c | 39 | ||||
-rw-r--r-- | tests/join.c | 12 | ||||
-rw-r--r-- | tests/self.c | 21 |
3 files changed, 72 insertions, 0 deletions
diff --git a/tests/equal.c b/tests/equal.c new file mode 100644 index 0000000..12dbfc2 --- /dev/null +++ b/tests/equal.c @@ -0,0 +1,39 @@ +/* + * Test for pthread_equal(). + * + * Depends on API functions: pthread_create(). + */ + +#include <pthread.h> +#include <stdlib.h> +#include <stdio.h> + +void * +func(void * arg) +{ + for (;;) + { /* spin */ } +} + +int +main(int argc, char * argv[]) +{ + pthread_t id[2]; + int rc; + + /* Create two threads and compare their thread IDs. + The threads will chew CPU, but ensure that their + IDs will be valid for a long time :-). */ + + pthread_create(&id[0], NULL, entry, NULL); + pthread_create(&id[1], NULL, entry, NULL); + + if (pthread_equal(id[0], id[1]) == 0) + { + /* This is impossible. */ + abort(); + } + + /* Never reached. */ + return 0; +} diff --git a/tests/join.c b/tests/join.c new file mode 100644 index 0000000..a353eae --- /dev/null +++ b/tests/join.c @@ -0,0 +1,12 @@ +/* + * Test for pthread_join(). + * + * Depends on API functions: pthread_create(). + */ + +#include <pthread.h> + +int +main(int argc, char * argv[]) +{ +} diff --git a/tests/self.c b/tests/self.c new file mode 100644 index 0000000..0addfc8 --- /dev/null +++ b/tests/self.c @@ -0,0 +1,21 @@ +/* + * Test for pthread_self(). + * + * Depends on API functions: None. + */ + +#include <pthread.h> + +int +main(int argc, char * argv[]) +{ + pthread_t id; + + /* We can't do anything with this, though, because it is not + safe to assume anything about the internal structure of + a `pthread_t'. */ + + id = pthread_self(); + + return 0; +} |