diff --git a/samples/Store/Domain/Domain.fsproj b/samples/Store/Domain/Domain.fsproj
index 6158df3c8..d413b2001 100644
--- a/samples/Store/Domain/Domain.fsproj
+++ b/samples/Store/Domain/Domain.fsproj
@@ -17,8 +17,8 @@
-
-
+
+
diff --git a/samples/Tutorial/Tutorial.fsproj b/samples/Tutorial/Tutorial.fsproj
index fda36d99f..38fec01ca 100644
--- a/samples/Tutorial/Tutorial.fsproj
+++ b/samples/Tutorial/Tutorial.fsproj
@@ -27,8 +27,8 @@
-
-
+
+
diff --git a/src/Equinox.CosmosStore/Equinox.CosmosStore.fsproj b/src/Equinox.CosmosStore/Equinox.CosmosStore.fsproj
index 82e886fa4..97739270e 100644
--- a/src/Equinox.CosmosStore/Equinox.CosmosStore.fsproj
+++ b/src/Equinox.CosmosStore/Equinox.CosmosStore.fsproj
@@ -20,7 +20,7 @@
-
+
diff --git a/src/Equinox.DynamoStore/Equinox.DynamoStore.fsproj b/src/Equinox.DynamoStore/Equinox.DynamoStore.fsproj
index bd286979b..457f7c477 100644
--- a/src/Equinox.DynamoStore/Equinox.DynamoStore.fsproj
+++ b/src/Equinox.DynamoStore/Equinox.DynamoStore.fsproj
@@ -19,7 +19,7 @@
contentFiles
-
+
diff --git a/src/Equinox.EventStore/Equinox.EventStore.fsproj b/src/Equinox.EventStore/Equinox.EventStore.fsproj
index 62b5c29fb..aaa4ffcac 100644
--- a/src/Equinox.EventStore/Equinox.EventStore.fsproj
+++ b/src/Equinox.EventStore/Equinox.EventStore.fsproj
@@ -20,7 +20,7 @@
-
+
diff --git a/src/Equinox.EventStoreDb/Equinox.EventStoreDb.fsproj b/src/Equinox.EventStoreDb/Equinox.EventStoreDb.fsproj
index b8ed13eaa..1c7c1f556 100644
--- a/src/Equinox.EventStoreDb/Equinox.EventStoreDb.fsproj
+++ b/src/Equinox.EventStoreDb/Equinox.EventStoreDb.fsproj
@@ -20,7 +20,7 @@
-
+
diff --git a/src/Equinox.MemoryStore/Equinox.MemoryStore.fsproj b/src/Equinox.MemoryStore/Equinox.MemoryStore.fsproj
index e54e0379d..3d4d7c1be 100644
--- a/src/Equinox.MemoryStore/Equinox.MemoryStore.fsproj
+++ b/src/Equinox.MemoryStore/Equinox.MemoryStore.fsproj
@@ -17,7 +17,7 @@
-
+
diff --git a/src/Equinox.MessageDb/Equinox.MessageDb.fsproj b/src/Equinox.MessageDb/Equinox.MessageDb.fsproj
index ad5c41191..855781ff9 100644
--- a/src/Equinox.MessageDb/Equinox.MessageDb.fsproj
+++ b/src/Equinox.MessageDb/Equinox.MessageDb.fsproj
@@ -25,7 +25,7 @@
-
+
diff --git a/src/Equinox.SqlStreamStore/Equinox.SqlStreamStore.fsproj b/src/Equinox.SqlStreamStore/Equinox.SqlStreamStore.fsproj
index 091512691..faeefefd5 100644
--- a/src/Equinox.SqlStreamStore/Equinox.SqlStreamStore.fsproj
+++ b/src/Equinox.SqlStreamStore/Equinox.SqlStreamStore.fsproj
@@ -19,7 +19,7 @@
-
+
diff --git a/tests/Equinox.Core.Tests/CachingTests.fs b/tests/Equinox.Core.Tests/CachingTests.fs
index 5feb1ba6a..6f0948051 100644
--- a/tests/Equinox.Core.Tests/CachingTests.fs
+++ b/tests/Equinox.Core.Tests/CachingTests.fs
@@ -112,9 +112,9 @@ type Tests() =
let [] ``requireLoad does not unify loads`` () = task {
cat.Delay <- TimeSpan.FromMilliseconds 50
let t1 = requireLoad ()
- do! Task.Delay 20
+ do! Task.Delay 10
test <@ (1, 0) = (cat.Loads, cat.Reloads) @>
- do! Task.Delay 50 // wait for the loaded value to get cached
+ do! Task.Delay 60 // wait for the loaded value to get cached (50 should do, but MacOS CI...)
let! struct (_token, state) = requireLoad ()
test <@ 2 = state && (1, 1) = (cat.Loads, cat.Reloads) @>
let! struct (_token, state) = t1
@@ -166,7 +166,7 @@ type Tests() =
test <@ (2, 1, 1) = (state, cat.Loads, cat.Reloads) @>
cat.Delay <- TimeSpan.FromMilliseconds 50
let t3 = requireLoad ()
- do! Task.Delay 10 // Make the main read enter a delay state (of 50); ensure readThrough values are expired
+ do! Task.Delay 2 // Make the main read enter a delay state (of 500); ensure readThrough values are expired
cat.Delay <- TimeSpan.FromMilliseconds 75 // Next read picks up the longer delay
// These reads start after the first read so replace the older value in the cache
let t1 = loadReadThrough 1
@@ -178,7 +178,7 @@ type Tests() =
let! struct (_token, state) = loadReadThrough 150 // Delay of 75 overlapped with delay of 50 should not have expired the entry
test <@ (4, 1, 3) = (state, cat.Loads, cat.Reloads) @> // The newer cache entry won
cat.Delay <- TimeSpan.FromMilliseconds 10 // Reduce the delay, but we do want to overlap a write
- let t4 = loadReadThrough 100 // Delay of 75 in t1/t2 should have aged the read result, so should trigger a read
+ let t4 = loadReadThrough 1000 // Delay of 1000 in t1/t2 should have aged the read result, so should trigger a read
do! Task.Delay 2
cat.Delay <- TimeSpan.Zero // no further delays required for the rest of the tests