aboutsummaryrefslogtreecommitdiffstats
path: root/test/gtest/test_tle_ctx.cpp
diff options
context:
space:
mode:
authorKonstantin Ananyev <konstantin.ananyev@intel.com>2017-02-21 18:12:20 +0000
committerKonstantin Ananyev <konstantin.ananyev@intel.com>2017-02-24 16:37:08 +0000
commitaa97dd1ce910b839fed46ad55d1e70e403f5a930 (patch)
treef6f0fd494eaf499859bff9f20f5ddfac9ab99233 /test/gtest/test_tle_ctx.cpp
parentf5f10013ffef8e4ac1071087b8492fe6380d98fe (diff)
Introduce first version of TCP code.
Supported functionality: - open/close - listen/accept/connect - send/recv In order to achieve that libtle_udp library was reworked into libtle_l4p library that supports both TCP and UDP protocols. New libtle_timer library was introduced (thanks to Cisco guys and Dave Barach <dbarach@cisco.com> for sharing their timer code with us). Sample application was also reworked significantly to support both TCP and UDP traffic handling. New UT were introduced. Change-Id: I806b05011f521e89b58db403cfdd484a37beb775 Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com> Signed-off-by: Karol Latecki <karolx.latecki@intel.com> Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Diffstat (limited to 'test/gtest/test_tle_ctx.cpp')
-rw-r--r--test/gtest/test_tle_ctx.cpp130
1 files changed, 130 insertions, 0 deletions
diff --git a/test/gtest/test_tle_ctx.cpp b/test/gtest/test_tle_ctx.cpp
new file mode 100644
index 0000000..b9808ee
--- /dev/null
+++ b/test/gtest/test_tle_ctx.cpp
@@ -0,0 +1,130 @@
+/*
+ * 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_ctx.h"
+
+TEST(ctx_create, ctx_create_null)
+{
+ struct tle_ctx *ctx;
+
+ ctx = tle_ctx_create(NULL);
+ ASSERT_EQ(ctx, (struct tle_ctx *) NULL);
+ ASSERT_EQ(rte_errno, EINVAL);
+}
+
+TEST(ctx_create, create_invalid_socket)
+{
+ struct tle_ctx *ctx;
+ struct tle_ctx_param prm;
+
+ memset(&prm, 0, sizeof(prm));
+ prm.socket_id = SOCKET_ID_ANY;
+ prm.max_streams = 0x10;
+ prm.max_stream_rbufs = 0x100;
+ prm.max_stream_sbufs = 0x100;
+
+ ctx = tle_ctx_create(NULL);
+ ASSERT_EQ(ctx, (struct tle_ctx *) NULL);
+ ASSERT_EQ(rte_errno, EINVAL);
+}
+
+TEST(ctx_create, ctx_create_proto_invalid)
+{
+ struct tle_ctx *ctx;
+ struct tle_ctx_param prm;
+
+ memset(&prm, 0, sizeof(prm));
+ prm.socket_id = SOCKET_ID_ANY;
+ prm.proto = TLE_PROTO_NUM;
+ prm.max_streams = 0x10;
+ prm.max_stream_rbufs = 0x100;
+ prm.max_stream_sbufs = 0x100;
+
+ ctx = tle_ctx_create(NULL);
+ ASSERT_EQ(ctx, (struct tle_ctx *) NULL);
+ ASSERT_EQ(rte_errno, EINVAL);
+}
+
+TEST(ctx_create, ctx_create_proto_not_spec)
+{
+ struct tle_ctx *ctx;
+ struct tle_ctx_param prm;
+
+ memset(&prm, 0, sizeof(prm));
+ prm.socket_id = SOCKET_ID_ANY;
+ prm.max_streams = 0x10;
+ prm.max_stream_rbufs = 0x100;
+ prm.max_stream_sbufs = 0x100;
+
+ ctx = tle_ctx_create(&prm);
+ ASSERT_NE(ctx, (void *)NULL);
+
+ tle_ctx_destroy(ctx);
+}
+
+TEST(ctx_create, ctx_create_proto_udp)
+{
+ struct tle_ctx *ctx;
+ struct tle_ctx_param prm;
+
+ memset(&prm, 0, sizeof(prm));
+ prm.socket_id = SOCKET_ID_ANY;
+ prm.proto = TLE_PROTO_UDP;
+ prm.max_streams = 0x10;
+ prm.max_stream_rbufs = 0x100;
+ prm.max_stream_sbufs = 0x100;
+
+ ctx = tle_ctx_create(&prm);
+ ASSERT_NE(ctx, (void *)NULL);
+
+ tle_ctx_destroy(ctx);
+}
+
+TEST(ctx_create, ctx_create_proto_tcp)
+{
+ struct tle_ctx *ctx;
+ struct tle_ctx_param prm;
+
+ memset(&prm, 0, sizeof(prm));
+ prm.socket_id = SOCKET_ID_ANY;
+ prm.proto = TLE_PROTO_TCP;
+ prm.max_streams = 0x10;
+ prm.max_stream_rbufs = 0x100;
+ prm.max_stream_sbufs = 0x100;
+
+ ctx = tle_ctx_create(&prm);
+ ASSERT_NE(ctx, (void *)NULL);
+
+ tle_ctx_destroy(ctx);
+}
+
+TEST(ctx_create, ctx_create_invalidate)
+{
+ struct tle_ctx *ctx;
+ struct tle_ctx_param prm;
+
+ memset(&prm, 0, sizeof(prm));
+ prm.socket_id = SOCKET_ID_ANY;
+ prm.max_streams = 0x10;
+ prm.max_stream_rbufs = 0x100;
+ prm.max_stream_sbufs = 0x100;
+
+ ctx = tle_ctx_create(&prm);
+ ASSERT_NE(ctx, (void *)NULL);
+
+ tle_ctx_invalidate(ctx);
+
+ tle_ctx_destroy(ctx);
+}