diff options
| -rw-r--r-- | ChangeLog | 8 | ||||
| -rw-r--r-- | misc.c | 2 | ||||
| -rw-r--r-- | tests/create1.c | 19 | ||||
| -rw-r--r-- | tests/equal.c | 39 | ||||
| -rw-r--r-- | tests/equal1.c | 34 | 
5 files changed, 62 insertions, 40 deletions
| @@ -1,5 +1,7 @@  1998-10-05  Ben Elliston  <bje@cygnus.com> +	* misc.c (pthread_equal): Correct inverted logic bug. +  	* global.c (PTHREAD_MUTEX_INITIALIZER): Move to pthread.h.  	* pthread.h (PTHREAD_MUTEX_INITIALIZER): Define. @@ -17,6 +19,12 @@  	* tests/mutex3.c: New file; test for the static initialisation  	macro. Passes. + +	* tests/create1.c: New file; test pthread_create(). Passes. +	 +	* tests/equal.c: Poor test; remove. +	 +	* tests/equal1.c New file; test pthread_equal(). Passes.  1998-10-04  Ben Elliston  <bje@cygnus.com> @@ -63,5 +63,5 @@ pthread_self(void)  int  pthread_equal(pthread_t t1, pthread_t t2)  { -  return (t1 != t2); +  return (t1 == t2);  } diff --git a/tests/create1.c b/tests/create1.c new file mode 100644 index 0000000..841c565 --- /dev/null +++ b/tests/create1.c @@ -0,0 +1,19 @@ +#include <pthread.h> +#include <stdio.h> +#include <windows.h> + +void * func(void * arg) +{ +  printf("Hello world\n"); +  return 0;  +} +  +int +main() +{ +  pthread_t t; +  pthread_create(&t, NULL, func, NULL); + +  Sleep(5000); +  return 0; +} diff --git a/tests/equal.c b/tests/equal.c deleted file mode 100644 index 12dbfc2..0000000 --- a/tests/equal.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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/equal1.c b/tests/equal1.c new file mode 100644 index 0000000..3b4c758 --- /dev/null +++ b/tests/equal1.c @@ -0,0 +1,34 @@ +#include <pthread.h> +#include <stdio.h> +#include <windows.h> + +void * func(void * arg) +{ +  printf("Hello world %d\n", (int) arg); +  Sleep(2000); +  return arg; +} +  +main() +{ +        int rc; +        pthread_t t1, t2; +        rc = pthread_create(&t1, NULL, func, (void *) 1); +        rc = pthread_create(&t1, NULL, func, (void *) 2); + +	puts("testing t1 and t2: "); +        if (pthread_equal(t1, t2)) +          printf("equal\n"); +	else +	  printf("not equal\n"); + +	puts("testing t1 on itself: "); +        if (pthread_equal(t1,t1)) +          printf("equal\n"); +        else +	  printf("not equal\n"); + +        Sleep(8000); + +	return 0; +} | 
