Skip to content

Commit 9ba2d17

Browse files
Use reference assemblies project to make tests cross platform
1 parent 355bc35 commit 9ba2d17

File tree

3 files changed

+39
-15
lines changed

3 files changed

+39
-15
lines changed

Tests/DefaultReferences.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using System.Collections.Generic;
2+
using System.IO;
3+
using System.Linq;
4+
using System.Reflection;
5+
using Microsoft.CodeAnalysis;
6+
7+
namespace ICSharpCode.CodeConverter.Common;
8+
9+
/// <summary>
10+
/// Provides reference assemblies for use in Roslyn compilations during tests.
11+
/// Uses Basic.Reference.Assemblies packages to avoid platform-specific assembly loading.
12+
/// </summary>
13+
public static class DefaultReferences
14+
{
15+
public static IReadOnlyCollection<PortableExecutableReference> NetStandard2 { get; } =
16+
Basic.Reference.Assemblies.NetStandard20.References.All;
17+
18+
private static readonly IReadOnlyCollection<PortableExecutableReference> _net80All =
19+
Basic.Reference.Assemblies.Net80.References.All
20+
.Concat(Basic.Reference.Assemblies.Net80Windows.References.All)
21+
.ToArray();
22+
23+
public static IReadOnlyCollection<PortableExecutableReference> With(params Assembly[] assemblies) =>
24+
_net80All
25+
.Concat(RefsFromAssemblies(assemblies))
26+
.ToArray();
27+
28+
private static IEnumerable<PortableExecutableReference> RefsFromAssemblies(Assembly[] assemblies) =>
29+
assemblies
30+
.Where(a => !a.IsDynamic && !string.IsNullOrEmpty(a.Location) && File.Exists(a.Location))
31+
.Select(a => MetadataReference.CreateFromFile(a.Location));
32+
}

Tests/TestRunners/ConverterTestBase.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@ public ConverterTestBase(string rootNamespace = null)
4848
}
4949

5050
private static IReadOnlyCollection<PortableExecutableReference> References { get; } = DefaultReferences.With(
51-
typeof(System.Windows.Forms.Form).Assembly,
52-
typeof(Microsoft.VisualBasic.Devices.Computer).Assembly,
5351
typeof(System.Data.SqlClient.SqlConnection).Assembly
5452
);
5553

Tests/Tests.csproj

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net10.0-windows</TargetFramework>
3+
<TargetFramework>net10.0</TargetFramework>
44
<OutputType>Library</OutputType>
55
<AssemblyName>ICSharpCode.CodeConverter.Tests</AssemblyName>
66
<RootNamespace>ICSharpCode.CodeConverter.Tests</RootNamespace>
77
<DisableMSBuildAssemblyCopyCheck>true</DisableMSBuildAssemblyCopyCheck>
8-
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
9-
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
10-
<UseWindowsForms>true</UseWindowsForms>
118
<WarningsNotAsErrors>NU1510;NU1903</WarningsNotAsErrors>
129
</PropertyGroup>
1310
<ItemGroup>
@@ -24,21 +21,18 @@
2421
</PackageReference>
2522
</ItemGroup>
2623
<ItemGroup>
27-
<!-- So we can reference commonly referenced assemblies in created compilations-->
24+
<!-- Reference assemblies for use in created compilations during tests -->
25+
<PackageReference Include="Basic.Reference.Assemblies.Net80" Version="1.8.4" />
26+
<PackageReference Include="Basic.Reference.Assemblies.Net80Windows" Version="1.8.4" />
27+
<PackageReference Include="Basic.Reference.Assemblies.NetStandard20" Version="1.8.4" />
28+
<!-- SqlClient is not in the standard reference packs -->
2829
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
29-
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
30-
<PackageReference Include="System.Memory" Version="4.5.5" />
31-
<PackageReference Include="System.Net.Http" Version="4.3.4" />
32-
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
33-
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
34-
<PackageReference Include="Microsoft.VisualBasic" Version="10.3.0" />
3530
</ItemGroup>
3631
<ItemGroup>
3732
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
3833
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
3934
</ItemGroup>
4035
<ItemGroup>
41-
<Compile Include="..\CodeConverter\Common\DefaultReferences.cs" Link="DefaultReferences.cs" />
4236
<Compile Remove="TestData\**" />
4337
<EmbeddedResource Remove="TestData\**" />
4438
<None Include="TestData\**\*.*" />

0 commit comments

Comments
 (0)