summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBruce Forstall <brucefo@microsoft.com>2018-02-21 21:58:41 -0800
committerJan Kotas <jkotas@microsoft.com>2018-02-21 21:58:41 -0800
commiteae9c75b53bb88dfe0914b247a8d379621de61af (patch)
tree9c4123b969ee3311e87a026b8533ae63bfb2d463 /tests
parent9264ec999eb42ecff8cd36068b051cf6e8f16501 (diff)
downloadcoreclr-eae9c75b53bb88dfe0914b247a8d379621de61af.tar.gz
coreclr-eae9c75b53bb88dfe0914b247a8d379621de61af.tar.bz2
coreclr-eae9c75b53bb88dfe0914b247a8d379621de61af.zip
Fix StructPacking test for ARM (#16484)
Use RuntimeInformation.ProcessArchitecture instead of RuntimeInformation.OSArchitecture, as for Windows ARM we normally run in the WoW layer. Also, `double` on ARM is 8 byte aligned, but was going down the x86 code path that assumes 4-byte alignment. Finally, add this test to the Windows ARM and Windows ARM64 test runs by adding it to the respective tests.lst files.
Diffstat (limited to 'tests')
-rw-r--r--tests/arm/Tests.lst8
-rw-r--r--tests/arm64/Tests.lst7
-rw-r--r--tests/src/Interop/StructPacking/StructPacking.cs58
3 files changed, 44 insertions, 29 deletions
diff --git a/tests/arm/Tests.lst b/tests/arm/Tests.lst
index 407ab2cd7d..19e9c10275 100644
--- a/tests/arm/Tests.lst
+++ b/tests/arm/Tests.lst
@@ -90819,3 +90819,11 @@ Expected=0
MaxAllowedDurationSeconds=600
Categories=EXPECTED_PASS
HostStyle=0
+
+[StructPacking.cmd_11402]
+RelativePath=Interop\StructPacking\StructPacking\StructPacking.cmd
+WorkingDir=Interop\StructPacking\StructPacking
+Expected=0
+MaxAllowedDurationSeconds=600
+Categories=EXPECTED_PASS
+HostStyle=0
diff --git a/tests/arm64/Tests.lst b/tests/arm64/Tests.lst
index 2c93e499da..865f1fe73a 100644
--- a/tests/arm64/Tests.lst
+++ b/tests/arm64/Tests.lst
@@ -90820,3 +90820,10 @@ MaxAllowedDurationSeconds=600
Categories=EXPECTED_PASS
HostStyle=0
+[StructPacking.cmd_11720]
+RelativePath=Interop\StructPacking\StructPacking\StructPacking.cmd
+WorkingDir=Interop\StructPacking\StructPacking
+Expected=0
+MaxAllowedDurationSeconds=600
+Categories=EXPECTED_PASS
+HostStyle=0
diff --git a/tests/src/Interop/StructPacking/StructPacking.cs b/tests/src/Interop/StructPacking/StructPacking.cs
index 6df179d98a..ad27ef64a9 100644
--- a/tests/src/Interop/StructPacking/StructPacking.cs
+++ b/tests/src/Interop/StructPacking/StructPacking.cs
@@ -287,7 +287,7 @@ unsafe class Program
{
bool succeeded = true;
- if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) || (RuntimeInformation.OSArchitecture != Architecture.X86))
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) || (RuntimeInformation.ProcessArchitecture != Architecture.X86))
{
succeeded &= Test<DefaultLayoutDefaultPacking<double>>(
expectedSize: 16,
@@ -313,7 +313,7 @@ unsafe class Program
expectedOffsetValue: 8
);
- if (Environment.Is64BitProcess)
+ if (RuntimeInformation.ProcessArchitecture != Architecture.X86)
{
succeeded &= Test<AutoLayoutDefaultPacking<double>>(
expectedSize: 16,
@@ -506,7 +506,7 @@ unsafe class Program
{
bool succeeded = true;
- if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) || (RuntimeInformation.OSArchitecture != Architecture.X86))
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) || (RuntimeInformation.ProcessArchitecture != Architecture.X86))
{
succeeded &= Test<DefaultLayoutDefaultPacking<long>>(
expectedSize: 16,
@@ -532,7 +532,7 @@ unsafe class Program
expectedOffsetValue: 8
);
- if (Environment.Is64BitProcess)
+ if (RuntimeInformation.ProcessArchitecture != Architecture.X86)
{
succeeded &= Test<AutoLayoutDefaultPacking<long>>(
expectedSize: 16,
@@ -919,47 +919,47 @@ unsafe class Program
{
bool succeeded = true;
- if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) || (RuntimeInformation.OSArchitecture != Architecture.X86))
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) || (RuntimeInformation.ProcessArchitecture != Architecture.X86))
{
- succeeded &= Test<DefaultLayoutDefaultPacking<double>>(
+ succeeded &= Test<DefaultLayoutDefaultPacking<ulong>>(
expectedSize: 16,
expectedOffsetByte: 0,
expectedOffsetValue: 8
);
- succeeded &= Test<SequentialLayoutDefaultPacking<double>>(
+ succeeded &= Test<SequentialLayoutDefaultPacking<ulong>>(
expectedSize: 16,
expectedOffsetByte: 0,
expectedOffsetValue: 8
);
- succeeded &= Test<SequentialLayoutMinPacking<double>>(
+ succeeded &= Test<SequentialLayoutMinPacking<ulong>>(
expectedSize: 9,
expectedOffsetByte: 0,
expectedOffsetValue: 1
);
- succeeded &= Test<SequentialLayoutMaxPacking<double>>(
+ succeeded &= Test<SequentialLayoutMaxPacking<ulong>>(
expectedSize: 16,
expectedOffsetByte: 0,
expectedOffsetValue: 8
);
- if (Environment.Is64BitProcess)
+ if (RuntimeInformation.ProcessArchitecture != Architecture.X86)
{
- succeeded &= Test<AutoLayoutDefaultPacking<double>>(
+ succeeded &= Test<AutoLayoutDefaultPacking<ulong>>(
expectedSize: 16,
expectedOffsetByte: 8,
expectedOffsetValue: 0
);
- succeeded &= Test<AutoLayoutMinPacking<double>>(
+ succeeded &= Test<AutoLayoutMinPacking<ulong>>(
expectedSize: 16,
expectedOffsetByte: 8,
expectedOffsetValue: 0
);
- succeeded &= Test<AutoLayoutMaxPacking<double>>(
+ succeeded &= Test<AutoLayoutMaxPacking<ulong>>(
expectedSize: 16,
expectedOffsetByte: 8,
expectedOffsetValue: 0
@@ -967,19 +967,19 @@ unsafe class Program
}
else
{
- succeeded &= Test<AutoLayoutDefaultPacking<double>>(
+ succeeded &= Test<AutoLayoutDefaultPacking<ulong>>(
expectedSize: 12,
expectedOffsetByte: 8,
expectedOffsetValue: 0
);
- succeeded &= Test<AutoLayoutMinPacking<double>>(
+ succeeded &= Test<AutoLayoutMinPacking<ulong>>(
expectedSize: 12,
expectedOffsetByte: 8,
expectedOffsetValue: 0
);
- succeeded &= Test<AutoLayoutMaxPacking<double>>(
+ succeeded &= Test<AutoLayoutMaxPacking<ulong>>(
expectedSize: 12,
expectedOffsetByte: 8,
expectedOffsetValue: 0
@@ -990,43 +990,43 @@ unsafe class Program
{
// The System V ABI for i386 defines this type as having 4-byte alignment
- succeeded &= Test<DefaultLayoutDefaultPacking<double>>(
+ succeeded &= Test<DefaultLayoutDefaultPacking<ulong>>(
expectedSize: 12,
expectedOffsetByte: 0,
expectedOffsetValue: 4
);
- succeeded &= Test<SequentialLayoutDefaultPacking<double>>(
+ succeeded &= Test<SequentialLayoutDefaultPacking<ulong>>(
expectedSize: 12,
expectedOffsetByte: 0,
expectedOffsetValue: 4
);
- succeeded &= Test<SequentialLayoutMinPacking<double>>(
+ succeeded &= Test<SequentialLayoutMinPacking<ulong>>(
expectedSize: 9,
expectedOffsetByte: 0,
expectedOffsetValue: 1
);
- succeeded &= Test<SequentialLayoutMaxPacking<double>>(
+ succeeded &= Test<SequentialLayoutMaxPacking<ulong>>(
expectedSize: 12,
expectedOffsetByte: 0,
expectedOffsetValue: 4
);
- succeeded &= Test<AutoLayoutDefaultPacking<double>>(
+ succeeded &= Test<AutoLayoutDefaultPacking<ulong>>(
expectedSize: 12,
expectedOffsetByte: 0,
expectedOffsetValue: 4
);
- succeeded &= Test<AutoLayoutMinPacking<double>>(
+ succeeded &= Test<AutoLayoutMinPacking<ulong>>(
expectedSize: 12,
expectedOffsetByte: 0,
expectedOffsetValue: 4
);
- succeeded &= Test<AutoLayoutMaxPacking<double>>(
+ succeeded &= Test<AutoLayoutMaxPacking<ulong>>(
expectedSize: 12,
expectedOffsetByte: 0,
expectedOffsetValue: 4
@@ -1160,7 +1160,7 @@ unsafe class Program
expectedOffsetValue: 8
);
- if (Environment.Is64BitProcess)
+ if (RuntimeInformation.ProcessArchitecture != Architecture.X86)
{
succeeded &= Test<AutoLayoutDefaultPacking<Vector64<byte>>>(
expectedSize: 16,
@@ -1208,7 +1208,7 @@ unsafe class Program
{
bool succeeded = true;
- if (RuntimeInformation.OSArchitecture == Architecture.Arm)
+ if (RuntimeInformation.ProcessArchitecture == Architecture.Arm)
{
// The Procedure Call Standard for ARM defines this type as having 8-byte alignment
@@ -1257,7 +1257,7 @@ unsafe class Program
expectedOffsetValue: 1
);
- if (Environment.Is64BitProcess)
+ if (RuntimeInformation.ProcessArchitecture != Architecture.X86)
{
succeeded &= Test<AutoLayoutDefaultPacking<Vector128<byte>>>(
expectedSize: 24,
@@ -1305,7 +1305,7 @@ unsafe class Program
{
bool succeeded = true;
- if (RuntimeInformation.OSArchitecture == Architecture.Arm)
+ if (RuntimeInformation.ProcessArchitecture == Architecture.Arm)
{
// The Procedure Call Standard for ARM defines this type as having 8-byte alignment
@@ -1327,7 +1327,7 @@ unsafe class Program
expectedOffsetValue: 8
);
}
- else if (RuntimeInformation.OSArchitecture == Architecture.Arm64)
+ else if (RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
{
// The Procedure Call Standard for ARM64 defines this type as having 16-byte alignment
@@ -1376,7 +1376,7 @@ unsafe class Program
expectedOffsetValue: 1
);
- if (Environment.Is64BitProcess)
+ if (RuntimeInformation.ProcessArchitecture != Architecture.X86)
{
succeeded &= Test<AutoLayoutDefaultPacking<Vector256<byte>>>(
expectedSize: 40,