[System.Data] Call SqlConnection.ClearAllPools() only when we had a connection
authorAlexander Köplinger <alex.koeplinger@outlook.com>
Wed, 19 Apr 2017 12:40:10 +0000 (14:40 +0200)
committerAlexander Köplinger <alex.koeplinger@outlook.com>
Wed, 19 Apr 2017 12:40:10 +0000 (14:40 +0200)
When ConnectionManager.Instance.Sql.ConnectionString throws in
SetUp() we'd still call SqlConnection.ClearAllPools() in the TearDown()
which happens for example when the connection string environment
variable is not set.

This is a problem on WatchOS since SqlConnection.ClearAllPools()
throws PlatformNotSupportedException there, making the tests fail.
Instead we now check whether the connectionString is set and only
call the method in that case.

mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/SqlConnectionTest.cs

index d894e18e0ac2cf2affbcf639c9ebc1f0f46b35d0..0e060e9f857a012bdc65758d96fcfbdf95bfb45f 100644 (file)
@@ -60,7 +60,8 @@ namespace MonoTests.System.Data.Connected.SqlClient
                {
                        if (conn != null)
                                conn.Dispose ();
-                       SqlConnection.ClearAllPools ();
+                       if (connectionString != null)
+                               SqlConnection.ClearAllPools ();
                }
 
                [Test]