From 04f08f4f65e543575bd5eae6eed9143d38c84ccf Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 26 Nov 2007 23:25:59 +0000 Subject: [PATCH] Patch by Vasilis Kaoutsis: * Added pthreads posix test suite tests to run script and image. * Improved output for said tests. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23002 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/jam/HaikuImage | 11 ++++++ .../interfaces/pthread_getspecific/1-1.c | 10 +++--- .../interfaces/pthread_getspecific/3-1.c | 8 ++--- .../interfaces/pthread_key_create/1-1.c | 10 +++--- .../interfaces/pthread_key_create/1-2.c | 12 +++---- .../interfaces/pthread_key_create/2-1.c | 8 ++--- .../interfaces/pthread_key_create/3-1.c | 12 +++---- .../interfaces/pthread_key_delete/1-1.c | 6 ++-- .../interfaces/pthread_key_delete/1-2.c | 8 ++--- .../interfaces/pthread_key_delete/2-1.c | 14 ++++---- .../interfaces/pthread_setspecific/1-1.c | 10 +++--- .../interfaces/pthread_setspecific/1-2.c | 14 ++++---- .../posix/posixtestsuite/run_posix_tests.sh | 34 +++++++++++++++++-- 13 files changed, 98 insertions(+), 59 deletions(-) diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 4bc1dea8b0..5ca6cc1556 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -446,6 +446,17 @@ if $(HAIKU_ADD_POSIX_TEST_SUITE_TO_IMAGE) { AddFilesToHaikuImage home posixtestsuite conformance interfaces sigset : sigset_1-1 sigset_2-1 sigset_3-1 sigset_4-1 sigset_5-1 sigset_6-1 sigset_7-1 sigset_8-1 sigset_9-1 sigset_10-1 ; + + # add pthreads tests + AddFilesToHaikuImage home posixtestsuite conformance interfaces pthread_getspecific + : pthread_getspecific_1-1 pthread_getspecific_3-1 ; + AddFilesToHaikuImage home posixtestsuite conformance interfaces pthread_key_create + : pthread_key_create_1-1 pthread_key_create_1-2 pthread_key_create_2-1 + pthread_key_create_3-1 ; + AddFilesToHaikuImage home posixtestsuite conformance interfaces pthread_key_delete + : pthread_key_delete_1-1 pthread_key_delete_1-2 pthread_key_delete_2-1 ; + AddFilesToHaikuImage home posixtestsuite conformance interfaces pthread_setspecific + : pthread_setspecific_1-1 pthread_setspecific_1-2 ; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_getspecific/1-1.c b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_getspecific/1-1.c index 5ad8cfcd7c..3cb0187496 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_getspecific/1-1.c +++ b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_getspecific/1-1.c @@ -37,13 +37,13 @@ int main() { if(pthread_key_create(&keys[i], NULL) != 0) { - printf("Error: pthread_key_create() failed\n"); + printf("pthread_getspecific_1-1 Error: pthread_key_create() failed\n"); return PTS_UNRESOLVED; } else { if(pthread_setspecific(keys[i], (void *)(long)(i + KEY_VALUE)) != 0) { - printf("Error: pthread_setspecific() failed\n"); + printf("pthread_getspecific_1-1 Error: pthread_setspecific() failed\n"); return PTS_UNRESOLVED; } @@ -55,18 +55,18 @@ int main() rc = pthread_getspecific(keys[i]); if(rc != (void *)(long)(i + KEY_VALUE)) { - printf("Test FAILED: Did not return correct value of thread-specific key, expected %d, but got %ld\n", (i + KEY_VALUE), (long)rc); + printf("pthread_getspecific_1-1 Test FAILED: Did not return correct value of thread-specific key, expected %d, but got %ld\n", (i + KEY_VALUE), (long)rc); return PTS_FAIL; } else { if(pthread_key_delete(keys[i]) != 0) { - printf("Error: pthread_key_delete() failed\n"); + printf("pthread_getspecific_1-1 Error: pthread_key_delete() failed\n"); return PTS_UNRESOLVED; } } } - printf("Test PASSED\n"); + printf("pthread_getspecific_1-1: Test PASSED\n"); return PTS_PASS; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_getspecific/3-1.c b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_getspecific/3-1.c index 6957568af4..d31e2d1344 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_getspecific/3-1.c +++ b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_getspecific/3-1.c @@ -30,23 +30,23 @@ int main() if(pthread_key_create(&key, NULL) != 0) { - printf("Error: pthread_key_create() failed\n"); + printf("pthread_getspecific_3-1 Error: pthread_key_create() failed\n"); return PTS_UNRESOLVED; } rc = pthread_getspecific(key); if(rc != NULL) { - printf("Test FAILED: Did not return correct value, expected NULL, but got %ld\n", (long)rc); + printf("pthread_getspecific_3-1 Test FAILED: Did not return correct value, expected NULL, but got %ld\n", (long)rc); return PTS_FAIL; } if(pthread_key_delete(key) != 0) { - printf("Error: pthread_key_delete() failed\n"); + printf("pthread_getspecific_3-1 Error: pthread_key_delete() failed\n"); return PTS_UNRESOLVED; } - printf("Test PASSED\n"); + printf("pthread_getspecific_3-1: Test PASSED\n"); return PTS_PASS; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/1-1.c b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/1-1.c index 0fff2ac3a9..d77b670b53 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/1-1.c +++ b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/1-1.c @@ -40,13 +40,13 @@ int main() { if(pthread_key_create(&keys[i], NULL) != 0) { - printf("Error: pthread_key_create() failed\n"); + printf("pthread_key_create_1-1 Error: pthread_key_create() failed\n"); return PTS_UNRESOLVED; } else { if(pthread_setspecific(keys[i], (void *)(long)(i + KEY_VALUE)) != 0) { - printf("Error: pthread_setspecific() failed\n"); + printf("pthread_key_create_1-1 Error: pthread_setspecific() failed\n"); return PTS_UNRESOLVED; } @@ -58,18 +58,18 @@ int main() rc = pthread_getspecific(keys[i]); if(rc != (void *)(long)(i + KEY_VALUE)) { - printf("Test FAILED: Did not return correct value of thread-specific key, expected %ld, but got %ld\n", (long)(i + KEY_VALUE), (long)rc); + printf("pthread_key_create_1-1 Test FAILED: Did not return correct value of thread-specific key, expected %ld, but got %ld\n", (long)(i + KEY_VALUE), (long)rc); return PTS_FAIL; } else { if(pthread_key_delete(keys[i]) != 0) { - printf("Error: pthread_key_delete() failed\n"); + printf("pthread_key_create_1-1 Error: pthread_key_delete() failed\n"); return PTS_UNRESOLVED; } } } - printf("Test PASSED\n"); + printf("pthread_key_create_1-1: Test PASSED\n"); return PTS_PASS; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/1-2.c b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/1-2.c index ccf56a4c49..de01d514fe 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/1-2.c +++ b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/1-2.c @@ -36,7 +36,7 @@ void *a_thread_func() /* Set the key to KEY_VALUE */ if(pthread_setspecific(keys[i], (void *)(KEY_VALUE)) != 0) { - printf("Error: pthread_setspecific() failed\n"); + printf("pthread_key_create_1-2 Error: pthread_setspecific() failed\n"); pthread_exit((void*)PTS_FAIL); } @@ -53,7 +53,7 @@ int main() { if(pthread_key_create(&keys[i], NULL) != 0) { - printf("Error: pthread_key_create() failed\n"); + printf("pthread_key_create_1-2 Error: pthread_key_create() failed\n"); return PTS_UNRESOLVED; } } @@ -65,24 +65,24 @@ int main() /* Create a thread */ if(pthread_create(&new_th, NULL, a_thread_func, NULL) != 0) { - perror("Error creating thread\n"); + perror("pthread_key_create_1-2 Error creating thread\n"); return PTS_UNRESOLVED; } /* Wait for thread to end */ if(pthread_join(new_th, &value_ptr) != 0) { - perror("Error in pthread_join\n"); + perror("pthread_key_create_1-2 Error in pthread_join\n"); return PTS_UNRESOLVED; } if(value_ptr == (void*) PTS_FAIL) { - printf("Test FAILED: Could not use a certain key value to set for many keys\n"); + printf("pthread_key_create_1-2: Test FAILED: Could not use a certain key value to set for many keys\n"); return PTS_FAIL; } } - printf("Test PASSED\n"); + printf("pthread_key_create_1-2: Test PASSED\n"); return PTS_PASS; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/2-1.c b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/2-1.c index 78e3bc1fb1..adad64c9b3 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/2-1.c +++ b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/2-1.c @@ -33,13 +33,13 @@ int main() rc = pthread_getspecific(key); if(rc != NULL) { - printf("Test FAILED\n"); + printf("pthread_key_create_2-1 Test FAILED\n"); return PTS_FAIL; } if(pthread_key_create(&key, NULL) != 0) { - printf("Error: pthread_key_create() failed\n"); + printf("pthread_key_create_2-1 pthread_key_create_2-1 Error: pthread_key_create() failed\n"); return PTS_UNRESOLVED; } else { @@ -48,12 +48,12 @@ int main() rc = pthread_getspecific(key); if(rc != NULL) { - printf("Test FAILED\n"); + printf("pthread_key_create_2-1 Test FAILED\n"); return PTS_FAIL; } } - printf("Test PASSED\n"); + printf("pthread_key_create_2-1: Test PASSED\n"); return PTS_PASS; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/3-1.c b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/3-1.c index 56cb1f8cae..11068fd474 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/3-1.c +++ b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_create/3-1.c @@ -44,7 +44,7 @@ void *a_thread_func() /* Set the value of the key to a value */ if(pthread_setspecific(key, (void *)(KEY_VALUE)) != 0) { - printf("Error: pthread_setspecific() failed\n"); + printf("pthread_key_create_3-1 Error: pthread_setspecific() failed\n"); pthread_exit((void*) PTS_UNRESOLVED); } @@ -62,31 +62,31 @@ int main() /* Create a key with a destructor function */ if(pthread_key_create(&key, dest_func) != 0) { - printf("Error: pthread_key_create() failed\n"); + printf("pthread_key_create_3-1 Error: pthread_key_create() failed\n"); pthread_exit((void*) PTS_UNRESOLVED); } /* Create a thread */ if(pthread_create(&new_th, NULL, a_thread_func, NULL) != 0) { - perror("Error creating thread\n"); + perror("pthread_key_create_3-1 Error creating thread\n"); return PTS_UNRESOLVED; } /* Wait for the thread's return */ if(pthread_join(new_th, NULL) != 0) { - perror("Error in pthread_join()\n"); + perror("pthread_key_create_3-1 Error in pthread_join()\n"); return PTS_UNRESOLVED; } /* Check if the destructor was called */ if(dest_cnt == 0) { - printf("Test FAILED: Destructor not called\n"); + printf("pthread_key_create_3-1 Test FAILED: Destructor not called\n"); return PTS_FAIL; } - printf("Test PASSED\n"); + printf("pthread_key_create_3-1: Test PASSED\n"); return PTS_PASS; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/1-1.c b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/1-1.c index bda6610fc5..70e25eb863 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/1-1.c +++ b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/1-1.c @@ -39,18 +39,18 @@ int main() { if(pthread_key_create(&keys[i], NULL) != 0) { - printf("Error: pthread_key_create() failed\n"); + printf("pthread_key_delete_1-1 Error: pthread_key_create() failed\n"); return PTS_UNRESOLVED; } if(pthread_key_delete(keys[i]) != 0) { - printf("Test FAILED\n"); + printf("pthread_key_delete_1-1 Test FAILED\n"); return PTS_FAIL; } } - printf("Test PASSED\n"); + printf("pthread_key_delete_1-1: Test PASSED\n"); return PTS_PASS; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/1-2.c b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/1-2.c index 223d710a99..a847e226e3 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/1-2.c +++ b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/1-2.c @@ -40,23 +40,23 @@ int main() { if(pthread_key_create(&keys[i], NULL) != 0) { - printf("Error: pthread_key_create() failed\n"); + printf("pthread_key_delete_1-2 Error: pthread_key_create() failed\n"); return PTS_UNRESOLVED; } if(pthread_setspecific(keys[i], (void*)(long)(KEY_VALUE + i)) != 0) { - printf("Error: pthread_setspecific failed\n"); + printf("pthread_key_delete_1-2 Error: pthread_setspecific failed\n"); return PTS_UNRESOLVED; } if(pthread_key_delete(keys[i]) != 0) { - printf("Test FAILED\n"); + printf("pthread_key_delete_1-2 Test FAILED\n"); return PTS_FAIL; } } - printf("Test PASSED\n"); + printf("pthread_key_delete_1-2: Test PASSED\n"); return PTS_PASS; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/2-1.c b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/2-1.c index 451ae4d36d..346388aec3 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/2-1.c +++ b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_key_delete/2-1.c @@ -47,7 +47,7 @@ void *a_thread_func() /* Set the value of the key to a value */ if(pthread_setspecific(key, (void *)(KEY_VALUE)) != 0) { - printf("Error: pthread_setspecific() failed\n"); + printf("pthread_key_delete_2-1 Error: pthread_setspecific() failed\n"); pthread_exit((void*) PTS_UNRESOLVED); } @@ -65,21 +65,21 @@ int main() /* Create a key with a destructor function */ if(pthread_key_create(&key, dest_func) != 0) { - printf("Error: pthread_key_create() failed\n"); + printf("pthread_key_delete_2-1 Error: pthread_key_create() failed\n"); pthread_exit((void*) PTS_UNRESOLVED); } /* Create a thread */ if(pthread_create(&new_th, NULL, a_thread_func, NULL) != 0) { - perror("Error creating thread\n"); + perror("pthread_key_delete_2-1 Error creating thread\n"); return PTS_UNRESOLVED; } /* Wait for the thread's return */ if(pthread_join(new_th, NULL) != 0) { - perror("Error in pthread_join()\n"); + perror("pthread_key_delete_2-1 Error in pthread_join()\n"); return PTS_UNRESOLVED; } @@ -89,15 +89,15 @@ int main() { if(dest_cnt == 0) { - printf("Error calling the key destructor function\n"); + printf("pthread_key_delete_2-1 Error calling the key destructor function\n"); return PTS_UNRESOLVED; } else { - printf("Test FAILED: pthread_key_delete failed to be called from the destructor function\n"); + printf("pthread_key_delete_2-1 Test FAILED: pthread_key_delete failed to be called from the destructor function\n"); return PTS_FAIL; } } - printf("Test PASSED\n"); + printf("pthread_key_delete_2-1: Test PASSED\n"); return PTS_PASS; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_setspecific/1-1.c b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_setspecific/1-1.c index c2c22ce8ee..18eb9507a4 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_setspecific/1-1.c +++ b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_setspecific/1-1.c @@ -38,13 +38,13 @@ int main() { if(pthread_key_create(&keys[i], NULL) != 0) { - printf("Error: pthread_key_create() failed\n"); + printf("pthread_setspecific_1-1 Error: pthread_key_create() failed\n"); return PTS_UNRESOLVED; } else { if(pthread_setspecific(keys[i], (void *)(long)(i + KEY_VALUE)) != 0) { - printf("Test FAILED: Could not set the value of the key to %d\n", (i + KEY_VALUE)); + printf("pthread_setspecific_1-1 Test FAILED: Could not set the value of the key to %d\n", (i + KEY_VALUE)); return PTS_FAIL; } @@ -56,18 +56,18 @@ int main() rc = pthread_getspecific(keys[i]); if(rc != (void *)(long)(i + KEY_VALUE)) { - printf("Test FAILED: Did not return correct value of thread-specific key, expected %ld, but got %ld\n", (long)(i + KEY_VALUE), (long)rc); + printf("pthread_setspecific_1-1 Test FAILED: Did not return correct value of thread-specific key, expected %ld, but got %ld\n", (long)(i + KEY_VALUE), (long)rc); return PTS_FAIL; } else { if(pthread_key_delete(keys[i]) != 0) { - printf("Error: pthread_key_delete() failed\n"); + printf("pthread_setspecific_1-1 Error: pthread_key_delete() failed\n"); return PTS_UNRESOLVED; } } } - printf("Test PASSED\n"); + printf("pthread_setspecific_1-1: Test PASSED\n"); return PTS_PASS; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_setspecific/1-2.c b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_setspecific/1-2.c index e08ddfd38f..f1501dc27d 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_setspecific/1-2.c +++ b/src/tests/system/libroot/posix/posixtestsuite/conformance/interfaces/pthread_setspecific/1-2.c @@ -40,7 +40,7 @@ void *a_thread_func() * that we bind for the main thread) */ if(pthread_setspecific(key, (void *)(KEY_VALUE_2)) != 0) { - printf("Test FAILED: Could not set the value of the key to %d\n", (KEY_VALUE_2)); + printf("pthread_setspecific_1-2 Test FAILED: Could not set the value of the key to %d\n", (KEY_VALUE_2)); pthread_exit((void*)PTS_FAIL); return NULL; } @@ -60,21 +60,21 @@ int main() /* Create the key */ if(pthread_key_create(&key, NULL) != 0) { - printf("Error: pthread_key_create() failed\n"); + printf("pthread_setspecific_1-2 Error: pthread_key_create() failed\n"); return PTS_UNRESOLVED; } /* Bind a value for this main thread */ if(pthread_setspecific(key, (void *)(KEY_VALUE_1)) != 0) { - printf("Test FAILED: Could not set the value of the key to %d\n", (KEY_VALUE_1)); + printf("pthread_setspecific_1-2 Test FAILED: Could not set the value of the key to %d\n", (KEY_VALUE_1)); return PTS_FAIL; } /* Create another thread. This thread will also bind a value to the key */ if(pthread_create(&new_th, NULL, a_thread_func, NULL) != 0) { - printf("Error: in pthread_create()\n"); + printf("pthread_setspecific_1-2 Error: in pthread_create()\n"); return PTS_UNRESOLVED; } @@ -88,16 +88,16 @@ int main() * thread, they should be different. */ if(rc1 != (void *)(KEY_VALUE_1)) { - printf("Test FAILED: Incorrect value bound to key, expected %d, got %ld\n", KEY_VALUE_1, (long)rc1); + printf("pthread_setspecific_1-2 Test FAILED: Incorrect value bound to key, expected %d, got %ld\n", KEY_VALUE_1, (long)rc1); return PTS_FAIL; } if(rc2 != (void *)(KEY_VALUE_2)) { - printf("Test FAILED: Incorrect value bound to key, expected %d, got %ld\n", KEY_VALUE_2, (long)rc2); + printf("pthread_setspecific_1-2 Test FAILED: Incorrect value bound to key, expected %d, got %ld\n", KEY_VALUE_2, (long)rc2); return PTS_FAIL; } - printf("Test PASSED\n"); + printf("pthread_setspecific_1-2: Test PASSED\n"); return PTS_PASS; } diff --git a/src/tests/system/libroot/posix/posixtestsuite/run_posix_tests.sh b/src/tests/system/libroot/posix/posixtestsuite/run_posix_tests.sh index ecf971f220..47f98151b9 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/run_posix_tests.sh +++ b/src/tests/system/libroot/posix/posixtestsuite/run_posix_tests.sh @@ -30,7 +30,8 @@ standard_tests() conformance/interfaces/difftime/difftime_1-1 echo "" echo "fork()" - conformance/interfaces/fork/fork_3-1 +# conformance/interfaces/fork/fork_3-1 + echo "fork_3-1: FIXME : test sometimes fails, see bug #1639" conformance/interfaces/fork/fork_4-1 conformance/interfaces/fork/fork_6-1 conformance/interfaces/fork/fork_8-1 @@ -46,6 +47,32 @@ asynchronous_input_output_tests() } +threads_tests() +{ + echo "pthread_getspecific()" + conformance/interfaces/pthread_getspecific/pthread_getspecific_1-1 + conformance/interfaces/pthread_getspecific/pthread_getspecific_3-1 + echo "" + echo "pthread_key_create()" + conformance/interfaces/pthread_key_create/pthread_key_create_1-1 +# conformance/interfaces/pthread_key_create/pthread_key_create_1-2 + echo "pthread_key_create_1-2: FIXME: test fails, see bug #1644" +# conformance/interfaces/pthread_key_create/pthread_key_create_2-1 + echo "pthread_key_create_2-1: FIXME: test invokes the debugger, see bug #1646" + conformance/interfaces/pthread_key_create/pthread_key_create_3-1 + echo "" + echo "pthread_key_delete()" + conformance/interfaces/pthread_key_delete/pthread_key_delete_1-1 + conformance/interfaces/pthread_key_delete/pthread_key_delete_1-2 +# conformance/interfaces/pthread_key_delete/pthread_key_delete_2-1 + echo "pthread_key_delete_2-1: FIXME: test blocks, see bug #1642" + echo "" + echo "pthread_setspecific()" + conformance/interfaces/pthread_setspecific/pthread_setspecific_1-1 + conformance/interfaces/pthread_setspecific/pthread_setspecific_1-2 +} + + signals_tests() { echo "kill()" @@ -112,6 +139,7 @@ all_tests() standard_tests asynchronous_input_output_tests signals_tests + threads_tests } @@ -135,7 +163,7 @@ sleep 1 #TODO sem* ;; THR) echo "Executing threads tests" - #TODO pthread_* + threads_tests ;; TMR) echo "Executing timers and clocks tests" #TODO time* *time clock* nanosleep @@ -155,4 +183,4 @@ sleep 1 esac -echo "**** Tests Complete ****" +echo "**** Tests Completed ****"