@@ -36,112 +36,110 @@ target_link_libraries(
3636 GTest::gtest_main
3737)
3838
39- # Sources are ordered so that heavy tests are spread across groups via greedy
40- # bin-packing by actual CI execution time. With VELOX_TESTS_PER_GROUP=10,
41- # CMake takes files positionally in batches of 10 (files 1-10 = group0,
42- # 11-20 = group1, etc.), so each batch of 10 must be independently balanced.
39+ # Sources are ordered via greedy bin-packing by measured EC2 execution time.
40+ # With VELOX_TESTS_PER_GROUP=10, CMake takes files positionally in batches of
41+ # 10 (files 1-10 = group0, 11-20 = group1, etc.).
4342#
44- # Actual CI timings (run 23771243060): group0=882s, group1=1055s, group2=365s,
45- # group3=408s, group4=333s, group5=768s, group6=108s, group7=810s.
43+ # Measured per-file EC2 timings (sequential, 8-core, 30GB):
44+ # IndexLookupJoinTest 783s, MultiFragmentTest 599s,
45+ # HashJoinTestExtra ~585s, SpillerTest 584s, HashJoinTest ~575s,
46+ # TableWriterTest 225s, TableScanTest 189s, IndexLookupJoinTestExtra 188s,
47+ # MergeJoinTest 111s, AggregationTest 105s, OutputBufferManagerTest 98s,
48+ # ScaleWriterLocalPartitionTest 96s, OrderByTest 71s, TopNRowNumberTest 64s,
49+ # HashTableTest 60s, StreamingAggregationTest 58s, ExchangeClientTest 54s,
50+ # RowNumberTest 42s.
4651#
47- # Heavy files (estimated from group timings):
48- # HashJoinTest ~870s, IndexLookupJoinTest ~520s (split from ~1040s),
49- # IndexLookupJoinTestExtra ~520s, TableWriterTest ~400s, TableScanTest ~350s,
50- # HashJoinTestSpill ~340s, MultiFragmentTest ~300s, AggregationTest ~200s,
51- # SpillerTest ~200s, WindowTest ~150s.
52- #
53- # Each heavy file is the sole heavyweight in its group, paired with lightweight
54- # tests. One heavy file per group ensures no group exceeds ~880s.
52+ # Max group ~784s (bounded by IndexLookupJoinTest.cpp).
5553set (
5654 VELOX_EXEC_TEST_SOURCES
57- # group0: HashJoinTest (~870s) + 9 lightweight
58- HashJoinTest.cpp
59- PrintPlanWithStatsTest.cpp
60- ThreadDebugInfoTest.cpp
61- WriterFuzzerUtilTest.cpp
62- UnorderedStreamReaderTest.cpp
63- ProbeOperatorStateTest.cpp
64- PlanNodeStatsTest.cpp
65- AsyncConnectorTest.cpp
66- PlanNodeToSummaryStringTest.cpp
67- PlanNodeToStringTest.cpp
68- # group1: IndexLookupJoinTest (~520s) + 9 lightweight
55+ # group0 (~784s): IndexLookupJoinTest 783 + 9 lightweight
6956 IndexLookupJoinTest.cpp
70- MergeTest.cpp
71- FilterProjectTest.cpp
57+ ConcatFilesSpillMergeStreamTest.cpp
58+ MixedUnionWithTableScanTest.cpp
59+ MemoryReclaimerTest.cpp
60+ EnforceDistinctTest.cpp
61+ TraceUtilTest.cpp
62+ HashPartitionFunctionTest.cpp
63+ SpatialIndexTest.cpp
64+ ValuesTest.cpp
65+ ParallelProjectTest.cpp
66+ # group1 (~599s): MultiFragmentTest 599 + 9 lightweight
67+ MultiFragmentTest.cpp
68+ EnforceSingleRowTest.cpp
69+ FilterToExpressionTest.cpp
70+ ScaledScanControllerTest.cpp
71+ HilbertIndexTest.cpp
72+ OperatorTraceTest.cpp
73+ LimitTest.cpp
74+ SplitListenerTest.cpp
75+ AddressableNonNullValueListTest.cpp
76+ ArrowStreamTest.cpp
77+ # group2 (~585s): HashJoinTestExtra ~585 + 9 lightweight
78+ HashJoinTestExtra.cpp
79+ AggregateFunctionRegistryTest.cpp
80+ RoundRobinPartitionFunctionTest.cpp
81+ ColumnStatsCollectorTest.cpp
82+ MixedUnionTest.cpp
83+ ExpandTest.cpp
84+ FunctionResolutionTest.cpp
85+ SpillStatsTest.cpp
86+ MarkSortedTest.cpp
87+ PartitionedOutputTest.cpp
88+ # group3 (~584s): SpillerTest 584 + 9 lightweight
89+ SpillerTest.cpp
90+ PlanNodeToSummaryStringTest.cpp
7291 CountingJoinTest.cpp
7392 CustomJoinTest.cpp
74- AssignUniqueIdTest.cpp
7593 TaskListenerTest.cpp
7694 SplitTest.cpp
7795 SqlTest.cpp
7896 WindowFunctionRegistryTest.cpp
79- # group2: IndexLookupJoinTestExtra (~520s) + 9 lightweight
80- IndexLookupJoinTestExtra.cpp
81- OrderByTest.cpp
82- PrefixSortTest.cpp
83- MarkDistinctTest.cpp
84- MergerTest.cpp
8597 StreamingEnforceDistinctTest.cpp
8698 HashBitRangeTest.cpp
87- AggregateFunctionRegistryTest.cpp
88- RoundRobinPartitionFunctionTest.cpp
89- ColumnStatsCollectorTest.cpp
90- # group3: TableWriterTest (~400s) + 9 lightweight
99+ # group4 (~575s): HashJoinTest ~575 + 9 lightweight
100+ HashJoinTest.cpp
101+ SpillTest.cpp
102+ WindowTest.cpp
103+ PrefixSortTest.cpp
104+ MergerTest.cpp
105+ LocalPartitionTest.cpp
106+ PrintPlanWithStatsTest.cpp
107+ ProbeOperatorStateTest.cpp
108+ MarkDistinctTest.cpp
109+ MergeTest.cpp
110+ # group5 (~445s): TableWriterTest 225 + OutputBufMgr 98 + TopNRowNumber 64 + StreamingAgg 58
91111 TableWriterTest.cpp
92112 OutputBufferManagerTest.cpp
93- NestedLoopJoinTest.cpp
94- MixedUnionTest.cpp
95- VectorHasherTest.cpp
113+ TopNRowNumberTest.cpp
114+ StreamingAggregationTest.cpp
96115 ContainerRowSerdeTest.cpp
97- ExpandTest.cpp
98- FunctionResolutionTest.cpp
99- SpillStatsTest.cpp
100- MarkSortedTest.cpp
101- # group4: TableScanTest (~350s) + 9 lightweight
116+ RowContainerTest.cpp
117+ TopNTest.cpp
118+ WriterFuzzerUtilTest.cpp
119+ PlanNodeStatsTest.cpp
120+ ThreadDebugInfoTest.cpp
121+ # group6 (~467s): TableScanTest 189 + AggregationTest 105 + OrderBy 71 + HashTable 60 + RowNumber 42
102122 TableScanTest.cpp
123+ AggregationTest.cpp
124+ OrderByTest.cpp
103125 HashTableTest.cpp
104- StreamingAggregationTest.cpp
105- PartitionedOutputTest.cpp
106- TopNRowNumberTest.cpp
107- TopNTest.cpp
108- EnforceSingleRowTest.cpp
109- FilterToExpressionTest.cpp
110- ScaledScanControllerTest.cpp
111- HilbertIndexTest.cpp
112- # group5: HashJoinTestSpill (~340s) + OperatorTraceTest + 8 lightweight
113- HashJoinTestSpill.cpp
114- OperatorTraceTest.cpp
115- ScaleWriterLocalPartitionTest.cpp
116- LimitTest.cpp
126+ RowNumberTest.cpp
117127 UnnestTest.cpp
118- SplitListenerTest.cpp
119- AddressableNonNullValueListTest.cpp
120- ArrowStreamTest.cpp
121- ConcatFilesSpillMergeStreamTest.cpp
122- MixedUnionWithTableScanTest.cpp
123- # group6: AggregationTest (~200s) + ExchangeClientTest + MemoryReclaimerTest + 7 lightweight
124- AggregationTest.cpp
125- ExchangeClientTest.cpp
126- MemoryReclaimerTest.cpp
127- RowContainerTest.cpp
128- SpillTest.cpp
129- LocalPartitionTest.cpp
128+ PlanNodeSerdeTest.cpp
130129 HashJoinBridgeTest.cpp
131- RowNumberTest.cpp
132- EnforceDistinctTest.cpp
133- TraceUtilTest.cpp
134- # group7: SpillerTest (~200s) + WindowTest (~150s) + MultiFragmentTest (~300s) + 7 lightweight
135- MultiFragmentTest.cpp
136- SpillerTest.cpp
137- WindowTest.cpp
138- MergeJoinTest.cpp
139130 SortBufferTest.cpp
140- HashPartitionFunctionTest.cpp
141- SpatialIndexTest.cpp
142- ValuesTest.cpp
143- ParallelProjectTest.cpp
144- PlanNodeSerdeTest.cpp
131+ VectorHasherTest.cpp
132+ # group7 (~449s): IndexLookupJoinTestExtra 188 + MergeJoin 111 + ScaleWriter 96 + Exchange 54
133+ IndexLookupJoinTestExtra.cpp
134+ MergeJoinTest.cpp
135+ ScaleWriterLocalPartitionTest.cpp
136+ ExchangeClientTest.cpp
137+ NestedLoopJoinTest.cpp
138+ UnorderedStreamReaderTest.cpp
139+ PlanNodeToStringTest.cpp
140+ AssignUniqueIdTest.cpp
141+ FilterProjectTest.cpp
142+ AsyncConnectorTest.cpp
145143)
146144
147145set (
0 commit comments