comparison UnitTestsSources/UnitTestsMain.cpp @ 2921:0a4428aad512

variable substitution with default value
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 07 Nov 2018 12:59:03 +0100
parents ad0e7def3338
children 4a38d7d4f0e0
comparison
equal deleted inserted replaced
2920:ad0e7def3338 2921:0a4428aad512
1171 ASSERT_EQ("Hello world\r\nWorld \r\nDone world\r\n", 1171 ASSERT_EQ("Hello world\r\nWorld \r\nDone world\r\n",
1172 Toolbox::SubstituteVariables( 1172 Toolbox::SubstituteVariables(
1173 "Hello ${WORLD}\r\nWorld ${HELLO}\r\nDone ${WORLD}\r\n", 1173 "Hello ${WORLD}\r\nWorld ${HELLO}\r\nDone ${WORLD}\r\n",
1174 env)); 1174 env));
1175 1175
1176 ASSERT_EQ("world A a B world C 'c' D {\"a\":\"b\"} E ",
1177 Toolbox::SubstituteVariables(
1178 "${WORLD} A ${WORLD2:-a} B ${WORLD:-b} C ${WORLD2:-\"'c'\"} D ${WORLD2:-'{\"a\":\"b\"}'} E ${WORLD2:-}",
1179 env));
1180
1176 SystemToolbox::GetEnvironmentVariables(env); 1181 SystemToolbox::GetEnvironmentVariables(env);
1177 ASSERT_TRUE(env.find("NOPE") == env.end()); 1182 ASSERT_TRUE(env.find("NOPE") == env.end());
1178 1183
1179 // The "PATH" environment variable should always be available on 1184 // The "PATH" environment variable should always be available on
1180 // machines running the unit tests 1185 // machines running the unit tests
1181 ASSERT_TRUE(env.find("PATH") != env.end()); 1186 ASSERT_TRUE(env.find("PATH") != env.end());
1187
1188 ASSERT_EQ("A" + env["PATH"] + "B",
1189 Toolbox::SubstituteVariables("A${PATH}B", env));
1182 } 1190 }
1183 1191
1184 1192
1185 int main(int argc, char **argv) 1193 int main(int argc, char **argv)
1186 { 1194 {