You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@twill.apache.org by ch...@apache.org on 2014/01/27 22:41:06 UTC

[5/5] git commit: [TWILL-27] Make test less sensitive to machine run time speed.

[TWILL-27] Make test less sensitive to machine run time speed.

Signed-off-by: Terence Yim <te...@continuuity.com>


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

Branch: refs/heads/master
Commit: c49b2f678e1e1ee6904f81595d928475fbd77bb0
Parents: 979634c
Author: Terence Yim <te...@continuuity.com>
Authored: Mon Jan 27 12:38:02 2014 -0800
Committer: Terence Yim <te...@continuuity.com>
Committed: Mon Jan 27 13:40:45 2014 -0800

----------------------------------------------------------------------
 .../twill/yarn/FailureRestartTestRun.java       | 33 ++++++------
 .../twill/yarn/ResourceReportTestRun.java       | 54 +++++++++++---------
 2 files changed, 46 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/c49b2f67/twill-yarn/src/test/java/org/apache/twill/yarn/FailureRestartTestRun.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/test/java/org/apache/twill/yarn/FailureRestartTestRun.java b/twill-yarn/src/test/java/org/apache/twill/yarn/FailureRestartTestRun.java
index 06de991..8bc9571 100644
--- a/twill-yarn/src/test/java/org/apache/twill/yarn/FailureRestartTestRun.java
+++ b/twill-yarn/src/test/java/org/apache/twill/yarn/FailureRestartTestRun.java
@@ -17,34 +17,31 @@
  */
 package org.apache.twill.yarn;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
-import org.junit.Assert;
-import org.junit.Test;
-
 import com.google.common.base.Charsets;
 import com.google.common.collect.Sets;
 import com.google.common.io.LineReader;
-
 import org.apache.twill.api.Command;
 import org.apache.twill.api.ResourceSpecification;
 import org.apache.twill.api.TwillController;
 import org.apache.twill.api.TwillRunner;
 import org.apache.twill.api.logging.PrinterLogHandler;
 import org.apache.twill.discovery.Discoverable;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.util.Set;
 
 /**
  *
  */
-public final class FailureRestartTestRun extends  BaseYarnTest {
+public final class FailureRestartTestRun extends BaseYarnTest {
 
   @Test
   public void testFailureRestart() throws Exception {
@@ -70,10 +67,12 @@ public final class FailureRestartTestRun extends  BaseYarnTest {
     // Kill server with instanceId = 0
     controller.sendCommand(FailureRunnable.class.getSimpleName(), Command.Builder.of("kill0").build());
 
-    // Do a shot sleep, make sure the runnable is killed.
-    TimeUnit.SECONDS.sleep(5);
+    // Make sure the runnable is killed.
+    Assert.assertTrue(YarnTestUtils.waitForSize(discoverables, 1, 60));
 
+    // Wait for the restart
     Assert.assertTrue(YarnTestUtils.waitForSize(discoverables, 2, 60));
+
     // Make sure we see the right instance IDs
     Assert.assertEquals(Sets.newHashSet(0, 1), getInstances(discoverables));
 

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/c49b2f67/twill-yarn/src/test/java/org/apache/twill/yarn/ResourceReportTestRun.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/test/java/org/apache/twill/yarn/ResourceReportTestRun.java b/twill-yarn/src/test/java/org/apache/twill/yarn/ResourceReportTestRun.java
index 795caed..71bb607 100644
--- a/twill-yarn/src/test/java/org/apache/twill/yarn/ResourceReportTestRun.java
+++ b/twill-yarn/src/test/java/org/apache/twill/yarn/ResourceReportTestRun.java
@@ -17,28 +17,9 @@
  */
 package org.apache.twill.yarn;
 
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.net.Socket;
-import java.net.URISyntaxException;
-import java.util.Collection;
-import java.util.Map;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
 import com.google.common.base.Charsets;
 import com.google.common.collect.Maps;
 import com.google.common.io.LineReader;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.twill.api.ResourceReport;
 import org.apache.twill.api.ResourceSpecification;
 import org.apache.twill.api.TwillApplication;
@@ -51,12 +32,29 @@ import org.apache.twill.common.ServiceListenerAdapter;
 import org.apache.twill.common.Threads;
 import org.apache.twill.discovery.Discoverable;
 import org.apache.twill.internal.EnvKeys;
+import org.junit.Assert;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.net.Socket;
+import java.net.URISyntaxException;
+import java.util.Collection;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 
 /**
  * Using echo server to test resource reports.
  * This test is executed by {@link org.apache.twill.yarn.YarnTestUtils}.
  */
-public final class ResourceReportTestRun {
+public final class ResourceReportTestRun extends BaseYarnTest {
 
   private static final Logger LOG = LoggerFactory.getLogger(ResourceReportTestRun.class);
 
@@ -177,10 +175,18 @@ public final class ResourceReportTestRun {
     }
 
     // takes some time for app master to find out the container completed...
-    TimeUnit.SECONDS.sleep(5);
-    // check that we have 1 runnable, not 2.
-    report = controller.getResourceReport();
-    Assert.assertEquals(1, report.getRunnableResources("BuggyServer").size());
+    int count = 0;
+    while (count < 20) {
+      report = controller.getResourceReport();
+      // check that we have 1 runnable, not 2.
+      if (report.getRunnableResources("BuggyServer").size() == 1) {
+        break;
+      }
+      LOG.info("Wait for BuggyServer to have 1 instance left. Trial {}.", count);
+      count++;
+      TimeUnit.SECONDS.sleep(1);
+    }
+    Assert.assertTrue("Still has 2 contains running after 20 seconds", count < 20);
 
     controller.stop().get(30, TimeUnit.SECONDS);
     // Sleep a bit before exiting.