From f3b868751c3e1e2ca230b36afee2c69344b783a1 Mon Sep 17 00:00:00 2001 From: Adam Sitnik Date: Wed, 24 Mar 2021 12:07:46 +0100 Subject: [PATCH 1/4] flip the legacy file stream switch --- .../System.IO.FileSystem/tests/LegacyTests/LegacySwitchTests.cs | 2 +- .../tests/LegacyTests/runtimeconfig.template.json | 2 +- .../System.IO/tests/LegacyTests/runtimeconfig.template.json | 2 +- .../src/System/IO/Strategies/FileStreamHelpers.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libraries/System.IO.FileSystem/tests/LegacyTests/LegacySwitchTests.cs b/src/libraries/System.IO.FileSystem/tests/LegacyTests/LegacySwitchTests.cs index c930cee893352d..8b4aa49d80b20b 100644 --- a/src/libraries/System.IO.FileSystem/tests/LegacyTests/LegacySwitchTests.cs +++ b/src/libraries/System.IO.FileSystem/tests/LegacyTests/LegacySwitchTests.cs @@ -20,7 +20,7 @@ public static void LegacySwitchIsHonored() .GetField("_strategy", BindingFlags.NonPublic | BindingFlags.Instance) .GetValue(fileStream); - Assert.DoesNotContain(strategy.GetType().FullName, "Legacy"); + Assert.Contains(strategy.GetType().FullName, "Legacy"); } File.Delete(filePath); diff --git a/src/libraries/System.IO.FileSystem/tests/LegacyTests/runtimeconfig.template.json b/src/libraries/System.IO.FileSystem/tests/LegacyTests/runtimeconfig.template.json index 0c1a3482aba4f8..6e843517fe47af 100644 --- a/src/libraries/System.IO.FileSystem/tests/LegacyTests/runtimeconfig.template.json +++ b/src/libraries/System.IO.FileSystem/tests/LegacyTests/runtimeconfig.template.json @@ -1,5 +1,5 @@ { "configProperties": { - "System.IO.UseNet5CompatFileStream": false + "System.IO.UseNet5CompatFileStream": true } } diff --git a/src/libraries/System.IO/tests/LegacyTests/runtimeconfig.template.json b/src/libraries/System.IO/tests/LegacyTests/runtimeconfig.template.json index 0c1a3482aba4f8..6e843517fe47af 100644 --- a/src/libraries/System.IO/tests/LegacyTests/runtimeconfig.template.json +++ b/src/libraries/System.IO/tests/LegacyTests/runtimeconfig.template.json @@ -1,5 +1,5 @@ { "configProperties": { - "System.IO.UseNet5CompatFileStream": false + "System.IO.UseNet5CompatFileStream": true } } diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs b/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs index 62e344db6e4f00..543f059ed502cc 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs @@ -19,7 +19,7 @@ private static bool GetLegacyFileStreamSetting() string? envVar = Environment.GetEnvironmentVariable("DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM"); return envVar is null - ? true // legacy is currently enabled by default; + ? false // legacy is disabled by default; : bool.IsTrueStringIgnoreCase(envVar) || envVar.Equals("1"); } From ae9db76908555f6554400bd8c1f464f171a02200 Mon Sep 17 00:00:00 2001 From: Adam Sitnik Date: Mon, 29 Mar 2021 13:31:07 +0200 Subject: [PATCH 2/4] fix test bug --- .../System.IO.FileSystem/tests/LegacyTests/LegacySwitchTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/System.IO.FileSystem/tests/LegacyTests/LegacySwitchTests.cs b/src/libraries/System.IO.FileSystem/tests/LegacyTests/LegacySwitchTests.cs index 8b4aa49d80b20b..96ddfe1d0da153 100644 --- a/src/libraries/System.IO.FileSystem/tests/LegacyTests/LegacySwitchTests.cs +++ b/src/libraries/System.IO.FileSystem/tests/LegacyTests/LegacySwitchTests.cs @@ -20,7 +20,7 @@ public static void LegacySwitchIsHonored() .GetField("_strategy", BindingFlags.NonPublic | BindingFlags.Instance) .GetValue(fileStream); - Assert.Contains(strategy.GetType().FullName, "Legacy"); + Assert.Contains("Legacy", strategy.GetType().FullName); } File.Delete(filePath); From 83afc317e05d21fc1a6757c6329066f0f0b4c86a Mon Sep 17 00:00:00 2001 From: Adam Sitnik Date: Tue, 6 Apr 2021 12:40:23 +0200 Subject: [PATCH 3/4] reuse the config helper --- .../src/System/IO/Strategies/FileStreamHelpers.cs | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs b/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs index a2e88257b2cd71..fa8f4cc2d1e67d 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs @@ -11,17 +11,7 @@ internal static partial class FileStreamHelpers internal static bool UseNet5CompatStrategy { get; } = GetNet5CompatFileStreamSetting(); private static bool GetNet5CompatFileStreamSetting() - { - if (AppContext.TryGetSwitch("System.IO.UseNet5CompatFileStream", out bool fileConfig)) - { - return fileConfig; - } - - string? envVar = Environment.GetEnvironmentVariable("DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM"); - return envVar is null - ? false // Net5Compat is disabled by default; - : bool.IsTrueStringIgnoreCase(envVar) || envVar.Equals("1"); - } + => AppContextConfigHelper.GetBooleanConfig("System.IO.UseNet5CompatFileStream", "DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM"); internal static FileStreamStrategy ChooseStrategy(FileStream fileStream, SafeFileHandle handle, FileAccess access, FileShare share, int bufferSize, bool isAsync) => WrapIfDerivedType(fileStream, ChooseStrategyCore(handle, access, share, bufferSize, isAsync)); From 07ec0447fe09c4c66faf3aea4f49a6d4c61ed633 Mon Sep 17 00:00:00 2001 From: Adam Sitnik Date: Wed, 7 Apr 2021 20:52:27 +0200 Subject: [PATCH 4/4] remove redundant helper method and an obsolet comment --- .../src/System/IO/Strategies/FileStreamHelpers.cs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs b/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs index fa8f4cc2d1e67d..1ca2e563998caa 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs @@ -7,11 +7,7 @@ namespace System.IO.Strategies { internal static partial class FileStreamHelpers { - // It's enabled by default. We are going to change that once we fix #16354, #25905 and #24847. - internal static bool UseNet5CompatStrategy { get; } = GetNet5CompatFileStreamSetting(); - - private static bool GetNet5CompatFileStreamSetting() - => AppContextConfigHelper.GetBooleanConfig("System.IO.UseNet5CompatFileStream", "DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM"); + internal static bool UseNet5CompatStrategy { get; } = AppContextConfigHelper.GetBooleanConfig("System.IO.UseNet5CompatFileStream", "DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM"); internal static FileStreamStrategy ChooseStrategy(FileStream fileStream, SafeFileHandle handle, FileAccess access, FileShare share, int bufferSize, bool isAsync) => WrapIfDerivedType(fileStream, ChooseStrategyCore(handle, access, share, bufferSize, isAsync));