Skip to content

Commit 4c00f4e

Browse files
committed
Add tests for ILGPU types and intrinsics and finish renaming
1 parent e642cd2 commit 4c00f4e

16 files changed

+73
-32
lines changed

Src/ILGPU.Analyzers.Tests/ManagedTypeAnalyzer.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,16 @@ public class ManagedTypeAnalyzer
1111
{
1212
[Theory]
1313
[InlineData("Simple")]
14+
[InlineData("Complex")]
1415
[InlineData("Arrays")]
1516
[InlineData("Functions")]
1617
[InlineData("Constructors")]
17-
[InlineData("ManagedUnmanaged")]
1818
[InlineData("LoadDiscovery")]
19+
[InlineData("ILGPUTypesIntrinsics")]
1920
public async Task FileTests(string file)
2021
{
2122
// In build, we copy all programs to output directory. See ILGPU.Analyzers.Tests.csproj
22-
var code = await File.ReadAllTextAsync($"Programs/RefType/{file}.cs");
23+
var code = await File.ReadAllTextAsync($"Programs/ManagedType/{file}.cs");
2324
await VerifyCS.Verify(code, settings => settings.UseParameters(file));
2425
}
2526
}

Src/ILGPU.Analyzers.Tests/Programs/ManagedType/Arrays.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using ILGPU.Runtime;
22

3-
namespace ILGPU.Analyzers.Tests.Programs.RefType;
3+
namespace ILGPU.Analyzers.Tests.Programs.ManagedType;
44

55
class Arrays
66
{

Src/ILGPU.Analyzers.Tests/Programs/ManagedType/Complex.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using ILGPU.Runtime;
22

3-
namespace ILGPU.Analyzers.Tests.Programs.RefType;
3+
namespace ILGPU.Analyzers.Tests.Programs.ManagedType;
44

55
class ManagedUnmanaged
66
{

Src/ILGPU.Analyzers.Tests/Programs/ManagedType/Constructors.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using ILGPU.Runtime;
22

3-
namespace ILGPU.Analyzers.Tests.Programs.RefType;
3+
namespace ILGPU.Analyzers.Tests.Programs.ManagedType;
44

55
class Constructors
66
{

Src/ILGPU.Analyzers.Tests/Programs/ManagedType/Functions.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using ILGPU.Runtime;
22

3-
namespace ILGPU.Analyzers.Tests.Programs.RefType;
3+
namespace ILGPU.Analyzers.Tests.Programs.ManagedType;
44

55
class Functions
66
{
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using System;
2+
3+
namespace ILGPU.Analyzers.Tests.Programs.ManagedType;
4+
5+
class ILGPUTypesIntrinsics
6+
{
7+
static void Kernel(Index1D index, ArrayView<int> input)
8+
{
9+
var a = input.SubView(0, 10);
10+
int b = a[index];
11+
int c = Warp.WarpIdx;
12+
Group.Barrier();
13+
}
14+
15+
static void Run()
16+
{
17+
using var context = Context.CreateDefault();
18+
var device = context.GetPreferredDevice(false);
19+
using var accelerator = device.CreateAccelerator(context);
20+
21+
using var input = accelerator.Allocate1D<int>(1024);
22+
23+
var kernel =
24+
accelerator.LoadAutoGroupedStreamKernel<Index1D, ArrayView<int>>(Kernel);
25+
26+
kernel(input.IntExtent, input.View);
27+
28+
accelerator.Synchronize();
29+
}
30+
}

Src/ILGPU.Analyzers.Tests/Programs/ManagedType/LoadDiscovery.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using ILGPU.Runtime;
22

3-
namespace ILGPU.Analyzers.Tests.Programs.RefType;
3+
namespace ILGPU.Analyzers.Tests.Programs.ManagedType;
44

55
class Functions
66
{

Src/ILGPU.Analyzers.Tests/Programs/ManagedType/Simple.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using ILGPU.Runtime;
22

3-
namespace ILGPU.Analyzers.Tests.Programs.RefType;
3+
namespace ILGPU.Analyzers.Tests.Programs.ManagedType;
44

55
class Simple
66
{

Src/ILGPU.Analyzers.Tests/Snapshots/ManagedTypeAnalyzer.FileTests_file=Arrays.verified.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
WarningLevel: 1,
77
Location: : (29,25)-(29,42),
88
MessageFormat: Type '{0}' is an array of type '{1}', which is a managed type. Arrays of managed types cannot be used in kernels.,
9-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Arrays.RefType[]' is an array of type 'ILGPU.Analyzers.Tests.Programs.RefType.Arrays.RefType', which is a managed type. Arrays of managed types cannot be used in kernels.,
9+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Arrays.RefType[]' is an array of type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Arrays.RefType', which is a managed type. Arrays of managed types cannot be used in kernels.,
1010
Category: Usage
1111
},
1212
{
@@ -16,7 +16,7 @@
1616
WarningLevel: 1,
1717
Location: : (29,27)-(29,40),
1818
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
19-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Arrays.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
19+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Arrays.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
2020
Category: Usage
2121
}
2222
]

Src/ILGPU.Analyzers.Tests/Snapshots/ManagedTypeAnalyzer.FileTests_file=Complex.verified.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
WarningLevel: 1,
77
Location: : (40,22)-(40,35),
88
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
9-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.ManagedUnmanaged.Managed' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
9+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.ManagedUnmanaged.Managed' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
1010
Category: Usage
1111
}
1212
]

Src/ILGPU.Analyzers.Tests/Snapshots/ManagedTypeAnalyzer.FileTests_file=Constructors.verified.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
WarningLevel: 1,
77
Location: : (17,20)-(17,33),
88
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
9-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Constructors.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
9+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Constructors.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
1010
Category: Usage
1111
}
1212
]

Src/ILGPU.Analyzers.Tests/Snapshots/ManagedTypeAnalyzer.FileTests_file=Functions.verified.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
WarningLevel: 1,
77
Location: : (20,27)-(20,40),
88
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
9-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
9+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
1010
Category: Usage
1111
},
1212
{
@@ -16,7 +16,7 @@
1616
WarningLevel: 1,
1717
Location: : (14,27)-(14,40),
1818
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
19-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
19+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
2020
Category: Usage
2121
},
2222
{
@@ -26,7 +26,7 @@
2626
WarningLevel: 1,
2727
Location: : (32,15)-(32,28),
2828
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
29-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
29+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
3030
Category: Usage
3131
}
3232
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[]

Src/ILGPU.Analyzers.Tests/Snapshots/ManagedTypeAnalyzer.FileTests_file=LoadDiscovery.verified.txt

+6-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
WarningLevel: 1,
77
Location: : (14,21)-(14,34),
88
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
9-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
9+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
1010
Category: Usage
1111
},
1212
{
@@ -16,7 +16,7 @@
1616
WarningLevel: 1,
1717
Location: : (19,21)-(19,34),
1818
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
19-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
19+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
2020
Category: Usage
2121
},
2222
{
@@ -26,7 +26,7 @@
2626
WarningLevel: 1,
2727
Location: : (24,21)-(24,34),
2828
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
29-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
29+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
3030
Category: Usage
3131
},
3232
{
@@ -36,7 +36,7 @@
3636
WarningLevel: 1,
3737
Location: : (29,21)-(29,34),
3838
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
39-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
39+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
4040
Category: Usage
4141
},
4242
{
@@ -46,7 +46,7 @@
4646
WarningLevel: 1,
4747
Location: : (34,21)-(34,34),
4848
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
49-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
49+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
5050
Category: Usage
5151
},
5252
{
@@ -56,7 +56,7 @@
5656
WarningLevel: 1,
5757
Location: : (39,21)-(39,34),
5858
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
59-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
59+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Functions.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
6060
Category: Usage
6161
}
6262
]

Src/ILGPU.Analyzers.Tests/Snapshots/ManagedTypeAnalyzer.FileTests_file=Simple.verified.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
WarningLevel: 1,
77
Location: : (13,22)-(13,35),
88
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
9-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Simple.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
9+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Simple.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
1010
Category: Usage
1111
},
1212
{
@@ -16,7 +16,7 @@
1616
WarningLevel: 1,
1717
Location: : (14,38)-(14,45),
1818
MessageFormat: Type '{0}' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
19-
Message: Type 'ILGPU.Analyzers.Tests.Programs.RefType.Simple.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
19+
Message: Type 'ILGPU.Analyzers.Tests.Programs.ManagedType.Simple.RefType' is a managed type. Managed types like classes cannot be used in kernels, except for arrays of unmanaged types.,
2020
Category: Usage
2121
}
2222
]

Src/ILGPU.Analyzers/ILGPU.Analyzers.csproj

+18-9
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,6 @@
3636
</ItemGroup>
3737

3838
<ItemGroup>
39-
<Compile Update="Resources\DiagnosticCategory.Designer.cs">
40-
<DesignTime>True</DesignTime>
41-
<AutoGen>True</AutoGen>
42-
<DependentUpon>DiagnosticCategory.resx</DependentUpon>
43-
</Compile>
4439
<Compile Update="Resources\ILA001_StructMustBePartial.Designer.cs">
4540
<DesignTime>True</DesignTime>
4641
<AutoGen>True</AutoGen>
@@ -51,13 +46,19 @@
5146
<AutoGen>True</AutoGen>
5247
<DependentUpon>ILA002_ContainingTypeMustBePartial.resx</DependentUpon>
5348
</Compile>
49+
<Compile Update="Resources\ILA003_ManagedTypeInKernel.resx">
50+
<DesignTime>True</DesignTime>
51+
<AutoGen>True</AutoGen>
52+
<DependentUpon>ILA003_ManagedTypeInKernel.Designer.cs</DependentUpon>
53+
</Compile>
54+
<Compile Update="Resources\ILA004_ManagedTypeArrayInKernel.resx">
55+
<DesignTime>True</DesignTime>
56+
<AutoGen>True</AutoGen>
57+
<DependentUpon>ILA004_ManagedTypeArrayInKernel.Designer.cs</DependentUpon>
58+
</Compile>
5459
</ItemGroup>
5560

5661
<ItemGroup>
57-
<EmbeddedResource Update="Resources\DiagnosticCategory.resx">
58-
<Generator>ResXFileCodeGenerator</Generator>
59-
<LastGenOutput>DiagnosticCategory.Designer.cs</LastGenOutput>
60-
</EmbeddedResource>
6162
<EmbeddedResource Update="Resources\ILA001_StructMustBePartial.resx">
6263
<Generator>ResXFileCodeGenerator</Generator>
6364
<LastGenOutput>ILA001_StructMustBePartial.Designer.cs</LastGenOutput>
@@ -66,6 +67,14 @@
6667
<Generator>ResXFileCodeGenerator</Generator>
6768
<LastGenOutput>ILA002_ContainingTypeMustBePartial.Designer.cs</LastGenOutput>
6869
</EmbeddedResource>
70+
<EmbeddedResource Update="Resources\ILA003_ManagedTypeInKernel.resx">
71+
<Generator>ResXFileCodeGenerator</Generator>
72+
<LastGenOutput>ILA003_ManagedTypeInKernel.Designer.cs</LastGenOutput>
73+
</EmbeddedResource>
74+
<EmbeddedResource Update="Resources\ILA004_ManagedTypeArrayInKernel.resx">
75+
<Generator>ResXFileCodeGenerator</Generator>
76+
<LastGenOutput>ILA004_ManagedTypeArrayInKernel.Designer.cs</LastGenOutput>
77+
</EmbeddedResource>
6978
</ItemGroup>
7079

7180
</Project>

0 commit comments

Comments
 (0)