Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detect SqlServer features automagically rather than using env vars #20371

Merged
merged 1 commit into from
Mar 26, 2020

Conversation

ErikEJ
Copy link
Contributor

@ErikEJ ErikEJ commented Mar 22, 2020

fixes #20318

I have attempted to cater for current implicit assumptions - but it is opaque to me what SQL Server edtions tests are actually run against.

Tested with SQL 2016 Developer Edition and LocalDb version 14

@ErikEJ
Copy link
Contributor Author

ErikEJ commented Mar 22, 2020

What is "Helix" ??

@ErikEJ
Copy link
Contributor Author

ErikEJ commented Mar 22, 2020

Helix failure:


+ dotnet exec --runtimeconfig Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.runtimeconfig.json --depsfile Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.deps.json /home/helixbot/work/B24E099E/p/xunit-runner/tools/netcoreapp2.0/xunit.console.dll Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.dll -nocolor -xml testResults.xml
xUnit.net Console Runner v2.4.1 (64-bit .NET Core 3.1.0)
  Discovering: Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests
  Discovered:  Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests
  Starting:    Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests
    Microsoft.EntityFrameworkCore.Query.NorthwindCompiledQuerySqlServerTest.First_query_with_cancellation_async [FAIL]
      System.AggregateException : One or more errors occurred. (LocalDB is not supported on this platform.) (The following constructor parameters did not have matching fixture data: NorthwindQuerySqlServerFixture`1 fixture)
      ---- System.PlatformNotSupportedException : LocalDB is not supported on this platform.
      ---- The following constructor parameters did not have matching fixture data: NorthwindQuerySqlServerFixture`1 fixture
      Stack Trace:
        
        ----- Inner Stack Trace #1 (System.PlatformNotSupportedException) -----
           at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
           at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
           at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
           at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
           at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
           at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
           at Microsoft.Data.SqlClient.SqlConnection.Open()
        F:\workspace\_work\1\s\test\EFCore.SqlServer.FunctionalTests\TestUtilities\SqlServerTestStore.cs(314,0): at Microsoft.EntityFrameworkCore.TestUtilities.SqlServerTestStore.ExecuteCommand[T](DbConnection connection, Func`2 execute, String sql, Boolean useTransaction, Object[] parameters)
        F:\workspace\_work\1\s\test\EFCore.SqlServer.FunctionalTests\TestUtilities\SqlServerTestStore.cs(304,0): at Microsoft.EntityFrameworkCore.TestUtilities.SqlServerTestStore.<>c__37`1.<Execute>b__37_0(<>f__AnonymousType54`5 state)
        F:\workspace\_work\1\s\src\EFCore\Storage\ExecutionStrategyExtensions.cs(338,0): at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>c__DisplayClass12_0`2.<Execute>b__0(DbContext c, TState s)
        F:\workspace\_work\1\s\src\EFCore\Storage\ExecutionStrategy.cs(173,0): at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.ExecuteImplementation[TState,TResult](Func`3 operation, Func`3 verifySucceeded, TState state)
        F:\workspace\_work\1\s\src\EFCore\Storage\ExecutionStrategy.cs(159,0): at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
        F:\workspace\_work\1\s\src\EFCore\Storage\ExecutionStrategyExtensions.cs(336,0): at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func`2 operation, Func`2 verifySucceeded)
        F:\workspace\_work\1\s\src\EFCore\Storage\ExecutionStrategyExtensions.cs(286,0): at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func`2 operation)
        F:\workspace\_work\1\s\test\EFCore.SqlServer.FunctionalTests\TestUtilities\SqlServerTestStore.cs(295,0): at Microsoft.EntityFrameworkCore.TestUtilities.SqlServerTestStore.Execute[T](DbConnection connection, Func`2 execute, String sql, Boolean useTransaction, Object[] parameters)
        F:\workspace\_work\1\s\test\EFCore.SqlServer.FunctionalTests\TestUtilities\SqlServerTestStore.cs(238,0): at Microsoft.EntityFrameworkCore.TestUtilities.SqlServerTestStore.ExecuteScalar[T](DbConnection connection, String sql, Object[] parameters)
        F:\workspace\_work\1\s\test\EFCore.SqlServer.FunctionalTests\TestUtilities\SqlServerTestStore.cs(101,0): at Microsoft.EntityFrameworkCore.TestUtilities.SqlServerTestStore.CreateDatabase(Action`1 clean)
        F:\workspace\_work\1\s\test\EFCore.SqlServer.FunctionalTests\TestUtilities\SqlServerTestStore.cs(79,0): at Microsoft.EntityFrameworkCore.TestUtilities.SqlServerTestStore.Initialize(Func`1 createContext, Action`1 seed, Action`1 clean)
        F:\workspace\_work\1\s\test\EFCore.Specification.Tests\TestUtilities\TestStore.cs(41,0): at Microsoft.EntityFrameworkCore.TestUtilities.TestStore.<>c__DisplayClass13_0.<Initialize>b__0()
        F:\workspace\_work\1\s\test\EFCore.Specification.Tests\TestUtilities\TestStoreIndex.cs(32,0): at Microsoft.EntityFrameworkCore.TestUtilities.TestStoreIndex.CreateShared(String name, Action initializeDatabase)
        F:\workspace\_work\1\s\test\EFCore.Specification.Tests\TestUtilities\TestStore.cs(41,0): at Microsoft.EntityFrameworkCore.TestUtilities.TestStore.Initialize(IServiceProvider serviceProvider, Func`1 createContext, Action`1 seed, Action`1 clean)
        F:\workspace\_work\1\s\test\EFCore.Relational.Specification.Tests\TestUtilities\RelationalTestStore.cs(32,0): at Microsoft.EntityFrameworkCore.TestUtilities.RelationalTestStore.Initialize(IServiceProvider serviceProvider, Func`1 createContext, Action`1 seed, Action`1 clean)
        F:\workspace\_work\1\s\test\EFCore.SqlServer.FunctionalTests\TestUtilities\SqlServerTestStore.cs(25,0): at Microsoft.EntityFrameworkCore.TestUtilities.SqlServerTestStore.GetNorthwindStore()
        F:\workspace\_work\1\s\test\EFCore.SqlServer.FunctionalTests\SqlServerConfigPatternsTest.cs(53,0): at Microsoft.EntityFrameworkCore.SqlServerConfigPatternsTest.ImplicitServicesExplicitConfig.Can_query_with_implicit_services_and_explicit_config()
        --- End of stack trace from previous location where exception was thrown ---
        ----- Inner Stack Trace #2 (Xunit.Sdk.TestClassException) -----

@smitpatel
Copy link
Member

Helix is a cross platform testing infrastructure. It will build all test assemblies on a windows machine and send publish output to Windows/Ubuntu/Mac machines and run those tests. IsLocalDb test using string would be required for Ubuntu/Mac.

@ErikEJ
Copy link
Contributor Author

ErikEJ commented Mar 22, 2020

@smitpatel Thanks, I reverted the LocalDB check to it's original form.

@AndriySvyryd
Copy link
Member

@ErikEJ See https://dev.azure.com/dnceng/public/_build/results?buildId=569823&view=ms.vss-test-web.build-test-results-tab
The failures look transient, so I reran the tests

@ErikEJ
Copy link
Contributor Author

ErikEJ commented Mar 23, 2020

@AndriySvyryd Thanks, all pass now!

@@ -2,11 +2,7 @@
"Test": {
"SqlServer": {
"DefaultConnection": "Data Source=(localdb)\\MSSQLLocalDB;Database=master;Integrated Security=True;Connect Timeout=60;ConnectRetryCount=0",
"ElasticPoolName": "",
"SupportsSequences": true,
"SupportsMemoryOptimized": false,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leave in "SupportsMemoryOptimized": null

Copy link
Member

@AndriySvyryd AndriySvyryd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Squash and rebase

fixes dotnet#20318

I have attempted to cater for current implicit assumptions - but it is opaque to me what SQL Server edtions tests are actually run against.

Tested with SQL 2016 Developer Edition and LocalDb version 14
@ajcvickers ajcvickers merged commit abcedd6 into dotnet:master Mar 26, 2020
@ajcvickers
Copy link
Member

Thanks Erik!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Detect SqlServer features automagically rather than using env vars
4 participants