From e81454db7e9f81e379048191fa3e281c01c9650e Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Sun, 15 Aug 2021 17:26:46 +0300 Subject: [PATCH] Add BlockingReferences test that reveals #379 --- Confuser2.sln | 45 +++++++++++++++++++ .../BlockingReferences.Test.csproj | 11 +++++ Tests/BlockingReferences.Test/Program.cs | 26 +++++++++++ .../BlockingReferences.csproj | 12 +++++ Tests/BlockingReferences/Program.cs | 26 +++++++++++ .../BaseImplementation.cs | 5 +++ .../BlockingReferencesHelper.csproj | 7 +++ 7 files changed, 132 insertions(+) create mode 100644 Tests/BlockingReferences.Test/BlockingReferences.Test.csproj create mode 100644 Tests/BlockingReferences.Test/Program.cs create mode 100644 Tests/BlockingReferences/BlockingReferences.csproj create mode 100644 Tests/BlockingReferences/Program.cs create mode 100644 Tests/BlockingReferencesHelper/BaseImplementation.cs create mode 100644 Tests/BlockingReferencesHelper/BlockingReferencesHelper.csproj diff --git a/Confuser2.sln b/Confuser2.sln index 1ca772db..0d898433 100644 --- a/Confuser2.sln +++ b/Confuser2.sln @@ -137,6 +137,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "389_MixedCultureCasing", "T EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "389_MixedCultureCasing.Test", "Tests\389_MixedCultureCasing.Test\389_MixedCultureCasing.Test.csproj", "{D1CCDA5D-E460-4ACC-B51A-730DE8F0ECF3}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlockingReferences", "Tests\BlockingReferences\BlockingReferences.csproj", "{F602DAFE-E8A2-4CB2-AF0E-656CD357D821}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlockingReferencesHelper", "Tests\BlockingReferencesHelper\BlockingReferencesHelper.csproj", "{9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlockingReferences.Test", "Tests\BlockingReferences.Test\BlockingReferences.Test.csproj", "{4FB03AD0-96FF-4730-801A-4F997795D920}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -866,6 +872,42 @@ Global {D1CCDA5D-E460-4ACC-B51A-730DE8F0ECF3}.Release|x64.Build.0 = Release|Any CPU {D1CCDA5D-E460-4ACC-B51A-730DE8F0ECF3}.Release|x86.ActiveCfg = Release|Any CPU {D1CCDA5D-E460-4ACC-B51A-730DE8F0ECF3}.Release|x86.Build.0 = Release|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Debug|x64.ActiveCfg = Debug|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Debug|x64.Build.0 = Debug|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Debug|x86.ActiveCfg = Debug|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Debug|x86.Build.0 = Debug|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Release|Any CPU.Build.0 = Release|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Release|x64.ActiveCfg = Release|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Release|x64.Build.0 = Release|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Release|x86.ActiveCfg = Release|Any CPU + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821}.Release|x86.Build.0 = Release|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Debug|x64.ActiveCfg = Debug|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Debug|x64.Build.0 = Debug|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Debug|x86.ActiveCfg = Debug|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Debug|x86.Build.0 = Debug|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Release|Any CPU.Build.0 = Release|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Release|x64.ActiveCfg = Release|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Release|x64.Build.0 = Release|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Release|x86.ActiveCfg = Release|Any CPU + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD}.Release|x86.Build.0 = Release|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Debug|x64.ActiveCfg = Debug|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Debug|x64.Build.0 = Debug|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Debug|x86.ActiveCfg = Debug|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Debug|x86.Build.0 = Debug|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Release|Any CPU.Build.0 = Release|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Release|x64.ActiveCfg = Release|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Release|x64.Build.0 = Release|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Release|x86.ActiveCfg = Release|Any CPU + {4FB03AD0-96FF-4730-801A-4F997795D920}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -923,6 +965,9 @@ Global {5E9715AB-CAF7-4FFF-8E14-A8727891DA93} = {356BDB31-853E-43BB-8F9A-D8AC08F69EBB} {75E5F9A0-8D69-4426-9F16-4A65E941974D} = {356BDB31-853E-43BB-8F9A-D8AC08F69EBB} {D1CCDA5D-E460-4ACC-B51A-730DE8F0ECF3} = {356BDB31-853E-43BB-8F9A-D8AC08F69EBB} + {F602DAFE-E8A2-4CB2-AF0E-656CD357D821} = {356BDB31-853E-43BB-8F9A-D8AC08F69EBB} + {9EB8DC3B-60DC-451E-8C18-3D7E38D463FD} = {356BDB31-853E-43BB-8F9A-D8AC08F69EBB} + {4FB03AD0-96FF-4730-801A-4F997795D920} = {356BDB31-853E-43BB-8F9A-D8AC08F69EBB} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {0D937D9E-E04B-4A68-B639-D4260473A388} diff --git a/Tests/BlockingReferences.Test/BlockingReferences.Test.csproj b/Tests/BlockingReferences.Test/BlockingReferences.Test.csproj new file mode 100644 index 00000000..f38282b5 --- /dev/null +++ b/Tests/BlockingReferences.Test/BlockingReferences.Test.csproj @@ -0,0 +1,11 @@ + + + + net461 + + + + + + + diff --git a/Tests/BlockingReferences.Test/Program.cs b/Tests/BlockingReferences.Test/Program.cs new file mode 100644 index 00000000..cfa2a14c --- /dev/null +++ b/Tests/BlockingReferences.Test/Program.cs @@ -0,0 +1,26 @@ +using System.Threading.Tasks; +using Confuser.Core; +using Confuser.Core.Project; +using Confuser.UnitTest; +using Xunit; +using Xunit.Abstractions; + +namespace BlockingReferences.Test { + public class BlockingReferencesTest : TestBase { + public BlockingReferencesTest(ITestOutputHelper outputHelper) : base(outputHelper) { } + + [Fact] + [Trait("Category", "Protection")] + [Trait("Protection", "rename")] + [Trait("Issue", "https://github.com/mkaring/ConfuserEx/issues/379")] + public async Task BlockingReferences() => + await Run( + new [] { "BlockingReferences.exe", "BlockingReferencesHelper.dll" }, + new [] { + "", + "Implementation2", + }, + new SettingItem("rename") { ["renPublic"] = "true", ["mode"] = "decodable" } + ); + } +} diff --git a/Tests/BlockingReferences/BlockingReferences.csproj b/Tests/BlockingReferences/BlockingReferences.csproj new file mode 100644 index 00000000..af79c190 --- /dev/null +++ b/Tests/BlockingReferences/BlockingReferences.csproj @@ -0,0 +1,12 @@ + + + + Exe + net461 + + + + + + + diff --git a/Tests/BlockingReferences/Program.cs b/Tests/BlockingReferences/Program.cs new file mode 100644 index 00000000..51585929 --- /dev/null +++ b/Tests/BlockingReferences/Program.cs @@ -0,0 +1,26 @@ +using System; +using BlockingReferencesHelper; + +namespace BlockingReferences { + public interface IBaseInterface { + string Method(); + } + + public class Implementation1 : BaseImplementation, IBaseInterface { + } + + public class Implementation2 : BaseImplementation, IBaseInterface { + public override string Method() => "Implementation2"; + } + + public static class Program { + public static int Main() { + Console.WriteLine("START"); + Console.WriteLine(new Implementation1().Method()); + Console.WriteLine(new Implementation2().Method()); + Console.WriteLine("END"); + + return 42; + } + } +} diff --git a/Tests/BlockingReferencesHelper/BaseImplementation.cs b/Tests/BlockingReferencesHelper/BaseImplementation.cs new file mode 100644 index 00000000..d45d35ba --- /dev/null +++ b/Tests/BlockingReferencesHelper/BaseImplementation.cs @@ -0,0 +1,5 @@ +namespace BlockingReferencesHelper { + public class BaseImplementation { + public virtual T Method() => default; + } +} diff --git a/Tests/BlockingReferencesHelper/BlockingReferencesHelper.csproj b/Tests/BlockingReferencesHelper/BlockingReferencesHelper.csproj new file mode 100644 index 00000000..1827b043 --- /dev/null +++ b/Tests/BlockingReferencesHelper/BlockingReferencesHelper.csproj @@ -0,0 +1,7 @@ + + + + net461 + + +