Ejemplo n.º 1
0
Test(endpoint, sizeleft)
{
	int ret;
	size_t sz;
	struct fid_ep *ep = NULL;

	ret = fi_endpoint(dom, fi, &ep, NULL);
	cr_assert(ret == FI_SUCCESS, "fi_endpoint");

	/* Test in disabled state. */
	sz = fi_rx_size_left(ep);
	cr_assert(sz == -FI_EOPBADSTATE, "fi_rx_size_left");

	sz = fi_tx_size_left(ep);
	cr_assert(sz == -FI_EOPBADSTATE, "fi_tx_size_left");

	ret = fi_enable(ep);
	cr_assert(ret == FI_SUCCESS, "fi_enable");

	/* Test default values. */
	sz = fi_rx_size_left(ep);
	cr_assert(sz == GNIX_RX_SIZE_DEFAULT, "fi_rx_size_left");

	sz = fi_tx_size_left(ep);
	cr_assert(sz == GNIX_TX_SIZE_DEFAULT, "fi_tx_size_left");

	ret = fi_close(&ep->fid);
	cr_assert(!ret, "fi_close endpoint");
}
Ejemplo n.º 2
0
static int
rx_size_left(void)
{
	int ret;
	int testret;
	struct fid_ep *ep;

	testret = FAIL;
	ep = NULL;

	ret = setup_ep_fixture(&ep);
	if (ret != 0) {
		printf("failed to setup test fixture: %s\n", fi_strerror(-ret));
		goto fail;
	}

	ret = fi_rx_size_left(ep);
	if (ret < 0) {
		printf("fi_rx_size_left returned %d (-%s)\n", ret,
			fi_strerror(-ret));
		goto fail;
	}

	/* TODO: once fi_rx_attr's size field meaning has been fixed to refer to
	 * queue depth instead of number of bytes, we can do a little basic
	 * sanity checking here */

	testret = PASS;
fail:
	ret = teardown_ep_fixture(ep);
	if (ret != 0)
		testret = FAIL;
	return testret;
}
Ejemplo n.º 3
0
static int
rx_size_left_err(void)
{
	int ret;
	int testret;
	struct fid_ep *ep;
	struct fi_info *myfi;

	testret = FAIL;
	ep = NULL;

	myfi = fi_dupinfo(fi);

	/* datapath operation, not expected to be caught by libfabric */
#if 0
	ret = fi_rx_size_left(NULL);
	if (ret != -FI_EINVAL) {
		goto fail;
	}
#endif

	ret = fi_endpoint(domain, myfi, &ep, NULL);
	if (ret != 0) {
		printf("fi_endpoint %s\n", fi_strerror(-ret));
		goto fail;
	}

	/* ep starts in a non-enabled state, may fail, should not SEGV */
	fi_rx_size_left(ep);

	testret = PASS;
fail:
	if (ep != NULL) {
		ret = fi_close(&ep->fid);
		if (ret != 0)
			printf("fi_close %s\n", fi_strerror(-ret));
		ep = NULL;
	}
	if (myfi != NULL) {
		fi_freeinfo(myfi);
	}
	return testret;
}