This is an automated email from the ASF dual-hosted git repository.
jlli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
The following commit(s) were added to refs/heads/master by this push:
new a7bf571 Try fixing flaky tests by adding 0.5s sleep (#3667)
a7bf571 is described below
commit a7bf571f4f05e179d8a0e81b9cae5ecaea2a1b35
Author: Jialiang Li <[email protected]>
AuthorDate: Thu Jan 10 09:26:46 2019 -0800
Try fixing flaky tests by adding 0.5s sleep (#3667)
* Try fixing flaky tests by adding 0.5s sleep
* Leverage waitForCondition method in test jar
---
pinot-controller/pom.xml | 6 +++++
.../PinotInstanceRestletResourceTest.java | 29 ++++++++++++++++------
2 files changed, 27 insertions(+), 8 deletions(-)
diff --git a/pinot-controller/pom.xml b/pinot-controller/pom.xml
index 48652fc..989e40a 100644
--- a/pinot-controller/pom.xml
+++ b/pinot-controller/pom.xml
@@ -70,6 +70,12 @@
</dependency>
<dependency>
<groupId>com.linkedin.pinot</groupId>
+ <artifactId>pinot-core</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>com.linkedin.pinot</groupId>
<artifactId>pinot-server</artifactId>
<scope>test</scope>
<exclusions>
diff --git
a/pinot-controller/src/test/java/com/linkedin/pinot/controller/api/resources/PinotInstanceRestletResourceTest.java
b/pinot-controller/src/test/java/com/linkedin/pinot/controller/api/resources/PinotInstanceRestletResourceTest.java
index d40fa8c..c9ab9e6 100644
---
a/pinot-controller/src/test/java/com/linkedin/pinot/controller/api/resources/PinotInstanceRestletResourceTest.java
+++
b/pinot-controller/src/test/java/com/linkedin/pinot/controller/api/resources/PinotInstanceRestletResourceTest.java
@@ -20,6 +20,7 @@ package com.linkedin.pinot.controller.api.resources;
import com.linkedin.pinot.common.utils.CommonConstants;
import com.linkedin.pinot.controller.helix.ControllerTest;
+import com.linkedin.pinot.util.TestUtils;
import java.io.IOException;
import org.json.JSONObject;
import org.testng.annotations.BeforeClass;
@@ -53,9 +54,15 @@ public class PinotInstanceRestletResourceTest extends
ControllerTest {
sendPostRequest(_controllerRequestURLBuilder.forInstanceCreate(),
serverInstance.toString());
// Check that there are two instances
- instanceList = new
JSONObject(sendGetRequest(_controllerRequestURLBuilder.forInstanceList()));
- assertEquals(instanceList.getJSONArray("instances").length(), 2,
- "Expected two instances after creation of untagged instances");
+ TestUtils.waitForCondition(aVoid -> {
+ try {
+ // Check that there are four instances
+ JSONObject instanceList1 = new
JSONObject(sendGetRequest(_controllerRequestURLBuilder.forInstanceList()));
+ return instanceList1.getJSONArray("instances").length() == 2;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }, 500L, 10_000L, "Expected two instances after creation of tagged
instances");
// Create tagged broker and server instances
brokerInstance.put("tag", "someTag");
@@ -66,10 +73,16 @@ public class PinotInstanceRestletResourceTest extends
ControllerTest {
serverInstance.put("host", "2.3.4.5");
sendPostRequest(_controllerRequestURLBuilder.forInstanceCreate(),
serverInstance.toString());
- // Check that there are four instances
- instanceList = new
JSONObject(sendGetRequest(_controllerRequestURLBuilder.forInstanceList()));
- assertEquals(instanceList.getJSONArray("instances").length(), 4,
- "Expected two instances after creation of tagged instances");
+ // It may take some time for cache data accessor to update its data.
+ TestUtils.waitForCondition(aVoid -> {
+ try {
+ // Check that there are four instances
+ JSONObject instanceList1 = new
JSONObject(sendGetRequest(_controllerRequestURLBuilder.forInstanceList()));
+ return instanceList1.getJSONArray("instances").length() == 4;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }, 500L, 10_000L, "Expected four instances after creation of tagged
instances");
// Create duplicate broker and server instances (both calls should fail)
try {
@@ -89,7 +102,7 @@ public class PinotInstanceRestletResourceTest extends
ControllerTest {
// Check that there are four instances
instanceList = new
JSONObject(sendGetRequest(_controllerRequestURLBuilder.forInstanceList()));
assertEquals(instanceList.getJSONArray("instances").length(), 4,
- "Expected two instances after creation of duplicate instances");
+ "Expected four instances after creation of duplicate instances");
// Check that the instances are properly created
JSONObject instance =
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]