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/02 15:02:04 UTC

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

tillrohrmann 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_r362498650
 
 

 ##########
 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:
   It is ok to leave it like this but in the future I would suggest to make every tested value a separate test case. This allows to give more expressive names for what one is testing and if something breaks it is easier to understand what's broken.

----------------------------------------------------------------
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