Exemplo n.º 1
0
Test(endpoint, open_close)
{
	int i, ret;
	const int num_eps = 61;
	struct fid_ep *eps[num_eps];

	memset(eps, 0, num_eps*sizeof(struct fid_ep *));

	for (i = 0; i < num_eps; i++) {
		ret = fi_endpoint(dom, fi, &eps[i], NULL);
		cr_assert(!ret, "fi_endpoint");
		struct gnix_fid_ep *ep = container_of(eps[i],
						      struct gnix_fid_ep,
						      ep_fid);
		cr_assert(ep, "endpoint not allcoated");

		/* Check fields (fill in as implemented) */
		cr_assert(ep->nic, "NIC not allocated");
		cr_assert(!_gnix_fl_empty(&ep->fr_freelist),
			  "gnix_fab_req freelist empty");
	}

	for (i = num_eps-1; i >= 0; i--) {
		ret = fi_close(&eps[i]->fid);
		cr_assert(!ret, "fi_close endpoint");
	}

}
Exemplo n.º 2
0
Test(gnix_freelist, freelist_zero_refill_test)
{
	struct gnix_freelist fl;
	int i, ret;
	const int num_elems = 71;
	struct dlist_entry *elems[num_elems + 1];
	const int refill_size = 0;

	/* non-optimized code may not zero structures */
	memset(&fl, 0x0, sizeof(struct gnix_freelist));

	ret = _gnix_fl_init(sizeof(struct dlist_entry), 0,
			    num_elems, refill_size, 0, 0, &fl);
	cr_assert_eq(ret, FI_SUCCESS, "Failed to initialize freelist");

	for (i = 0; i < num_elems; i++) {
		ret = _gnix_fl_alloc(&elems[i], &fl);
		cr_assert_eq(ret, FI_SUCCESS, "Failed to obtain dlist_entry");
	}

	cr_assert(_gnix_fl_empty(&fl), "Freelist not empty");

	ret = _gnix_fl_alloc(&elems[num_elems], &fl);
	cr_assert_eq(ret, -FI_ECANCELED, "Unexpected return code from "
                 "_gnix_fl_alloc");

	for (i = num_elems-1; i >= 0 ; i--)
		_gnix_fl_free(elems[i], &fl);

	_gnix_fl_destroy(&fl);
}
Exemplo n.º 3
0
Test(gnix_freelist, freelist_refill_test)
{
	struct gnix_freelist fl;
	int i, ret;
	const int num_elems = 71;
	struct dlist_entry *elems[num_elems];
	const int refill_size = 47;
	struct dlist_entry *refill_elems[refill_size];

	/* non-optimized code may not zero structures */
	memset(&fl, 0x0, sizeof(struct gnix_freelist));

	ret = _gnix_fl_init(sizeof(struct dlist_entry), 0,
			     num_elems, refill_size, 0, 0, &fl);
	cr_assert_eq(ret, FI_SUCCESS, "Failed to initialize freelist");

	for (i = 0; i < num_elems; i++) {
		ret = _gnix_fl_alloc(&elems[i], &fl);
		cr_assert_eq(ret, FI_SUCCESS, "Failed to obtain dlist_entry");
	}
	cr_assert(_gnix_fl_empty(&fl), "Freelist not empty");

	for (i = 0; i < refill_size; i++) {
		ret = _gnix_fl_alloc(&refill_elems[i], &fl);
		cr_assert_eq(ret, FI_SUCCESS, "Failed to obtain dlist_entry");
		if (i != refill_size-1) {
			/* Not the last one, so must not be empty */
			cr_assert(!_gnix_fl_empty(&fl), "Freelist empty");
		}
	}
	cr_assert(_gnix_fl_empty(&fl), "Freelist not empty");

	for (i = num_elems-1; i >= 0 ; i--)
		_gnix_fl_free(elems[i], &fl);

	for (i = refill_size-1; i >= 0 ; i--)
		_gnix_fl_free(refill_elems[i], &fl);

	_gnix_fl_destroy(&fl);
}