void test_condition_waits() { // We should have already tested notify_one here, so // a timed test with the default execution_monitor::use_condition // should be OK, and gives the fastest performance timed_test(&do_test_condition_waits, 12); }
void test_condition_notify_one() { timed_test(&do_test_condition_notify_one_wakes_from_wait, timeout_seconds, execution_monitor::use_mutex); timed_test(&do_test_condition_notify_one_wakes_from_wait_with_predicate, timeout_seconds, execution_monitor::use_mutex); timed_test(&do_test_condition_notify_one_wakes_from_timed_wait, timeout_seconds, execution_monitor::use_mutex); timed_test(&do_test_condition_notify_one_wakes_from_timed_wait_with_predicate, timeout_seconds, execution_monitor::use_mutex); timed_test(&do_test_condition_notify_one_wakes_from_relative_timed_wait_with_predicate, timeout_seconds, execution_monitor::use_mutex); timed_test(&do_test_multiple_notify_one_calls_wakes_multiple_threads, timeout_seconds, execution_monitor::use_mutex); }
void test_condition_notify_all() { timed_test(&do_test_condition_notify_all_wakes_from_wait, timeout_seconds); timed_test(&do_test_condition_notify_all_wakes_from_wait_with_predicate, timeout_seconds); timed_test(&do_test_condition_notify_all_wakes_from_timed_wait, timeout_seconds); timed_test(&do_test_condition_notify_all_wakes_from_timed_wait_with_predicate, timeout_seconds); timed_test(&do_test_condition_notify_all_wakes_from_relative_timed_wait_with_predicate, timeout_seconds); timed_test(&do_test_notify_all_following_notify_one_wakes_all_threads, timeout_seconds); }
void test_condition_wait_is_a_interruption_point() { timed_test(&do_test_condition_wait_is_a_interruption_point, 1); }
void test_recursive_timed_mutex() { timed_test(&do_test_recursive_timed_mutex, 3); }
void test_timed_mutex() { timed_test(&do_test_timed_mutex, 3); }
void test_creation_through_reference_wrapper() { timed_test(&do_test_creation_through_reference_wrapper, 1); }
void test_tss_does_no_cleanup_after_release() { timed_test(&do_test_tss_does_no_cleanup_after_release, 2); }
void test_creation() { timed_test(&do_test_creation, 1); }
void test_dummy_mutex() { timed_test(&do_test_dummy_mutex, 2); }
void test_creation_with_attrs() { timed_test(&do_test_creation_with_attrs, 1); }
void test_once() { timed_test(&do_test_once, 2); }
void test_thread_interrupts_at_interruption_point() { timed_test(&do_test_thread_interrupts_at_interruption_point, 1); }
void test_timed_join() { timed_test(&do_test_timed_join, 10); }
void test_tss() { timed_test(&do_test_tss, 2); }
void test_comparison() { timed_test(&do_test_comparison, 1); }
void test_tss_with_custom_cleanup() { timed_test(&do_test_tss_with_custom_cleanup, 2); }
void test_condition_notify_one() { timed_test(&do_test_condition_notify_one, 2, execution_monitor::use_mutex); }
void test_tss_does_no_cleanup_with_null_cleanup_function() { timed_test(&do_test_tss_does_no_cleanup_with_null_cleanup_function, 2); }
void test_thread_no_interrupt_if_interrupts_disabled_at_interruption_point() { timed_test(&do_test_thread_no_interrupt_if_interrupts_disabled_at_interruption_point, 1); }