Skip to content

Commit aa4f36e

Browse files
CSHARP-1019: Add support for C* 4.1, DSE 6.9.x, and HCD releases to CI (#615)
1 parent 29c4d02 commit aa4f36e

13 files changed

+309
-164
lines changed

Jenkinsfile

+23-10
Original file line numberDiff line numberDiff line change
@@ -129,13 +129,26 @@ CCM_CASSANDRA_VERSION=${DSE_FIXED_VERSION} # maintain for backwards compatibilit
129129
CCM_VERSION=${DSE_FIXED_VERSION}
130130
CCM_SERVER_TYPE=dse
131131
DSE_VERSION=${DSE_FIXED_VERSION}
132-
CCM_IS_DSE=true
132+
CCM_DISTRIBUTION=dse
133+
CASSANDRA_VERSION=${DSE_FIXED_VERSION}
133134
CCM_BRANCH=${DSE_FIXED_VERSION}
134135
DSE_BRANCH=${DSE_FIXED_VERSION}
135136
JDK=1.8
136137
ENVIRONMENT_EOF
137138
'''
138139
}
140+
141+
if (env.SERVER_VERSION.split('-')[0] == 'hcd') {
142+
env.HCD_FIXED_VERSION = env.SERVER_VERSION.split('-')[1]
143+
sh label: 'Update environment for HCD', script: '''#!/bin/bash -le
144+
cat >> ${HOME}/environment.txt << ENVIRONMENT_EOF
145+
CCM_PATH=${HOME}/ccm
146+
CCM_CASSANDRA_VERSION=${HCD_FIXED_VERSION} # maintain for backwards compatibility
147+
CASSANDRA_VERSION=${HCD_FIXED_VERSION}
148+
CCM_DISTRIBUTION=hcd
149+
ENVIRONMENT_EOF
150+
'''
151+
}
139152

140153
if (env.SERVER_VERSION == env.SERVER_VERSION_SNI && env.DOTNET_VERSION != 'mono') {
141154
sh label: 'Update environment for SNI proxy tests', script: '''#!/bin/bash -le
@@ -432,13 +445,13 @@ pipeline {
432445
axes {
433446
axis {
434447
name 'SERVER_VERSION'
435-
values '3.0', // latest 3.0.x Apache Cassandra�
436-
'3.11', // latest 3.11.x Apache Cassandra�
437-
'4.0', // latest 4.0.x Apache Cassandra�
438-
'5.0-beta1', // Development Apache Cassandra�
448+
values '3.11', // latest 3.11.x Apache Cassandra�
449+
'4.1', // latest 4.x Apache Cassandra�
450+
'5.0', // Development Apache Cassandra�
439451
'dse-5.1.35', // latest 5.1.x DataStax Enterprise
440-
'dse-6.7.17', // latest 6.7.x DataStax Enterprise
441-
'dse-6.8.30' // 6.8 current DataStax Enterprise
452+
'dse-6.8.30', // latest 6.7.x DataStax Enterprise
453+
'dse-6.9.3', // latest DataStax Enterprise
454+
'hcd-1.0.0' // Hyper-Converged Database
442455
}
443456
axis {
444457
name 'DOTNET_VERSION'
@@ -449,11 +462,11 @@ pipeline {
449462
exclude {
450463
axis {
451464
name 'DOTNET_VERSION'
452-
values 'mono', 'net8'
465+
values 'mono'
453466
}
454467
axis {
455468
name 'SERVER_VERSION'
456-
values '3.0', '5.0-beta1', 'dse-5.1.35', 'dse-6.8.30'
469+
values '3.11', '4.1', 'dse-5.1.35', 'dse-6.8.30'
457470
}
458471
}
459472
exclude {
@@ -463,7 +476,7 @@ pipeline {
463476
}
464477
axis {
465478
name 'SERVER_VERSION'
466-
values 'dse-6.7.17', '3.11'
479+
values '3.11', '5.0', 'dse-6.9.3', 'hcd-1.0.0'
467480
}
468481
}
469482
}

Jenkinsfile.scheduled

+39-17
Original file line numberDiff line numberDiff line change
@@ -128,13 +128,26 @@ CCM_CASSANDRA_VERSION=${DSE_FIXED_VERSION} # maintain for backwards compatibilit
128128
CCM_VERSION=${DSE_FIXED_VERSION}
129129
CCM_SERVER_TYPE=dse
130130
DSE_VERSION=${DSE_FIXED_VERSION}
131-
CCM_IS_DSE=true
131+
CCM_DISTRIBUTION=dse
132+
CASSANDRA_VERSION=${DSE_FIXED_VERSION}
132133
CCM_BRANCH=${DSE_FIXED_VERSION}
133134
DSE_BRANCH=${DSE_FIXED_VERSION}
134135
JDK=1.8
135136
ENVIRONMENT_EOF
136137
'''
137138
}
139+
140+
if (env.SERVER_VERSION.split('-')[0] == 'hcd') {
141+
env.HCD_FIXED_VERSION = env.SERVER_VERSION.split('-')[1]
142+
sh label: 'Update environment for HCD', script: '''#!/bin/bash -le
143+
cat >> ${HOME}/environment.txt << ENVIRONMENT_EOF
144+
CCM_PATH=${HOME}/ccm
145+
CCM_CASSANDRA_VERSION=${HCD_FIXED_VERSION} # maintain for backwards compatibility
146+
CASSANDRA_VERSION=${HCD_FIXED_VERSION}
147+
CCM_DISTRIBUTION=hcd
148+
ENVIRONMENT_EOF
149+
'''
150+
}
138151

139152
if (env.SERVER_VERSION == env.SERVER_VERSION_SNI && env.DOTNET_VERSION != 'mono') {
140153
sh label: 'Update environment for SNI proxy tests', script: '''#!/bin/bash -le
@@ -465,12 +478,15 @@ pipeline {
465478
'2.2', // Legacy Apache Cassandra�
466479
'3.0', // Previous Apache Cassandra�
467480
'3.11', // latest 3.11.x Apache Cassandra�
468-
'4.0', // latest 4.0.x Apache Cassandra�
469-
'5.0-beta1', // Development Apache Cassandra�
481+
'4.0', // Previous 4.0.x Apache Cassandra�
482+
'4.1', // Latest 4.1.x Apache Cassandra�
483+
'5.0', // Development Apache Cassandra�
470484
'dse-5.1.35', // Legacy DataStax Enterprise
471485
'dse-6.0.18', // Previous DataStax Enterprise
472-
'dse-6.7.17', // Current DataStax Enterprise
473-
'dse-6.8.30' // Current DataStax Enterprise
486+
'dse-6.7.17', // Previous DataStax Enterprise
487+
'dse-6.8.30', // Previous DataStax Enterprise
488+
'dse-6.9.3', // Latest DataStax Enterprise
489+
'hcd-1.0.0' // Hyper-Converged Database
474490
}
475491
axis {
476492
name 'DOTNET_VERSION'
@@ -495,7 +511,7 @@ pipeline {
495511
}
496512
axis {
497513
name 'SERVER_VERSION'
498-
values '2.1', '2.2', '3.0', '5.0-beta1', 'dse-5.1.35', 'dse-6.0.18'
514+
values '2.1', '2.2', '3.0', '5.0', 'dse-5.1.35', 'dse-6.0.18'
499515
}
500516
}
501517
exclude {
@@ -593,8 +609,9 @@ pipeline {
593609
values '2.1', // Legacy Apache Cassandra�
594610
'2.2', // Legacy Apache Cassandra�
595611
'3.11', // latest 3.11.x Apache Cassandra�
596-
'4.0' // latest 4.0.x Apache Cassandra�
597-
'5.0-beta1' // Development Apache Cassandra�
612+
'4.0', // latest 4.0.x Apache Cassandra�
613+
'4.1', // latest 4.1.x Apache Cassandra�
614+
'5.0' // Development Apache Cassandra�
598615
}
599616
axis {
600617
name 'DOTNET_VERSION'
@@ -629,7 +646,7 @@ pipeline {
629646
}
630647
axis {
631648
name 'SERVER_VERSION'
632-
values '2.1', '2.2', '5.0-beta1'
649+
values '2.1', '2.2', '5.0'
633650
}
634651
}
635652
}
@@ -707,13 +724,17 @@ pipeline {
707724
name 'SERVER_VERSION'
708725
values '2.1', // Legacy Apache Cassandra�
709726
'2.2', // Legacy Apache Cassandra�
727+
'3.0', // Previous Apache Cassandra�
710728
'3.11', // latest 3.11.x Apache Cassandra�
711-
'4.0', // latest 4.0.x Apache Cassandra�
712-
'5.0-beta1', // latest 4.0.x Apache Cassandra�
729+
'4.0', // Previous 4.0.x Apache Cassandra�
730+
'4.1', // Latest 4.1.x Apache Cassandra�
731+
'5.0', // Development Apache Cassandra�
713732
'dse-5.1.35', // Legacy DataStax Enterprise
714733
'dse-6.0.18', // Previous DataStax Enterprise
715-
'dse-6.7.17', // Current DataStax Enterprise
716-
'dse-6.8.30' // Current DataStax Enterprise
734+
'dse-6.7.17', // Previous DataStax Enterprise
735+
'dse-6.8.30', // Previous DataStax Enterprise
736+
'dse-6.9.3', // Latest DataStax Enterprise
737+
'hcd-1.0.0' // Hyper-Converged Database
717738
}
718739
axis {
719740
name 'DOTNET_VERSION'
@@ -728,7 +749,7 @@ pipeline {
728749
}
729750
axis {
730751
name 'SERVER_VERSION'
731-
values '2.1', '2.2', 'dse-6.0.18', 'dse-5.1.35', '5.0-beta1'
752+
values '2.1', '2.2', 'dse-6.0.18', 'dse-5.1.35', '5.0'
732753
}
733754
}
734755
exclude {
@@ -817,8 +838,9 @@ pipeline {
817838
values '2.1', // Legacy Apache Cassandra�
818839
'2.2', // Legacy Apache Cassandra�
819840
'3.11', // latest 3.11.x Apache Cassandra�
820-
'4.0' // latest 4.0.x Apache Cassandra�
821-
'5.0-beta1' // Development Apache Cassandra�
841+
'4.0', // latest 4.0.x Apache Cassandra�
842+
'4.1', // latest 4.1.x Apache Cassandra�
843+
'5.0' // Development Apache Cassandra�
822844
}
823845
axis {
824846
name 'DOTNET_VERSION'
@@ -833,7 +855,7 @@ pipeline {
833855
}
834856
axis {
835857
name 'SERVER_VERSION'
836-
values '2.1', '5.0-beta1'
858+
values '2.1', '5.0'
837859
}
838860
}
839861
exclude {

src/Cassandra.IntegrationTests/Core/PagingTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public void Should_PagingOnBoundStatement_When_ReceivedNumberOfRowsIsOne()
126126
}
127127

128128
[Test]
129-
[TestCassandraVersion(4, 0)]
129+
[TestBothServersVersion(4, 0, 6, 0)]
130130
public void Should_PagingOnBoundStatement_When_NewResultMetadataIsSet()
131131
{
132132
if (Session.Cluster.Metadata.ControlConnection.Serializer.CurrentProtocolVersion < ProtocolVersion.V5)

src/Cassandra.IntegrationTests/Core/ParameterizedStatementsTests.cs

+13-7
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ protected override string[] SetupQueries
5050
}
5151
};
5252

53-
if (TestClusterManager.CheckCassandraVersion(false, new Version(4, 0), Comparison.LessThan))
53+
// COMPACT STORAGE is not supported by DSE 6.0 / C* 4.0.
54+
if (TestClusterManager.CheckCassandraVersion(true, new Version(4, 0), Comparison.LessThan) ||
55+
(TestClusterManager.IsDse && TestClusterManager.CheckDseVersion(new Version(6, 0), Comparison.LessThan)))
5456
{
5557
setupQueries.Add($"CREATE TABLE {TableCompactStorage} (key blob PRIMARY KEY, bar int, baz uuid)" +
5658
$" WITH COMPACT STORAGE");
@@ -517,7 +519,7 @@ public void SimpleStatement_Dictionary_Parameters_CaseInsensitivity_ExcessOfPara
517519
}
518520

519521
[Test]
520-
[TestCassandraVersion(4, 0)]
522+
[TestBothServersVersion(4, 0, 6, 0)]
521523
public void SimpleStatement_With_Keyspace_Defined_On_Protocol_Greater_Than_4()
522524
{
523525
if (Session.Cluster.Metadata.ControlConnection.Serializer.CurrentProtocolVersion < ProtocolVersion.V5)
@@ -535,7 +537,7 @@ public void SimpleStatement_With_Keyspace_Defined_On_Protocol_Greater_Than_4()
535537
}
536538

537539
[Test]
538-
[TestCassandraVersion(4, 0, Comparison.LessThan)]
540+
[TestBothServersVersion(4, 0, 5,1, Comparison.LessThan)]
539541
public void SimpleStatement_With_Keyspace_Defined_On_Lower_Protocol_Versions()
540542
{
541543
// It should fail as the keyspace from the session will be used
@@ -547,9 +549,11 @@ public void SimpleStatement_With_Keyspace_Defined_On_Lower_Protocol_Versions()
547549
[TestCassandraVersion(3, 11)]
548550
public void SimpleStatement_With_No_Compact_Enabled_Should_Reveal_Non_Schema_Columns()
549551
{
550-
if (TestClusterManager.CheckCassandraVersion(false, new Version(4, 0), Comparison.GreaterThanOrEqualsTo))
552+
if (TestClusterManager.CheckCassandraVersion(true, new Version(4, 0), Comparison.GreaterThanOrEqualsTo) ||
553+
(TestClusterManager.IsDse && TestClusterManager.CheckDseVersion(new Version(6, 0), Comparison.GreaterThanOrEqualsTo)) ||
554+
TestClusterManager.IsHcd)
551555
{
552-
Assert.Ignore("COMPACT STORAGE is only supported by C* versions prior to 4.0");
556+
Assert.Ignore("COMPACT STORAGE is not supported by DSE 6.0 / C* 4.0");
553557
return;
554558
}
555559

@@ -568,9 +572,11 @@ public void SimpleStatement_With_No_Compact_Enabled_Should_Reveal_Non_Schema_Col
568572
[TestCassandraVersion(3, 11)]
569573
public void SimpleStatement_With_No_Compact_Disabled_Should_Not_Reveal_Non_Schema_Columns()
570574
{
571-
if (TestClusterManager.CheckCassandraVersion(false, new Version(4, 0), Comparison.GreaterThanOrEqualsTo))
575+
if (TestClusterManager.CheckCassandraVersion(true, new Version(4, 0), Comparison.GreaterThanOrEqualsTo) ||
576+
(TestClusterManager.IsDse && TestClusterManager.CheckDseVersion(new Version(6, 0), Comparison.GreaterThanOrEqualsTo)) ||
577+
TestClusterManager.IsHcd)
572578
{
573-
Assert.Ignore("COMPACT STORAGE is only supported by C* versions prior to 4.0");
579+
Assert.Ignore("COMPACT STORAGE is not supported by DSE 6.0 / C* 4.0");
574580
return;
575581
}
576582

src/Cassandra.IntegrationTests/Core/PreparedStatementsTests.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -825,7 +825,7 @@ public void Bound_TinyInt_Tests()
825825

826826
[TestCase(true)]
827827
[TestCase(false)]
828-
[TestCassandraVersion(4, 0)]
828+
[TestBothServersVersion(4,0,5,1)]
829829
public void Session_Prepare_With_Keyspace_Defined_On_Protocol_Greater_Than_4(bool usePayload)
830830
{
831831
if (Session.Cluster.Metadata.ControlConnection.Serializer.CurrentProtocolVersion < ProtocolVersion.V5)
@@ -858,7 +858,7 @@ public void Session_Prepare_With_Keyspace_Defined_On_Protocol_Greater_Than_4(boo
858858

859859
[TestCase(true)]
860860
[TestCase(false)]
861-
[TestCassandraVersion(4, 0)]
861+
[TestBothServersVersion(4,0,5,1)]
862862
public async Task Session_PrepareAsync_With_Keyspace_Defined_On_Protocol_Greater_Than_4(bool usePayload)
863863
{
864864
if (Session.Cluster.Metadata.ControlConnection.Serializer.CurrentProtocolVersion < ProtocolVersion.V5)
@@ -891,14 +891,14 @@ await TestHelper.TimesLimit(async () =>
891891
}
892892

893893
[Test]
894-
[TestCassandraVersion(4, 0)]
894+
[TestBothServersVersion(4,0,5,1)]
895895
public void Session_Prepare_With_Keyspace_Defined_On_Protocol_V4()
896896
{
897897
TestKeyspaceInPrepareNotSupported(true);
898898
}
899899

900900
[Test]
901-
[TestCassandraVersion(4, 0, Comparison.LessThan)]
901+
[TestBothServersVersion(4, 0, 5,1, Comparison.LessThan)]
902902
public void Session_Prepare_With_Keyspace_Defined_On_Previuos_Cassandra_Versions()
903903
{
904904
TestKeyspaceInPrepareNotSupported(false);
@@ -1085,7 +1085,7 @@ public void Batch_PreparedStatements_NotSupportedInC1_2()
10851085
}
10861086

10871087
[Test]
1088-
[TestCassandraVersion(4, 0)]
1088+
[TestBothServersVersion(4,0,5,1)]
10891089
public void BatchStatement_With_Keyspace_Defined_On_Protocol_Greater_Than_4()
10901090
{
10911091
using (var cluster = ClusterBuilder().AddContactPoint(TestClusterManager.InitialContactPoint).Build())
@@ -1111,7 +1111,7 @@ public void BatchStatement_With_Keyspace_Defined_On_Protocol_Greater_Than_4()
11111111
}
11121112

11131113
[Test]
1114-
[TestCassandraVersion(4, 0, Comparison.LessThan)]
1114+
[TestBothServersVersion(4, 0, 5,1, Comparison.LessThan)]
11151115
public void BatchStatement_With_Keyspace_Defined_On_Lower_Protocol_Versions()
11161116
{
11171117
using (var cluster = ClusterBuilder().AddContactPoint(TestClusterManager.InitialContactPoint).Build())

src/Cassandra.IntegrationTests/Core/SchemaMetadataTests.cs

+6-7
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,8 @@ public SchemaMetadataTests() :
3434
base(() =>
3535
{
3636
string[] cassandraYaml = null;
37-
if (TestClusterManager.CheckCassandraVersion(true, new Version(5, 0), Comparison.GreaterThanOrEqualsTo))
38-
{
39-
cassandraYaml = new[] { "materialized_views_enabled: true" };
40-
}
41-
else if (TestClusterManager.CheckCassandraVersion(true, new Version(4, 0), Comparison.GreaterThanOrEqualsTo))
37+
if (TestClusterManager.CheckCassandraVersion(true, new Version(4, 0), Comparison.GreaterThanOrEqualsTo) ||
38+
TestClusterManager.IsHcd)
4239
{
4340
cassandraYaml = new[] { "enable_materialized_views: true" };
4441
}
@@ -664,11 +661,13 @@ public void RaiseErrorOnInvalidMultipleSecondaryIndexTest(bool metadataSync)
664661
[Test, TestCase(true), TestCase(false), TestCassandraVersion(3, 0)]
665662
public void ColumnClusteringOrderReversedTest(bool metadataSync)
666663
{
667-
if (TestClusterManager.CheckCassandraVersion(false, new Version(4, 0), Comparison.GreaterThanOrEqualsTo))
664+
if (TestClusterManager.CheckCassandraVersion(true, new Version(4, 0), Comparison.GreaterThanOrEqualsTo) ||
665+
(TestClusterManager.IsDse && TestClusterManager.CheckDseVersion(new Version(6, 0), Comparison.GreaterThanOrEqualsTo)))
668666
{
669-
Assert.Ignore("Compact table test designed for C* 3.0");
667+
Assert.Ignore("COMPACT STORAGE is not supported by DSE 6.0 / C* 4.0");
670668
return;
671669
}
670+
672671
var keyspaceName = TestUtils.GetUniqueKeyspaceName();
673672
var tableName = TestUtils.GetUniqueTableName().ToLower();
674673
var cluster = GetNewTemporaryCluster(builder => builder.WithMetadataSyncOptions(new MetadataSyncOptions().SetMetadataSyncEnabled(metadataSync)));

0 commit comments

Comments
 (0)