TDengine/source/util/test/cfgTest.cpp

138 lines
4.5 KiB
C++
Raw Normal View History

2022-02-18 13:28:03 +00:00
/**
* @file cfgTest.cpp
* @author slguan (slguan@taosdata.com)
* @brief config module tests
* @version 1.0
* @date 2022-02-20
*
* @copyright Copyright (c) 2022
*
*/
#include <gtest/gtest.h>
2022-02-24 10:13:57 +00:00
#include "tconfig.h"
2022-02-18 13:28:03 +00:00
class CfgTest : public ::testing::Test {
protected:
static void SetUpTestSuite() {}
static void TearDownTestSuite() {}
public:
void SetUp() override {}
void TearDown() override {}
2022-02-22 11:49:11 +00:00
void InitCfg(SConfig *pConfig);
2022-02-21 08:04:37 +00:00
2022-02-18 13:28:03 +00:00
static const char *pConfig;
};
2022-02-18 13:31:38 +00:00
const char *CfgTest::pConfig;
2022-02-18 13:28:03 +00:00
2022-02-22 11:49:11 +00:00
TEST_F(CfgTest, 01_Str) {
2022-02-22 05:36:26 +00:00
EXPECT_STREQ(cfgStypeStr(CFG_STYPE_DEFAULT), "default");
EXPECT_STREQ(cfgStypeStr(CFG_STYPE_CFG_FILE), "cfg_file");
EXPECT_STREQ(cfgStypeStr(CFG_STYPE_ENV_FILE), "env_file");
EXPECT_STREQ(cfgStypeStr(CFG_STYPE_ENV_VAR), "env_var");
2022-04-25 05:57:55 +00:00
EXPECT_STREQ(cfgStypeStr(CFG_STYPE_ENV_CMD), "env_cmd");
2022-02-22 05:36:26 +00:00
EXPECT_STREQ(cfgStypeStr(CFG_STYPE_APOLLO_URL), "apollo_url");
2022-02-22 05:59:51 +00:00
EXPECT_STREQ(cfgStypeStr(CFG_STYPE_ARG_LIST), "arg_list");
2022-02-21 09:33:37 +00:00
EXPECT_STREQ(cfgStypeStr(ECfgSrcType(1024)), "invalid");
EXPECT_STREQ(cfgDtypeStr(CFG_DTYPE_NONE), "none");
EXPECT_STREQ(cfgDtypeStr(CFG_DTYPE_BOOL), "bool");
EXPECT_STREQ(cfgDtypeStr(CFG_DTYPE_INT32), "int32");
EXPECT_STREQ(cfgDtypeStr(CFG_DTYPE_INT64), "int64");
EXPECT_STREQ(cfgDtypeStr(CFG_DTYPE_FLOAT), "float");
EXPECT_STREQ(cfgDtypeStr(CFG_DTYPE_STRING), "string");
EXPECT_STREQ(cfgDtypeStr(CFG_DTYPE_DIR), "dir");
2022-02-22 11:49:11 +00:00
EXPECT_STREQ(cfgDtypeStr(CFG_DTYPE_DIR), "dir");
EXPECT_STREQ(cfgDtypeStr(CFG_DTYPE_DIR), "dir");
EXPECT_STREQ(cfgDtypeStr(CFG_DTYPE_DIR), "dir");
2022-02-21 09:33:37 +00:00
EXPECT_STREQ(cfgDtypeStr(ECfgDataType(1024)), "invalid");
}
TEST_F(CfgTest, 02_Basic) {
2022-02-21 08:04:37 +00:00
SConfig *pConfig = cfgInit();
2022-02-21 09:33:37 +00:00
ASSERT_NE(pConfig, nullptr);
2023-10-23 02:46:48 +00:00
EXPECT_EQ(cfgAddBool(pConfig, "test_bool", 0, 0, 0), 0);
EXPECT_EQ(cfgAddInt32(pConfig, "test_int32", 1, 0, 16, 0, 0), 0);
EXPECT_EQ(cfgAddInt64(pConfig, "test_int64", 2, 0, 16, 0, 0), 0);
EXPECT_EQ(cfgAddFloat(pConfig, "test_float", 3, 0, 16, 0, 0), 0);
EXPECT_EQ(cfgAddString(pConfig, "test_string", "4", 0, 0), 0);
EXPECT_EQ(cfgAddDir(pConfig, "test_dir", TD_TMP_DIR_PATH, 0, 0), 0);
2022-02-21 08:04:37 +00:00
2022-02-24 10:13:57 +00:00
EXPECT_EQ(cfgGetSize(pConfig), 6);
2022-02-21 08:04:37 +00:00
2024-04-25 06:23:54 +00:00
int32_t size = cfgGetSize(pConfig);
SConfigItem* pItem = NULL;
SConfigIter* pIter = cfgCreateIter(pConfig);
while((pItem == cfgNextIter(pIter)) != NULL) {
2022-02-21 08:04:37 +00:00
switch (pItem->dtype) {
case CFG_DTYPE_BOOL:
2022-02-22 11:49:11 +00:00
printf("index:%d, cfg:%s value:%d\n", size, pItem->name, pItem->bval);
2022-02-21 08:04:37 +00:00
break;
2022-02-21 09:33:37 +00:00
case CFG_DTYPE_INT32:
2022-02-22 11:49:11 +00:00
printf("index:%d, cfg:%s value:%d\n", size, pItem->name, pItem->i32);
2022-02-21 08:04:37 +00:00
break;
2022-02-21 09:33:37 +00:00
case CFG_DTYPE_INT64:
2022-02-22 11:49:11 +00:00
printf("index:%d, cfg:%s value:%" PRId64 "\n", size, pItem->name, pItem->i64);
2022-02-21 08:04:37 +00:00
break;
2022-02-21 09:33:37 +00:00
case CFG_DTYPE_FLOAT:
2022-02-22 11:49:11 +00:00
printf("index:%d, cfg:%s value:%f\n", size, pItem->name, pItem->fval);
2022-02-21 08:04:37 +00:00
break;
2022-02-21 09:33:37 +00:00
case CFG_DTYPE_STRING:
2022-02-22 11:49:11 +00:00
printf("index:%d, cfg:%s value:%s\n", size, pItem->name, pItem->str);
2022-02-21 08:04:37 +00:00
break;
2022-02-21 09:33:37 +00:00
case CFG_DTYPE_DIR:
2022-02-22 11:49:11 +00:00
printf("index:%d, cfg:%s value:%s\n", size, pItem->name, pItem->str);
2022-02-21 08:04:37 +00:00
break;
default:
2022-02-21 09:33:37 +00:00
printf("index:%d, cfg:%s invalid cfg dtype:%d\n", size, pItem->name, pItem->dtype);
2022-02-21 08:04:37 +00:00
break;
}
}
2024-04-25 06:23:54 +00:00
cfgDestroyIter(pIter);
2022-02-24 10:13:57 +00:00
EXPECT_EQ(cfgGetSize(pConfig), 6);
2022-02-21 08:04:37 +00:00
2024-04-25 06:23:54 +00:00
pItem = cfgGetItem(pConfig, "test_bool");
2022-02-22 05:36:26 +00:00
EXPECT_EQ(pItem->stype, CFG_STYPE_DEFAULT);
2022-02-21 08:04:37 +00:00
EXPECT_EQ(pItem->dtype, CFG_DTYPE_BOOL);
EXPECT_STREQ(pItem->name, "test_bool");
2022-02-22 11:49:11 +00:00
EXPECT_EQ(pItem->bval, 0);
2022-02-21 08:04:37 +00:00
pItem = cfgGetItem(pConfig, "test_int32");
2022-02-22 05:36:26 +00:00
EXPECT_EQ(pItem->stype, CFG_STYPE_DEFAULT);
2022-02-21 08:04:37 +00:00
EXPECT_EQ(pItem->dtype, CFG_DTYPE_INT32);
EXPECT_STREQ(pItem->name, "test_int32");
2022-02-22 11:49:11 +00:00
EXPECT_EQ(pItem->i32, 1);
2022-02-21 08:04:37 +00:00
pItem = cfgGetItem(pConfig, "test_int64");
2022-02-22 05:36:26 +00:00
EXPECT_EQ(pItem->stype, CFG_STYPE_DEFAULT);
2022-02-21 09:33:37 +00:00
EXPECT_EQ(pItem->dtype, CFG_DTYPE_INT64);
2022-02-21 08:04:37 +00:00
EXPECT_STREQ(pItem->name, "test_int64");
2022-02-22 11:49:11 +00:00
EXPECT_EQ(pItem->i64, 2);
2022-02-21 08:04:37 +00:00
pItem = cfgGetItem(pConfig, "test_float");
2022-02-22 05:36:26 +00:00
EXPECT_EQ(pItem->stype, CFG_STYPE_DEFAULT);
2022-02-21 08:04:37 +00:00
EXPECT_EQ(pItem->dtype, CFG_DTYPE_FLOAT);
EXPECT_STREQ(pItem->name, "test_float");
2022-02-22 11:49:11 +00:00
EXPECT_EQ(pItem->fval, 3);
2022-02-21 08:04:37 +00:00
pItem = cfgGetItem(pConfig, "test_string");
2022-02-22 05:36:26 +00:00
EXPECT_EQ(pItem->stype, CFG_STYPE_DEFAULT);
2022-02-21 08:04:37 +00:00
EXPECT_EQ(pItem->dtype, CFG_DTYPE_STRING);
EXPECT_STREQ(pItem->name, "test_string");
2022-02-22 11:49:11 +00:00
EXPECT_STREQ(pItem->str, "4");
2022-02-21 08:04:37 +00:00
pItem = cfgGetItem(pConfig, "test_dir");
2022-02-22 05:36:26 +00:00
EXPECT_EQ(pItem->stype, CFG_STYPE_DEFAULT);
2022-02-21 08:04:37 +00:00
EXPECT_EQ(pItem->dtype, CFG_DTYPE_DIR);
EXPECT_STREQ(pItem->name, "test_dir");
EXPECT_STREQ(pItem->str, TD_TMP_DIR_PATH);
2022-02-21 08:04:37 +00:00
cfgCleanup(pConfig);
}