summaryrefslogtreecommitdiffstats
path: root/test/gtest/test_tle_udp_dev.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/gtest/test_tle_udp_dev.cpp')
-rw-r--r--test/gtest/test_tle_udp_dev.cpp92
1 files changed, 92 insertions, 0 deletions
diff --git a/test/gtest/test_tle_udp_dev.cpp b/test/gtest/test_tle_udp_dev.cpp
new file mode 100644
index 0000000..8efb866
--- /dev/null
+++ b/test/gtest/test_tle_udp_dev.cpp
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2016 Intel Corporation.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "test_tle_udp_dev.h"
+
+TEST_F(udp_dev, udp_dev_add_null_ctx)
+{
+ dev = tle_udp_add_dev(NULL, &dev_prm);
+ EXPECT_EQ(dev, (void *) NULL);
+ EXPECT_EQ(rte_errno, EINVAL);
+}
+
+TEST_F(udp_dev, udp_dev_add_null_dev_prm)
+{
+ dev = tle_udp_add_dev(ctx, NULL);
+ EXPECT_EQ(dev, (void *) NULL);
+ EXPECT_EQ(rte_errno, EINVAL);
+}
+
+TEST_F(udp_dev, udp_dev_add_no_addr)
+{
+ memset(&(dev_prm).local_addr4, 0, sizeof(struct in_addr));
+ memset(&(dev_prm).local_addr6, 0, sizeof(struct in6_addr));
+ dev = tle_udp_add_dev(ctx, &dev_prm);
+ EXPECT_EQ(dev, (void *) NULL);
+ EXPECT_EQ(rte_errno, EINVAL);
+}
+
+TEST_F(udp_dev, udp_dev_add_anyaddr)
+{
+ inet_pton(AF_INET, "0.0.0.0", &(dev_prm).local_addr4);
+ inet_pton(AF_INET6, "::0", &(dev_prm).local_addr6);
+ dev = tle_udp_add_dev(ctx, &dev_prm);
+ EXPECT_EQ(dev, (void *) NULL);
+ EXPECT_EQ(rte_errno, EINVAL);
+}
+
+TEST_F(udp_dev, udp_dev_add_only_ipv4)
+{
+ memset(&(dev_prm).local_addr6, 0, sizeof(struct in6_addr));
+ dev = tle_udp_add_dev(ctx, &dev_prm);
+ ASSERT_NE(dev, (void *) NULL);
+ EXPECT_EQ(rte_errno, 0);
+}
+
+TEST_F(udp_dev, udp_dev_add_only_ipv6)
+{
+ memset(&(dev_prm).local_addr4, 0, sizeof(struct in_addr));
+ dev = tle_udp_add_dev(ctx, &dev_prm);
+ ASSERT_NE(dev, (void *) NULL);
+ EXPECT_EQ(rte_errno, 0);
+}
+
+TEST_F(udp_dev, udp_dev_add_nonexist_ipv4)
+{
+ memset(&(dev_prm).local_addr4, 0, sizeof(struct in_addr));
+ inet_pton(AF_INET, "10.0.0.1", &(dev_prm).local_addr4);
+ dev = tle_udp_add_dev(ctx, &dev_prm);
+ ASSERT_NE(dev, (void *) NULL);
+ EXPECT_EQ(rte_errno, 0);
+}
+
+TEST_F(udp_dev, udp_dev_add_positive)
+{
+ dev = tle_udp_add_dev(ctx, &dev_prm);
+ ASSERT_NE(dev, (void *) NULL);
+ EXPECT_EQ(rte_errno, 0);
+ dev = tle_udp_add_dev(ctx, &dev_prm);
+ ASSERT_NE(dev, (void *) NULL);
+ EXPECT_EQ(rte_errno, 0);
+}
+
+TEST_F(udp_dev, udp_dev_del_positive)
+{
+ dev = tle_udp_add_dev(ctx, &dev_prm);
+ ASSERT_NE(dev, (void *) NULL);
+ EXPECT_EQ(rte_errno, 0);
+ ASSERT_EQ(tle_udp_del_dev(dev), 0);
+ EXPECT_EQ(rte_errno, 0);
+}