Bläddra i källkod

pthreads local storage: add test for unique keys

Angus Gratton 8 år sedan
förälder
incheckning
3f4c8f7174
1 ändrade filer med 23 tillägg och 0 borttagningar
  1. 23 0
      components/pthread/test/test_pthread_local_storage.c

+ 23 - 0
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;