kfaraz commented on code in PR #18732:
URL: https://github.com/apache/druid/pull/18732#discussion_r2575555754
##########
services/src/test/java/org/apache/druid/cli/CliPeonTest.java:
##########
@@ -198,77 +208,96 @@ public void testCliPeonLocalTmpStorage() throws
IOException
}
@Test
- public void testCliPeonDefaultHolders() throws IOException
+ public void testTaskWithDefaultContext() throws IOException
{
- File file = temporaryFolder.newFile("task.json");
-
- final CompactionTask.Builder builder = new CompactionTask.Builder(
- "test_ds",
- new SegmentCacheManagerFactory(TestIndex.INDEX_IO, mapper)
- );
- final CompactionTask compactionTask = builder
- .id("compact_test_taskid")
- .inputSpec(new CompactionIntervalSpec(Intervals.of("2020/2021"), null))
- .build();
+ final CompactionTask compactionTask = compactBuilder.build();
+ final Injector peonInjector = makePeonInjector(new Properties(),
compactionTask);
- FileUtils.write(file, mapper.writeValueAsString(compactionTask),
StandardCharsets.UTF_8);
-
- CliPeon runnable = new CliPeon();
- runnable.taskAndStatusFile = ImmutableList.of(file.getParent(), "1");
- Properties properties = new Properties();
- runnable.configure(properties);
- runnable.configure(properties, GuiceInjectors.makeStartupInjector());
- Injector injector = runnable.makeInjector();
-
- // Also ensure LoadSpecHolder is accessible and returns non-null specs.
- LoadSpecHolder loadSpecHolder = injector.getInstance(LoadSpecHolder.class);
- Assert.assertTrue(loadSpecHolder instanceof PeonLoadSpecHolder);
- Assert.assertEquals(LookupLoadingSpec.NONE,
loadSpecHolder.getLookupLoadingSpec());
- Assert.assertEquals(BroadcastDatasourceLoadingSpec.ALL,
loadSpecHolder.getBroadcastDatasourceLoadingSpec());
-
- TaskHolder taskHolder = injector.getInstance(TaskHolder.class);
- Assert.assertTrue(taskHolder instanceof PeonTaskHolder);
- Assert.assertEquals("compact_test_taskid", taskHolder.getTaskId());
- Assert.assertEquals("test_ds", taskHolder.getDataSource());
+ verifyLoadSpecHolder(peonInjector.getInstance(LoadSpecHolder.class),
compactionTask);
+ verifyTaskHolder(peonInjector.getInstance(TaskHolder.class),
compactionTask);
}
@Test
- public void testCliPeonWithTaskContextOverrides() throws IOException
+ public void testTaskWithContextOverrides() throws IOException
{
- File file = temporaryFolder.newFile("task.json");
-
- final CompactionTask.Builder builder = new CompactionTask.Builder(
- "test_ds",
- new SegmentCacheManagerFactory(TestIndex.INDEX_IO, mapper)
- );
- final CompactionTask compactionTask = builder
- .id("compact_test_taskid")
- .inputSpec(new CompactionIntervalSpec(Intervals.of("2020/2021"), null))
+ final CompactionTask compactionTask = compactBuilder
.context(Map.of(
"lookupLoadingMode", LookupLoadingSpec.Mode.NONE,
"broadcastDatasourceLoadingMode",
BroadcastDatasourceLoadingSpec.Mode.NONE
))
.build();
- FileUtils.write(file, mapper.writeValueAsString(compactionTask),
StandardCharsets.UTF_8);
+ final Injector peonInjector = makePeonInjector(new Properties(),
compactionTask);
- CliPeon runnable = new CliPeon();
- runnable.taskAndStatusFile = ImmutableList.of(file.getParent(), "1");
- Properties properties = new Properties();
- runnable.configure(properties);
- runnable.configure(properties, GuiceInjectors.makeStartupInjector());
- Injector injector = runnable.makeInjector();
-
- // Also ensure LoadSpecHolder is accessible and returns non-null specs.
- LoadSpecHolder loadSpecHolder = injector.getInstance(LoadSpecHolder.class);
- Assert.assertTrue(loadSpecHolder instanceof PeonLoadSpecHolder);
- Assert.assertEquals(LookupLoadingSpec.NONE,
loadSpecHolder.getLookupLoadingSpec());
- Assert.assertEquals(BroadcastDatasourceLoadingSpec.NONE,
loadSpecHolder.getBroadcastDatasourceLoadingSpec());
-
- TaskHolder taskHolder = injector.getInstance(TaskHolder.class);
- Assert.assertTrue(taskHolder instanceof PeonTaskHolder);
- Assert.assertEquals("compact_test_taskid", taskHolder.getTaskId());
- Assert.assertEquals("test_ds", taskHolder.getDataSource());
+ verifyLoadSpecHolder(peonInjector.getInstance(LoadSpecHolder.class),
compactionTask);
+ verifyTaskHolder(peonInjector.getInstance(TaskHolder.class),
compactionTask);
+ }
+
+ @Test
+ public void testTaskWithMetricsSpecDoesNotCauseCyclicDependency() throws
IOException
+ {
+ final CompactionTask compactionTask = compactBuilder
+ .metricsSpec(new AggregatorFactory[]{
+ new CountAggregatorFactory("cnt"),
+ new LongSumAggregatorFactory("val", "val")
+ })
+ .build();
+
+ final Injector peonInjector = makePeonInjector(new Properties(),
compactionTask);
+
+ verifyLoadSpecHolder(peonInjector.getInstance(LoadSpecHolder.class),
compactionTask);
+ verifyTaskHolder(peonInjector.getInstance(TaskHolder.class),
compactionTask);
+ }
+
+ @Test
+ public void testTaskWithMonitorsAndMetricsSpecDoNotCauseCyclicDependency()
throws IOException
Review Comment:
thanks for adding these tests!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]