MINOR: Add 4.1.0 to core system tests (#20477)

This PR updates all the core system tests to include 4.1.0.

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
This commit is contained in:
Mickael Maison 2025-09-10 10:15:33 +02:00 committed by GitHub
parent 675552a724
commit 1ea221c5e9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 19 additions and 13 deletions

View File

@ -29,7 +29,7 @@ from ducktape.tests.test import Test
from kafkatest.version import DEV_BRANCH, \ from kafkatest.version import DEV_BRANCH, \
LATEST_2_1, LATEST_2_2, LATEST_2_3, LATEST_2_4, LATEST_2_5, LATEST_2_6, LATEST_2_7, LATEST_2_8, \ LATEST_2_1, LATEST_2_2, LATEST_2_3, LATEST_2_4, LATEST_2_5, LATEST_2_6, LATEST_2_7, LATEST_2_8, \
LATEST_3_0, LATEST_3_1, LATEST_3_2, LATEST_3_3, LATEST_3_4, LATEST_3_5, LATEST_3_6, LATEST_3_7, \ LATEST_3_0, LATEST_3_1, LATEST_3_2, LATEST_3_3, LATEST_3_4, LATEST_3_5, LATEST_3_6, LATEST_3_7, \
LATEST_3_8, LATEST_3_9, LATEST_4_0, KafkaVersion LATEST_3_8, LATEST_3_9, LATEST_4_0, LATEST_4_1, KafkaVersion
def get_broker_features(broker_version): def get_broker_features(broker_version):
features = {} features = {}
@ -126,6 +126,7 @@ class ClientCompatibilityFeaturesTest(Test):
@parametrize(broker_version=str(LATEST_3_8), metadata_quorum=quorum.isolated_kraft) @parametrize(broker_version=str(LATEST_3_8), metadata_quorum=quorum.isolated_kraft)
@parametrize(broker_version=str(LATEST_3_9), metadata_quorum=quorum.isolated_kraft) @parametrize(broker_version=str(LATEST_3_9), metadata_quorum=quorum.isolated_kraft)
@parametrize(broker_version=str(LATEST_4_0), metadata_quorum=quorum.isolated_kraft) @parametrize(broker_version=str(LATEST_4_0), metadata_quorum=quorum.isolated_kraft)
@parametrize(broker_version=str(LATEST_4_1), metadata_quorum=quorum.isolated_kraft)
def run_compatibility_test(self, broker_version, metadata_quorum=quorum.zk): def run_compatibility_test(self, broker_version, metadata_quorum=quorum.zk):
if self.zk: if self.zk:
self.zk.start() self.zk.start()

View File

@ -26,7 +26,7 @@ from kafkatest.utils import is_int_with_prefix
from kafkatest.version import DEV_BRANCH, \ from kafkatest.version import DEV_BRANCH, \
LATEST_2_1, LATEST_2_2, LATEST_2_3, LATEST_2_4, LATEST_2_5, LATEST_2_6, LATEST_2_7, LATEST_2_8, \ LATEST_2_1, LATEST_2_2, LATEST_2_3, LATEST_2_4, LATEST_2_5, LATEST_2_6, LATEST_2_7, LATEST_2_8, \
LATEST_3_0, LATEST_3_1, LATEST_3_2, LATEST_3_3, LATEST_3_4, LATEST_3_5, LATEST_3_6, LATEST_3_7, \ LATEST_3_0, LATEST_3_1, LATEST_3_2, LATEST_3_3, LATEST_3_4, LATEST_3_5, LATEST_3_6, LATEST_3_7, \
LATEST_3_8, LATEST_3_9, LATEST_4_0, KafkaVersion LATEST_3_8, LATEST_3_9, LATEST_4_0, LATEST_4_1, KafkaVersion
class ClientCompatibilityProduceConsumeTest(ProduceConsumeValidateTest): class ClientCompatibilityProduceConsumeTest(ProduceConsumeValidateTest):
""" """
@ -86,6 +86,7 @@ class ClientCompatibilityProduceConsumeTest(ProduceConsumeValidateTest):
@parametrize(broker_version=str(LATEST_3_8), metadata_quorum=quorum.isolated_kraft) @parametrize(broker_version=str(LATEST_3_8), metadata_quorum=quorum.isolated_kraft)
@parametrize(broker_version=str(LATEST_3_9), metadata_quorum=quorum.isolated_kraft) @parametrize(broker_version=str(LATEST_3_9), metadata_quorum=quorum.isolated_kraft)
@parametrize(broker_version=str(LATEST_4_0), metadata_quorum=quorum.isolated_kraft) @parametrize(broker_version=str(LATEST_4_0), metadata_quorum=quorum.isolated_kraft)
@parametrize(broker_version=str(LATEST_4_1), metadata_quorum=quorum.isolated_kraft)
def test_produce_consume(self, broker_version, metadata_quorum=quorum.zk): def test_produce_consume(self, broker_version, metadata_quorum=quorum.zk):
print("running producer_consumer_compat with broker_version = %s" % broker_version, flush=True) print("running producer_consumer_compat with broker_version = %s" % broker_version, flush=True)
self.kafka.set_version(KafkaVersion(broker_version)) self.kafka.set_version(KafkaVersion(broker_version))

View File

@ -20,7 +20,8 @@ from ducktape.mark.resource import cluster
from kafkatest.tests.verifiable_consumer_test import VerifiableConsumerTest from kafkatest.tests.verifiable_consumer_test import VerifiableConsumerTest
from kafkatest.services.kafka import TopicPartition, quorum, consumer_group from kafkatest.services.kafka import TopicPartition, quorum, consumer_group
from kafkatest.version import LATEST_2_1, LATEST_2_3, LATEST_2_4, LATEST_2_5, \ from kafkatest.version import LATEST_2_1, LATEST_2_3, LATEST_2_4, LATEST_2_5, \
LATEST_3_2, LATEST_3_4, LATEST_3_5, LATEST_3_6, LATEST_3_7, LATEST_3_8, LATEST_3_9, LATEST_4_0, DEV_BRANCH, KafkaVersion LATEST_3_2, LATEST_3_4, LATEST_3_5, LATEST_3_6, LATEST_3_7, LATEST_3_8, LATEST_3_9, \
LATEST_4_0, LATEST_4_1, DEV_BRANCH, KafkaVersion
class ConsumerProtocolMigrationTest(VerifiableConsumerTest): class ConsumerProtocolMigrationTest(VerifiableConsumerTest):
""" """
@ -44,6 +45,7 @@ class ConsumerProtocolMigrationTest(VerifiableConsumerTest):
all_consumer_versions = [LATEST_2_1, LATEST_2_3, LATEST_2_4, LATEST_2_5, \ all_consumer_versions = [LATEST_2_1, LATEST_2_3, LATEST_2_4, LATEST_2_5, \
LATEST_3_2, LATEST_3_4, LATEST_3_5, LATEST_3_6, \ LATEST_3_2, LATEST_3_4, LATEST_3_5, LATEST_3_6, \
LATEST_3_7, LATEST_3_8, LATEST_3_9, LATEST_4_0, \ LATEST_3_7, LATEST_3_8, LATEST_3_9, LATEST_4_0, \
LATEST_4_1, \
DEV_BRANCH] DEV_BRANCH]
consumer_versions_supporting_range_assignnor = [str(v) for v in all_consumer_versions] consumer_versions_supporting_range_assignnor = [str(v) for v in all_consumer_versions]
consumer_versions_supporting_static_membership = [str(v) for v in all_consumer_versions if v >= LATEST_2_3] consumer_versions_supporting_static_membership = [str(v) for v in all_consumer_versions if v >= LATEST_2_3]

View File

@ -22,7 +22,7 @@ from kafkatest.tests.produce_consume_validate import ProduceConsumeValidateTest
from kafkatest.utils import is_int from kafkatest.utils import is_int
from kafkatest.version import LATEST_2_1, LATEST_2_2, LATEST_2_3, LATEST_2_4, LATEST_2_5, LATEST_2_6, \ from kafkatest.version import LATEST_2_1, LATEST_2_2, LATEST_2_3, LATEST_2_4, LATEST_2_5, LATEST_2_6, \
LATEST_2_7, LATEST_2_8, LATEST_3_0, LATEST_3_1, LATEST_3_2, LATEST_3_3, LATEST_3_4, LATEST_3_5, LATEST_3_6, \ LATEST_2_7, LATEST_2_8, LATEST_3_0, LATEST_3_1, LATEST_3_2, LATEST_3_3, LATEST_3_4, LATEST_3_5, LATEST_3_6, \
LATEST_3_7, LATEST_3_8, LATEST_3_9, LATEST_4_0, DEV_BRANCH, KafkaVersion LATEST_3_7, LATEST_3_8, LATEST_3_9, LATEST_4_0, LATEST_4_1, DEV_BRANCH, KafkaVersion
# Compatibility tests for moving to a new broker (e.g., 0.10.x) and using a mix of old and new clients (e.g., 0.9.x) # Compatibility tests for moving to a new broker (e.g., 0.10.x) and using a mix of old and new clients (e.g., 0.9.x)
class ClientCompatibilityTestNewBroker(ProduceConsumeValidateTest): class ClientCompatibilityTestNewBroker(ProduceConsumeValidateTest):
@ -61,6 +61,7 @@ class ClientCompatibilityTestNewBroker(ProduceConsumeValidateTest):
@matrix(producer_version=[str(LATEST_3_8)], consumer_version=[str(LATEST_3_8)], compression_types=[["none"]], timestamp_type=[str("CreateTime")], metadata_quorum=quorum.all_non_upgrade) @matrix(producer_version=[str(LATEST_3_8)], consumer_version=[str(LATEST_3_8)], compression_types=[["none"]], timestamp_type=[str("CreateTime")], metadata_quorum=quorum.all_non_upgrade)
@matrix(producer_version=[str(LATEST_3_9)], consumer_version=[str(LATEST_3_9)], compression_types=[["none"]], timestamp_type=[str("CreateTime")], metadata_quorum=quorum.all_non_upgrade) @matrix(producer_version=[str(LATEST_3_9)], consumer_version=[str(LATEST_3_9)], compression_types=[["none"]], timestamp_type=[str("CreateTime")], metadata_quorum=quorum.all_non_upgrade)
@matrix(producer_version=[str(LATEST_4_0)], consumer_version=[str(LATEST_4_0)], compression_types=[["none"]], timestamp_type=[str("CreateTime")], metadata_quorum=quorum.all_non_upgrade) @matrix(producer_version=[str(LATEST_4_0)], consumer_version=[str(LATEST_4_0)], compression_types=[["none"]], timestamp_type=[str("CreateTime")], metadata_quorum=quorum.all_non_upgrade)
@matrix(producer_version=[str(LATEST_4_1)], consumer_version=[str(LATEST_4_1)], compression_types=[["none"]], timestamp_type=[str("CreateTime")], metadata_quorum=quorum.all_non_upgrade)
@matrix(producer_version=[str(LATEST_2_1)], consumer_version=[str(LATEST_2_1)], compression_types=[["zstd"]], timestamp_type=[str("CreateTime")], metadata_quorum=quorum.all_non_upgrade) @matrix(producer_version=[str(LATEST_2_1)], consumer_version=[str(LATEST_2_1)], compression_types=[["zstd"]], timestamp_type=[str("CreateTime")], metadata_quorum=quorum.all_non_upgrade)
def test_compatibility(self, producer_version, consumer_version, compression_types, timestamp_type=None, metadata_quorum=quorum.zk): def test_compatibility(self, producer_version, consumer_version, compression_types, timestamp_type=None, metadata_quorum=quorum.zk):
self.kafka = KafkaService(self.test_context, num_nodes=3, zk=None, version=DEV_BRANCH, topics={self.topic: { self.kafka = KafkaService(self.test_context, num_nodes=3, zk=None, version=DEV_BRANCH, topics={self.topic: {

View File

@ -22,7 +22,7 @@ from kafkatest.utils import is_int
from kafkatest.utils.transactions_utils import create_and_start_copiers from kafkatest.utils.transactions_utils import create_and_start_copiers
from kafkatest.version import LATEST_3_3, LATEST_3_4, LATEST_3_5, \ from kafkatest.version import LATEST_3_3, LATEST_3_4, LATEST_3_5, \
LATEST_3_6, LATEST_3_7, LATEST_3_8, LATEST_3_9, LATEST_4_0, \ LATEST_3_6, LATEST_3_7, LATEST_3_8, LATEST_3_9, LATEST_4_0, \
DEV_BRANCH, KafkaVersion, LATEST_STABLE_METADATA_VERSION LATEST_4_1, DEV_BRANCH, KafkaVersion, LATEST_STABLE_METADATA_VERSION
from ducktape.tests.test import Test from ducktape.tests.test import Test
from ducktape.mark import matrix from ducktape.mark import matrix
@ -179,7 +179,7 @@ class TransactionsMixedVersionsTest(Test):
@cluster(num_nodes=8) @cluster(num_nodes=8)
@matrix( @matrix(
old_kafka_version=[str(LATEST_4_0), str(LATEST_3_9), str(LATEST_3_8), str(LATEST_3_7), str(LATEST_3_6), str(LATEST_3_5), str(LATEST_3_4), str(LATEST_3_3)], old_kafka_version=[str(LATEST_4_1), str(LATEST_4_0), str(LATEST_3_9), str(LATEST_3_8), str(LATEST_3_7), str(LATEST_3_6), str(LATEST_3_5), str(LATEST_3_4), str(LATEST_3_3)],
metadata_quorum=[isolated_kraft], metadata_quorum=[isolated_kraft],
group_protocol=[None] group_protocol=[None]
) )

View File

@ -22,7 +22,7 @@ from kafkatest.utils import is_int
from kafkatest.utils.transactions_utils import create_and_start_copiers from kafkatest.utils.transactions_utils import create_and_start_copiers
from kafkatest.version import LATEST_3_3, LATEST_3_4, LATEST_3_5, \ from kafkatest.version import LATEST_3_3, LATEST_3_4, LATEST_3_5, \
LATEST_3_6, LATEST_3_7, LATEST_3_8, LATEST_3_9, LATEST_4_0, \ LATEST_3_6, LATEST_3_7, LATEST_3_8, LATEST_3_9, LATEST_4_0, \
DEV_BRANCH, KafkaVersion, LATEST_STABLE_METADATA_VERSION, LATEST_STABLE_TRANSACTION_VERSION LATEST_4_1, DEV_BRANCH, KafkaVersion, LATEST_STABLE_METADATA_VERSION, LATEST_STABLE_TRANSACTION_VERSION
from ducktape.tests.test import Test from ducktape.tests.test import Test
from ducktape.mark import matrix from ducktape.mark import matrix
@ -209,7 +209,7 @@ class TransactionsUpgradeTest(Test):
@cluster(num_nodes=8) @cluster(num_nodes=8)
@matrix( @matrix(
from_kafka_version=[str(LATEST_4_0), str(LATEST_3_9), str(LATEST_3_8), str(LATEST_3_7), str(LATEST_3_6), str(LATEST_3_5), str(LATEST_3_4), str(LATEST_3_3)], from_kafka_version=[str(LATEST_4_1), str(LATEST_4_0), str(LATEST_3_9), str(LATEST_3_8), str(LATEST_3_7), str(LATEST_3_6), str(LATEST_3_5), str(LATEST_3_4), str(LATEST_3_3)],
metadata_quorum=[isolated_kraft], metadata_quorum=[isolated_kraft],
group_protocol=[None] group_protocol=[None]
) )

View File

@ -23,7 +23,8 @@ from kafkatest.services.verifiable_producer import VerifiableProducer
from kafkatest.tests.produce_consume_validate import ProduceConsumeValidateTest from kafkatest.tests.produce_consume_validate import ProduceConsumeValidateTest
from kafkatest.utils import is_int from kafkatest.utils import is_int
from kafkatest.version import LATEST_3_4, LATEST_3_5, \ from kafkatest.version import LATEST_3_4, LATEST_3_5, \
LATEST_3_6, LATEST_3_7, LATEST_3_8, LATEST_3_9, LATEST_4_0, DEV_BRANCH, KafkaVersion, LATEST_STABLE_METADATA_VERSION LATEST_3_6, LATEST_3_7, LATEST_3_8, LATEST_3_9, LATEST_4_0, \
LATEST_4_1, DEV_BRANCH, KafkaVersion, LATEST_STABLE_METADATA_VERSION
# #
# Test upgrading between different KRaft versions. # Test upgrading between different KRaft versions.
@ -163,25 +164,25 @@ class TestUpgrade(ProduceConsumeValidateTest):
assert self.kafka.check_protocol_errors(self) assert self.kafka.check_protocol_errors(self)
@cluster(num_nodes=5) @cluster(num_nodes=5)
@matrix(from_kafka_version=[str(LATEST_3_4), str(LATEST_3_5), str(LATEST_3_6), str(LATEST_3_7), str(LATEST_3_8), str(LATEST_3_9), str(LATEST_4_0), str(DEV_BRANCH)], @matrix(from_kafka_version=[str(LATEST_3_4), str(LATEST_3_5), str(LATEST_3_6), str(LATEST_3_7), str(LATEST_3_8), str(LATEST_3_9), str(LATEST_4_0), str(LATEST_4_1), str(DEV_BRANCH)],
metadata_quorum=[combined_kraft]) metadata_quorum=[combined_kraft])
def test_combined_mode_upgrade(self, from_kafka_version, metadata_quorum): def test_combined_mode_upgrade(self, from_kafka_version, metadata_quorum):
self.run_upgrade(from_kafka_version) self.run_upgrade(from_kafka_version)
@cluster(num_nodes=8) @cluster(num_nodes=8)
@matrix(from_kafka_version=[str(LATEST_3_4), str(LATEST_3_5), str(LATEST_3_6), str(LATEST_3_7), str(LATEST_3_8), str(LATEST_3_9), str(LATEST_4_0), str(DEV_BRANCH)], @matrix(from_kafka_version=[str(LATEST_3_4), str(LATEST_3_5), str(LATEST_3_6), str(LATEST_3_7), str(LATEST_3_8), str(LATEST_3_9), str(LATEST_4_0), str(LATEST_4_1), str(DEV_BRANCH)],
metadata_quorum=[isolated_kraft]) metadata_quorum=[isolated_kraft])
def test_isolated_mode_upgrade(self, from_kafka_version, metadata_quorum): def test_isolated_mode_upgrade(self, from_kafka_version, metadata_quorum):
self.run_upgrade(from_kafka_version) self.run_upgrade(from_kafka_version)
@cluster(num_nodes=5) @cluster(num_nodes=5)
@matrix(from_kafka_version=[str(LATEST_3_4), str(LATEST_3_5), str(LATEST_3_6), str(LATEST_3_7), str(LATEST_3_8), str(LATEST_3_9), str(LATEST_4_0), str(DEV_BRANCH)], @matrix(from_kafka_version=[str(LATEST_3_4), str(LATEST_3_5), str(LATEST_3_6), str(LATEST_3_7), str(LATEST_3_8), str(LATEST_3_9), str(LATEST_4_0), str(LATEST_4_1), str(DEV_BRANCH)],
metadata_quorum=[combined_kraft]) metadata_quorum=[combined_kraft])
def test_combined_mode_upgrade_downgrade(self, from_kafka_version, metadata_quorum): def test_combined_mode_upgrade_downgrade(self, from_kafka_version, metadata_quorum):
self.run_upgrade_downgrade(from_kafka_version) self.run_upgrade_downgrade(from_kafka_version)
@cluster(num_nodes=8) @cluster(num_nodes=8)
@matrix(from_kafka_version=[str(LATEST_3_4), str(LATEST_3_5), str(LATEST_3_6), str(LATEST_3_7), str(LATEST_3_8), str(LATEST_3_9), str(LATEST_4_0), str(DEV_BRANCH)], @matrix(from_kafka_version=[str(LATEST_3_4), str(LATEST_3_5), str(LATEST_3_6), str(LATEST_3_7), str(LATEST_3_8), str(LATEST_3_9), str(LATEST_4_0), str(LATEST_4_1), str(DEV_BRANCH)],
metadata_quorum=[isolated_kraft]) metadata_quorum=[isolated_kraft])
def test_isolated_mode_upgrade_downgrade(self, from_kafka_version, metadata_quorum): def test_isolated_mode_upgrade_downgrade(self, from_kafka_version, metadata_quorum):
self.run_upgrade_downgrade(from_kafka_version) self.run_upgrade_downgrade(from_kafka_version)