[UT] Fix optimize job test (backport #63096) (#63104)

Signed-off-by: meegoo <meegoo.sr@gmail.com>
Co-authored-by: meegoo <meegoo.sr@gmail.com>
This commit is contained in:
mergify[bot] 2025-09-15 10:56:06 +08:00 committed by GitHub
parent ded88787e5
commit 885389fe1f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 18 additions and 11 deletions

View File

@ -23,6 +23,7 @@ import com.starrocks.catalog.OlapTable;
import com.starrocks.catalog.OlapTable.OlapTableState;
import com.starrocks.catalog.Partition;
import com.starrocks.catalog.Replica;
import com.starrocks.common.AnalysisException;
import com.starrocks.common.Config;
import com.starrocks.common.util.ThreadUtil;
import com.starrocks.scheduler.Constants;
@ -38,6 +39,7 @@ 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.mockito.Mockito;
import java.util.List;
import java.util.Map;
@ -158,7 +160,7 @@ public class OptimizeJobV2Test extends DDLTestBase {
schemaChangeHandler.process(alterTableStmt.getAlterClauseList(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
Assertions.assertEquals(1, alterJobsV2.size());
OptimizeJobV2 optimizeJob = (OptimizeJobV2) alterJobsV2.values().stream().findAny().get();
OptimizeJobV2 optimizeJob = spyPreviousTxnFinished((OptimizeJobV2) alterJobsV2.values().stream().findAny().get());
// runPendingJob
optimizeJob.runPendingJob();
@ -199,7 +201,7 @@ public class OptimizeJobV2Test extends DDLTestBase {
schemaChangeHandler.process(alterTableStmt.getAlterClauseList(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
Assertions.assertEquals(1, alterJobsV2.size());
OptimizeJobV2 optimizeJob = (OptimizeJobV2) alterJobsV2.values().stream().findAny().get();
OptimizeJobV2 optimizeJob = spyPreviousTxnFinished((OptimizeJobV2) alterJobsV2.values().stream().findAny().get());
// runPendingJob
optimizeJob.runPendingJob();
@ -246,7 +248,7 @@ public class OptimizeJobV2Test extends DDLTestBase {
schemaChangeHandler.process(alterTableStmt.getAlterClauseList(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
Assertions.assertEquals(1, alterJobsV2.size());
OptimizeJobV2 optimizeJob = (OptimizeJobV2) alterJobsV2.values().stream().findAny().get();
OptimizeJobV2 optimizeJob = spyPreviousTxnFinished((OptimizeJobV2) alterJobsV2.values().stream().findAny().get());
MaterializedIndex baseIndex = testPartition.getDefaultPhysicalPartition().getBaseIndex();
LocalTablet baseTablet = (LocalTablet) baseIndex.getTablets().get(0);
@ -274,7 +276,7 @@ public class OptimizeJobV2Test extends DDLTestBase {
schemaChangeHandler.process(alterTableStmt.getAlterClauseList(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
Assertions.assertEquals(1, alterJobsV2.size());
OptimizeJobV2 optimizeJob = (OptimizeJobV2) alterJobsV2.values().stream().findAny().get();
OptimizeJobV2 optimizeJob = spyPreviousTxnFinished((OptimizeJobV2) alterJobsV2.values().stream().findAny().get());
OptimizeJobV2 replayOptimizeJob = new OptimizeJobV2(
optimizeJob.getJobId(), db.getId(), olapTable.getId(), olapTable.getName(), 1000);
@ -323,7 +325,7 @@ public class OptimizeJobV2Test extends DDLTestBase {
schemaChangeHandler.process(alterStmt.getAlterClauseList(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
Assertions.assertEquals(1, alterJobsV2.size());
OptimizeJobV2 optimizeJob = (OptimizeJobV2) alterJobsV2.values().stream().findAny().get();
OptimizeJobV2 optimizeJob = spyPreviousTxnFinished((OptimizeJobV2) alterJobsV2.values().stream().findAny().get());
OptimizeJobV2 replayOptimizeJob = new OptimizeJobV2(
optimizeJob.getJobId(), db.getId(), olapTable.getId(), olapTable.getName(), 1000);
@ -368,7 +370,7 @@ public class OptimizeJobV2Test extends DDLTestBase {
schemaChangeHandler.process(alterStmt.getAlterClauseList(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
Assertions.assertEquals(1, alterJobsV2.size());
OptimizeJobV2 optimizeJob = (OptimizeJobV2) alterJobsV2.values().stream().findAny().get();
OptimizeJobV2 optimizeJob = spyPreviousTxnFinished((OptimizeJobV2) alterJobsV2.values().stream().findAny().get());
// runPendingJob
optimizeJob.runPendingJob();
@ -406,7 +408,7 @@ public class OptimizeJobV2Test extends DDLTestBase {
schemaChangeHandler.process(alterStmt.getAlterClauseList(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
Assertions.assertEquals(1, alterJobsV2.size());
OptimizeJobV2 optimizeJob = (OptimizeJobV2) alterJobsV2.values().stream().findAny().get();
OptimizeJobV2 optimizeJob = spyPreviousTxnFinished((OptimizeJobV2) alterJobsV2.values().stream().findAny().get());
// runPendingJob
optimizeJob.runPendingJob();
@ -444,7 +446,7 @@ public class OptimizeJobV2Test extends DDLTestBase {
schemaChangeHandler.process(alterStmt.getAlterClauseList(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
Assertions.assertEquals(1, alterJobsV2.size());
OptimizeJobV2 optimizeJob = (OptimizeJobV2) alterJobsV2.values().stream().findAny().get();
OptimizeJobV2 optimizeJob = spyPreviousTxnFinished((OptimizeJobV2) alterJobsV2.values().stream().findAny().get());
// runPendingJob
optimizeJob.runPendingJob();
@ -487,7 +489,7 @@ public class OptimizeJobV2Test extends DDLTestBase {
schemaChangeHandler.process(alterStmt.getAlterClauseList(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
Assertions.assertEquals(1, alterJobsV2.size());
OptimizeJobV2 optimizeJob = (OptimizeJobV2) alterJobsV2.values().stream().findAny().get();
OptimizeJobV2 optimizeJob = spyPreviousTxnFinished((OptimizeJobV2) alterJobsV2.values().stream().findAny().get());
// runPendingJob
optimizeJob.runPendingJob();
@ -531,7 +533,7 @@ public class OptimizeJobV2Test extends DDLTestBase {
schemaChangeHandler.process(alterTableStmt.getAlterClauseList(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
Assertions.assertEquals(1, alterJobsV2.size());
OptimizeJobV2 optimizeJob = (OptimizeJobV2) alterJobsV2.values().stream().findAny().get();
OptimizeJobV2 optimizeJob = spyPreviousTxnFinished((OptimizeJobV2) alterJobsV2.values().stream().findAny().get());
optimizeJob.runPendingJob();
Assertions.assertEquals(JobState.WAITING_TXN, optimizeJob.getJobState());
@ -571,7 +573,7 @@ public class OptimizeJobV2Test extends DDLTestBase {
schemaChangeHandler.process(alterTableStmt.getAlterClauseList(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
Assertions.assertEquals(1, alterJobsV2.size());
OptimizeJobV2 optimizeJob = (OptimizeJobV2) alterJobsV2.values().stream().findAny().get();
OptimizeJobV2 optimizeJob = spyPreviousTxnFinished((OptimizeJobV2) alterJobsV2.values().stream().findAny().get());
optimizeJob.runPendingJob();
Assertions.assertEquals(JobState.WAITING_TXN, optimizeJob.getJobState());
@ -595,4 +597,9 @@ public class OptimizeJobV2Test extends DDLTestBase {
Assertions.assertEquals(JobState.RUNNING, optimizeJob.getJobState());
}
private OptimizeJobV2 spyPreviousTxnFinished(OptimizeJobV2 job) throws AnalysisException {
OptimizeJobV2 spy = Mockito.spy(job);
Mockito.doReturn(true).when(spy).isPreviousLoadFinished();
return spy;
}
}