diff --git a/src/Versions.props b/src/Versions.props
index 61dea1f9..18c9db7f 100644
--- a/src/Versions.props
+++ b/src/Versions.props
@@ -6,7 +6,7 @@
6.1.3
2.5.0
10.0.1
- 10.0.0
+ 10.0.1
1.5.6
diff --git a/src/YesSql.Core/ConfigurationExtensions.cs b/src/YesSql.Core/ConfigurationExtensions.cs
index b84a8f08..0320ec67 100644
--- a/src/YesSql.Core/ConfigurationExtensions.cs
+++ b/src/YesSql.Core/ConfigurationExtensions.cs
@@ -17,5 +17,12 @@ public static IConfiguration UseBlockIdGenerator(this IConfiguration configurati
return configuration;
}
+
+ public static IConfiguration WithThreadSafetyChecks(this IConfiguration configuration, bool? enabled = null)
+ {
+ configuration.EnableThreadSafetyChecks = enabled ?? true;
+
+ return configuration;
+ }
}
}
diff --git a/test/YesSql.Tests/CoreTests.cs b/test/YesSql.Tests/CoreTests.cs
index 9e20cb98..d5ba2fba 100644
--- a/test/YesSql.Tests/CoreTests.cs
+++ b/test/YesSql.Tests/CoreTests.cs
@@ -6628,51 +6628,6 @@ await session.SaveAsync(new Article
Assert.Equal(10, result);
}
- [Fact]
- public virtual async Task ShouldDetectThreadSafetyIssues()
- {
- try
- {
- _store.Configuration.EnableThreadSafetyChecks = true;
-
- await using var session = _store.CreateSession();
-
- _store.Configuration.EnableThreadSafetyChecks = false;
-
- var person = new Person { Firstname = "Bill" };
- await session.SaveAsync(person);
- await session.SaveChangesAsync();
-
- Task[] tasks = null;
-
- var throws = Assert.ThrowsAsync(async () =>
- {
- tasks = Enumerable.Range(0, 10).Select(x => Task.Run(DoWork)).ToArray();
- await Task.WhenAll(tasks);
- });
-
- await Task.WhenAny(throws, Task.Delay(5000));
-
- Assert.True(throws.IsCompleted, "The timeout was reached before the expected exception was thrown");
-
- async Task DoWork()
- {
- while (true)
- {
- var p = await session.Query().FirstOrDefaultAsync();
- Assert.NotNull(p);
-
- person.Firstname = "Bill" + RandomNumberGenerator.GetInt32(100);
- await session.FlushAsync();
- }
- }
- }
- finally
- {
- _store.Configuration.EnableThreadSafetyChecks = false;
- }
- }
-
#region FilterTests
[Fact]
@@ -7233,26 +7188,17 @@ public virtual async Task ShouldNotTriggerThreadSafetyOnCancel()
{
// https://github.com/sebastienros/yessql/issues/618
- _store.Configuration.EnableThreadSafetyChecks = true;
-
- try
+ await using (var session = _store.CreateSession())
{
- await using (var session = _store.CreateSession())
- {
- var index = new PropertyIndex { Name = "Home" };
+ var index = new PropertyIndex { Name = "Home" };
- await session.SaveAsync(index);
+ await session.SaveAsync(index);
- await Assert.ThrowsAsync(async () =>
- {
- // Try saving an index directly to force an exception which should trigger cancel.
- await session.FlushAsync();
- });
- }
- }
- finally
- {
- _store.Configuration.EnableThreadSafetyChecks = false;
+ await Assert.ThrowsAsync(async () =>
+ {
+ // Try saving an index directly to force an exception which should trigger cancel.
+ await session.FlushAsync();
+ });
}
}
diff --git a/test/YesSql.Tests/MySqlTests.cs b/test/YesSql.Tests/MySqlTests.cs
index cead03eb..fb4294e3 100644
--- a/test/YesSql.Tests/MySqlTests.cs
+++ b/test/YesSql.Tests/MySqlTests.cs
@@ -33,8 +33,8 @@ protected override IConfiguration CreateConfiguration()
.UseMySql(ConnectionString)
.SetTablePrefix(TablePrefix)
.UseBlockIdGenerator()
- .SetIdentityColumnSize(IdentityColumnSize.Int64)
- ;
+ .WithThreadSafetyChecks()
+ .SetIdentityColumnSize(IdentityColumnSize.Int64);
}
[Fact]
diff --git a/test/YesSql.Tests/PostgreSqlLegacyIdentityTests.cs b/test/YesSql.Tests/PostgreSqlLegacyIdentityTests.cs
index f2a8b165..165dfc26 100644
--- a/test/YesSql.Tests/PostgreSqlLegacyIdentityTests.cs
+++ b/test/YesSql.Tests/PostgreSqlLegacyIdentityTests.cs
@@ -21,8 +21,8 @@ protected override IConfiguration CreateConfiguration()
.UsePostgreSql(ConnectionStringBuilder.ConnectionString)
.SetTablePrefix(TablePrefix)
.UseBlockIdGenerator()
- .SetIdentityColumnSize(IdentityColumnSize.Int32)
- ;
+ .WithThreadSafetyChecks()
+ .SetIdentityColumnSize(IdentityColumnSize.Int32);
}
[Fact(Skip = "Skip to make test faster in this configuration")]
diff --git a/test/YesSql.Tests/PostgreSqlTests.cs b/test/YesSql.Tests/PostgreSqlTests.cs
index 4a885817..aaac8917 100644
--- a/test/YesSql.Tests/PostgreSqlTests.cs
+++ b/test/YesSql.Tests/PostgreSqlTests.cs
@@ -32,8 +32,8 @@ protected override IConfiguration CreateConfiguration()
.UsePostgreSql(ConnectionStringBuilder.ConnectionString, "BabyYoda")
.SetTablePrefix(TablePrefix)
.UseBlockIdGenerator()
- .SetIdentityColumnSize(IdentityColumnSize.Int64)
- ;
+ .WithThreadSafetyChecks()
+ .SetIdentityColumnSize(IdentityColumnSize.Int64);
}
[Fact(Skip = "Postgres locks on the table")]
diff --git a/test/YesSql.Tests/SqlServer2017Tests.cs b/test/YesSql.Tests/SqlServer2017Tests.cs
index dc8812e7..79a8a4b4 100644
--- a/test/YesSql.Tests/SqlServer2017Tests.cs
+++ b/test/YesSql.Tests/SqlServer2017Tests.cs
@@ -1,4 +1,5 @@
using Xunit;
+using YesSql.Provider.SqlServer;
using YesSql.Tests.Fixtures;
namespace YesSql.Tests
diff --git a/test/YesSql.Tests/SqlServer2019Tests.cs b/test/YesSql.Tests/SqlServer2019Tests.cs
index 1507fd5f..c9ddc772 100644
--- a/test/YesSql.Tests/SqlServer2019Tests.cs
+++ b/test/YesSql.Tests/SqlServer2019Tests.cs
@@ -1,4 +1,5 @@
using Xunit;
+using YesSql.Provider.SqlServer;
using YesSql.Tests.Fixtures;
namespace YesSql.Tests
diff --git a/test/YesSql.Tests/SqlServerTests.cs b/test/YesSql.Tests/SqlServerTests.cs
index 3d36a102..6dd878d7 100644
--- a/test/YesSql.Tests/SqlServerTests.cs
+++ b/test/YesSql.Tests/SqlServerTests.cs
@@ -31,7 +31,7 @@ protected override IConfiguration CreateConfiguration()
.SetTablePrefix(TablePrefix)
.UseBlockIdGenerator()
.SetIdentityColumnSize(IdentityColumnSize.Int64)
- ;
+ .WithThreadSafetyChecks();
}
[Fact]
diff --git a/test/YesSql.Tests/SqliteLegacyIdentityTests.cs b/test/YesSql.Tests/SqliteLegacyIdentityTests.cs
index c4acd45f..287d8253 100644
--- a/test/YesSql.Tests/SqliteLegacyIdentityTests.cs
+++ b/test/YesSql.Tests/SqliteLegacyIdentityTests.cs
@@ -24,8 +24,8 @@ protected override IConfiguration CreateConfiguration()
.UseSqLite(connectionString)
.SetTablePrefix(TablePrefix)
.UseDefaultIdGenerator()
- .SetIdentityColumnSize(IdentityColumnSize.Int32)
- ;
+ .WithThreadSafetyChecks()
+ .SetIdentityColumnSize(IdentityColumnSize.Int32);
}
[Fact(Skip = "Skip to make test faster in this configuration")]
diff --git a/test/YesSql.Tests/SqliteTests.cs b/test/YesSql.Tests/SqliteTests.cs
index 1f5bc89a..d267e441 100644
--- a/test/YesSql.Tests/SqliteTests.cs
+++ b/test/YesSql.Tests/SqliteTests.cs
@@ -31,8 +31,8 @@ protected override IConfiguration CreateConfiguration()
.UseSqLite(connectionString)
.SetTablePrefix(TablePrefix)
.UseDefaultIdGenerator()
- .SetIdentityColumnSize(IdentityColumnSize.Int64)
- ;
+ .WithThreadSafetyChecks()
+ .SetIdentityColumnSize(IdentityColumnSize.Int64);
}
[Fact(Skip = "Alter column is not supported by Sqlite")]