diff options
Diffstat (limited to 'deps/jemalloc/test/unit/background_thread.c')
-rw-r--r-- | deps/jemalloc/test/unit/background_thread.c | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/deps/jemalloc/test/unit/background_thread.c b/deps/jemalloc/test/unit/background_thread.c deleted file mode 100644 index f7bd37c42..000000000 --- a/deps/jemalloc/test/unit/background_thread.c +++ /dev/null @@ -1,119 +0,0 @@ -#include "test/jemalloc_test.h" - -#include "jemalloc/internal/util.h" - -static void -test_switch_background_thread_ctl(bool new_val) { - bool e0, e1; - size_t sz = sizeof(bool); - - e1 = new_val; - assert_d_eq(mallctl("background_thread", (void *)&e0, &sz, - &e1, sz), 0, "Unexpected mallctl() failure"); - assert_b_eq(e0, !e1, - "background_thread should be %d before.\n", !e1); - if (e1) { - assert_zu_gt(n_background_threads, 0, - "Number of background threads should be non zero.\n"); - } else { - assert_zu_eq(n_background_threads, 0, - "Number of background threads should be zero.\n"); - } -} - -static void -test_repeat_background_thread_ctl(bool before) { - bool e0, e1; - size_t sz = sizeof(bool); - - e1 = before; - assert_d_eq(mallctl("background_thread", (void *)&e0, &sz, - &e1, sz), 0, "Unexpected mallctl() failure"); - assert_b_eq(e0, before, - "background_thread should be %d.\n", before); - if (e1) { - assert_zu_gt(n_background_threads, 0, - "Number of background threads should be non zero.\n"); - } else { - assert_zu_eq(n_background_threads, 0, - "Number of background threads should be zero.\n"); - } -} - -TEST_BEGIN(test_background_thread_ctl) { - test_skip_if(!have_background_thread); - - bool e0, e1; - size_t sz = sizeof(bool); - - assert_d_eq(mallctl("opt.background_thread", (void *)&e0, &sz, - NULL, 0), 0, "Unexpected mallctl() failure"); - assert_d_eq(mallctl("background_thread", (void *)&e1, &sz, - NULL, 0), 0, "Unexpected mallctl() failure"); - assert_b_eq(e0, e1, - "Default and opt.background_thread does not match.\n"); - if (e0) { - test_switch_background_thread_ctl(false); - } - assert_zu_eq(n_background_threads, 0, - "Number of background threads should be 0.\n"); - - for (unsigned i = 0; i < 4; i++) { - test_switch_background_thread_ctl(true); - test_repeat_background_thread_ctl(true); - test_repeat_background_thread_ctl(true); - - test_switch_background_thread_ctl(false); - test_repeat_background_thread_ctl(false); - test_repeat_background_thread_ctl(false); - } -} -TEST_END - -TEST_BEGIN(test_background_thread_running) { - test_skip_if(!have_background_thread); - test_skip_if(!config_stats); - -#if defined(JEMALLOC_BACKGROUND_THREAD) - tsd_t *tsd = tsd_fetch(); - background_thread_info_t *info = &background_thread_info[0]; - - test_repeat_background_thread_ctl(false); - test_switch_background_thread_ctl(true); - assert_b_eq(info->state, background_thread_started, - "Background_thread did not start.\n"); - - nstime_t start, now; - nstime_init(&start, 0); - nstime_update(&start); - - bool ran = false; - while (true) { - malloc_mutex_lock(tsd_tsdn(tsd), &info->mtx); - if (info->tot_n_runs > 0) { - ran = true; - } - malloc_mutex_unlock(tsd_tsdn(tsd), &info->mtx); - if (ran) { - break; - } - - nstime_init(&now, 0); - nstime_update(&now); - nstime_subtract(&now, &start); - assert_u64_lt(nstime_sec(&now), 1000, - "Background threads did not run for 1000 seconds."); - sleep(1); - } - test_switch_background_thread_ctl(false); -#endif -} -TEST_END - -int -main(void) { - /* Background_thread creation tests reentrancy naturally. */ - return test_no_reentrancy( - test_background_thread_ctl, - test_background_thread_running); -} |