Skip to content

Commit 01c6151

Browse files
lukasz-antoniakabsurdfarce
authored andcommitted
Refactor integration tests to support multiple C* distributions. Test with DataStax HCD 1.0.0
patch by Lukasz Antoniak; reviewed by Bret McGuire reference: #1958
1 parent a4175f3 commit 01c6151

File tree

27 files changed

+439
-121
lines changed

27 files changed

+439
-121
lines changed

Jenkinsfile-datastax

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def initializeEnvironment() {
6161
. ${JABBA_SHELL}
6262
jabba which 1.8''', returnStdout: true).trim()
6363

64-
sh label: 'Download Apache CassandraⓇ or DataStax Enterprise',script: '''#!/bin/bash -le
64+
sh label: 'Download Apache CassandraⓇ, DataStax Enterprise or DataStax HCD ',script: '''#!/bin/bash -le
6565
. ${JABBA_SHELL}
6666
jabba use 1.8
6767
. ${CCM_ENVIRONMENT_SHELL} ${SERVER_VERSION}
@@ -75,13 +75,26 @@ CCM_CASSANDRA_VERSION=${DSE_FIXED_VERSION} # maintain for backwards compatibilit
7575
CCM_VERSION=${DSE_FIXED_VERSION}
7676
CCM_SERVER_TYPE=dse
7777
DSE_VERSION=${DSE_FIXED_VERSION}
78-
CCM_IS_DSE=true
7978
CCM_BRANCH=${DSE_FIXED_VERSION}
8079
DSE_BRANCH=${DSE_FIXED_VERSION}
8180
ENVIRONMENT_EOF
8281
'''
8382
}
8483

84+
if (env.SERVER_VERSION.split('-')[0] == 'hcd') {
85+
env.HCD_FIXED_VERSION = env.SERVER_VERSION.split('-')[1]
86+
sh label: 'Update environment for DataStax HCD', script: '''#!/bin/bash -le
87+
cat >> ${HOME}/environment.txt << ENVIRONMENT_EOF
88+
CCM_CASSANDRA_VERSION=${HCD_FIXED_VERSION} # maintain for backwards compatibility
89+
CCM_VERSION=${HCD_FIXED_VERSION}
90+
CCM_SERVER_TYPE=hcd
91+
HCD_VERSION=${HCD_FIXED_VERSION}
92+
CCM_BRANCH=${HCD_FIXED_VERSION}
93+
HCD_BRANCH=${HCD_FIXED_VERSION}
94+
ENVIRONMENT_EOF
95+
'''
96+
}
97+
8598
sh label: 'Display Java and environment information',script: '''#!/bin/bash -le
8699
# Load CCM environment variables
87100
set -o allexport
@@ -144,7 +157,7 @@ def executeTests() {
144157
-Dmaven.test.failure.ignore=true \
145158
-Dmaven.javadoc.skip=${SKIP_JAVADOCS} \
146159
-Dccm.version=${CCM_CASSANDRA_VERSION} \
147-
-Dccm.dse=${CCM_IS_DSE} \
160+
-Dccm.distribution=${CCM_SERVER_TYPE:cassandra} \
148161
-Dproxy.path=${HOME}/proxy \
149162
${SERIAL_ITS_ARGUMENT} \
150163
${ISOLATED_ITS_ARGUMENT} \
@@ -269,6 +282,7 @@ pipeline {
269282
'dse-6.7.17', // Previous DataStax Enterprise
270283
'dse-6.8.30', // Current DataStax Enterprise
271284
'dse-6.9.0', // Current DataStax Enterprise
285+
'hcd-1.0.0', // Current DataStax HCD
272286
'ALL'],
273287
description: '''Apache Cassandra&reg; and DataStax Enterprise server version to use for adhoc <b>BUILD-AND-EXECUTE-TESTS</b> builds
274288
<table style="width:100%">
@@ -330,6 +344,10 @@ pipeline {
330344
<td><strong>dse-6.9.0</strong></td>
331345
<td>DataStax Enterprise v6.9.x</td>
332346
</tr>
347+
<tr>
348+
<td><strong>hcd-1.0.0</strong></td>
349+
<td>DataStax HCD v1.0.x</td>
350+
</tr>
333351
</table>''')
334352
choice(
335353
name: 'ADHOC_BUILD_AND_EXECUTE_TESTS_JABBA_VERSION',
@@ -421,9 +439,9 @@ pipeline {
421439
H 2 * * 0 %CI_SCHEDULE=WEEKENDS;CI_SCHEDULE_SERVER_VERSIONS=2.1 3.0 4.0 dse-4.8.16 dse-5.0.15 dse-5.1.35 dse-6.0.18 dse-6.7.17;CI_SCHEDULE_JABBA_VERSION=1.8
422440
# Every weeknight (Monday - Friday) around 12:00 PM noon
423441
### JDK11 tests against 3.11, 4.1, 5.0-beta1 and DSE 6.8
424-
H 12 * * 1-5 %CI_SCHEDULE=WEEKNIGHTS;CI_SCHEDULE_SERVER_VERSIONS=3.11 4.1 5.0-beta1 dse-6.8.30 dse-6.9.0;[email protected]
442+
H 12 * * 1-5 %CI_SCHEDULE=WEEKNIGHTS;CI_SCHEDULE_SERVER_VERSIONS=3.11 4.1 5.0-beta1 dse-6.8.30 dse-6.9.0 hcd-1.0.0;[email protected]
425443
### JDK17 tests against 3.11, 4.1, 5.0-beta1 and DSE 6.8
426-
H 12 * * 1-5 %CI_SCHEDULE=WEEKNIGHTS;CI_SCHEDULE_SERVER_VERSIONS=3.11 4.1 5.0-beta1 dse-6.8.30 dse-6.9.0;[email protected]
444+
H 12 * * 1-5 %CI_SCHEDULE=WEEKNIGHTS;CI_SCHEDULE_SERVER_VERSIONS=3.11 4.1 5.0-beta1 dse-6.8.30 dse-6.9.0 hcd-1.0.0;[email protected]
427445
""" : "")
428446
}
429447

@@ -460,7 +478,8 @@ pipeline {
460478
values '3.11', // Latest stable Apache CassandraⓇ
461479
'4.1', // Development Apache CassandraⓇ
462480
'dse-6.8.30', // Current DataStax Enterprise
463-
'dse-6.9.0' // Current DataStax Enterprise
481+
'dse-6.9.0', // Current DataStax Enterprise
482+
'hcd-1.0.0' // Current DataStax HCD
464483
}
465484
axis {
466485
name 'JABBA_VERSION'
@@ -578,7 +597,8 @@ pipeline {
578597
'dse-6.0.18', // Previous DataStax Enterprise
579598
'dse-6.7.17', // Previous DataStax Enterprise
580599
'dse-6.8.30', // Current DataStax Enterprise
581-
'dse-6.9.0' // Current DataStax Enterprise
600+
'dse-6.9.0', // Current DataStax Enterprise
601+
'hcd-1.0.0' // Current DataStax HCD
582602
}
583603
}
584604
when {

core/src/main/java/com/datastax/oss/driver/api/core/Version.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public class Version implements Comparable<Version>, Serializable {
4848

4949
private static final Pattern pattern = Pattern.compile(VERSION_REGEXP);
5050

51+
@NonNull public static final Version V1_0_0 = Objects.requireNonNull(parse("1.0.0"));
5152
@NonNull public static final Version V2_1_0 = Objects.requireNonNull(parse("2.1.0"));
5253
@NonNull public static final Version V2_2_0 = Objects.requireNonNull(parse("2.2.0"));
5354
@NonNull public static final Version V3_0_0 = Objects.requireNonNull(parse("3.0.0"));

integration-tests/src/test/java/com/datastax/dse/driver/api/core/cql/continuous/ContinuousPagingIT.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import java.time.Duration;
4747
import java.util.Collections;
4848
import java.util.Iterator;
49-
import java.util.Objects;
5049
import java.util.concurrent.CancellationException;
5150
import java.util.concurrent.CompletableFuture;
5251
import java.util.concurrent.CompletionStage;
@@ -281,11 +280,8 @@ public void prepared_statement_paging_should_be_resilient_to_schema_change() {
281280
// dropped.
282281
Row row = it.next();
283282
assertThat(row.getString("k")).isNotNull();
284-
if (ccmRule
285-
.getDseVersion()
286-
.orElseThrow(IllegalStateException::new)
287-
.compareTo(Objects.requireNonNull(Version.parse("6.0.0")))
288-
>= 0) {
283+
if (ccmRule.isDistributionOf(
284+
BackendType.DSE, (dist, cass) -> dist.compareTo(Version.parse("6.0.0")) >= 0)) {
289285
// DSE 6 only, v should be null here since dropped.
290286
// Not reliable for 5.1 since we may have gotten page queued before schema changed.
291287
assertThat(row.isNull("v")).isTrue();

integration-tests/src/test/java/com/datastax/dse/driver/api/core/graph/remote/GraphTraversalRemoteITBase.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.datastax.oss.driver.api.core.CqlSession;
3131
import com.datastax.oss.driver.api.core.Version;
3232
import com.datastax.oss.driver.api.core.servererrors.InvalidQueryException;
33+
import com.datastax.oss.driver.api.testinfra.ccm.CcmBridge;
3334
import com.datastax.oss.driver.api.testinfra.ccm.CustomCcmRule;
3435
import com.datastax.oss.driver.api.testinfra.requirement.BackendRequirement;
3536
import com.datastax.oss.driver.api.testinfra.requirement.BackendType;
@@ -643,9 +644,9 @@ public void should_allow_use_of_dsl_graph_binary() {
643644
*/
644645
@Test
645646
public void should_return_correct_results_when_bulked() {
646-
Optional<Version> dseVersion = ccmRule().getCcmBridge().getDseVersion();
647647
Assumptions.assumeThat(
648-
dseVersion.isPresent() && dseVersion.get().compareTo(Version.parse("5.1.2")) > 0)
648+
CcmBridge.isDistributionOf(
649+
BackendType.DSE, (dist, cass) -> dist.compareTo(Version.parse("5.1.2")) > 0))
649650
.isTrue();
650651

651652
List<String> results = graphTraversalSource().E().label().barrier().toList();

integration-tests/src/test/java/com/datastax/dse/driver/api/core/graph/statement/GraphTraversalITBase.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@
3636
import com.datastax.oss.driver.api.core.Version;
3737
import com.datastax.oss.driver.api.core.servererrors.InvalidQueryException;
3838
import com.datastax.oss.driver.api.core.type.reflect.GenericType;
39+
import com.datastax.oss.driver.api.testinfra.ccm.CcmBridge;
3940
import com.datastax.oss.driver.api.testinfra.ccm.CustomCcmRule;
41+
import com.datastax.oss.driver.api.testinfra.requirement.BackendType;
4042
import com.datastax.oss.driver.shaded.guava.common.collect.ImmutableList;
4143
import com.datastax.oss.driver.shaded.guava.common.collect.Lists;
4244
import java.util.List;
@@ -598,7 +600,8 @@ public void should_allow_use_of_dsl_graph_binary() throws Exception {
598600
@Test
599601
public void should_return_correct_results_when_bulked() {
600602
Assumptions.assumeThat(
601-
ccmRule().getCcmBridge().getDseVersion().get().compareTo(Version.parse("5.1.2")) > 0)
603+
CcmBridge.isDistributionOf(
604+
BackendType.DSE, (dist, cass) -> dist.compareTo(Version.parse("5.1.2")) > 0))
602605
.isTrue();
603606

604607
GraphResultSet rs =

integration-tests/src/test/java/com/datastax/dse/driver/api/core/metadata/schema/DseAggregateMetadataIT.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@ public void should_parse_aggregate_with_deterministic() {
106106
}
107107

108108
private static boolean isDse6OrHigher() {
109-
assumeThat(CCM_RULE.getDseVersion())
109+
assumeThat(CCM_RULE.isDistributionOf(BackendType.DSE))
110110
.describedAs("DSE required for DseFunctionMetadata tests")
111-
.isPresent();
112-
return CCM_RULE.getDseVersion().get().compareTo(DSE_6_0_0) >= 0;
111+
.isTrue();
112+
return CCM_RULE.getDistributionVersion().compareTo(DSE_6_0_0) >= 0;
113113
}
114114
}

integration-tests/src/test/java/com/datastax/dse/driver/api/core/metadata/schema/DseFunctionMetadataIT.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,9 @@ public void should_parse_function_with_deterministic_and_monotonic_on() {
233233
}
234234

235235
private static boolean isDse6OrHigher() {
236-
assumeThat(CCM_RULE.getDseVersion())
236+
assumeThat(CCM_RULE.isDistributionOf(BackendType.DSE))
237237
.describedAs("DSE required for DseFunctionMetadata tests")
238-
.isPresent();
239-
return CCM_RULE.getDseVersion().get().compareTo(DSE_6_0_0) >= 0;
238+
.isTrue();
239+
return CCM_RULE.getDistributionVersion().compareTo(DSE_6_0_0) >= 0;
240240
}
241241
}

integration-tests/src/test/java/com/datastax/oss/driver/core/compression/DirectCompressionIT.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.datastax.oss.driver.api.core.cql.Row;
3030
import com.datastax.oss.driver.api.core.cql.SimpleStatement;
3131
import com.datastax.oss.driver.api.testinfra.ccm.CcmRule;
32+
import com.datastax.oss.driver.api.testinfra.requirement.BackendType;
3233
import com.datastax.oss.driver.api.testinfra.session.SessionRule;
3334
import com.datastax.oss.driver.api.testinfra.session.SessionUtils;
3435
import com.datastax.oss.driver.categories.ParallelizableTests;
@@ -75,8 +76,9 @@ public static void setup() {
7576
public void should_execute_queries_with_snappy_compression() throws Exception {
7677
Assume.assumeTrue(
7778
"Snappy is not supported in OSS C* 4.0+ with protocol v5",
78-
CCM_RULE.getDseVersion().isPresent()
79-
|| CCM_RULE.getCassandraVersion().nextStable().compareTo(Version.V4_0_0) < 0);
79+
!CCM_RULE.isDistributionOf(BackendType.HCD)
80+
&& (CCM_RULE.isDistributionOf(BackendType.DSE)
81+
|| CCM_RULE.getCassandraVersion().nextStable().compareTo(Version.V4_0_0) < 0));
8082
createAndCheckCluster("snappy");
8183
}
8284

integration-tests/src/test/java/com/datastax/oss/driver/core/compression/HeapCompressionIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.datastax.oss.driver.api.core.cql.Row;
3030
import com.datastax.oss.driver.api.core.cql.SimpleStatement;
3131
import com.datastax.oss.driver.api.testinfra.ccm.CustomCcmRule;
32+
import com.datastax.oss.driver.api.testinfra.requirement.BackendType;
3233
import com.datastax.oss.driver.api.testinfra.session.SessionRule;
3334
import com.datastax.oss.driver.api.testinfra.session.SessionUtils;
3435
import com.datastax.oss.driver.categories.IsolatedTests;
@@ -79,7 +80,7 @@ public static void setup() {
7980
public void should_execute_queries_with_snappy_compression() throws Exception {
8081
Assume.assumeTrue(
8182
"Snappy is not supported in OSS C* 4.0+ with protocol v5",
82-
CCM_RULE.getDseVersion().isPresent()
83+
CCM_RULE.isDistributionOf(BackendType.DSE)
8384
|| CCM_RULE.getCassandraVersion().nextStable().compareTo(Version.V4_0_0) < 0);
8485
createAndCheckCluster("snappy");
8586
}

integration-tests/src/test/java/com/datastax/oss/driver/core/cql/QueryTraceIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.datastax.oss.driver.api.core.cql.SimpleStatement;
2929
import com.datastax.oss.driver.api.core.metadata.EndPoint;
3030
import com.datastax.oss.driver.api.testinfra.ccm.CcmRule;
31+
import com.datastax.oss.driver.api.testinfra.requirement.BackendType;
3132
import com.datastax.oss.driver.api.testinfra.session.SessionRule;
3233
import com.datastax.oss.driver.categories.ParallelizableTests;
3334
import java.net.InetAddress;
@@ -82,7 +83,7 @@ public void should_fetch_trace_when_tracing_enabled() {
8283
InetAddress nodeAddress = ((InetSocketAddress) contactPoint.resolve()).getAddress();
8384
boolean expectPorts =
8485
CCM_RULE.getCassandraVersion().nextStable().compareTo(Version.V4_0_0) >= 0
85-
&& !CCM_RULE.getDseVersion().isPresent();
86+
&& !CCM_RULE.isDistributionOf(BackendType.DSE);
8687

8788
QueryTrace queryTrace = executionInfo.getQueryTrace();
8889
assertThat(queryTrace.getTracingId()).isEqualTo(executionInfo.getTracingId());

integration-tests/src/test/java/com/datastax/oss/driver/core/metadata/DescribeIT.java

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.datastax.oss.driver.api.core.metadata.schema.TableMetadata;
3030
import com.datastax.oss.driver.api.testinfra.ccm.CcmRule;
3131
import com.datastax.oss.driver.api.testinfra.ccm.SchemaChangeSynchronizer;
32+
import com.datastax.oss.driver.api.testinfra.requirement.BackendType;
3233
import com.datastax.oss.driver.api.testinfra.session.SessionRule;
3334
import com.datastax.oss.driver.api.testinfra.session.SessionUtils;
3435
import com.datastax.oss.driver.categories.ParallelizableTests;
@@ -37,12 +38,14 @@
3738
import com.datastax.oss.driver.internal.core.metadata.schema.DefaultTableMetadata;
3839
import com.datastax.oss.driver.shaded.guava.common.base.Charsets;
3940
import com.datastax.oss.driver.shaded.guava.common.base.Splitter;
41+
import com.datastax.oss.driver.shaded.guava.common.collect.ImmutableMap;
4042
import com.google.common.io.Files;
4143
import java.io.File;
4244
import java.io.IOException;
4345
import java.net.URL;
4446
import java.time.Duration;
4547
import java.util.List;
48+
import java.util.Map;
4649
import java.util.Optional;
4750
import java.util.regex.Pattern;
4851
import org.junit.BeforeClass;
@@ -79,17 +82,23 @@ public class DescribeIT {
7982
Splitter.on(Pattern.compile(";\n")).omitEmptyStrings();
8083

8184
private static Version serverVersion;
82-
private static boolean isDse;
85+
86+
private static final Map<BackendType, String> scriptFileForBackend =
87+
ImmutableMap.<BackendType, String>builder()
88+
.put(BackendType.CASSANDRA, "DescribeIT/oss")
89+
.put(BackendType.DSE, "DescribeIT/dse")
90+
.put(BackendType.HCD, "DescribeIT/hcd")
91+
.build();
8392

8493
private static File scriptFile;
8594
private static String scriptContents;
8695

8796
@BeforeClass
8897
public static void setup() {
89-
Optional<Version> dseVersion = CCM_RULE.getDseVersion();
90-
isDse = dseVersion.isPresent();
9198
serverVersion =
92-
isDse ? dseVersion.get().nextStable() : CCM_RULE.getCassandraVersion().nextStable();
99+
CCM_RULE.isDistributionOf(BackendType.CASSANDRA)
100+
? CCM_RULE.getCassandraVersion().nextStable()
101+
: CCM_RULE.getDistributionVersion().nextStable();
93102

94103
scriptFile = getScriptFile();
95104
assertThat(scriptFile).exists();
@@ -114,12 +123,12 @@ public void describe_output_should_match_creation_script() throws Exception {
114123
"Describe output doesn't match create statements, "
115124
+ "maybe you need to add a new script in integration-tests/src/test/resources. "
116125
+ "Server version = %s %s, used script = %s",
117-
isDse ? "DSE" : "Cassandra", serverVersion, scriptFile)
126+
CCM_RULE.getDistribution(), serverVersion, scriptFile)
118127
.isEqualTo(scriptContents);
119128
}
120129

121130
private boolean atLeastVersion(Version dseVersion, Version ossVersion) {
122-
Version comparison = isDse ? dseVersion : ossVersion;
131+
Version comparison = CCM_RULE.isDistributionOf(BackendType.DSE) ? dseVersion : ossVersion;
123132
return serverVersion.compareTo(comparison) >= 0;
124133
}
125134

@@ -138,11 +147,9 @@ public void keyspace_metadata_should_be_serializable() throws Exception {
138147
assertThat(ks.getUserDefinedTypes()).isNotEmpty();
139148
assertThat(ks.getTables()).isNotEmpty();
140149
if (atLeastVersion(Version.V5_0_0, Version.V3_0_0)) {
141-
142150
assertThat(ks.getViews()).isNotEmpty();
143151
}
144152
if (atLeastVersion(Version.V5_0_0, Version.V2_2_0)) {
145-
146153
assertThat(ks.getFunctions()).isNotEmpty();
147154
assertThat(ks.getAggregates()).isNotEmpty();
148155
}
@@ -177,7 +184,7 @@ private static File getScriptFile() {
177184
logbackTestUrl);
178185
}
179186
File resourcesDir = new File(logbackTestUrl.getFile()).getParentFile();
180-
File scriptsDir = new File(resourcesDir, isDse ? "DescribeIT/dse" : "DescribeIT/oss");
187+
File scriptsDir = new File(resourcesDir, scriptFileForBackend.get(CCM_RULE.getDistribution()));
181188
LOG.debug("Looking for a matching script in directory {}", scriptsDir);
182189

183190
File[] candidates = scriptsDir.listFiles();
@@ -204,8 +211,7 @@ private static File getScriptFile() {
204211
.as("Could not find create script with version <= %s in %s", serverVersion, scriptsDir)
205212
.isNotNull();
206213

207-
LOG.info(
208-
"Using {} to test against {} {}", bestFile, isDse ? "DSE" : "Cassandra", serverVersion);
214+
LOG.info("Using {} to test against {} {}", bestFile, CCM_RULE.getDistribution(), serverVersion);
209215
return bestFile;
210216
}
211217

integration-tests/src/test/java/com/datastax/oss/driver/core/metadata/NodeMetadataIT.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,9 @@ public void should_expose_node_metadata() {
6262
assertThat(node.getListenAddress().get().getAddress()).isEqualTo(connectAddress.getAddress());
6363
assertThat(node.getDatacenter()).isEqualTo("dc1");
6464
assertThat(node.getRack()).isEqualTo("r1");
65-
if (!CcmBridge.DSE_ENABLEMENT) {
66-
// CcmBridge does not report accurate C* versions for DSE, only approximated values
65+
if (CcmBridge.isDistributionOf(BackendType.CASSANDRA)) {
66+
// CcmBridge does not report accurate C* versions for other distributions (e.g. DSE), only
67+
// approximated values
6768
assertThat(node.getCassandraVersion()).isEqualTo(ccmRule.getCassandraVersion());
6869
}
6970
assertThat(node.getState()).isSameAs(NodeState.UP);
@@ -106,7 +107,7 @@ public void should_expose_dse_node_properties() {
106107
DseNodeProperties.DSE_WORKLOADS,
107108
DseNodeProperties.SERVER_ID);
108109
assertThat(node.getExtras().get(DseNodeProperties.DSE_VERSION))
109-
.isEqualTo(ccmRule.getDseVersion().get());
110+
.isEqualTo(ccmRule.getDistributionVersion());
110111
assertThat(node.getExtras().get(DseNodeProperties.SERVER_ID)).isInstanceOf(String.class);
111112
assertThat(node.getExtras().get(DseNodeProperties.DSE_WORKLOADS)).isInstanceOf(Set.class);
112113
}

integration-tests/src/test/java/com/datastax/oss/driver/core/metadata/SchemaChangesIT.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.datastax.oss.driver.api.core.type.DataTypes;
3434
import com.datastax.oss.driver.api.testinfra.ccm.CcmBridge;
3535
import com.datastax.oss.driver.api.testinfra.ccm.CustomCcmRule;
36+
import com.datastax.oss.driver.api.testinfra.requirement.BackendType;
3637
import com.datastax.oss.driver.api.testinfra.session.SessionRule;
3738
import com.datastax.oss.driver.api.testinfra.session.SessionUtils;
3839
import com.google.common.collect.ImmutableList;
@@ -54,8 +55,8 @@ public class SchemaChangesIT {
5455

5556
static {
5657
CustomCcmRule.Builder builder = CustomCcmRule.builder();
57-
if (!CcmBridge.DSE_ENABLEMENT
58-
&& CcmBridge.VERSION.nextStable().compareTo(Version.V4_0_0) >= 0) {
58+
if (!CcmBridge.isDistributionOf(
59+
BackendType.DSE, (dist, cass) -> cass.nextStable().compareTo(Version.V4_0_0) >= 0)) {
5960
builder.withCassandraConfiguration("enable_materialized_views", true);
6061
}
6162
CCM_RULE = builder.build();

integration-tests/src/test/java/com/datastax/oss/driver/core/metadata/SchemaIT.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -335,11 +335,9 @@ public void should_exclude_virtual_keyspaces_from_token_map() {
335335

336336
private void skipIfDse60() {
337337
// Special case: DSE 6.0 reports C* 4.0 but does not support virtual tables
338-
if (ccmRule.getDseVersion().isPresent()) {
339-
Version dseVersion = ccmRule.getDseVersion().get();
340-
if (dseVersion.compareTo(DSE_MIN_VIRTUAL_TABLES) < 0) {
341-
throw new AssumptionViolatedException("DSE 6.0 does not support virtual tables");
342-
}
338+
if (!ccmRule.isDistributionOf(
339+
BackendType.DSE, (dist, cass) -> dist.compareTo(DSE_MIN_VIRTUAL_TABLES) >= 0)) {
340+
throw new AssumptionViolatedException("DSE 6.0 does not support virtual tables");
343341
}
344342
}
345343
}

0 commit comments

Comments
 (0)