wangyang0918 commented on a change in pull request #10532:
[FLINK-15053][runtime] Escape all dynamical property values for taskmanager
URL: https://github.com/apache/flink/pull/10532#discussion_r362692169
##########
File path:
flink-runtime/src/test/java/org/apache/flink/runtime/clusterframework/BootstrapToolsTest.java
##########
@@ -413,17 +413,32 @@ public void
testActorSystemInstantiationFailureWhenPortOccupied() throws Excepti
}
@Test
- public void testGetDynamicProperties() {
- Configuration baseConfig = new Configuration();
+ public void testGetDynamicPropertiesAsString() {
+ final Configuration baseConfig = new Configuration();
baseConfig.setString("key.a", "a");
baseConfig.setString("key.b", "b1");
- Configuration targetConfig = new Configuration();
+ final Configuration targetConfig = new Configuration();
targetConfig.setString("key.b", "b2");
targetConfig.setString("key.c", "c");
- String dynamicProperties =
BootstrapTools.getDynamicProperties(baseConfig, targetConfig);
- assertEquals("-Dkey.b=b2 -Dkey.c=c", dynamicProperties);
+ final String dynamicProperties =
BootstrapTools.getDynamicPropertiesAsString(baseConfig, targetConfig);
+ assertEquals("-Dkey.b='b2' -Dkey.c='c'", dynamicProperties);
+ }
+
+ @Test
+ public void testEscapeDynamicPropertyValue() {
+ final String value1 = "#a,b&c^d*e%f(g!h";
+ assertEquals("'" + value1 + "'",
BootstrapTools.escapeWithSingleQuote(value1));
+
+ final String value2 = "'foobar";
+ assertEquals("''\\''foobar'",
BootstrapTools.escapeWithSingleQuote(value2));
+
+ final String value3 = "foo''bar";
+ assertEquals("'foo'\\'''\\''bar'",
BootstrapTools.escapeWithSingleQuote(value3));
+
+ final String value4 = "'foo' 'bar'";
+ assertEquals("''\\''foo'\\'' '\\''bar'\\'''",
BootstrapTools.escapeWithSingleQuote(value4));
Review comment:
Make sense to me. I will try to make every tested value in a separate test
case in the future.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services