tldk test: Update tle_dev unit tests 27/3827/2
authorKarol Latecki <karolx.latecki@intel.com>
Thu, 27 Oct 2016 16:07:33 +0000 (12:07 -0400)
committerKarol Latecki <karolx.latecki@intel.com>
Thu, 19 Jan 2017 15:52:23 +0000 (16:52 +0100)
Added new unit tests for add_dev and del_dev.
Also updated previous tests which were missing cleaning up of devices
in cases where they were actually created.

Change-Id: I6d91cac54b34d4419147c125b7a13b780e1cc001
Signed-off-by: Karol Latecki <karolx.latecki@intel.com>
test/gtest/test_tle_udp_dev.cpp
test/gtest/test_tle_udp_dev.h

index 8efb866..a58186e 100644 (file)
@@ -53,6 +53,7 @@ TEST_F(udp_dev, udp_dev_add_only_ipv4)
        dev = tle_udp_add_dev(ctx, &dev_prm);
        ASSERT_NE(dev, (void *) NULL);
        EXPECT_EQ(rte_errno, 0);
+       devs.push_back(dev);
 }
 
 TEST_F(udp_dev, udp_dev_add_only_ipv6)
@@ -70,6 +71,7 @@ TEST_F(udp_dev, udp_dev_add_nonexist_ipv4)
        dev = tle_udp_add_dev(ctx, &dev_prm);
        ASSERT_NE(dev, (void *) NULL);
        EXPECT_EQ(rte_errno, 0);
+       devs.push_back(dev);
 }
 
 TEST_F(udp_dev, udp_dev_add_positive)
@@ -77,9 +79,21 @@ 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);
+       devs.push_back(dev);
+}
+
+TEST_F(udp_dev, udp_dev_add_max)
+{
+       int i;
+       for(i = 0; i < RTE_MAX_ETHPORTS; i++) {
+               dev = tle_udp_add_dev(ctx, &dev_prm);
+               ASSERT_NE(dev, (void *) NULL);
+               EXPECT_EQ(rte_errno, 0);
+               devs.push_back(dev);
+       }
        dev = tle_udp_add_dev(ctx, &dev_prm);
-       ASSERT_NE(dev, (void *) NULL);
-       EXPECT_EQ(rte_errno, 0);
+       ASSERT_EQ(dev, (void *) NULL);
+       EXPECT_EQ(rte_errno, ENODEV);
 }
 
 TEST_F(udp_dev, udp_dev_del_positive)
@@ -87,6 +101,12 @@ 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);
+       devs.push_back(dev);
        ASSERT_EQ(tle_udp_del_dev(dev), 0);
        EXPECT_EQ(rte_errno, 0);
 }
+
+TEST_F(udp_dev, udp_dev_del_null_dev)
+{
+       ASSERT_EQ(tle_udp_del_dev(dev), -EINVAL);
+}
index 3ecc5c7..02f544d 100644 (file)
 #ifndef TEST_TLE_UDP_DEV_H_
 #define TEST_TLE_UDP_DEV_H_
 
+#include <algorithm>
 #include <arpa/inet.h>
 #include <gtest/gtest.h>
+
 #include <rte_errno.h>
+
 #include <tle_udp_impl.h>
 
 #define RX_NO_OFFLOAD 0
 #define TX_NO_OFFLOAD 0
 
+using namespace std;
+
 class udp_dev : public ::testing::Test {
 
 public:
@@ -31,6 +36,7 @@ public:
        struct tle_udp_dev *dev;
        struct tle_udp_ctx_param prm;
        struct tle_udp_dev_param dev_prm;
+       vector<tle_udp_dev*> devs;
 
        virtual void SetUp(void)
        {
@@ -56,6 +62,9 @@ public:
 
        virtual void TearDown(void)
        {
+               for(auto d : devs) {
+                       tle_udp_del_dev(d);
+               }
                tle_udp_destroy(ctx);
        }
 };