From 3f4c8f7174cedfa9d4a1baf46885ac1c0f98a4f0 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Tue, 10 Oct 2017 11:50:02 +1100 Subject: [PATCH] pthreads local storage: add test for unique keys --- .../pthread/test/test_pthread_local_storage.c | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/components/pthread/test/test_pthread_local_storage.c b/components/pthread/test/test_pthread_local_storage.c index 5f83e87cba..8be22ce57e 100644 --- a/components/pthread/test/test_pthread_local_storage.c +++ b/components/pthread/test/test_pthread_local_storage.c @@ -27,6 +27,29 @@ TEST_CASE("pthread local storage basics", "[pthread]") TEST_ASSERT_EQUAL(0, pthread_key_delete(key)); } +TEST_CASE("pthread local storage unique keys", "[pthread]") +{ + const int NUM_KEYS = 10; + pthread_key_t keys[NUM_KEYS]; + + for (int i = 0; i < NUM_KEYS; i++) { + TEST_ASSERT_EQUAL(0, pthread_key_create(&keys[i], NULL)); + printf("New key %d = %d\n", i, keys[i]); + } + + for (int i = 0; i < NUM_KEYS; i++) { + for (int j = 0; j < NUM_KEYS; j++) { + if (i != j) { + TEST_ASSERT_NOT_EQUAL(keys[i], keys[j]); + } + } + } + + for (int i = 0; i < NUM_KEYS; i++) { + TEST_ASSERT_EQUAL(0, pthread_key_delete(keys[i])); + } +} + static void test_pthread_destructor(void *); static void *expected_destructor_ptr; static void *actual_destructor_ptr; -- 2.40.0