Loading...
--- libmalloc/libmalloc-474.0.13/tests/malloc_create_purgeable_zone.c
+++ /dev/null
@@ -1,52 +0,0 @@
-//
-// malloc_create_purgeable_zone.c
-// libmalloc
-//
-// Test for creating a purgeable zone while concurrently adding/removing other zones
-//
-
-#include <darwintest.h>
-#include <malloc/malloc.h>
-
-#define N_ZONE_CREATION_THREADS 8
-
-static void *
-make_purgeable_thread(void *arg)
-{
- T_LOG("enable PGM");
- malloc_zone_t *purgeable_zone = malloc_default_purgeable_zone();
- T_ASSERT_NOTNULL(purgeable_zone, "malloc_default_purgeable_zone returned NULL");
-
- return NULL;
-}
-
-static void *
-zone_thread(void *arg)
-{
- vm_size_t start_size = (vm_size_t)arg;
- while (1) {
- malloc_zone_t *zone = malloc_create_zone(start_size, 0);
- malloc_destroy_zone(zone);
- }
- return NULL;
-}
-
-T_DECL(malloc_create_purgeable_zone, "create a purgeable zone while constantly registering zones",
- T_META_TAG_XZONE)
-{
- pthread_t zone_threads[N_ZONE_CREATION_THREADS];
- for (int i = 0; i < N_ZONE_CREATION_THREADS; i++) {
- vm_size_t zone_start_size = 1000;
- pthread_create(&zone_threads[i], NULL, zone_thread, (void *)zone_start_size);
- }
-
- usleep(50);
-
- pthread_t purgeable_thread;
- pthread_create(&purgeable_thread, NULL, make_purgeable_thread, NULL);
- pthread_join(purgeable_thread, NULL);
-
- usleep(500);
-
- T_PASS("finished without crashing");
-}