Skip to content

Commit d1a8ea7

Browse files
committed
add disabledFeatures for intergration tests
1 parent f8df406 commit d1a8ea7

3 files changed

Lines changed: 26 additions & 2 deletions

File tree

test-common/test-common-runtime/src/main/java/org/apache/kafka/common/test/KafkaClusterTestKit.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,9 @@ private void formatNode(
513513
"bootstrap metadata. Use Formatter.setScramArguments() instead.");
514514
}
515515
}
516+
for (String disabledFeature : nodes.disabledFeatures()) {
517+
formatter.setFeatureLevel(disabledFeature, (short) 0);
518+
}
516519
formatter.setAdditionalBootstrapRecords(additionalRecords);
517520

518521
StringBuilder dynamicVotersBuilder = new StringBuilder();

test-common/test-common-runtime/src/main/java/org/apache/kafka/common/test/TestKitNodes.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import java.util.Map;
3737
import java.util.Objects;
3838
import java.util.Optional;
39+
import java.util.Set;
3940
import java.util.SortedMap;
4041
import java.util.TreeMap;
4142
import java.util.stream.Collectors;
@@ -54,6 +55,7 @@ public static class Builder {
5455
private int numDisksPerBroker = 1;
5556
private Map<Integer, Map<String, String>> perServerProperties = Map.of();
5657
private BootstrapMetadata bootstrapMetadata;
58+
private Set<String> disabledFeatures = Set.of();
5759

5860
public Builder() {
5961
this(BootstrapMetadata.fromVersions(
@@ -93,6 +95,11 @@ public Builder setBootstrapMetadata(BootstrapMetadata bootstrapMetadata) {
9395
return this;
9496
}
9597

98+
public Builder setDisabledFeatures(Set<String> disabledFeatures) {
99+
this.disabledFeatures = Collections.unmodifiableSet(disabledFeatures);
100+
return this;
101+
}
102+
96103
public Builder setCombined(boolean combined) {
97104
this.combined = combined;
98105
return this;
@@ -215,14 +222,15 @@ public TestKitNodes build() {
215222
brokerNodes.put(id, brokerNode);
216223
}
217224

218-
return new TestKitNodes(baseDirectory.toFile().getAbsolutePath(), clusterId, bootstrapMetadata, controllerNodes, brokerNodes,
219-
brokerListenerName, brokerSecurityProtocol, controllerListenerName, controllerSecurityProtocol);
225+
return new TestKitNodes(baseDirectory.toFile().getAbsolutePath(), clusterId, bootstrapMetadata, disabledFeatures, controllerNodes,
226+
brokerNodes, brokerListenerName, brokerSecurityProtocol, controllerListenerName, controllerSecurityProtocol);
220227
}
221228
}
222229

223230
private final String baseDirectory;
224231
private final String clusterId;
225232
private final BootstrapMetadata bootstrapMetadata;
233+
private final Set<String> disabledFeatures;
226234
private final SortedMap<Integer, TestKitNode> controllerNodes;
227235
private final SortedMap<Integer, TestKitNode> brokerNodes;
228236
private final ListenerName brokerListenerName;
@@ -234,6 +242,7 @@ private TestKitNodes(
234242
String baseDirectory,
235243
String clusterId,
236244
BootstrapMetadata bootstrapMetadata,
245+
Set<String> disabledFeatures,
237246
SortedMap<Integer, TestKitNode> controllerNodes,
238247
SortedMap<Integer, TestKitNode> brokerNodes,
239248
ListenerName brokerListenerName,
@@ -244,6 +253,7 @@ private TestKitNodes(
244253
this.baseDirectory = Objects.requireNonNull(baseDirectory);
245254
this.clusterId = Objects.requireNonNull(clusterId);
246255
this.bootstrapMetadata = Objects.requireNonNull(bootstrapMetadata);
256+
this.disabledFeatures = Objects.requireNonNull(disabledFeatures);
247257
this.controllerNodes = Collections.unmodifiableSortedMap(new TreeMap<>(Objects.requireNonNull(controllerNodes)));
248258
this.brokerNodes = Collections.unmodifiableSortedMap(new TreeMap<>(Objects.requireNonNull(brokerNodes)));
249259
this.brokerListenerName = Objects.requireNonNull(brokerListenerName);
@@ -272,6 +282,10 @@ public BootstrapMetadata bootstrapMetadata() {
272282
return bootstrapMetadata;
273283
}
274284

285+
public Set<String> disabledFeatures() {
286+
return disabledFeatures;
287+
}
288+
275289
public SortedMap<Integer, TestKitNode> brokerNodes() {
276290
return brokerNodes;
277291
}

test-common/test-common-runtime/src/main/java/org/apache/kafka/common/test/junit/RaftClusterInvocationContext.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,8 +336,15 @@ public void format() throws Exception {
336336
}
337337
}
338338

339+
Set<String> disabledFeatures = newFeatureLevels.entrySet().stream()
340+
.filter(featureEntry -> featureEntry.getValue() == 0)
341+
.filter(featureEntry -> !featureEntry.getKey().equals(MetadataVersion.FEATURE_NAME))
342+
.map(Map.Entry::getKey)
343+
.collect(Collectors.toSet());
344+
339345
TestKitNodes nodes = new TestKitNodes.Builder()
340346
.setBootstrapMetadata(BootstrapMetadata.fromVersions(clusterConfig.metadataVersion(), newFeatureLevels, "testkit"))
347+
.setDisabledFeatures(disabledFeatures)
341348
.setCombined(isCombined)
342349
.setNumBrokerNodes(clusterConfig.numBrokers())
343350
.setNumDisksPerBroker(clusterConfig.numDisksPerBroker())

0 commit comments

Comments
 (0)