1. 外部参数输入解析
目的:观察从终端输入的外部参数信息是否能够正确读取并且录入。
1.1 调用如下
static kit_server::Logger::ptr g_logger = KIT_LOG_ROOT();void test_env(int argc, char *argv[]){kit_server::Env* env = kit_server::EnvMgr::GetInstance();if(!env->init(argc, argv)){KIT_LOG_ERROR(g_logger) << "args parser error!";return;}env->add("a", "6666");env->add("c", "8888");//env->del("b");env->addHelp("a", "hello");env->addHelp("b", "ahhahah");env->addHelp("c", "651651");env->printHelp();//env->delHelp("c");env->del("c");if(env->has("a")){std::cout << "a存在" << std::endl;}else{std::cout << "a不存在" << std::endl;}if(env->has("b")){std::cout << "b存在" << std::endl;}else{std::cout << "b不存在" << std::endl;}if(env->has("c")){std::cout << "c存在" << std::endl;}else{std::cout << "c不存在" << std::endl;}if(env->has("p")){std::cout << "p存在" << std::endl;}else{std::cout << "p不存在" << std::endl;}env->printHelp();}int main(int argc, char *argv[]){KIT_LOG_INFO(g_logger) << "test begin";test_env(argc, argv);KIT_LOG_INFO(g_logger) << "test end";return 0;}
BUG:外部传入参数没有被正确读取解析
预期的效果能够处理以下几种情况:
-key1 val -key2-key1 -key2 val-key1 -key2-key
上述测试结果可以看到 4. 的情况就没能正确处理。init()解析部分不正确,重新修改
1.2 修正后调用如下
- 调用测试代码不变。可以看到已经能够正确读取
-b参数
$ bin/test_env -b
- 调用测试代码不变。继续测试其他几种排列情况
$ bin/test_env -b 0000 -p
$ bin/test_env -b -p 0000
$ bin/test_env -b -p
2. 预加载配置文件.yaml
目的:能否从外部提供一个文件夹的相对路径/绝对路径下加载全部的配置文件.yaml。没有修改过的配置文件不予以进行加载。
2.1 调用如下
tests/test_config.cpp文件中: ```cppinclude “../kit_server/Log.h”
include “../kit_server/config.h”
include “../kit_server/env.h”
void test_loadconf() { kit_server::Config::LoadFromConfigDir(“conf”); }
int main(int argc, char argv[]) { kit_server::Env env = kit_server::EnvMgr::GetInstance(); if(!env->init(argc, argv)) { KIT_LOG_ERROR(g_logger) << “args init fail!”; return 0; }
test_loadconf();return 0;
}
`bin/conf`路径下只放了一个`test.yaml`文件,已经成功加载;并且在`bin/conf`下再放一个文件夹`xxx`,`bin/conf/xxx`下再放一个同样的`test.yaml`文件,也成功加载。<br />- 测试没有修改过的配置文件是否也会加载。连续调用两次加载的接口。```cppvoid test_loadconf(){kit_server::Config::LoadFromConfigDir("conf");std::cout << "------------------------" << std::endl;kit_server::Config::LoadFromConfigDir("conf");}int main(int argc, char* argv[]){kit_server::Env* env = kit_server::EnvMgr::GetInstance();if(!env->init(argc, argv)){KIT_LOG_ERROR(g_logger) << "args init fail!";return 0;}test_loadconf();return 0;}

