示例#1
0
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;
}
示例#2
0
文件: main.cpp 项目: FlowSea/acl
	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;
	}
示例#3
0
文件: main.c 项目: github188/pool
int main(void)
{
//    test_boost();
    test_pool();
    test_mempool();
    test_malloc();
//    test_threadpool();

    return 0;
}
示例#4
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;
}