Skip to content

Commit

Permalink
Improve and fix tests when running on a non Windows OS
Browse files Browse the repository at this point in the history
No Microsoft.Data.SqlClient.SNI.runtime in there
  • Loading branch information
0xced committed Mar 12, 2024
1 parent 5c96048 commit e0d82b8
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Generated by https://github.com/0xced/Chisel
digraph
{
rankdir=LR
node [ fontname = "Segoe UI, sans-serif", shape = box, style = filled, color = aquamarine ]

"Azure.Core/1.35.0" [ color = lightcoral ]
"Azure.Identity/1.10.3" [ color = lightcoral ]
"Microsoft.Bcl.AsyncInterfaces/1.1.1" [ color = lightcoral ]
"Microsoft.Data.SqlClient/5.2.0"
"Microsoft.Extensions.DependencyModel/8.0.0"
"Microsoft.Identity.Client.Extensions.Msal/4.56.0" [ color = lightcoral ]
"Microsoft.Identity.Client/4.56.0"
"Microsoft.IdentityModel.Abstractions/6.35.0"
"Microsoft.IdentityModel.JsonWebTokens/6.35.0" [ color = lightcoral ]
"Microsoft.IdentityModel.Logging/6.35.0" [ color = lightcoral ]
"Microsoft.IdentityModel.Protocols.OpenIdConnect/6.35.0" [ color = lightcoral ]
"Microsoft.IdentityModel.Protocols/6.35.0" [ color = lightcoral ]
"Microsoft.IdentityModel.Tokens/6.35.0" [ color = lightcoral ]
"Microsoft.SqlServer.Server/1.0.0"
"System.Configuration.ConfigurationManager/8.0.0"
"System.Diagnostics.DiagnosticSource/6.0.1" [ color = lightcoral ]
"System.Diagnostics.EventLog/8.0.0"
"System.IdentityModel.Tokens.Jwt/6.35.0" [ color = lightcoral ]
"System.IO.FileSystem.AccessControl/5.0.0" [ color = lightcoral ]
"System.Memory.Data/1.0.2" [ color = lightcoral ]
"System.Runtime.Caching/8.0.0"
"System.Runtime.CompilerServices.Unsafe/6.0.0" [ color = lightcoral ]
"System.Security.AccessControl/5.0.0" [ color = lightcoral ]
"System.Security.Cryptography.Cng/4.5.0" [ color = lightcoral ]
"System.Security.Cryptography.ProtectedData/8.0.0"
"System.Security.Principal.Windows/5.0.0" [ color = lightcoral ]
"System.Text.Encodings.Web/8.0.0"
"System.Text.Json/8.0.0"

"Azure.Core/1.35.0" -> "Microsoft.Bcl.AsyncInterfaces/1.1.1"
"Azure.Core/1.35.0" -> "System.Diagnostics.DiagnosticSource/6.0.1"
"Azure.Core/1.35.0" -> "System.Memory.Data/1.0.2"
"Azure.Core/1.35.0" -> "System.Text.Encodings.Web/8.0.0"
"Azure.Core/1.35.0" -> "System.Text.Json/8.0.0"
"Azure.Identity/1.10.3" -> "Azure.Core/1.35.0"
"Azure.Identity/1.10.3" -> "Microsoft.Identity.Client.Extensions.Msal/4.56.0"
"Azure.Identity/1.10.3" -> "Microsoft.Identity.Client/4.56.0"
"Azure.Identity/1.10.3" -> "System.Security.Cryptography.ProtectedData/8.0.0"
"Azure.Identity/1.10.3" -> "System.Text.Json/8.0.0"
"Microsoft.Data.SqlClient/5.2.0" -> "Azure.Identity/1.10.3"
"Microsoft.Data.SqlClient/5.2.0" -> "Microsoft.Identity.Client/4.56.0"
"Microsoft.Data.SqlClient/5.2.0" -> "Microsoft.IdentityModel.JsonWebTokens/6.35.0"
"Microsoft.Data.SqlClient/5.2.0" -> "Microsoft.IdentityModel.Protocols.OpenIdConnect/6.35.0"
"Microsoft.Data.SqlClient/5.2.0" -> "Microsoft.SqlServer.Server/1.0.0"
"Microsoft.Data.SqlClient/5.2.0" -> "System.Configuration.ConfigurationManager/8.0.0"
"Microsoft.Data.SqlClient/5.2.0" -> "System.Runtime.Caching/8.0.0"
"Microsoft.Extensions.DependencyModel/8.0.0" -> "System.Text.Encodings.Web/8.0.0"
"Microsoft.Extensions.DependencyModel/8.0.0" -> "System.Text.Json/8.0.0"
"Microsoft.Identity.Client.Extensions.Msal/4.56.0" -> "Microsoft.Identity.Client/4.56.0"
"Microsoft.Identity.Client.Extensions.Msal/4.56.0" -> "System.IO.FileSystem.AccessControl/5.0.0"
"Microsoft.Identity.Client.Extensions.Msal/4.56.0" -> "System.Security.Cryptography.ProtectedData/8.0.0"
"Microsoft.Identity.Client/4.56.0" -> "Microsoft.IdentityModel.Abstractions/6.35.0"
"Microsoft.IdentityModel.JsonWebTokens/6.35.0" -> "Microsoft.IdentityModel.Tokens/6.35.0"
"Microsoft.IdentityModel.JsonWebTokens/6.35.0" -> "System.Text.Encodings.Web/8.0.0"
"Microsoft.IdentityModel.JsonWebTokens/6.35.0" -> "System.Text.Json/8.0.0"
"Microsoft.IdentityModel.Logging/6.35.0" -> "Microsoft.IdentityModel.Abstractions/6.35.0"
"Microsoft.IdentityModel.Protocols.OpenIdConnect/6.35.0" -> "Microsoft.IdentityModel.Protocols/6.35.0"
"Microsoft.IdentityModel.Protocols.OpenIdConnect/6.35.0" -> "System.IdentityModel.Tokens.Jwt/6.35.0"
"Microsoft.IdentityModel.Protocols/6.35.0" -> "Microsoft.IdentityModel.Logging/6.35.0"
"Microsoft.IdentityModel.Protocols/6.35.0" -> "Microsoft.IdentityModel.Tokens/6.35.0"
"Microsoft.IdentityModel.Tokens/6.35.0" -> "Microsoft.IdentityModel.Logging/6.35.0"
"Microsoft.IdentityModel.Tokens/6.35.0" -> "System.Security.Cryptography.Cng/4.5.0"
"System.Configuration.ConfigurationManager/8.0.0" -> "System.Diagnostics.EventLog/8.0.0"
"System.Configuration.ConfigurationManager/8.0.0" -> "System.Security.Cryptography.ProtectedData/8.0.0"
"System.Diagnostics.DiagnosticSource/6.0.1" -> "System.Runtime.CompilerServices.Unsafe/6.0.0"
"System.IdentityModel.Tokens.Jwt/6.35.0" -> "Microsoft.IdentityModel.JsonWebTokens/6.35.0"
"System.IdentityModel.Tokens.Jwt/6.35.0" -> "Microsoft.IdentityModel.Tokens/6.35.0"
"System.IO.FileSystem.AccessControl/5.0.0" -> "System.Security.AccessControl/5.0.0"
"System.IO.FileSystem.AccessControl/5.0.0" -> "System.Security.Principal.Windows/5.0.0"
"System.Memory.Data/1.0.2" -> "System.Text.Encodings.Web/8.0.0"
"System.Memory.Data/1.0.2" -> "System.Text.Json/8.0.0"
"System.Runtime.Caching/8.0.0" -> "System.Configuration.ConfigurationManager/8.0.0"
"System.Security.AccessControl/5.0.0" -> "System.Security.Principal.Windows/5.0.0"
"System.Text.Json/8.0.0" -> "System.Text.Encodings.Web/8.0.0"
}
18 changes: 10 additions & 8 deletions tests/Chisel.Tests/ChiseledAppTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,27 +40,29 @@ public void Dispose()
public async Task RunTestApp(PublishMode publishMode)
{
var (stdOut, stdErr) = await RunTestAppAsync(publishMode);
var allDlls = stdOut.Split(Environment.NewLine).Where(e => e.EndsWith(".dll"));
var expectedDlls = new[]
{
var actualDlls = stdOut.Split(Environment.NewLine).Where(e => e.EndsWith(".dll")).ToHashSet();
var platformDlls = OperatingSystem.IsWindows() ? ["Microsoft.Data.SqlClient.SNI.dll", "System.Diagnostics.EventLog.Messages.dll"] : Array.Empty<string>();
var expectedDlls = platformDlls.Concat(
[
"Microsoft.Data.SqlClient.dll",
"Microsoft.Data.SqlClient.SNI.dll",
"Microsoft.Extensions.DependencyModel.dll",
"Microsoft.Identity.Client.dll",
"Microsoft.IdentityModel.Abstractions.dll",
"Microsoft.SqlServer.Server.dll",
"System.Configuration.ConfigurationManager.dll",
"System.Diagnostics.EventLog.dll",
"System.Diagnostics.EventLog.Messages.dll",
"System.Runtime.Caching.dll",
"System.Security.Cryptography.ProtectedData.dll",
"TestApp.dll",
};
allDlls.Except(expectedDlls).Should().BeEmpty();
]).ToHashSet();
actualDlls.Except(expectedDlls).Should().BeEmpty();
expectedDlls.Except(actualDlls).Should().BeEmpty();
stdOut.Should().Contain("");
stdErr.Should().BeEmpty();

await Verifier.VerifyFile(_testApp.IntermediateOutputPath.File("TestApp.Chisel.gv")).DisableRequireUniquePrefix();
await Verifier.VerifyFile(_testApp.IntermediateOutputPath.File("TestApp.Chisel.gv"))
.UseTextForParameters(OperatingSystem.IsWindows() ? "windows" : "non-windows")
.DisableRequireUniquePrefix();
}

private async Task<(string StdOut, string StdErr)> RunTestAppAsync(PublishMode publishMode, params string[] args)
Expand Down

0 comments on commit e0d82b8

Please sign in to comment.