You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by mx...@apache.org on 2016/06/24 16:56:10 UTC

[6/6] flink git commit: [FLINK-3864][yarn] check for prohibited strings in log output

[FLINK-3864][yarn] check for prohibited strings in log output

- enables actual checking of output which didn't work until now
- uses regexp to check for prohibited strings

This closes #2125


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/d92aeb7a
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/d92aeb7a
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/d92aeb7a

Branch: refs/heads/master
Commit: d92aeb7aa63490278d9a9e36aae595e6cbe39f32
Parents: a5aa4e1
Author: Maximilian Michels <mx...@apache.org>
Authored: Fri Jun 17 14:29:17 2016 +0200
Committer: Maximilian Michels <mx...@apache.org>
Committed: Fri Jun 24 18:53:43 2016 +0200

----------------------------------------------------------------------
 .../flink/yarn/YARNSessionCapacitySchedulerITCase.java |  8 ++++----
 .../test/java/org/apache/flink/yarn/YarnTestBase.java  | 13 +++++++------
 2 files changed, 11 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/d92aeb7a/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YARNSessionCapacitySchedulerITCase.java
----------------------------------------------------------------------
diff --git a/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YARNSessionCapacitySchedulerITCase.java b/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YARNSessionCapacitySchedulerITCase.java
index 826a086..513a9fc 100644
--- a/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YARNSessionCapacitySchedulerITCase.java
+++ b/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YARNSessionCapacitySchedulerITCase.java
@@ -120,8 +120,8 @@ public class YARNSessionCapacitySchedulerITCase extends YarnTestBase {
 				"-ytm", "1024", exampleJarLocation.getAbsolutePath()},
 				/* test succeeded after this string */
 			"Job execution complete",
-				/* prohibited strings: (we want to see (2/2)) */
-			new String[]{"System.out)(1/1) switched to FINISHED "},
+			/* prohibited strings: (we want to see "DataSink (...) (2/2) switched to FINISHED") */
+			new String[]{"DataSink \\(.*\\) \\(1/1\\) switched to FINISHED"},
 			RunTypes.CLI_FRONTEND, 0, true);
 		LOG.info("Finished perJobYarnCluster()");
 	}
@@ -360,8 +360,8 @@ public class YARNSessionCapacitySchedulerITCase extends YarnTestBase {
 				"-ytm", "1024", exampleJarLocation.getAbsolutePath()},
 				/* test succeeded after this string */
 			"Job execution complete",
-				/* prohibited strings: (we want to see (2/2)) */
-			new String[]{"System.out)(1/1) switched to FINISHED "},
+			/* prohibited strings: (we want to see "DataSink (...) (2/2) switched to FINISHED") */
+			new String[]{"DataSink \\(.*\\) \\(1/1\\) switched to FINISHED"},
 			RunTypes.CLI_FRONTEND, 0, true);
 		LOG.info("Finished perJobYarnClusterWithParallelism()");
 	}

http://git-wip-us.apache.org/repos/asf/flink/blob/d92aeb7a/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YarnTestBase.java
----------------------------------------------------------------------
diff --git a/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YarnTestBase.java b/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YarnTestBase.java
index 4de964a..6028d98 100644
--- a/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YarnTestBase.java
+++ b/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YarnTestBase.java
@@ -60,6 +60,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Scanner;
 import java.util.concurrent.ConcurrentMap;
+import java.util.regex.Pattern;
 
 
 /**
@@ -446,12 +447,12 @@ public abstract class YarnTestBase extends TestLogger {
 	 * The test has been passed once the "terminateAfterString" has been seen.
 	 * @param args Command line arguments for the runner
 	 * @param terminateAfterString the runner is searching the stdout and stderr for this string. as soon as it appears, the test has passed
-	 * @param failOnStrings The runner is searching stdout and stderr for the strings specified here. If one appears, the test has failed
+	 * @param failOnPatterns The runner is searching stdout and stderr for the pattern (regexp) specified here. If one appears, the test has failed
 	 * @param type Set the type of the runner
 	 * @param returnCode Expected return code from the runner.
 	 * @param checkLogForTerminateString  If true, the runner checks also the log4j logger for the terminate string
 	 */
-	protected void runWithArgs(String[] args, String terminateAfterString, String[] failOnStrings, RunTypes type, int returnCode, boolean checkLogForTerminateString) {
+	protected void runWithArgs(String[] args, String terminateAfterString, String[] failOnPatterns, RunTypes type, int returnCode, boolean checkLogForTerminateString) {
 		LOG.info("Running with args {}", Arrays.toString(args));
 
 		outContent = new ByteArrayOutputStream();
@@ -473,10 +474,10 @@ public abstract class YarnTestBase extends TestLogger {
 			sleep(1000);
 			String outContentString = outContent.toString();
 			String errContentString = errContent.toString();
-			if(failOnStrings != null) {
-				for (String failOnString : failOnStrings) {
-					if (outContentString.contains(failOnString)
-							|| errContentString.contains(failOnString)) {
+			if(failOnPatterns != null) {
+				for (String failOnString : failOnPatterns) {
+					Pattern pattern = Pattern.compile(failOnString);
+					if (pattern.matcher(outContentString).find() || pattern.matcher(errContentString).find()) {
 						LOG.warn("Failing test. Output contained illegal string '" + failOnString + "'");
 						sendOutput();
 						// stopping runner.