iSulad/0052-add-console-ut.patch
zhangxiaoyu 313d1dbcd1 update from upstream
Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com>
2022-12-06 14:34:53 +08:00

169 lines
4.5 KiB
Diff

From 04c7beb8788826063c19715b58e11c4eea7efbe6 Mon Sep 17 00:00:00 2001
From: "Neil.wrz" <wangrunze13@huawei.com>
Date: Wed, 30 Nov 2022 23:54:47 -0800
Subject: [PATCH 52/54] add console ut
Signed-off-by: Neil.wrz <wangrunze13@huawei.com>
---
test/CMakeLists.txt | 1 +
test/console/CMakeLists.txt | 20 +++++++
test/console/console_ut.cc | 107 ++++++++++++++++++++++++++++++++++++
3 files changed, 128 insertions(+)
create mode 100644 test/console/CMakeLists.txt
create mode 100644 test/console/console_ut.cc
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 8b927f91..06adb602 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -46,6 +46,7 @@ IF(ENABLE_UT)
add_subdirectory(services)
add_subdirectory(sha256)
add_subdirectory(buffer)
+ add_subdirectory(console)
ENDIF(ENABLE_UT)
IF(ENABLE_FUZZ)
diff --git a/test/console/CMakeLists.txt b/test/console/CMakeLists.txt
new file mode 100644
index 00000000..acadc620
--- /dev/null
+++ b/test/console/CMakeLists.txt
@@ -0,0 +1,20 @@
+project(iSulad_UT)
+
+SET(EXE console_ut)
+
+add_executable(${EXE}
+ ${CMAKE_SOURCE_DIR}/src/utils/console/console.c
+ console_ut.cc)
+
+
+target_include_directories(${EXE} PUBLIC
+ ${GTEST_INCLUDE_DIR}
+ ${CMAKE_SOURCE_DIR}/src/utils/console
+ ${CMAKE_SOURCE_DIR}/src/utils/cutils
+ ${CMAKE_SOURCE_DIR}/src/common
+ )
+
+target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} libutils_ut -lcrypto -lyajl -lz)
+add_test(NAME ${EXE} COMMAND ${EXE} --gtest_output=xml:${EXE}-Results.xml)
+
+
diff --git a/test/console/console_ut.cc b/test/console/console_ut.cc
new file mode 100644
index 00000000..73479000
--- /dev/null
+++ b/test/console/console_ut.cc
@@ -0,0 +1,107 @@
+#include <sys/stat.h>
+#include <gtest/gtest.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <string.h>
+
+#include "console.h"
+
+#define FIFO_NAME "fifo1"
+#define PATH_NOT_EXIST "./path_not_found/"
+#define LONGER_PATH_MAX 4098
+
+TEST(utils_console, test_console_fifo_create)
+{
+ int ret = 0;
+ struct stat buf;
+
+ ret = console_fifo_create(FIFO_NAME);
+ if (ret != 0) {
+ return;
+ }
+
+ if (stat(FIFO_NAME, &buf) < 0) {
+ return;
+ }
+
+ ASSERT_EQ(S_ISFIFO(buf.st_mode), true);
+
+ ret = access(FIFO_NAME, R_OK|W_OK);
+ ASSERT_EQ(ret, 0);
+
+ remove(FIFO_NAME);
+}
+
+TEST(utils_console, test_console_fifo_create_failed)
+{
+ int ret = 0;
+
+ ret = console_fifo_create(PATH_NOT_EXIST FIFO_NAME);
+ ASSERT_EQ(ret, -1);
+}
+
+TEST(utils_console, test_console_fifo_delete)
+{
+ int ret = 0;
+ char path_buf[LONGER_PATH_MAX] = { 0x00 };
+
+ memset(path_buf, 'a', LONGER_PATH_MAX);
+ path_buf[LONGER_PATH_MAX - 1] = 0;
+ ASSERT_EQ(strlen(path_buf), LONGER_PATH_MAX-1)<< "strlen is " << strlen(path_buf);
+
+ ret = console_fifo_create(FIFO_NAME);
+ if (ret != 0) {
+ return;
+ }
+
+ // PATH TOO LONG
+ ret = console_fifo_delete(path_buf);
+ ASSERT_EQ(ret, -1) << []()->std::string { remove(FIFO_NAME); return "failed"; }();
+
+ // PATH NULL
+ ret = console_fifo_delete(NULL);
+ ASSERT_EQ(ret, -1) << []()->std::string { remove(FIFO_NAME); return "failed"; }();
+
+ // PATH LEN IS ZERO
+ ret = console_fifo_delete("");
+ ASSERT_EQ(ret, 0) << []()->std::string { remove(FIFO_NAME); return "failed"; }();
+
+ // PATH NOT FOUND
+ ret = console_fifo_delete(PATH_NOT_EXIST FIFO_NAME);
+ ASSERT_EQ(ret, 0) << []()->std::string { remove(FIFO_NAME); return "failed"; }();
+
+ ret = console_fifo_delete(FIFO_NAME);
+ ASSERT_EQ(ret, 0) << []()->std::string { remove(FIFO_NAME); return "failed"; }();
+}
+
+TEST(utils_console, test_console_fifo_open)
+{
+ int ret = 0;
+ int fifooutfd = -1;
+
+ ret = console_fifo_create(FIFO_NAME);
+ if (ret != 0) {
+ return;
+ }
+
+ ret = console_fifo_open(FIFO_NAME, &fifooutfd, O_RDWR | O_NONBLOCK);
+ ASSERT_EQ(ret, 0) << []()->std::string { remove(FIFO_NAME); return "failed"; }();
+ console_fifo_close(fifooutfd);
+ remove(FIFO_NAME);
+}
+
+TEST(utils_console, test_console_fifo_open_withlock)
+{
+ int ret = 0;
+ int fifooutfd = -1;
+
+ ret = console_fifo_create(FIFO_NAME);
+ if (ret != 0) {
+ return;
+ }
+
+ ret = console_fifo_open_withlock(FIFO_NAME, &fifooutfd, O_RDWR | O_NONBLOCK);
+ ASSERT_EQ(ret, 0) << []()->std::string { remove(FIFO_NAME); return "failed"; }();
+ console_fifo_close(fifooutfd);
+ remove(FIFO_NAME);
+}
--
2.25.1