You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by GitBox <gi...@apache.org> on 2020/01/03 02:26:00 UTC

[GitHub] [flink] wangyang0918 commented on a change in pull request #10532: [FLINK-15053][runtime] Escape all dynamical property values for taskmanager

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:
users@infra.apache.org


With regards,
Apache Git Services