Tests: Add Enums field offsets test (#62)

This commit is contained in:
Katy Coe
2020-09-03 07:16:10 +02:00
parent af3aa4eed2
commit ed91f2a3e0
14 changed files with 2269364 additions and 1 deletions

View File

@@ -83,7 +83,11 @@
<Content Include="TestExpectedResults\PartialGenericTypes-ARM64.cs" /> <Content Include="TestExpectedResults\PartialGenericTypes-ARM64.cs" />
<Content Include="TestExpectedResults\VTablesAndLayout-ARMv7.cs" /> <Content Include="TestExpectedResults\VTablesAndLayout-ARMv7.cs" />
<Content Include="TestExpectedResults\VTablesAndLayout-ARM64.cs" /> <Content Include="TestExpectedResults\VTablesAndLayout-ARM64.cs" />
<Content Include="TestExpectedResults\GameAssembly-Enums-x64.cs" />
<Content Include="TestExpectedResults\GameAssembly-Enums-x86.cs" />
<Content Include="TestExpectedResults\Enums-ARMv7.cs" />
<Content Include="TestExpectedResults\Enums-ARM64.cs" />
<Content Include="TestExpectedResults\ExplicitInterfaces-ARMv7.json" /> <Content Include="TestExpectedResults\ExplicitInterfaces-ARMv7.json" />
<Content Include="TestExpectedResults\ExplicitInterfaces-ARM64.json" /> <Content Include="TestExpectedResults\ExplicitInterfaces-ARM64.json" />
<Content Include="TestExpectedResults\GameAssembly-ExplicitInterfaces-x64.json" /> <Content Include="TestExpectedResults\GameAssembly-ExplicitInterfaces-x64.json" />
@@ -136,6 +140,11 @@
<Content Include="TestExpectedResults\PartialGenericTypes-ARM64.json" /> <Content Include="TestExpectedResults\PartialGenericTypes-ARM64.json" />
<Content Include="TestExpectedResults\VTablesAndLayout-ARMv7.json" /> <Content Include="TestExpectedResults\VTablesAndLayout-ARMv7.json" />
<Content Include="TestExpectedResults\VTablesAndLayout-ARM64.json" /> <Content Include="TestExpectedResults\VTablesAndLayout-ARM64.json" />
<Content Include="TestExpectedResults\GameAssembly-Enums-x64.json" />
<Content Include="TestExpectedResults\GameAssembly-Enums-x86.json" />
<Content Include="TestExpectedResults\Enums-ARMv7.json" />
<Content Include="TestExpectedResults\Enums-ARM64.json" />
<Content Include="TestExpectedResults\ExplicitInterfaces-ARMv7.h" /> <Content Include="TestExpectedResults\ExplicitInterfaces-ARMv7.h" />
<Content Include="TestExpectedResults\ExplicitInterfaces-ARM64.h" /> <Content Include="TestExpectedResults\ExplicitInterfaces-ARM64.h" />
@@ -189,6 +198,10 @@
<Content Include="TestExpectedResults\PartialGenericTypes-ARM64.h" /> <Content Include="TestExpectedResults\PartialGenericTypes-ARM64.h" />
<Content Include="TestExpectedResults\VTablesAndLayout-ARMv7.h" /> <Content Include="TestExpectedResults\VTablesAndLayout-ARMv7.h" />
<Content Include="TestExpectedResults\VTablesAndLayout-ARM64.h" /> <Content Include="TestExpectedResults\VTablesAndLayout-ARM64.h" />
<Content Include="TestExpectedResults\GameAssembly-Enums-x64.h" />
<Content Include="TestExpectedResults\GameAssembly-Enums-x86.h" />
<Content Include="TestExpectedResults\Enums-ARMv7.h" />
<Content Include="TestExpectedResults\Enums-ARM64.h" />
</ItemGroup> </ItemGroup>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,79 @@
/*
Copyright 2020 Katy Coe - http://www.djkaty.com - https://github.com/djkaty
All rights reserved.
*/
namespace Il2CppTests.TestSources
{
// Test to ensure that offsets in structs and classes are calculated correctly for various enum field sizes
#pragma warning disable CS0169
public enum EnumOfSize1 : byte
{
Option1,
Option2,
Option3
}
public enum EnumOfSize2 : ushort
{
Option1,
Option2,
Option3
}
public enum EnumOfSize4 : int
{
Option1,
Option2,
Option3
}
public enum EnumOfSize8 : ulong
{
Option1,
Option2,
Option3
}
public struct StructWithEnumFields
{
ushort a;
EnumOfSize1 b;
ushort c;
EnumOfSize2 d;
ushort e;
EnumOfSize4 f;
ushort g;
EnumOfSize8 h;
ushort i;
}
public class ClassWithEnumFields
{
ushort a;
EnumOfSize1 b;
ushort c;
EnumOfSize2 d;
ushort e;
EnumOfSize4 f;
ushort g;
EnumOfSize8 h;
ushort i;
}
public class ClassWithEnumAutoProperties
{
ushort a { get; }
EnumOfSize1 b { get; }
ushort c { get; }
EnumOfSize2 d { get; }
ushort e { get; }
EnumOfSize4 f { get; }
ushort g { get; }
EnumOfSize8 h { get; }
ushort i { get; }
}
#pragma warning disable CS0169
}