diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1b84dc15d..b8f41afc6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -70,5 +70,15 @@ jobs: dotnet format --verify-no-changes --severity warn --verbosity diagnostic src/Cassandra/Cassandra.csproj dotnet format --verify-no-changes --severity warn --verbosity diagnostic src/Cassandra.Tests/Cassandra.Tests.csproj + - name: Install Mono + run: | + sudo apt update + sudo apt install -y mono-complete + mono --version + + - name: Run unit tests + run: dotnet test src/Cassandra.Tests/Cassandra.Tests.csproj + - name: Run integration tests on Scylla run: SCYLLA_EXT_OPTS="--smp 2 --memory 4G" SIMULACRON_PATH=../../../../../ci/simulacron-standalone-0.12.0.jar dotnet test src/Cassandra.IntegrationTests/Cassandra.IntegrationTests.csproj -f net8 -l "console;verbosity=detailed" --filter "(FullyQualifiedName!~ClientWarningsTests & FullyQualifiedName!~CustomPayloadTests & FullyQualifiedName!~Connect_With_Ssl_Test & FullyQualifiedName!~Should_UpdateHosts_When_HostIpChanges & FullyQualifiedName!~Should_UseNewHostInQueryPlans_When_HostIsDecommissionedAndJoinsAgain & FullyQualifiedName!~Should_RemoveNodeMetricsAndDisposeMetricsContext_When_HostIsRemoved & FullyQualifiedName!~Virtual_Keyspaces_Are_Included & FullyQualifiedName!~Virtual_Table_Metadata_Test & FullyQualifiedName!~SessionAuthenticationTests & FullyQualifiedName!~TypeSerializersTests & FullyQualifiedName!~Custom_MetadataTest & FullyQualifiedName!~LinqWhere_WithVectors & FullyQualifiedName!~SimpleStatement_With_No_Compact_Enabled_Should_Reveal_Non_Schema_Columns & FullyQualifiedName!~SimpleStatement_With_No_Compact_Disabled_Should_Not_Reveal_Non_Schema_Columns & FullyQualifiedName!~ColumnClusteringOrderReversedTest & FullyQualifiedName!~GetMaterializedView_Should_Refresh_View_Metadata_Via_Events & FullyQualifiedName!~MaterializedView_Base_Table_Column_Addition & FullyQualifiedName!~MultipleSecondaryIndexTest & FullyQualifiedName!~RaiseErrorOnInvalidMultipleSecondaryIndexTest & FullyQualifiedName!~TableMetadataAllTypesTest & FullyQualifiedName!~TableMetadataClusteringOrderTest & FullyQualifiedName!~TableMetadataCollectionsSecondaryIndexTest & FullyQualifiedName!~TableMetadataCompositePartitionKeyTest & FullyQualifiedName!~TupleMetadataTest & FullyQualifiedName!~Udt_Case_Sensitive_Metadata_Test & FullyQualifiedName!~UdtMetadataTest & FullyQualifiedName!~Should_Retrieve_Table_Metadata & FullyQualifiedName!~CreateTable_With_Frozen_Key & FullyQualifiedName!~CreateTable_With_Frozen_Udt & FullyQualifiedName!~CreateTable_With_Frozen_Value & FullyQualifiedName!~Should_AllMetricsHaveValidValues_When_AllNodesAreUp & FullyQualifiedName!~SimpleStatement_Dictionary_Parameters_CaseInsensitivity_ExcessOfParams & FullyQualifiedName!~SimpleStatement_Dictionary_Parameters_CaseInsensitivity_NoOverload & FullyQualifiedName!~TokenAware_TransientReplication_NoHopsAndOnlyFullReplicas & FullyQualifiedName!~GetFunction_Should_Return_Most_Up_To_Date_Metadata_Via_Events & FullyQualifiedName!~LargeDataTests & FullyQualifiedName!~MetadataTests & FullyQualifiedName!~MultiThreadingTests & FullyQualifiedName!~PoolTests & FullyQualifiedName!~PrepareLongTests & FullyQualifiedName!~SpeculativeExecutionLongTests & FullyQualifiedName!~StressTests & FullyQualifiedName!~TransitionalAuthenticationTests & FullyQualifiedName!~ProxyAuthenticationTests & FullyQualifiedName!~SessionDseAuthenticationTests & FullyQualifiedName!~CloudIntegrationTests & FullyQualifiedName!~CoreGraphTests & FullyQualifiedName!~GraphTests & FullyQualifiedName!~InsightsIntegrationTests & FullyQualifiedName!~DateRangeTests & FullyQualifiedName!~FoundBugTests & FullyQualifiedName!~GeometryTests & FullyQualifiedName!~LoadBalancingPolicyTests & FullyQualifiedName!~ConsistencyTests & FullyQualifiedName!~LoadBalancingPolicyTests & FullyQualifiedName!~ReconnectionPolicyTests & FullyQualifiedName!~RetryPolicyTests)" + diff --git a/src/Cassandra.Tests/ApiTests.cs b/src/Cassandra.Tests/ApiTests.cs index ffce789f3..7bb9fa733 100644 --- a/src/Cassandra.Tests/ApiTests.cs +++ b/src/Cassandra.Tests/ApiTests.cs @@ -57,6 +57,7 @@ public void Cassandra_Exported_Namespaces() CollectionAssert.AreEqual(new[] { "Cassandra", + "Cassandra.Connections", "Cassandra.Data", "Cassandra.Data.Linq", "Cassandra.DataStax.Auth", diff --git a/src/Cassandra.Tests/DataStax/Auth/DseGssapiAuthProviderTests.cs b/src/Cassandra.Tests/DataStax/Auth/DseGssapiAuthProviderTests.cs index cd2bd2fee..f75f4b53d 100644 --- a/src/Cassandra.Tests/DataStax/Auth/DseGssapiAuthProviderTests.cs +++ b/src/Cassandra.Tests/DataStax/Auth/DseGssapiAuthProviderTests.cs @@ -45,16 +45,23 @@ public void When_NetStandard20AndNotWindows_Should_ThrowException() #if NETFRAMEWORK + [Test] + public void When_NetFramework_Should_NotThrowException() + { + var provider = new DseGssapiAuthProvider(); + } + +#else [WinOnly] [Test] - public void When_NetFrameworkAndWindows_Should_NotThrowException() + public void When_NotNetFrameworkAndWindows_Should_NotThrowException() { var provider = new DseGssapiAuthProvider(); } [NotWindows] [Test] - public void When_NetFrameworkAndNotWindows_Should_NotThrowException() + public void When_NotNetFrameworkAndNotWindows_Should_ThrowException() { Assert.Throws(() => { diff --git a/src/Cassandra.Tests/HostConnectionPoolTests.cs b/src/Cassandra.Tests/HostConnectionPoolTests.cs index e50fad11c..4f20d4c20 100644 --- a/src/Cassandra.Tests/HostConnectionPoolTests.cs +++ b/src/Cassandra.Tests/HostConnectionPoolTests.cs @@ -94,7 +94,8 @@ private static Mock GetPoolMock(Host host = null, Configurat host, config, new SerializerManager(ProtocolVersion.MaxSupported), - new MetricsObserverFactory(new MetricsManager(new NullDriverMetricsProvider(), new DriverMetricsOptions(), false, "s1"))); + new MetricsObserverFactory(new MetricsManager(new NullDriverMetricsProvider(), new DriverMetricsOptions(), false, "s1")), + M3PToken.Factory); } private static Configuration GetConfig(int coreConnections = 3, int maxConnections = 8, IReconnectionPolicy rp = null) diff --git a/src/Cassandra/Connections/Connection.cs b/src/Cassandra/Connections/Connection.cs index 2ba40a020..ccf4fab31 100644 --- a/src/Cassandra/Connections/Connection.cs +++ b/src/Cassandra/Connections/Connection.cs @@ -461,7 +461,7 @@ private void IdleTimeoutHandler(object state) /// public async Task Open() { - return await Open(-1, 0); + return await Open(-1, 0).ConfigureAwait(false); } /// diff --git a/src/Cassandra/Metadata.cs b/src/Cassandra/Metadata.cs index 90d3d4ed2..127867d8d 100644 --- a/src/Cassandra/Metadata.cs +++ b/src/Cassandra/Metadata.cs @@ -104,7 +104,7 @@ internal TokenFactory GetTokenFactory() { if (_tokenMap == null) { - throw new DriverInternalError("Token map is not initialized"); + return null; } return _tokenMap.Factory; }