From ebb770f90d9a8d7f75a9d8b0e6a96ded96c617af Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Wed, 25 Jun 2014 13:46:46 -0700 Subject: [PATCH] Add a new pthread_key_delete test. Bug: https://code.google.com/p/android/issues/detail?id=66813 Change-Id: Ida87bc1fb15a73a08c223a7099456d9f049cd3c5 --- tests/pthread_test.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/pthread_test.cpp b/tests/pthread_test.cpp index 0f42d43ea..36da481c5 100644 --- a/tests/pthread_test.cpp +++ b/tests/pthread_test.cpp @@ -69,6 +69,19 @@ TEST(pthread, pthread_key_create_lots) { #endif // __BIONIC__ } +TEST(pthread, pthread_key_delete) { + void* expected = reinterpret_cast(1234); + pthread_key_t key; + ASSERT_EQ(0, pthread_key_create(&key, NULL)); + ASSERT_EQ(0, pthread_setspecific(key, expected)); + ASSERT_EQ(expected, pthread_getspecific(key)); + ASSERT_EQ(0, pthread_key_delete(key)); + // After deletion, pthread_getspecific returns NULL. + ASSERT_EQ(NULL, pthread_getspecific(key)); + // And you can't use pthread_setspecific with the deleted key. + ASSERT_EQ(EINVAL, pthread_setspecific(key, expected)); +} + static void* IdFn(void* arg) { return arg; }