This is an automated email from the ASF dual-hosted git repository.
FrankChen021 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new 31fda7f4970 test(indexing-service): migrate worker tests to JUnit 5
(#19925)
31fda7f4970 is described below
commit 31fda7f4970dc18a286b4db73725cd1ffbdfb8ae
Author: Frank Chen <[email protected]>
AuthorDate: Tue Aug 11 17:56:49 2026 +0800
test(indexing-service): migrate worker tests to JUnit 5 (#19925)
---
.../indexing/worker/TaskAnnouncementTest.java | 20 +--
.../indexing/worker/WorkerTaskManagerTest.java | 195 +++++++++++----------
.../executor/ExecutorLifecycleConfigTest.java | 6 +-
.../indexing/worker/http/WorkerResourceTest.java | 14 +-
...ocalIntermediaryDataManagerAutoCleanupTest.java | 32 ++--
...ocalIntermediaryDataManagerConcurrencyTest.java | 38 ++--
...ermediaryDataManagerManualAddAndDeleteTest.java | 98 ++++++-----
.../shuffle/ShuffleDataSegmentPusherTest.java | 83 +++++----
.../worker/shuffle/ShuffleMetricsTest.java | 64 +++----
.../indexing/worker/shuffle/ShuffleModuleTest.java | 12 +-
.../worker/shuffle/ShuffleMonitorTest.java | 8 +-
.../worker/shuffle/ShuffleResourceTest.java | 44 +++--
12 files changed, 335 insertions(+), 279 deletions(-)
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/TaskAnnouncementTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/TaskAnnouncementTest.java
index 09cd8e6c6e5..1a9d72ecef7 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/TaskAnnouncementTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/TaskAnnouncementTest.java
@@ -29,8 +29,8 @@ import org.apache.druid.indexing.common.task.IndexTask;
import org.apache.druid.indexing.common.task.Task;
import org.apache.druid.indexing.common.task.TaskResource;
import org.apache.druid.segment.indexing.DataSchema;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class TaskAnnouncementTest
{
@@ -70,15 +70,15 @@ public class TaskAnnouncementTest
TaskAnnouncement.class
);
- Assert.assertEquals("theid", statusFromStatus.getId());
- Assert.assertEquals("theid", statusFromAnnouncement.getId());
- Assert.assertEquals("theid",
announcementFromStatus.getTaskStatus().getId());
- Assert.assertEquals("theid",
announcementFromAnnouncement.getTaskStatus().getId());
+ Assertions.assertEquals("theid", statusFromStatus.getId());
+ Assertions.assertEquals("theid", statusFromAnnouncement.getId());
+ Assertions.assertEquals("theid",
announcementFromStatus.getTaskStatus().getId());
+ Assertions.assertEquals("theid",
announcementFromAnnouncement.getTaskStatus().getId());
- Assert.assertEquals("theid",
announcementFromStatus.getTaskResource().getAvailabilityGroup());
- Assert.assertEquals("rofl",
announcementFromAnnouncement.getTaskResource().getAvailabilityGroup());
+ Assertions.assertEquals("theid",
announcementFromStatus.getTaskResource().getAvailabilityGroup());
+ Assertions.assertEquals("rofl",
announcementFromAnnouncement.getTaskResource().getAvailabilityGroup());
- Assert.assertEquals(1,
announcementFromStatus.getTaskResource().getRequiredCapacity());
- Assert.assertEquals(2,
announcementFromAnnouncement.getTaskResource().getRequiredCapacity());
+ Assertions.assertEquals(1,
announcementFromStatus.getTaskResource().getRequiredCapacity());
+ Assertions.assertEquals(2,
announcementFromAnnouncement.getTaskResource().getRequiredCapacity());
}
}
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/WorkerTaskManagerTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/WorkerTaskManagerTest.java
index 3e35287894a..df29de08725 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/WorkerTaskManagerTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/WorkerTaskManagerTest.java
@@ -63,12 +63,15 @@ import org.easymock.EasyMock;
import org.jboss.netty.handler.codec.http.DefaultHttpResponse;
import org.jboss.netty.handler.codec.http.HttpResponseStatus;
import org.jboss.netty.handler.codec.http.HttpVersion;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.io.TempDir;
+import org.junit.jupiter.params.Parameter;
+import org.junit.jupiter.params.ParameterizedClass;
+import org.junit.jupiter.params.provider.MethodSource;
import java.io.File;
import java.io.IOException;
@@ -78,11 +81,13 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
/**
*
*/
-@RunWith(Parameterized.class)
+@ParameterizedClass
+@MethodSource("getParameters")
public class WorkerTaskManagerTest
{
private final TaskLocation location = TaskLocation.create("localhost", 1, 2);
@@ -91,22 +96,24 @@ public class WorkerTaskManagerTest
private final IndexMergerV9Factory indexMergerV9Factory;
private final IndexIO indexIO;
- private final boolean restoreTasksOnRestart;
+ @TempDir
+ private File tempDir;
+
+ @Parameter(0)
+ public boolean restoreTasksOnRestart;
private WorkerTaskManager workerTaskManager;
private OverlordClient overlordClient;
- public WorkerTaskManagerTest(boolean restoreTasksOnRestart)
+ public WorkerTaskManagerTest()
{
testUtils = new TestUtils();
jsonMapper = testUtils.getTestObjectMapper();
TestTasks.registerSubtypes(jsonMapper);
indexMergerV9Factory = testUtils.getIndexMergerV9Factory();
indexIO = testUtils.getTestIndexIO();
- this.restoreTasksOnRestart = restoreTasksOnRestart;
}
- @Parameterized.Parameters(name = "restoreTasksOnRestart = {0}")
public static Collection<Object[]> getParameters()
{
Object[][] parameters = new Object[][]{{false}, {true}};
@@ -116,7 +123,7 @@ public class WorkerTaskManagerTest
private WorkerTaskManager createWorkerTaskManager()
{
- return createWorkerTaskManager(FileUtils.createTempDir(), new
WorkerConfig());
+ return createWorkerTaskManager(tempDir, new WorkerConfig());
}
private WorkerTaskManager createWorkerTaskManager(File baseDir)
@@ -195,19 +202,20 @@ public class WorkerTaskManagerTest
);
}
- @Before
+ @BeforeEach
public void setUp()
{
workerTaskManager = createWorkerTaskManager();
}
- @After
+ @AfterEach
public void tearDown() throws Exception
{
workerTaskManager.stop();
}
- @Test(timeout = 60_000L)
+ @Test
+ @Timeout(value = 60_000L, unit = TimeUnit.MILLISECONDS)
public void testTaskRun() throws Exception
{
EasyMock.expect(overlordClient.withRetryPolicy(EasyMock.anyObject())).andReturn(overlordClient).anyTimes();
@@ -233,30 +241,30 @@ public class WorkerTaskManagerTest
);
workerTaskManager.start();
-
Assert.assertTrue(workerTaskManager.getCompletedTasks().get(task2.getId()).getTaskStatus().isSuccess());
+
Assertions.assertTrue(workerTaskManager.getCompletedTasks().get(task2.getId()).getTaskStatus().isSuccess());
while (!workerTaskManager.getCompletedTasks().containsKey(task1.getId())) {
Thread.sleep(100);
}
-
Assert.assertTrue(workerTaskManager.getCompletedTasks().get(task1.getId()).getTaskStatus().isSuccess());
- Assert.assertTrue(new File(workerTaskManager.getCompletedTaskDir(),
task1.getId()).exists());
- Assert.assertFalse(new File(workerTaskManager.getAssignedTaskDir(),
task1.getId()).exists());
+
Assertions.assertTrue(workerTaskManager.getCompletedTasks().get(task1.getId()).getTaskStatus().isSuccess());
+ Assertions.assertTrue(new File(workerTaskManager.getCompletedTaskDir(),
task1.getId()).exists());
+ Assertions.assertFalse(new File(workerTaskManager.getAssignedTaskDir(),
task1.getId()).exists());
ChangeRequestsSnapshot<WorkerHistoryItem> baseHistory = workerTaskManager
.getChangesSince(new ChangeRequestHistory.Counter(-1, 0))
.get();
- Assert.assertFalse(baseHistory.isResetCounter());
- Assert.assertEquals(3, baseHistory.getRequests().size());
- Assert.assertFalse(((WorkerHistoryItem.Metadata)
baseHistory.getRequests().get(0)).isDisabled());
+ Assertions.assertFalse(baseHistory.isResetCounter());
+ Assertions.assertEquals(3, baseHistory.getRequests().size());
+ Assertions.assertFalse(((WorkerHistoryItem.Metadata)
baseHistory.getRequests().get(0)).isDisabled());
WorkerHistoryItem.TaskUpdate baseUpdate1 = (WorkerHistoryItem.TaskUpdate)
baseHistory.getRequests().get(1);
WorkerHistoryItem.TaskUpdate baseUpdate2 = (WorkerHistoryItem.TaskUpdate)
baseHistory.getRequests().get(2);
-
Assert.assertTrue(baseUpdate1.getTaskAnnouncement().getTaskStatus().isSuccess());
-
Assert.assertTrue(baseUpdate2.getTaskAnnouncement().getTaskStatus().isSuccess());
+
Assertions.assertTrue(baseUpdate1.getTaskAnnouncement().getTaskStatus().isSuccess());
+
Assertions.assertTrue(baseUpdate2.getTaskAnnouncement().getTaskStatus().isSuccess());
- Assert.assertEquals(
+ Assertions.assertEquals(
ImmutableSet.of(task1.getId(), task2.getId()),
ImmutableSet.of(
baseUpdate1.getTaskAnnouncement().getTaskStatus().getId(),
@@ -271,37 +279,38 @@ public class WorkerTaskManagerTest
Thread.sleep(100);
}
-
Assert.assertTrue(workerTaskManager.getCompletedTasks().get(task3.getId()).getTaskStatus().isSuccess());
- Assert.assertTrue(new File(workerTaskManager.getCompletedTaskDir(),
task3.getId()).exists());
- Assert.assertFalse(new File(workerTaskManager.getAssignedTaskDir(),
task3.getId()).exists());
+
Assertions.assertTrue(workerTaskManager.getCompletedTasks().get(task3.getId()).getTaskStatus().isSuccess());
+ Assertions.assertTrue(new File(workerTaskManager.getCompletedTaskDir(),
task3.getId()).exists());
+ Assertions.assertFalse(new File(workerTaskManager.getAssignedTaskDir(),
task3.getId()).exists());
ChangeRequestsSnapshot<WorkerHistoryItem> changes =
workerTaskManager.getChangesSince(baseHistory.getCounter())
.get();
- Assert.assertFalse(changes.isResetCounter());
- Assert.assertEquals(4, changes.getRequests().size());
+ Assertions.assertFalse(changes.isResetCounter());
+ Assertions.assertEquals(4, changes.getRequests().size());
WorkerHistoryItem.TaskUpdate update1 = (WorkerHistoryItem.TaskUpdate)
changes.getRequests().get(0);
- Assert.assertEquals(task3.getId(),
update1.getTaskAnnouncement().getTaskStatus().getId());
-
Assert.assertTrue(update1.getTaskAnnouncement().getTaskStatus().isRunnable());
-
Assert.assertNull(update1.getTaskAnnouncement().getTaskLocation().getHost());
+ Assertions.assertEquals(task3.getId(),
update1.getTaskAnnouncement().getTaskStatus().getId());
+
Assertions.assertTrue(update1.getTaskAnnouncement().getTaskStatus().isRunnable());
+
Assertions.assertNull(update1.getTaskAnnouncement().getTaskLocation().getHost());
WorkerHistoryItem.TaskUpdate update2 = (WorkerHistoryItem.TaskUpdate)
changes.getRequests().get(1);
- Assert.assertEquals(task3.getId(),
update2.getTaskAnnouncement().getTaskStatus().getId());
-
Assert.assertTrue(update2.getTaskAnnouncement().getTaskStatus().isRunnable());
-
Assert.assertNull(update2.getTaskAnnouncement().getTaskLocation().getHost());
+ Assertions.assertEquals(task3.getId(),
update2.getTaskAnnouncement().getTaskStatus().getId());
+
Assertions.assertTrue(update2.getTaskAnnouncement().getTaskStatus().isRunnable());
+
Assertions.assertNull(update2.getTaskAnnouncement().getTaskLocation().getHost());
WorkerHistoryItem.TaskUpdate update3 = (WorkerHistoryItem.TaskUpdate)
changes.getRequests().get(2);
- Assert.assertEquals(task3.getId(),
update3.getTaskAnnouncement().getTaskStatus().getId());
-
Assert.assertTrue(update3.getTaskAnnouncement().getTaskStatus().isRunnable());
-
Assert.assertNotNull(update3.getTaskAnnouncement().getTaskLocation().getHost());
+ Assertions.assertEquals(task3.getId(),
update3.getTaskAnnouncement().getTaskStatus().getId());
+
Assertions.assertTrue(update3.getTaskAnnouncement().getTaskStatus().isRunnable());
+
Assertions.assertNotNull(update3.getTaskAnnouncement().getTaskLocation().getHost());
WorkerHistoryItem.TaskUpdate update4 = (WorkerHistoryItem.TaskUpdate)
changes.getRequests().get(3);
- Assert.assertEquals(task3.getId(),
update4.getTaskAnnouncement().getTaskStatus().getId());
-
Assert.assertTrue(update4.getTaskAnnouncement().getTaskStatus().isSuccess());
-
Assert.assertNotNull(update4.getTaskAnnouncement().getTaskLocation().getHost());
+ Assertions.assertEquals(task3.getId(),
update4.getTaskAnnouncement().getTaskStatus().getId());
+
Assertions.assertTrue(update4.getTaskAnnouncement().getTaskStatus().isSuccess());
+
Assertions.assertNotNull(update4.getTaskAnnouncement().getTaskLocation().getHost());
}
- @Test(timeout = 30_000L)
+ @Test
+ @Timeout(value = 30_000L, unit = TimeUnit.MILLISECONDS)
public void testTaskStatusWhenTaskRunnerFutureThrowsException() throws
Exception
{
Task task = new NoopTask("id", null, null, 100, 0,
ImmutableMap.of(Tasks.PRIORITY_KEY, 0))
@@ -321,17 +330,18 @@ public class WorkerTaskManagerTest
Thread.sleep(10);
} while (completeTasks.isEmpty());
- Assert.assertEquals(1, completeTasks.size());
+ Assertions.assertEquals(1, completeTasks.size());
TaskAnnouncement announcement = completeTasks.get(task.getId());
- Assert.assertNotNull(announcement);
- Assert.assertEquals(TaskState.FAILED, announcement.getStatus());
- Assert.assertEquals(
+ Assertions.assertNotNull(announcement);
+ Assertions.assertEquals(TaskState.FAILED, announcement.getStatus());
+ Assertions.assertEquals(
"Failed to run task with an exception. See middleManager or indexer
logs for more details.",
announcement.getTaskStatus().getErrorMsg()
);
}
- @Test(timeout = 30_000L)
+ @Test
+ @Timeout(value = 30_000L, unit = TimeUnit.MILLISECONDS)
public void test_completedTasksCleanup_running() throws Exception
{
final Task task = setUpCompletedTasksCleanupTest();
@@ -342,12 +352,13 @@ public class WorkerTaskManagerTest
EasyMock.replay(overlordClient);
workerTaskManager.doCompletedTasksCleanup();
- Assert.assertEquals(1, workerTaskManager.getCompletedTasks().size());
+ Assertions.assertEquals(1, workerTaskManager.getCompletedTasks().size());
EasyMock.verify(overlordClient);
}
- @Test(timeout = 30_000L)
+ @Test
+ @Timeout(value = 30_000L, unit = TimeUnit.MILLISECONDS)
public void test_completedTasksCleanup_noStatus() throws Exception
{
final Task task = setUpCompletedTasksCleanupTest();
@@ -360,12 +371,13 @@ public class WorkerTaskManagerTest
// Missing status (empty map) means we clean up the task. The idea is that
this means the Overlord has *never*
// heard of it, so we should forget about it.
workerTaskManager.doCompletedTasksCleanup();
- Assert.assertEquals(0, workerTaskManager.getCompletedTasks().size());
+ Assertions.assertEquals(0, workerTaskManager.getCompletedTasks().size());
EasyMock.verify(overlordClient);
}
- @Test(timeout = 30_000L)
+ @Test
+ @Timeout(value = 30_000L, unit = TimeUnit.MILLISECONDS)
public void test_completedTasksCleanup_success() throws Exception
{
final Task task = setUpCompletedTasksCleanupTest();
@@ -376,12 +388,13 @@ public class WorkerTaskManagerTest
EasyMock.replay(overlordClient);
workerTaskManager.doCompletedTasksCleanup();
- Assert.assertEquals(0, workerTaskManager.getCompletedTasks().size());
+ Assertions.assertEquals(0, workerTaskManager.getCompletedTasks().size());
EasyMock.verify(overlordClient);
}
- @Test(timeout = 30_000L)
+ @Test
+ @Timeout(value = 30_000L, unit = TimeUnit.MILLISECONDS)
public void test_completedTasksCleanup_404error() throws Exception
{
final Task task = setUpCompletedTasksCleanupTest();
@@ -403,12 +416,13 @@ public class WorkerTaskManagerTest
// Ending size zero, because 404 means we assume the Overlord does not
have the taskStatuses API. In this case
// we remove all completed task statuses periodically regardless of
Overlord confirmation.
workerTaskManager.doCompletedTasksCleanup();
- Assert.assertEquals(0, workerTaskManager.getCompletedTasks().size());
+ Assertions.assertEquals(0, workerTaskManager.getCompletedTasks().size());
EasyMock.verify(overlordClient);
}
- @Test(timeout = 30_000L)
+ @Test
+ @Timeout(value = 30_000L, unit = TimeUnit.MILLISECONDS)
public void test_completedTasksCleanup_500error() throws Exception
{
final Task task = setUpCompletedTasksCleanupTest();
@@ -429,12 +443,13 @@ public class WorkerTaskManagerTest
// HTTP 500 is ignored and no cleanup happens.
workerTaskManager.doCompletedTasksCleanup();
- Assert.assertEquals(1, workerTaskManager.getCompletedTasks().size());
+ Assertions.assertEquals(1, workerTaskManager.getCompletedTasks().size());
EasyMock.verify(overlordClient);
}
- @Test(timeout = 30_000L)
+ @Test
+ @Timeout(value = 30_000L, unit = TimeUnit.MILLISECONDS)
public void test_completedTasksCleanup_ioException() throws Exception
{
final Task task = setUpCompletedTasksCleanupTest();
@@ -446,7 +461,7 @@ public class WorkerTaskManagerTest
// IOException is ignored and no cleanup happens.
workerTaskManager.doCompletedTasksCleanup();
- Assert.assertEquals(1, workerTaskManager.getCompletedTasks().size());
+ Assertions.assertEquals(1, workerTaskManager.getCompletedTasks().size());
EasyMock.verify(overlordClient);
}
@@ -496,10 +511,10 @@ public class WorkerTaskManagerTest
Thread.sleep(10);
} while (completeTasks.isEmpty());
- Assert.assertEquals(1, completeTasks.size());
+ Assertions.assertEquals(1, completeTasks.size());
TaskAnnouncement announcement = completeTasks.get(task.getId());
- Assert.assertNotNull(announcement);
- Assert.assertEquals(TaskState.SUCCESS, announcement.getStatus());
+ Assertions.assertNotNull(announcement);
+ Assertions.assertEquals(TaskState.SUCCESS, announcement.getStatus());
EasyMock.reset(overlordClient);
return task;
@@ -517,7 +532,7 @@ public class WorkerTaskManagerTest
workerTaskManager.start();
// befor assigning tasks we should get no running tasks
- Assert.assertEquals(workerTaskManager.getWorkerRunningTasks().size(), 0L);
+ Assertions.assertEquals(workerTaskManager.getWorkerRunningTasks().size(),
0L);
workerTaskManager.assignTask(task1);
workerTaskManager.assignTask(task2);
@@ -525,7 +540,7 @@ public class WorkerTaskManagerTest
Thread.sleep(25);
//should return all 3 tasks as running
- Assert.assertEquals(workerTaskManager.getWorkerRunningTasks(),
ImmutableMap.of(
+ Assertions.assertEquals(workerTaskManager.getWorkerRunningTasks(),
ImmutableMap.of(
"wikipedia", 2L,
"animals", 1L
));
@@ -539,17 +554,17 @@ public class WorkerTaskManagerTest
// When running tasks are empty all task should be reported as completed
and
// one of the task for animals datasource should fail and other 2 tasks in
// the wikipedia datasource should succeed
- Assert.assertEquals(workerTaskManager.getWorkerCompletedTasks(),
ImmutableMap.of(
+ Assertions.assertEquals(workerTaskManager.getWorkerCompletedTasks(),
ImmutableMap.of(
"wikipedia", 2L,
"animals", 1L
));
- Assert.assertEquals(workerTaskManager.getWorkerFailedTasks(),
ImmutableMap.of(
+ Assertions.assertEquals(workerTaskManager.getWorkerFailedTasks(),
ImmutableMap.of(
"animals", 1L
));
- Assert.assertEquals(workerTaskManager.getWorkerSuccessfulTasks(),
ImmutableMap.of(
+ Assertions.assertEquals(workerTaskManager.getWorkerSuccessfulTasks(),
ImmutableMap.of(
"wikipedia", 2L
));
- Assert.assertEquals(workerTaskManager.getWorkerAssignedTasks().size(), 0L);
+ Assertions.assertEquals(workerTaskManager.getWorkerAssignedTasks().size(),
0L);
}
@Test
@@ -558,23 +573,23 @@ public class WorkerTaskManagerTest
EasyMock.expect(overlordClient.withRetryPolicy(EasyMock.anyObject())).andReturn(overlordClient).anyTimes();
EasyMock.replay(overlordClient);
- final File baseTaskDir = FileUtils.createTempDir();
+ final File baseTaskDir = tempDir;
workerTaskManager = createWorkerTaskManager(baseTaskDir);
workerTaskManager.start();
- Assert.assertTrue(workerTaskManager.isWorkerEnabled());
+ Assertions.assertTrue(workerTaskManager.isWorkerEnabled());
workerTaskManager.workerDisabled();
- Assert.assertFalse(workerTaskManager.isWorkerEnabled());
- Assert.assertTrue(workerTaskManager.getStateFile().exists());
+ Assertions.assertFalse(workerTaskManager.isWorkerEnabled());
+ Assertions.assertTrue(workerTaskManager.getStateFile().exists());
workerTaskManager.stop();
workerTaskManager = createWorkerTaskManager(baseTaskDir);
workerTaskManager.start();
- Assert.assertFalse(workerTaskManager.isWorkerEnabled());
+ Assertions.assertFalse(workerTaskManager.isWorkerEnabled());
final ChangeRequestsSnapshot<WorkerHistoryItem> history =
workerTaskManager.getChangesSince(new ChangeRequestHistory.Counter(-1,
0)).get();
- Assert.assertTrue(((WorkerHistoryItem.Metadata)
history.getRequests().get(0)).isDisabled());
+ Assertions.assertTrue(((WorkerHistoryItem.Metadata)
history.getRequests().get(0)).isDisabled());
}
@Test
@@ -583,18 +598,18 @@ public class WorkerTaskManagerTest
EasyMock.expect(overlordClient.withRetryPolicy(EasyMock.anyObject())).andReturn(overlordClient).anyTimes();
EasyMock.replay(overlordClient);
- final File baseTaskDir = FileUtils.createTempDir();
+ final File baseTaskDir = tempDir;
workerTaskManager = createWorkerTaskManager(baseTaskDir);
workerTaskManager.start();
workerTaskManager.workerDisabled();
workerTaskManager.workerEnabled();
- Assert.assertTrue(workerTaskManager.isWorkerEnabled());
+ Assertions.assertTrue(workerTaskManager.isWorkerEnabled());
workerTaskManager.stop();
workerTaskManager = createWorkerTaskManager(baseTaskDir);
workerTaskManager.start();
- Assert.assertTrue(workerTaskManager.isWorkerEnabled());
+ Assertions.assertTrue(workerTaskManager.isWorkerEnabled());
}
@Test
@@ -604,7 +619,7 @@ public class WorkerTaskManagerTest
EasyMock.replay(overlordClient);
workerTaskManager.start();
- Assert.assertTrue(workerTaskManager.isWorkerEnabled());
+ Assertions.assertTrue(workerTaskManager.isWorkerEnabled());
}
@Test
@@ -619,7 +634,7 @@ public class WorkerTaskManagerTest
Files.write(stateFile.toPath(), "not valid
json".getBytes(StandardCharsets.UTF_8));
workerTaskManager.start();
- Assert.assertTrue(workerTaskManager.isWorkerEnabled());
+ Assertions.assertTrue(workerTaskManager.isWorkerEnabled());
}
@Test
@@ -628,13 +643,13 @@ public class WorkerTaskManagerTest
EasyMock.expect(overlordClient.withRetryPolicy(EasyMock.anyObject())).andReturn(overlordClient).anyTimes();
EasyMock.replay(overlordClient);
- final File baseTaskDir = FileUtils.createTempDir();
+ final File baseTaskDir = tempDir;
workerTaskManager = createWorkerTaskManager(baseTaskDir);
workerTaskManager.start();
workerTaskManager.workerDisabled();
- Assert.assertFalse(workerTaskManager.isWorkerEnabled());
- Assert.assertTrue(workerTaskManager.getStateFile().exists());
+ Assertions.assertFalse(workerTaskManager.isWorkerEnabled());
+ Assertions.assertTrue(workerTaskManager.getStateFile().exists());
workerTaskManager.stop();
final WorkerConfig workerConfig = new WorkerConfig().cloneBuilder()
@@ -642,8 +657,8 @@ public class WorkerTaskManagerTest
.build();
workerTaskManager = createWorkerTaskManager(baseTaskDir, workerConfig);
workerTaskManager.start();
- Assert.assertTrue(workerTaskManager.isWorkerEnabled());
- Assert.assertFalse(workerTaskManager.getStateFile().exists());
+ Assertions.assertTrue(workerTaskManager.isWorkerEnabled());
+ Assertions.assertFalse(workerTaskManager.getStateFile().exists());
}
@Test
@@ -655,10 +670,10 @@ public class WorkerTaskManagerTest
final WorkerConfig workerConfig = new WorkerConfig().cloneBuilder()
.setStartAlwaysEnabled(true)
.build();
- workerTaskManager = createWorkerTaskManager(FileUtils.createTempDir(),
workerConfig);
+ workerTaskManager = createWorkerTaskManager(tempDir, workerConfig);
workerTaskManager.start();
- Assert.assertTrue(workerTaskManager.isWorkerEnabled());
- Assert.assertFalse(workerTaskManager.getStateFile().exists());
+ Assertions.assertTrue(workerTaskManager.isWorkerEnabled());
+ Assertions.assertFalse(workerTaskManager.getStateFile().exists());
}
@Test
@@ -670,10 +685,10 @@ public class WorkerTaskManagerTest
final WorkerConfig workerConfig = new WorkerConfig().cloneBuilder()
.setStartAlwaysEnabled(true)
.build();
- workerTaskManager = createWorkerTaskManager(FileUtils.createTempDir(),
workerConfig);
+ workerTaskManager = createWorkerTaskManager(tempDir, workerConfig);
workerTaskManager.start();
workerTaskManager.workerDisabled();
- Assert.assertFalse(workerTaskManager.isWorkerEnabled());
- Assert.assertTrue(workerTaskManager.getStateFile().exists());
+ Assertions.assertFalse(workerTaskManager.isWorkerEnabled());
+ Assertions.assertTrue(workerTaskManager.getStateFile().exists());
}
}
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/executor/ExecutorLifecycleConfigTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/executor/ExecutorLifecycleConfigTest.java
index 8dfcfa2b49b..6f7d4704e3b 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/executor/ExecutorLifecycleConfigTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/executor/ExecutorLifecycleConfigTest.java
@@ -19,8 +19,8 @@
package org.apache.druid.indexing.worker.executor;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class ExecutorLifecycleConfigTest
@@ -30,6 +30,6 @@ public class ExecutorLifecycleConfigTest
{
ExecutorLifecycleConfig config = new ExecutorLifecycleConfig();
config.setParentStreamDefined(false);
- Assert.assertFalse(config.isParentStreamDefined());
+ Assertions.assertFalse(config.isParentStreamDefined());
}
}
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/http/WorkerResourceTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/http/WorkerResourceTest.java
index 3421f4645b9..905fd1f7293 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/http/WorkerResourceTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/http/WorkerResourceTest.java
@@ -24,9 +24,9 @@ import org.apache.druid.indexing.worker.Worker;
import org.apache.druid.indexing.worker.WorkerTaskManager;
import org.apache.druid.indexing.worker.config.WorkerConfig;
import org.easymock.EasyMock;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import javax.ws.rs.core.Response;
@@ -38,7 +38,7 @@ public class WorkerResourceTest
private WorkerTaskManager workerTaskManager;
private WorkerResource workerResource;
- @Before
+ @BeforeEach
public void setUp()
{
worker = new Worker(
@@ -65,7 +65,7 @@ public class WorkerResourceTest
EasyMock.replay(workerTaskManager);
Response res = workerResource.doDisable();
- Assert.assertEquals(Response.Status.OK.getStatusCode(), res.getStatus());
+ Assertions.assertEquals(Response.Status.OK.getStatusCode(),
res.getStatus());
EasyMock.verify(workerTaskManager);
}
@@ -78,7 +78,7 @@ public class WorkerResourceTest
EasyMock.replay(workerTaskManager);
Response res = workerResource.doEnable();
- Assert.assertEquals(Response.Status.OK.getStatusCode(), res.getStatus());
+ Assertions.assertEquals(Response.Status.OK.getStatusCode(),
res.getStatus());
EasyMock.verify(workerTaskManager);
}
@@ -90,7 +90,7 @@ public class WorkerResourceTest
EasyMock.replay(workerTaskManager);
Response res = workerResource.isEnabled();
- Assert.assertEquals(Response.Status.OK.getStatusCode(), res.getStatus());
+ Assertions.assertEquals(Response.Status.OK.getStatusCode(),
res.getStatus());
EasyMock.verify(workerTaskManager);
}
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerAutoCleanupTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerAutoCleanupTest.java
index be07a3ef485..7cb831d7432 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerAutoCleanupTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerAutoCleanupTest.java
@@ -40,11 +40,10 @@ import org.apache.druid.timeline.partition.ShardSpec;
import org.apache.druid.timeline.partition.ShardSpecLookup;
import org.joda.time.Interval;
import org.joda.time.Period;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
import java.io.File;
import java.io.IOException;
@@ -56,17 +55,17 @@ import java.util.Set;
public class LocalIntermediaryDataManagerAutoCleanupTest
{
- @Rule
- public TemporaryFolder tempDir = new TemporaryFolder();
+ @TempDir
+ private File tempDir;
private TaskConfig taskConfig;
private OverlordClient overlordClient;
- @Before
+ @BeforeEach
public void setup() throws IOException
{
this.taskConfig = new TaskConfigBuilder()
- .setShuffleDataLocations(ImmutableList.of(new
StorageLocationConfig(tempDir.newFolder(), null, null)))
+ .setShuffleDataLocations(ImmutableList.of(new
StorageLocationConfig(newTempDir("shuffle"), null, null)))
.build();
this.overlordClient = new NoopOverlordClient()
{
@@ -86,7 +85,7 @@ public class LocalIntermediaryDataManagerAutoCleanupTest
@Test
public void testCompletedExpiredSupervisor() throws IOException,
InterruptedException
{
- Assert.assertTrue(
+ Assertions.assertTrue(
isCleanedUpAfter3s("supervisor_1", new Period("PT1S"))
);
}
@@ -94,7 +93,7 @@ public class LocalIntermediaryDataManagerAutoCleanupTest
@Test
public void testCompletedNotExpiredSupervisor() throws IOException,
InterruptedException
{
- Assert.assertFalse(
+ Assertions.assertFalse(
isCleanedUpAfter3s("supervisor_2", new Period("PT10S"))
);
}
@@ -102,7 +101,7 @@ public class LocalIntermediaryDataManagerAutoCleanupTest
@Test
public void testRunningSupervisor() throws IOException, InterruptedException
{
- Assert.assertFalse(
+ Assertions.assertFalse(
isCleanedUpAfter3s("running_supervisor_1", new Period("PT1S"))
);
}
@@ -148,12 +147,19 @@ public class LocalIntermediaryDataManagerAutoCleanupTest
private File generateSegmentDir(String fileName) throws IOException
{
// Each file size is 138 bytes after compression
- final File segmentDir = tempDir.newFolder();
+ final File segmentDir = newTempDir("segment");
FileUtils.write(new File(segmentDir, fileName), "test data.",
StandardCharsets.UTF_8);
FileUtils.writeByteArrayToFile(new File(segmentDir, "version.bin"),
Ints.toByteArray(9));
return segmentDir;
}
+ private File newTempDir(String name) throws IOException
+ {
+ final File directory = new File(tempDir, name);
+ org.apache.druid.java.util.common.FileUtils.mkdirp(directory);
+ return directory;
+ }
+
private DataSegment newSegment(Interval interval)
{
return new DataSegment(
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerConcurrencyTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerConcurrencyTest.java
index 142887d7837..4f88b359932 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerConcurrencyTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerConcurrencyTest.java
@@ -36,12 +36,12 @@ import
org.apache.druid.timeline.partition.BuildingShardSpec;
import org.apache.druid.timeline.partition.ShardSpec;
import org.apache.druid.timeline.partition.ShardSpecLookup;
import org.joda.time.Interval;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.io.TempDir;
import java.io.File;
import java.io.IOException;
@@ -69,19 +69,19 @@ public class LocalIntermediaryDataManagerConcurrencyTest
private static final int CALLS_PER_THREAD = 200;
private static final String SUPERVISOR_TASK_ID = "supervisorTaskId";
- @Rule
- public TemporaryFolder tempDir = new TemporaryFolder();
+ @TempDir
+ private File tempDir;
private LocalIntermediaryDataManager intermediaryDataManager;
private File sharedSegmentDir;
- @Before
+ @BeforeEach
public void setUp() throws IOException
{
final WorkerConfig workerConfig = new WorkerConfig();
final ImmutableList.Builder<StorageLocationConfig> locations =
ImmutableList.builder();
for (int i = 0; i < LOCATION_COUNT; i++) {
- locations.add(new StorageLocationConfig(tempDir.newFolder("loc_" + i),
LOCATION_CAPACITY_BYTES, null));
+ locations.add(new StorageLocationConfig(newTempDir("loc_" + i),
LOCATION_CAPACITY_BYTES, null));
}
final TaskConfig taskConfig = new TaskConfigBuilder()
.setShuffleDataLocations(locations.build())
@@ -90,18 +90,19 @@ public class LocalIntermediaryDataManagerConcurrencyTest
intermediaryDataManager = new LocalIntermediaryDataManager(workerConfig,
taskConfig, overlordClient);
intermediaryDataManager.start();
// Pre-built shared input dir keeps per-call work small so the race window
dominates wall time.
- sharedSegmentDir = tempDir.newFolder("shared_input");
+ sharedSegmentDir = newTempDir("shared_input");
FileUtils.write(new File(sharedSegmentDir, "data.txt"), "x",
StandardCharsets.UTF_8);
FileUtils.writeByteArrayToFile(new File(sharedSegmentDir, "version.bin"),
Ints.toByteArray(9));
}
- @After
- public void tearDown()
+ @AfterEach
+ public void tearDown() throws IOException
{
intermediaryDataManager.stop();
}
- @Test(timeout = 90_000)
+ @Test
+ @Timeout(value = 90_000L, unit = TimeUnit.MILLISECONDS)
public void testConcurrentAddSegmentSharedSupervisorIsThreadSafe() throws
Exception
{
final Interval interval = Intervals.of("2018/2019");
@@ -130,7 +131,14 @@ public class LocalIntermediaryDataManagerConcurrencyTest
f.get(60, TimeUnit.SECONDS);
}
executor.shutdown();
- Assert.assertTrue(executor.awaitTermination(10, TimeUnit.SECONDS));
+ Assertions.assertTrue(executor.awaitTermination(10, TimeUnit.SECONDS));
+ }
+
+ private File newTempDir(String name) throws IOException
+ {
+ final File directory = new File(tempDir, name);
+ org.apache.druid.java.util.common.FileUtils.mkdirp(directory);
+ return directory;
}
private DataSegment newSegment(Interval interval, int bucketId)
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerManualAddAndDeleteTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerManualAddAndDeleteTest.java
index 59f194350a0..2a32a57a80a 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerManualAddAndDeleteTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManagerManualAddAndDeleteTest.java
@@ -24,7 +24,6 @@ import com.google.common.io.ByteSource;
import com.google.common.primitives.Ints;
import org.apache.commons.io.FileUtils;
import org.apache.druid.error.DruidException;
-import org.apache.druid.error.DruidExceptionMatcher;
import org.apache.druid.indexing.common.config.TaskConfig;
import org.apache.druid.indexing.common.config.TaskConfigBuilder;
import org.apache.druid.indexing.worker.config.WorkerConfig;
@@ -38,14 +37,12 @@ import
org.apache.druid.timeline.partition.BucketNumberedShardSpec;
import org.apache.druid.timeline.partition.BuildingShardSpec;
import org.apache.druid.timeline.partition.ShardSpec;
import org.apache.druid.timeline.partition.ShardSpecLookup;
-import org.hamcrest.MatcherAssert;
import org.joda.time.Interval;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
import java.io.File;
import java.io.IOException;
@@ -55,19 +52,19 @@ import java.util.Optional;
public class LocalIntermediaryDataManagerManualAddAndDeleteTest
{
- @Rule
- public TemporaryFolder tempDir = new TemporaryFolder();
+ @TempDir
+ private File tempDir;
private LocalIntermediaryDataManager intermediaryDataManager;
private File intermediarySegmentsLocation;
private File siblingLocation;
- @Before
+ @BeforeEach
public void setup() throws IOException
{
final WorkerConfig workerConfig = new WorkerConfig();
- intermediarySegmentsLocation = tempDir.newFolder();
- siblingLocation = tempDir.newFolder();
+ intermediarySegmentsLocation = newTempDir("intermediary");
+ siblingLocation = newTempDir("sibling");
final TaskConfig taskConfig = new TaskConfigBuilder()
.setShuffleDataLocations(ImmutableList.of(new
StorageLocationConfig(intermediarySegmentsLocation, 1200L, null)))
.build();
@@ -76,8 +73,8 @@ public class
LocalIntermediaryDataManagerManualAddAndDeleteTest
intermediaryDataManager.start();
}
- @After
- public void teardown()
+ @AfterEach
+ public void teardown() throws IOException
{
intermediaryDataManager.stop();
}
@@ -94,11 +91,11 @@ public class
LocalIntermediaryDataManagerManualAddAndDeleteTest
File segmentFile = generateSegmentDir("file_" + i);
DataSegment segment = newSegment(Intervals.of("2018/2019"), 4);
- IllegalStateException e = Assert.assertThrows(
+ final IllegalStateException e = Assertions.assertThrows(
IllegalStateException.class,
() -> intermediaryDataManager.addSegment("supervisorTaskId",
"subTaskId", segment, segmentFile)
);
- Assert.assertEquals(StringUtils.format("Can't find location to handle
segment[%s]", segment), e.getMessage());
+ Assertions.assertEquals(StringUtils.format("Can't find location to handle
segment[%s]", segment), e.getMessage());
}
@Test
@@ -119,7 +116,7 @@ public class
LocalIntermediaryDataManagerManualAddAndDeleteTest
interval,
partitionId
);
- Assert.assertTrue(file.isPresent());
+ Assertions.assertTrue(file.isPresent());
}
}
@@ -140,7 +137,7 @@ public class
LocalIntermediaryDataManagerManualAddAndDeleteTest
for (int partitionId = 0; partitionId < 2; partitionId++) {
for (int subTaskId = 0; subTaskId < 2; subTaskId++) {
- Assert.assertFalse(
+ Assertions.assertFalse(
intermediaryDataManager.findPartitionFile(supervisorTaskId,
"subTaskId_" + subTaskId, interval, partitionId)
.isPresent()
);
@@ -176,19 +173,24 @@ public class
LocalIntermediaryDataManagerManualAddAndDeleteTest
"test data",
StandardCharsets.UTF_8
);
- Assert.assertTrue(new File(intermediarySegmentsLocation,
supervisorTaskId).exists());
- Assert.assertTrue(dataFile.exists());
- MatcherAssert.assertThat(
- Assert.assertThrows(DruidException.class, () ->
intermediaryDataManager.deletePartitions(supervisorTaskId)),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- StringUtils.format(
- "Invalid value for field [supervisorTaskId]: Value [%s] cannot
start with '.'.",
- supervisorTaskId
- )
- )
+ Assertions.assertTrue(new File(intermediarySegmentsLocation,
supervisorTaskId).exists());
+ Assertions.assertTrue(dataFile.exists());
+ final DruidException exception = Assertions.assertThrows(
+ DruidException.class,
+ () -> intermediaryDataManager.deletePartitions(supervisorTaskId)
+ );
+ Assertions.assertEquals(DruidException.Persona.USER,
exception.getTargetPersona());
+ Assertions.assertEquals(DruidException.Category.INVALID_INPUT,
exception.getCategory());
+ Assertions.assertEquals("invalidInput", exception.getErrorCode());
+ Assertions.assertEquals(
+ StringUtils.format(
+ "Invalid value for field [supervisorTaskId]: Value [%s] cannot
start with '.'.",
+ supervisorTaskId
+ ),
+ exception.getMessage()
);
- Assert.assertTrue(new File(intermediarySegmentsLocation,
supervisorTaskId).exists());
- Assert.assertTrue(dataFile.exists());
+ Assertions.assertTrue(new File(intermediarySegmentsLocation,
supervisorTaskId).exists());
+ Assertions.assertTrue(dataFile.exists());
}
@Test
@@ -213,37 +215,49 @@ public class
LocalIntermediaryDataManagerManualAddAndDeleteTest
StandardCharsets.UTF_8
);
- Assert.assertTrue(new File(intermediarySegmentsLocation,
supervisorTaskId).exists());
- Assert.assertTrue(
+ Assertions.assertTrue(new File(intermediarySegmentsLocation,
supervisorTaskId).exists());
+ Assertions.assertTrue(
new File(intermediarySegmentsLocation, supervisorTaskId + "/" +
someFilePath).exists());
- MatcherAssert.assertThat(
- Assert.assertThrows(DruidException.class, () ->
+ final DruidException exception = Assertions.assertThrows(
+ DruidException.class,
+ () ->
intermediaryDataManager.findPartitionFile(
supervisorTaskId,
someFile,
interval,
partitionId
- )),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- StringUtils.format(
- "Invalid value for field [supervisorTaskId]: Value [%s] cannot
start with '.'.",
- supervisorTaskId
)
- )
+ );
+ Assertions.assertEquals(DruidException.Persona.USER,
exception.getTargetPersona());
+ Assertions.assertEquals(DruidException.Category.INVALID_INPUT,
exception.getCategory());
+ Assertions.assertEquals("invalidInput", exception.getErrorCode());
+ Assertions.assertEquals(
+ StringUtils.format(
+ "Invalid value for field [supervisorTaskId]: Value [%s] cannot
start with '.'.",
+ supervisorTaskId
+ ),
+ exception.getMessage()
);
}
private File generateSegmentDir(String fileName) throws IOException
{
// Each file size is 138 bytes after compression
- final File segmentDir = tempDir.newFolder();
+ final File segmentDir = newTempDir(fileName);
FileUtils.write(new File(segmentDir, fileName), "test data.",
StandardCharsets.UTF_8);
FileUtils.writeByteArrayToFile(new File(segmentDir, "version.bin"),
Ints.toByteArray(9));
return segmentDir;
}
+ private File newTempDir(String name) throws IOException
+ {
+ final File directory = new File(tempDir, name);
+ org.apache.druid.java.util.common.FileUtils.mkdirp(directory);
+ return directory;
+ }
+
private DataSegment newSegment(Interval interval, int bucketId)
{
return new DataSegment(
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleDataSegmentPusherTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleDataSegmentPusherTest.java
index 70e734f1b22..ce26b93de3c 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleDataSegmentPusherTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleDataSegmentPusherTest.java
@@ -49,14 +49,14 @@ import org.apache.druid.timeline.DataSegment;
import org.apache.druid.timeline.partition.BucketNumberedShardSpec;
import org.apache.druid.utils.CompressionUtils;
import org.joda.time.Interval;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+import org.junit.jupiter.params.Parameter;
+import org.junit.jupiter.params.ParameterizedClass;
+import org.junit.jupiter.params.provider.MethodSource;
import org.mockito.Mockito;
import java.io.File;
@@ -68,45 +68,42 @@ import java.util.Comparator;
import java.util.List;
import java.util.Optional;
-@RunWith(Parameterized.class)
+@ParameterizedClass
+@MethodSource("data")
public class ShuffleDataSegmentPusherTest
{
private static final String LOCAL = "local";
private static final String DEEPSTORE = "deepstore";
- @Parameterized.Parameters(name = "intermediateDataManager={0}")
public static Collection<Object[]> data()
{
return ImmutableList.of(new Object[]{LOCAL}, new Object[]{DEEPSTORE});
}
- @Rule
- public final TemporaryFolder temporaryFolder = new TemporaryFolder();
+ @Parameter(0)
+ public String intermediateDataStore;
+
+ @TempDir
+ private File tempDir;
private IntermediaryDataManager intermediaryDataManager;
private ShuffleDataSegmentPusher segmentPusher;
private ObjectMapper mapper;
- private final String intermediateDataStore;
private File localDeepStore;
- public ShuffleDataSegmentPusherTest(String intermediateDataStore)
- {
- this.intermediateDataStore = intermediateDataStore;
- }
-
- @Before
+ @BeforeEach
public void setup() throws IOException
{
final WorkerConfig workerConfig = new WorkerConfig();
final TaskConfig taskConfig = new TaskConfigBuilder()
- .setShuffleDataLocations(ImmutableList.of(new
StorageLocationConfig(temporaryFolder.newFolder(), null, null)))
+ .setShuffleDataLocations(ImmutableList.of(new
StorageLocationConfig(newTempDir("shuffle"), null, null)))
.build();
final OverlordClient overlordClient = new NoopOverlordClient();
if (LOCAL.equals(intermediateDataStore)) {
intermediaryDataManager = new LocalIntermediaryDataManager(workerConfig,
taskConfig, overlordClient);
} else if (DEEPSTORE.equals(intermediateDataStore)) {
- localDeepStore = temporaryFolder.newFolder("localStorage");
+ localDeepStore = newTempDir("localStorage");
intermediaryDataManager = new DeepStorageIntermediaryDataManager(
new LocalDataSegmentPusher(
new LocalDataSegmentPusherConfig()
@@ -136,8 +133,8 @@ public class ShuffleDataSegmentPusherTest
);
}
- @After
- public void teardown()
+ @AfterEach
+ public void teardown() throws IOException
{
intermediaryDataManager.stop();
}
@@ -149,10 +146,10 @@ public class ShuffleDataSegmentPusherTest
final DataSegment segment = newSegment(Intervals.of("2018/2019"));
final DataSegment pushed = segmentPusher.push(segmentDir, segment, true);
- Assert.assertEquals(9, pushed.getBinaryVersion().intValue());
- Assert.assertEquals(14, pushed.getSize()); // 10 bytes data + 4 bytes
version
+ Assertions.assertEquals(9, pushed.getBinaryVersion().intValue());
+ Assertions.assertEquals(14, pushed.getSize()); // 10 bytes data + 4 bytes
version
- final File tempDir = temporaryFolder.newFolder();
+ final File tempDir = newTempDir("unzipped");
if (intermediaryDataManager instanceof LocalIntermediaryDataManager) {
final Optional<ByteSource> zippedSegment =
intermediaryDataManager.findPartitionFile(
"supervisorTaskId",
@@ -160,7 +157,7 @@ public class ShuffleDataSegmentPusherTest
segment.getInterval(),
segment.getShardSpec().getPartitionNum()
);
- Assert.assertTrue(zippedSegment.isPresent());
+ Assertions.assertTrue(zippedSegment.isPresent());
CompressionUtils.unzip(
zippedSegment.get(),
tempDir,
@@ -169,34 +166,44 @@ public class ShuffleDataSegmentPusherTest
);
} else if (intermediaryDataManager instanceof
DeepStorageIntermediaryDataManager) {
final LoadSpec loadSpec = mapper.convertValue(pushed.getLoadSpec(),
LoadSpec.class);
- Assert.assertTrue(pushed.getLoadSpec()
- .get("path")
- .toString()
- .startsWith(localDeepStore.getAbsolutePath()
- + "/"
- +
DeepStorageIntermediaryDataManager.SHUFFLE_DATA_DIR_PREFIX));
+ Assertions.assertTrue(pushed.getLoadSpec()
+ .get("path")
+ .toString()
+ .startsWith(localDeepStore.getAbsolutePath()
+ + "/"
+ +
DeepStorageIntermediaryDataManager.SHUFFLE_DATA_DIR_PREFIX));
loadSpec.loadSegment(tempDir);
}
final List<File> unzippedFiles = Arrays.asList(tempDir.listFiles());
unzippedFiles.sort(Comparator.comparing(File::getName));
final File dataFile = unzippedFiles.get(0);
- Assert.assertEquals("test", dataFile.getName());
- Assert.assertEquals("test data.", Files.readFirstLine(dataFile,
StandardCharsets.UTF_8));
+ Assertions.assertEquals("test", dataFile.getName());
+ Assertions.assertEquals(
+ "test data.",
+ Files.asCharSource(dataFile, StandardCharsets.UTF_8).readFirstLine()
+ );
final File versionFile = unzippedFiles.get(1);
- Assert.assertEquals("version.bin", versionFile.getName());
- Assert.assertArrayEquals(Ints.toByteArray(0x9),
Files.toByteArray(versionFile));
+ Assertions.assertEquals("version.bin", versionFile.getName());
+ Assertions.assertArrayEquals(Ints.toByteArray(0x9),
Files.toByteArray(versionFile));
}
private File generateSegmentDir() throws IOException
{
// Each file size is 138 bytes after compression
- final File segmentDir = temporaryFolder.newFolder();
+ final File segmentDir = newTempDir("segment");
Files.asByteSink(new File(segmentDir,
"version.bin")).write(Ints.toByteArray(0x9));
FileUtils.write(new File(segmentDir, "test"), "test data.",
StandardCharsets.UTF_8);
return segmentDir;
}
+ private File newTempDir(String name) throws IOException
+ {
+ final File directory = new File(tempDir, name);
+ org.apache.druid.java.util.common.FileUtils.mkdirp(directory);
+ return directory;
+ }
+
private DataSegment newSegment(Interval interval)
{
BucketNumberedShardSpec<?> shardSpec =
Mockito.mock(BucketNumberedShardSpec.class);
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleMetricsTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleMetricsTest.java
index d4f625893b4..4e2c116ae15 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleMetricsTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleMetricsTest.java
@@ -22,10 +22,9 @@ package org.apache.druid.indexing.worker.shuffle;
import com.google.common.collect.ImmutableSet;
import
org.apache.druid.indexing.worker.shuffle.ShuffleMetrics.PerDatasourceShuffleMetrics;
import org.apache.druid.java.util.common.concurrent.Execs;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
import java.util.ArrayList;
import java.util.Collections;
@@ -36,12 +35,10 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.TimeUnit;
public class ShuffleMetricsTest
{
- @Rule
- public ExpectedException expectedException = ExpectedException.none();
-
@Test
public void testShuffleRequested()
{
@@ -56,26 +53,28 @@ public class ShuffleMetricsTest
metrics.shuffleRequested(supervisorTask2, 30);
final Map<String, PerDatasourceShuffleMetrics> snapshot =
metrics.snapshotAndReset();
- Assert.assertEquals(ImmutableSet.of(supervisorTask1, supervisorTask2,
supervisorTask3), snapshot.keySet());
+ Assertions.assertEquals(ImmutableSet.of(supervisorTask1, supervisorTask2,
supervisorTask3), snapshot.keySet());
PerDatasourceShuffleMetrics perDatasourceShuffleMetrics =
snapshot.get(supervisorTask1);
- Assert.assertEquals(2, perDatasourceShuffleMetrics.getShuffleRequests());
- Assert.assertEquals(1536, perDatasourceShuffleMetrics.getShuffleBytes());
+ Assertions.assertEquals(2,
perDatasourceShuffleMetrics.getShuffleRequests());
+ Assertions.assertEquals(1536,
perDatasourceShuffleMetrics.getShuffleBytes());
perDatasourceShuffleMetrics = snapshot.get(supervisorTask2);
- Assert.assertEquals(2, perDatasourceShuffleMetrics.getShuffleRequests());
- Assert.assertEquals(40, perDatasourceShuffleMetrics.getShuffleBytes());
+ Assertions.assertEquals(2,
perDatasourceShuffleMetrics.getShuffleRequests());
+ Assertions.assertEquals(40, perDatasourceShuffleMetrics.getShuffleBytes());
perDatasourceShuffleMetrics = snapshot.get(supervisorTask3);
- Assert.assertEquals(1, perDatasourceShuffleMetrics.getShuffleRequests());
- Assert.assertEquals(10000, perDatasourceShuffleMetrics.getShuffleBytes());
+ Assertions.assertEquals(1,
perDatasourceShuffleMetrics.getShuffleRequests());
+ Assertions.assertEquals(10000,
perDatasourceShuffleMetrics.getShuffleBytes());
}
@Test
public void testSnapshotUnmodifiable()
{
- expectedException.expect(UnsupportedOperationException.class);
- new ShuffleMetrics().snapshotAndReset().put("k", new
PerDatasourceShuffleMetrics());
+ Assertions.assertThrows(
+ UnsupportedOperationException.class,
+ () -> new ShuffleMetrics().snapshotAndReset().put("k", new
PerDatasourceShuffleMetrics())
+ );
}
@Test
@@ -87,10 +86,11 @@ public class ShuffleMetricsTest
shuffleMetrics.shuffleRequested("supervisor2", 10);
shuffleMetrics.snapshotAndReset();
- Assert.assertEquals(Collections.emptyMap(),
shuffleMetrics.getDatasourceMetrics());
+ Assertions.assertEquals(Collections.emptyMap(),
shuffleMetrics.getDatasourceMetrics());
}
- @Test(timeout = 5000L)
+ @Test
+ @Timeout(value = 5000L, unit = TimeUnit.MILLISECONDS)
public void testConcurrency() throws ExecutionException, InterruptedException
{
final ExecutorService exec = Execs.multiThreaded(3,
"shuffle-metrics-test-%d"); // 2 for write, 1 for read
@@ -133,13 +133,13 @@ public class ShuffleMetricsTest
boolean task1ShouldBeInSecondSnapshot = false;
boolean task2ShouldBeInSecondSnapshot = false;
- Assert.assertEquals(2, firstSnapshot.size());
- Assert.assertNotNull(firstSnapshot.get(supervisorTask1));
- Assert.assertTrue(
+ Assertions.assertEquals(2, firstSnapshot.size());
+ Assertions.assertNotNull(firstSnapshot.get(supervisorTask1));
+ Assertions.assertTrue(
2048 == firstSnapshot.get(supervisorTask1).getShuffleBytes()
|| 2080 == firstSnapshot.get(supervisorTask1).getShuffleBytes()
);
- Assert.assertTrue(
+ Assertions.assertTrue(
2 == firstSnapshot.get(supervisorTask1).getShuffleRequests()
|| 3 == firstSnapshot.get(supervisorTask1).getShuffleRequests()
);
@@ -147,12 +147,12 @@ public class ShuffleMetricsTest
expectedSecondSnapshotSize++;
task1ShouldBeInSecondSnapshot = true;
}
- Assert.assertNotNull(firstSnapshot.get(supervisorTask2));
- Assert.assertTrue(
+ Assertions.assertNotNull(firstSnapshot.get(supervisorTask2));
+ Assertions.assertTrue(
60 == firstSnapshot.get(supervisorTask2).getShuffleBytes()
|| 70 == firstSnapshot.get(supervisorTask2).getShuffleBytes()
);
- Assert.assertTrue(
+ Assertions.assertTrue(
2 == firstSnapshot.get(supervisorTask2).getShuffleRequests()
|| 3 == firstSnapshot.get(supervisorTask2).getShuffleRequests()
);
@@ -166,16 +166,16 @@ public class ShuffleMetricsTest
}
final Map<String, PerDatasourceShuffleMetrics> secondSnapshot =
metrics.snapshotAndReset();
- Assert.assertEquals(expectedSecondSnapshotSize, secondSnapshot.size());
- Assert.assertEquals(task1ShouldBeInSecondSnapshot,
secondSnapshot.containsKey(supervisorTask1));
+ Assertions.assertEquals(expectedSecondSnapshotSize,
secondSnapshot.size());
+ Assertions.assertEquals(task1ShouldBeInSecondSnapshot,
secondSnapshot.containsKey(supervisorTask1));
if (task1ShouldBeInSecondSnapshot) {
- Assert.assertEquals(32,
secondSnapshot.get(supervisorTask1).getShuffleBytes());
- Assert.assertEquals(1,
secondSnapshot.get(supervisorTask1).getShuffleRequests());
+ Assertions.assertEquals(32,
secondSnapshot.get(supervisorTask1).getShuffleBytes());
+ Assertions.assertEquals(1,
secondSnapshot.get(supervisorTask1).getShuffleRequests());
}
- Assert.assertEquals(task2ShouldBeInSecondSnapshot,
secondSnapshot.containsKey(supervisorTask2));
+ Assertions.assertEquals(task2ShouldBeInSecondSnapshot,
secondSnapshot.containsKey(supervisorTask2));
if (task2ShouldBeInSecondSnapshot) {
- Assert.assertEquals(10,
secondSnapshot.get(supervisorTask2).getShuffleBytes());
- Assert.assertEquals(1,
secondSnapshot.get(supervisorTask2).getShuffleRequests());
+ Assertions.assertEquals(10,
secondSnapshot.get(supervisorTask2).getShuffleBytes());
+ Assertions.assertEquals(1,
secondSnapshot.get(supervisorTask2).getShuffleRequests());
}
}
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleModuleTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleModuleTest.java
index 8d9280111e3..b0539a9b77c 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleModuleTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleModuleTest.java
@@ -26,9 +26,9 @@ import com.google.inject.Scopes;
import com.google.inject.TypeLiteral;
import org.apache.druid.guice.LazySingleton;
import org.apache.druid.java.util.metrics.MonitorScheduler;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.ArgumentMatchers;
import org.mockito.Mockito;
@@ -38,7 +38,7 @@ public class ShuffleModuleTest
{
private ShuffleModule shuffleModule;
- @Before
+ @BeforeEach
public void setup()
{
shuffleModule = new ShuffleModule();
@@ -55,7 +55,7 @@ public class ShuffleModuleTest
final Optional<ShuffleMetrics> optional = injector.getInstance(
Key.get(new TypeLiteral<>() {})
);
- Assert.assertTrue(optional.isPresent());
+ Assertions.assertTrue(optional.isPresent());
}
@Test
@@ -68,7 +68,7 @@ public class ShuffleModuleTest
final Optional<ShuffleMetrics> optional = injector.getInstance(
Key.get(new TypeLiteral<>() {})
);
- Assert.assertFalse(optional.isPresent());
+ Assertions.assertFalse(optional.isPresent());
}
private Injector createInjector(MonitorScheduler monitorScheduler)
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleMonitorTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleMonitorTest.java
index 6ee98a8d309..09b144d90f9 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleMonitorTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleMonitorTest.java
@@ -22,8 +22,8 @@ package org.apache.druid.indexing.worker.shuffle;
import com.google.common.collect.ImmutableMap;
import
org.apache.druid.indexing.worker.shuffle.ShuffleMetrics.PerDatasourceShuffleMetrics;
import org.apache.druid.java.util.metrics.StubServiceEmitter;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import java.util.Map;
@@ -43,8 +43,8 @@ public class ShuffleMonitorTest
final StubServiceEmitter emitter = new StubServiceEmitter("service",
"host");
final ShuffleMonitor monitor = new ShuffleMonitor();
monitor.setShuffleMetrics(shuffleMetrics);
- Assert.assertTrue(monitor.doMonitor(emitter));
- Assert.assertEquals(2, emitter.getNumEmittedEvents());
+ Assertions.assertTrue(monitor.doMonitor(emitter));
+ Assertions.assertEquals(2, emitter.getNumEmittedEvents());
emitter.verifyValue(
ShuffleMonitor.SHUFFLE_BYTES_KEY,
Map.of(ShuffleMonitor.SUPERVISOR_TASK_ID_DIMENSION, "supervisor"),
diff --git
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleResourceTest.java
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleResourceTest.java
index 159800b4d4e..f83e3c3782e 100644
---
a/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleResourceTest.java
+++
b/indexing-service/src/test/java/org/apache/druid/indexing/worker/shuffle/ShuffleResourceTest.java
@@ -39,11 +39,10 @@ import
org.apache.druid.timeline.partition.BucketNumberedShardSpec;
import org.easymock.EasyMock;
import org.joda.time.Interval;
import org.joda.time.Period;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
import org.mockito.Mockito;
import javax.ws.rs.core.Response;
@@ -60,14 +59,14 @@ public class ShuffleResourceTest
{
private static final String DATASOURCE = "datasource";
- @Rule
- public TemporaryFolder tempDir = new TemporaryFolder();
+ @TempDir
+ private File tempDir;
private LocalIntermediaryDataManager intermediaryDataManager;
private ShuffleMetrics shuffleMetrics;
private ShuffleResource shuffleResource;
- @Before
+ @BeforeEach
public void setup() throws IOException
{
final WorkerConfig workerConfig = new WorkerConfig()
@@ -92,7 +91,7 @@ public class ShuffleResourceTest
};
final TaskConfig taskConfig = new TaskConfigBuilder()
- .setShuffleDataLocations(ImmutableList.of(new
StorageLocationConfig(tempDir.newFolder(), null, null)))
+ .setShuffleDataLocations(ImmutableList.of(new
StorageLocationConfig(newTempDir("shuffle"), null, null)))
.build();
final OverlordClient overlordClient = new NoopOverlordClient()
{
@@ -121,10 +120,10 @@ public class ShuffleResourceTest
"2020-01-02",
0
);
- Assert.assertEquals(Status.NOT_FOUND.getStatusCode(),
response.getStatus());
- Assert.assertNotNull(response.getEntity());
+ Assertions.assertEquals(Status.NOT_FOUND.getStatusCode(),
response.getStatus());
+ Assertions.assertNotNull(response.getEntity());
final String errorMessage = (String) response.getEntity();
- Assert.assertTrue(errorMessage.contains("Can't find the partition for
supervisorTask"));
+ Assertions.assertTrue(errorMessage.contains("Can't find the partition for
supervisorTask"));
}
@Test
@@ -145,16 +144,16 @@ public class ShuffleResourceTest
segment.getId().getPartitionNum()
);
final Map<String, PerDatasourceShuffleMetrics> snapshot =
shuffleMetrics.snapshotAndReset();
- Assert.assertEquals(Status.OK.getStatusCode(), response.getStatus());
- Assert.assertEquals(1,
snapshot.get(supervisorTaskId).getShuffleRequests());
- Assert.assertEquals(254, snapshot.get(supervisorTaskId).getShuffleBytes());
+ Assertions.assertEquals(Status.OK.getStatusCode(), response.getStatus());
+ Assertions.assertEquals(1,
snapshot.get(supervisorTaskId).getShuffleRequests());
+ Assertions.assertEquals(254,
snapshot.get(supervisorTaskId).getShuffleBytes());
}
@Test
public void testDeleteUnknownPartitionReturnOk()
{
final Response response =
shuffleResource.deletePartitions("unknownSupervisorTask");
- Assert.assertEquals(Status.OK.getStatusCode(), response.getStatus());
+ Assertions.assertEquals(Status.OK.getStatusCode(), response.getStatus());
}
@Test
@@ -168,7 +167,7 @@ public class ShuffleResourceTest
intermediaryDataManager.addSegment(supervisorTaskId, subtaskId, segment,
segmentDir);
final Response response =
shuffleResource.deletePartitions(supervisorTaskId);
- Assert.assertEquals(Status.OK.getStatusCode(), response.getStatus());
+ Assertions.assertEquals(Status.OK.getStatusCode(), response.getStatus());
}
@Test
@@ -181,7 +180,7 @@ public class ShuffleResourceTest
final ShuffleResource shuffleResource = new
ShuffleResource(exceptionThrowingManager, Optional.of(shuffleMetrics));
final Response response =
shuffleResource.deletePartitions("supervisorTask");
- Assert.assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(),
response.getStatus());
+ Assertions.assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(),
response.getStatus());
}
private static DataSegment newSegment(Interval interval)
@@ -205,9 +204,16 @@ public class ShuffleResourceTest
private File generateSegmentDir(String fileName) throws IOException
{
// Each file size is 138 bytes after compression
- final File segmentDir = tempDir.newFolder();
+ final File segmentDir = newTempDir(fileName);
FileUtils.write(new File(segmentDir, fileName), "test data.",
StandardCharsets.UTF_8);
FileUtils.writeByteArrayToFile(new File(segmentDir, "version.bin"),
Ints.toByteArray(9));
return segmentDir;
}
+
+ private File newTempDir(String name) throws IOException
+ {
+ final File directory = new File(tempDir, name);
+ org.apache.druid.java.util.common.FileUtils.mkdirp(directory);
+ return directory;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]