diff 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
line wrap: on
line diff
--- a/UnitTestsSources/UnitTestsMain.cpp	Wed Nov 07 11:13:30 2018 +0100
+++ b/UnitTestsSources/UnitTestsMain.cpp	Wed Nov 07 12:59:03 2018 +0100
@@ -1173,12 +1173,20 @@
               "Hello ${WORLD}\r\nWorld ${HELLO}\r\nDone ${WORLD}\r\n",
               env));
 
+  ASSERT_EQ("world A a B world C 'c' D {\"a\":\"b\"} E ",
+            Toolbox::SubstituteVariables(
+              "${WORLD} A ${WORLD2:-a} B ${WORLD:-b} C ${WORLD2:-\"'c'\"} D ${WORLD2:-'{\"a\":\"b\"}'} E ${WORLD2:-}",
+              env));
+  
   SystemToolbox::GetEnvironmentVariables(env);
   ASSERT_TRUE(env.find("NOPE") == env.end());
 
   // The "PATH" environment variable should always be available on
   // machines running the unit tests
   ASSERT_TRUE(env.find("PATH") != env.end());
+
+  ASSERT_EQ("A" + env["PATH"] + "B",
+            Toolbox::SubstituteVariables("A${PATH}B", env));
 }