test_tle_udp_dev.h revision 759bedce
1/*
2 * Copyright (c) 2016  Intel Corporation.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#ifndef TEST_TLE_UDP_DEV_H_
17#define TEST_TLE_UDP_DEV_H_
18
19#include <algorithm>
20#include <arpa/inet.h>
21#include <gtest/gtest.h>
22
23#include <rte_errno.h>
24
25#include <tle_udp_impl.h>
26
27#define RX_NO_OFFLOAD 0
28#define TX_NO_OFFLOAD 0
29
30using namespace std;
31
32class udp_dev : public ::testing::Test {
33
34public:
35	struct tle_udp_ctx *ctx;
36	struct tle_udp_dev *dev;
37	struct tle_udp_ctx_param prm;
38	struct tle_udp_dev_param dev_prm;
39	vector<tle_udp_dev*> devs;
40
41	virtual void SetUp(void)
42	{
43		rte_errno = 0;
44		memset(&prm, 0, sizeof(prm));
45		prm.socket_id = SOCKET_ID_ANY;
46		prm.max_streams = 0x1;
47		prm.max_stream_rbufs = 0x1;
48		prm.max_stream_sbufs = 0x1;
49
50		memset(&dev_prm, 0, sizeof(dev_prm));
51
52		/* Offload irrelevant in these tests, set to 0 */
53		dev_prm.rx_offload = RX_NO_OFFLOAD;
54		dev_prm.tx_offload = TX_NO_OFFLOAD;
55		inet_pton(AF_INET, "192.168.2.1", &(dev_prm).local_addr4);
56		inet_pton(AF_INET6, "fe80::21e:67ff:fec2:2568",
57				&(dev_prm).local_addr6);
58
59		ctx = tle_udp_create(&prm);
60		ASSERT_NE(ctx, (void *) NULL);
61	}
62
63	virtual void TearDown(void)
64	{
65		for(auto d : devs) {
66			tle_udp_del_dev(d);
67		}
68		tle_udp_destroy(ctx);
69	}
70};
71
72#endif /* TEST_TLE_UDP_DEV_H_ */
73