Clean up after test failure

If the test fails we properly clean up. Also add a toString
implementation so we get useful results on failure.
This commit is contained in:
Nik Everett 2016-06-14 16:14:57 -04:00
parent 2ebc5c342b
commit c8931768ba
2 changed files with 55 additions and 44 deletions

View File

@ -19,6 +19,7 @@
package org.elasticsearch.action.support.replication;
import org.elasticsearch.common.Strings;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.xcontent.XContentBuilder;
@ -89,6 +90,11 @@ public class ReplicationTask extends Task {
out.writeString(phase);
}
@Override
public String toString() {
return Strings.toString(this);
}
// Implements equals and hashcode for testing
@Override
public boolean equals(Object obj) {

View File

@ -338,6 +338,8 @@ public class TasksIT extends ESIntegTestCase {
*/
ReentrantLock taskFinishLock = new ReentrantLock();
taskFinishLock.lock();
ListenableActionFuture<?> indexFuture = null;
try {
CountDownLatch taskRegistered = new CountDownLatch(1);
for (TransportService transportService : internalCluster().getInstances(TransportService.class)) {
((MockTaskManager) transportService.getTaskManager()).addListener(new MockTaskManagerListener() {
@ -363,7 +365,7 @@ public class TasksIT extends ESIntegTestCase {
}
});
}
ListenableActionFuture<?> indexFuture = client().prepareIndex("test", "test").setSource("test", "test").execute();
indexFuture = client().prepareIndex("test", "test").setSource("test", "test").execute();
taskRegistered.await(10, TimeUnit.SECONDS); // waiting for at least one task to be registered
ListTasksResponse listResponse = client().admin().cluster().prepareListTasks().setActions("indices:data/write/index*")
@ -384,10 +386,13 @@ public class TasksIT extends ESIntegTestCase {
assertEquals(task.isCancellable(), fetchedWithGet.isCancellable());
assertEquals(task.getParentTaskId(), fetchedWithGet.getParentTaskId());
}
} finally {
taskFinishLock.unlock();
if (indexFuture != null) {
indexFuture.get();
}
}
}
public void testTasksCancellation() throws Exception {
// Start blocking test task