enh: add unitest for osEnv.c

This commit is contained in:
Shengliang Guan 2024-12-09 09:41:42 +00:00
parent a231748687
commit d29e87d572
4 changed files with 115 additions and 1 deletions

1
.gitignore vendored
View File

@ -162,3 +162,4 @@ geos_c.h
source/libs/parser/src/sql.c
include/common/ttokenauto.h
!packaging/smokeTest/pytest_require.txt
tdengine-test-dir

View File

@ -85,6 +85,13 @@ add_test(
COMMAND osDirTests
)
add_executable(osEnvTests "osEnvTests.cpp")
target_link_libraries(osEnvTests os util gtest_main)
add_test(
NAME osEnvTests
COMMAND osEnvTests
)
add_executable(osSemaphoreTests "osSemaphoreTests.cpp")
target_link_libraries(osSemaphoreTests os util gtest_main)
add_test(

View File

@ -411,7 +411,6 @@ TEST(osDirTests, taosReadDir) {
taosRemoveDir("/tmp/tdengine-test-dir");
}
TEST(osDirTests, taosGetDirSize) {
TdDirEntryPtr rddir = taosReadDir(NULL);
EXPECT_EQ(rddir, nullptr);
@ -448,4 +447,18 @@ TEST(osDirTests, taosGetDirSize) {
EXPECT_EQ(ret, 0);
taosRemoveDir("/tmp/tdengine-test-dir");
taosRemoveDir("./tdengine-test-dir/1/2/3/5");
taosRemoveDir("./tdengine-test-dir/1/2/3/4");
taosRemoveDir("./tdengine-test-dir/1/2/3");
taosRemoveDir("./tdengine-test-dir/1/2");
taosRemoveDir("./tdengine-test-dir/1");
taosRemoveDir("./tdengine-test-dir/");
taosRemoveDir("tdengine-test-dir/1/2/3/5");
taosRemoveDir("tdengine-test-dir/1/2/3/4");
taosRemoveDir("tdengine-test-dir/1/2/3");
taosRemoveDir("tdengine-test-dir/1/2");
taosRemoveDir("tdengine-test-dir/1");
taosRemoveDir("tdengine-test-dir/");
taosRemoveDir("tdengine-test-dir/");
}

View File

@ -0,0 +1,93 @@
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <gtest/gtest.h>
#include <iostream>
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wwrite-strings"
#pragma GCC diagnostic ignored "-Wunused-function"
#pragma GCC diagnostic ignored "-Wunused-variable"
#pragma GCC diagnostic ignored "-Wsign-compare"
#pragma GCC diagnostic ignored "-Wsign-compare"
#pragma GCC diagnostic ignored "-Wformat"
#pragma GCC diagnostic ignored "-Wint-to-pointer-cast"
#pragma GCC diagnostic ignored "-Wpointer-arith"
#include "os.h"
#include "tlog.h"
TEST(osEnvTests, osDefaultInit) {
int32_t ret = 0;
strcpy(tsTimezoneStr, "");
strcpy(tsTempDir, "");
tsNumOfCores = 0;
ret = osDefaultInit();
EXPECT_EQ(ret, 0);
strcpy(tsTempDir, "/tmp");
ret = osDefaultInit();
EXPECT_EQ(ret, 0);
osCleanup();
}
TEST(osEnvTests, osUpdate) {
int32_t ret = 0;
strcpy(tsLogDir, "");
strcpy(tsDataDir, "");
strcpy(tsTempDir, "");
ret = osUpdate();
EXPECT_EQ(ret, 0);
}
TEST(osEnvTests, osSufficient) {
bool ret = 0;
tsLogSpace.size.avail = 10000;
tsDataSpace.size.avail = 10000;
tsTempSpace.size.avail = 10000;
tsLogSpace.reserved = 2000;
tsDataSpace.reserved = 2000;
tsDataSpace.reserved = 2000;
ret = osLogSpaceAvailable();
EXPECT_EQ(ret, true);
ret = osTempSpaceAvailable();
EXPECT_EQ(ret, true);
ret = osDataSpaceAvailable();
EXPECT_EQ(ret, true);
ret = osLogSpaceSufficient();
EXPECT_EQ(ret, true);
ret = osDataSpaceSufficient();
EXPECT_EQ(ret, true);
ret = osTempSpaceSufficient();
EXPECT_EQ(ret, true);
osSetSystemLocale(NULL, NULL);
osSetSystemLocale(NULL, NULL);
osSetSystemLocale("1", "2");
osSetProcPath(1, NULL);
osSetProcPath(0, (char **)&ret);
}