static int test_basic(sd_event *event) { _cleanup_dhcp_server_unref_ sd_dhcp_server *server = NULL; struct in_addr address_lo = { .s_addr = htonl(INADDR_LOOPBACK), }; struct in_addr address_any = { .s_addr = htonl(INADDR_ANY), }; int r; /* attach to loopback interface */ assert_se(sd_dhcp_server_new(&server, 1) >= 0); assert_se(server); assert_se(sd_dhcp_server_attach_event(server, event, 0) >= 0); assert_se(sd_dhcp_server_attach_event(server, event, 0) == -EBUSY); assert_se(sd_dhcp_server_get_event(server) == event); assert_se(sd_dhcp_server_detach_event(server) >= 0); assert_se(!sd_dhcp_server_get_event(server)); assert_se(sd_dhcp_server_attach_event(server, NULL, 0) >= 0); assert_se(sd_dhcp_server_attach_event(server, NULL, 0) == -EBUSY); assert_se(sd_dhcp_server_ref(server) == server); assert_se(!sd_dhcp_server_unref(server)); assert_se(sd_dhcp_server_start(server) == -EUNATCH); assert_se(sd_dhcp_server_configure_pool(server, &address_any, 28, 0, 0) == -EINVAL); assert_se(sd_dhcp_server_configure_pool(server, &address_lo, 38, 0, 0) == -ERANGE); assert_se(sd_dhcp_server_configure_pool(server, &address_lo, 8, 0, 0) >= 0); assert_se(sd_dhcp_server_configure_pool(server, &address_lo, 8, 0, 0) == -EBUSY); test_pool(&address_any, 1, -EINVAL); test_pool(&address_lo, 1, 0); r = sd_dhcp_server_start(server); if (r == -EPERM) return EXIT_TEST_SKIP; assert_se(r >= 0); assert_se(sd_dhcp_server_start(server) == -EBUSY); assert_se(sd_dhcp_server_stop(server) >= 0); assert_se(sd_dhcp_server_stop(server) >= 0); assert_se(sd_dhcp_server_start(server) >= 0); return 0; }
void* run() { struct timeval begin; gettimeofday(&begin, NULL); if (use_pool_) { if (replace_) test_pool2(); else test_pool(); } else test_malloc(); struct timeval end; gettimeofday(&end, NULL); double spent = util::stamp_sub(&end, &begin); long long total = max_loop_ * max_count_; printf("loop: %lld, spent: %.4f, speed: %.4f\r\n", total, spent, total * 1000 / (spent > 0 ? spent : 1)); return NULL; }
int main(void) { // test_boost(); test_pool(); test_mempool(); test_malloc(); // test_threadpool(); return 0; }
bool torture_local_talloc(struct torture_context *tctx) { bool ret = true; setlinebuf(stdout); talloc_disable_null_tracking(); talloc_enable_null_tracking(); ret &= test_ref1(); ret &= test_ref2(); ret &= test_ref3(); ret &= test_ref4(); ret &= test_unlink1(); ret &= test_misc(); ret &= test_realloc(); ret &= test_realloc_child(); ret &= test_steal(); ret &= test_move(); ret &= test_unref_reparent(); ret &= test_realloc_fn(); ret &= test_type(); ret &= test_lifeless(); ret &= test_loop(); ret &= test_free_parent_deny_child(); ret &= test_talloc_ptrtype(); ret &= test_talloc_free_in_destructor(); ret &= test_pool(); if (ret) { ret &= test_speed(); } ret &= test_autofree(); return ret; }