Added support for params config file
This commit is contained in:
@@ -191,3 +191,4 @@ add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMA
|
||||
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/src/sidechain_dump.dat.xz" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)
|
||||
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/src/sidechain_dump_mini.dat.xz" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)
|
||||
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/src/sidechain_dump_nano.dat.xz" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)
|
||||
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/src/test_params.conf" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# comment 1
|
||||
|
||||
param1=value1
|
||||
param2 = value2 # comment 2
|
||||
param3 value3#_comment_3
|
||||
|
||||
param4 = "value with spaces # not a comment" # a real comment
|
||||
param5 = "spaces and quotes \" and \\ slashes"
|
||||
|
||||
param6 = value1 value2 value3
|
||||
|
||||
param7=value7
|
||||
|
||||
param8#comment
|
||||
param9
|
||||
|
||||
abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789=0123456789-ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz=://
|
||||
@@ -247,4 +247,65 @@ TEST(util, onion)
|
||||
ASSERT_TRUE(from_onion_v3("civ5tgldg3yx73ytse6hvvk3nm6q3zctbqvytpszihm35b33ze73kxad.onion").empty());
|
||||
}
|
||||
|
||||
TEST(util, parse_config)
|
||||
{
|
||||
const std::vector<std::vector<std::string>> args = parse_config("test_params.conf");
|
||||
|
||||
ASSERT_EQ(args.size(), 10);
|
||||
|
||||
ASSERT_EQ(args[0].size(), 2);
|
||||
ASSERT_EQ(args[0][0], "param1");
|
||||
ASSERT_EQ(args[0][1], "value1");
|
||||
|
||||
ASSERT_EQ(args[1].size(), 2);
|
||||
ASSERT_EQ(args[1][0], "param2");
|
||||
ASSERT_EQ(args[1][1], "value2");
|
||||
|
||||
ASSERT_EQ(args[2].size(), 2);
|
||||
ASSERT_EQ(args[2][0], "param3");
|
||||
ASSERT_EQ(args[2][1], "value3");
|
||||
|
||||
ASSERT_EQ(args[3].size(), 2);
|
||||
ASSERT_EQ(args[3][0], "param4");
|
||||
ASSERT_EQ(args[3][1], "value with spaces # not a comment");
|
||||
|
||||
ASSERT_EQ(args[4].size(), 2);
|
||||
ASSERT_EQ(args[4][0], "param5");
|
||||
ASSERT_EQ(args[4][1], "spaces and quotes \" and \\ slashes");
|
||||
|
||||
ASSERT_EQ(args[5].size(), 4);
|
||||
ASSERT_EQ(args[5][0], "param6");
|
||||
ASSERT_EQ(args[5][1], "value1");
|
||||
ASSERT_EQ(args[5][2], "value2");
|
||||
ASSERT_EQ(args[5][3], "value3");
|
||||
|
||||
ASSERT_EQ(args[6].size(), 2);
|
||||
ASSERT_EQ(args[6][0], "param7");
|
||||
ASSERT_EQ(args[6][1], "value7");
|
||||
|
||||
ASSERT_EQ(args[7].size(), 1);
|
||||
ASSERT_EQ(args[7][0], "param8");
|
||||
|
||||
ASSERT_EQ(args[8].size(), 1);
|
||||
ASSERT_EQ(args[8][0], "param9");
|
||||
|
||||
ASSERT_EQ(args[9].size(), 2);
|
||||
ASSERT_EQ(args[9][0], "abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789");
|
||||
ASSERT_EQ(args[9][1], "0123456789-ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz=://");
|
||||
|
||||
bool exception_thrown = false;
|
||||
|
||||
try {
|
||||
parse_config("non_existent_file.conf");
|
||||
|
||||
// Execution shouldn't reach this line
|
||||
FAIL();
|
||||
}
|
||||
catch (const std::exception&) {
|
||||
exception_thrown = true;
|
||||
}
|
||||
|
||||
ASSERT_TRUE(exception_thrown);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user