LENS-463 : Fix TestQueryEndEmailNotifier intermittent failure (Rajat Khandelwal via amareshwari)
Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/9d474389 Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/9d474389 Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/9d474389 Branch: refs/heads/master Commit: 9d47438995230c88e50912579875f20b4d3e30bc Parents: 5b2afbb Author: Rajat Khandelwal <[email protected]> Authored: Tue Apr 21 21:24:50 2015 +0530 Committer: Amareshwari Sriramadasu <[email protected]> Committed: Tue Apr 21 21:28:01 2015 +0530 ---------------------------------------------------------------------- .../server/query/TestQueryEndEmailNotifier.java | 36 +++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/9d474389/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java index ca1b10b..6a24f8f 100644 --- a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java +++ b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java @@ -18,7 +18,10 @@ */ package org.apache.lens.server.query; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; @@ -27,7 +30,9 @@ import javax.ws.rs.core.MediaType; import org.apache.lens.api.LensConf; import org.apache.lens.api.LensSessionHandle; -import org.apache.lens.api.query.*; +import org.apache.lens.api.query.LensQuery; +import org.apache.lens.api.query.QueryHandle; +import org.apache.lens.api.query.QueryStatus; import org.apache.lens.api.query.QueryStatus.Status; import org.apache.lens.server.LensJerseyTest; import org.apache.lens.server.LensServices; @@ -58,7 +63,7 @@ public class TestQueryEndEmailNotifier extends LensJerseyTest { /** The Constant LOG. */ public static final Log LOG = LogFactory.getLog(TestQueryEndEmailNotifier.class); - + private static final int NUM_ITERS = 30; /** The query service. */ QueryExecutionServiceImpl queryService; @@ -184,6 +189,7 @@ public class TestQueryEndEmailNotifier extends LensJerseyTest { Assert.assertEquals(ctx.getStatus().getStatus(), expectedStatus); return handle; } + /** * Test launch fail. * @@ -196,9 +202,9 @@ public class TestQueryEndEmailNotifier extends LensJerseyTest { // launch failure QueryHandle handle = launchAndWaitForQuery(conf, "select ID from non_exist_table", QueryStatus.Status.FAILED); List<WiserMessage> messages = new ArrayList<WiserMessage>(); - for (int i = 0; i < 20; i++) { + for (int i = 0; i < NUM_ITERS; i++) { messages = wiser.getMessages(); - if (messages.size() > 0) { + if (messages.size() >= 4) { break; } Thread.sleep(10000); @@ -206,17 +212,15 @@ public class TestQueryEndEmailNotifier extends LensJerseyTest { Assert.assertEquals(messages.size(), 4); Assert.assertTrue(messages.get(0).toString().contains(handle.toString())); - Assert.assertEquals(messages.size(), 4); - Assert.assertTrue(messages.get(0).toString().contains(handle.toString())); Assert.assertTrue(messages.get(0).toString().contains("Launching query failed")); Assert.assertTrue(messages.get(0).toString().contains("Reason")); // rewriter failure handle = launchAndWaitForQuery(conf, "cube select ID from nonexist", QueryStatus.Status.FAILED); messages = new ArrayList<WiserMessage>(); - for (int i = 0; i < 20; i++) { + for (int i = 0; i < NUM_ITERS; i++) { messages = wiser.getMessages(); - if (messages.size() > 4) { + if (messages.size() >= 8) { break; } Thread.sleep(10000); @@ -235,9 +239,9 @@ public class TestQueryEndEmailNotifier extends LensJerseyTest { handle = launchAndWaitForQuery(conf, "select ID, IDSTR from " + TEST_TABLE, QueryStatus.Status.FAILED); messages = new ArrayList<WiserMessage>(); - for (int i = 0; i < 20; i++) { + for (int i = 0; i < NUM_ITERS; i++) { messages = wiser.getMessages(); - if (messages.size() > 8) { + if (messages.size() >= 12) { break; } Thread.sleep(10000); @@ -256,9 +260,9 @@ public class TestQueryEndEmailNotifier extends LensJerseyTest { conf.addProperty("mapred.map.output.compression.codec", "nonexisting"); handle = launchAndWaitForQuery(conf, "select count(ID) from " + TEST_TABLE, QueryStatus.Status.FAILED); messages = new ArrayList<WiserMessage>(); - for (int i = 0; i < 20; i++) { + for (int i = 0; i < NUM_ITERS; i++) { messages = wiser.getMessages(); - if (messages.size() > 12) { + if (messages.size() >= 16) { break; } Thread.sleep(10000); @@ -275,19 +279,17 @@ public class TestQueryEndEmailNotifier extends LensJerseyTest { conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "true"); handle = launchAndWaitForQuery(conf, "select ID, IDSTR from " + TEST_TABLE, QueryStatus.Status.SUCCESSFUL); messages = new ArrayList<WiserMessage>(); - for (int i = 0; i < 20; i++) { + for (int i = 0; i < NUM_ITERS; i++) { messages = wiser.getMessages(); - if (messages.size() > 16) { + if (messages.size() >= 20) { break; } Thread.sleep(10000); } - Assert.assertEquals(messages.size(), 20); Assert.assertTrue(messages.get(16).toString().contains(handle.toString())); Assert.assertTrue(messages.get(16).toString().contains("Query SUCCESSFUL")); Assert.assertTrue(messages.get(16).toString().contains("Result available at")); - wiser.stop(); } }
