Browse Source

Add more usermessages

pull/3014/head
Stefan Nikolei 8 months ago
parent
commit
eca4734ad1
  1. 176
      tests/ImageSharp.Tests/TestUtilities/Tests/FeatureTestRunnerTests.cs

176
tests/ImageSharp.Tests/TestUtilities/Tests/FeatureTestRunnerTests.cs

@ -47,7 +47,7 @@ public class FeatureTestRunnerTests
}
FeatureTestRunner.RunWithHwIntrinsicsFeature(
() => Assert.True(Vector.IsHardwareAccelerated),
() => Assert.True(Vector.IsHardwareAccelerated, "Vector hardware acceleration should be enabled when AllowAll is specified."),
HwIntrinsics.AllowAll);
}
@ -56,21 +56,21 @@ public class FeatureTestRunnerTests
{
static void AssertDisabled()
{
Assert.False(Sse.IsSupported);
Assert.False(Sse2.IsSupported);
Assert.False(Aes.IsSupported);
Assert.False(Pclmulqdq.IsSupported);
Assert.False(Sse3.IsSupported);
Assert.False(Ssse3.IsSupported);
Assert.False(Sse41.IsSupported);
Assert.False(Sse42.IsSupported);
Assert.False(Popcnt.IsSupported);
Assert.False(Avx.IsSupported);
Assert.False(Fma.IsSupported);
Assert.False(Avx2.IsSupported);
Assert.False(Bmi1.IsSupported);
Assert.False(Bmi2.IsSupported);
Assert.False(Lzcnt.IsSupported);
Assert.False(Sse.IsSupported, "SSE should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse2.IsSupported, "SSE2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Aes.IsSupported, "AES (x86) should be disabled when DisableHWIntrinsic is set.");
Assert.False(Pclmulqdq.IsSupported, "PCLMULQDQ should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse3.IsSupported, "SSE3 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Ssse3.IsSupported, "SSSE3 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse41.IsSupported, "SSE4.1 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse42.IsSupported, "SSE4.2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Popcnt.IsSupported, "POPCNT should be disabled when DisableHWIntrinsic is set.");
Assert.False(Avx.IsSupported, "AVX should be disabled when DisableHWIntrinsic is set.");
Assert.False(Fma.IsSupported, "FMA should be disabled when DisableHWIntrinsic is set.");
Assert.False(Avx2.IsSupported, "AVX2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Bmi1.IsSupported, "BMI1 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Bmi2.IsSupported, "BMI2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Lzcnt.IsSupported, "LZCNT should be disabled when DisableHWIntrinsic is set.");
}
FeatureTestRunner.RunWithHwIntrinsicsFeature(
@ -88,31 +88,33 @@ public class FeatureTestRunnerTests
switch (Enum.Parse<HwIntrinsics>(intrinsic))
{
case HwIntrinsics.DisableHWIntrinsic:
Assert.False(Sse.IsSupported);
Assert.False(Sse2.IsSupported);
Assert.False(Aes.IsSupported);
Assert.False(Pclmulqdq.IsSupported);
Assert.False(Sse3.IsSupported);
Assert.False(Ssse3.IsSupported);
Assert.False(Sse41.IsSupported);
Assert.False(Sse42.IsSupported);
Assert.False(Popcnt.IsSupported);
Assert.False(Avx.IsSupported);
Assert.False(Fma.IsSupported);
Assert.False(Avx2.IsSupported);
Assert.False(Bmi1.IsSupported);
Assert.False(Bmi2.IsSupported);
Assert.False(Lzcnt.IsSupported);
Assert.False(AdvSimd.IsSupported);
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported);
Assert.False(Crc32.IsSupported);
Assert.False(Dp.IsSupported);
Assert.False(Sha1.IsSupported);
Assert.False(Sha256.IsSupported);
Assert.False(Sse.IsSupported, "SSE should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse2.IsSupported, "SSE2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Aes.IsSupported, "AES (x86) should be disabled when DisableHWIntrinsic is set.");
Assert.False(Pclmulqdq.IsSupported, "PCLMULQDQ should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse3.IsSupported, "SSE3 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Ssse3.IsSupported, "SSSE3 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse41.IsSupported, "SSE4.1 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse42.IsSupported, "SSE4.2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Popcnt.IsSupported, "POPCNT should be disabled when DisableHWIntrinsic is set.");
Assert.False(Avx.IsSupported, "AVX should be disabled when DisableHWIntrinsic is set.");
Assert.False(Fma.IsSupported, "FMA should be disabled when DisableHWIntrinsic is set.");
Assert.False(Avx2.IsSupported, "AVX2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Bmi1.IsSupported, "BMI1 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Bmi2.IsSupported, "BMI2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Lzcnt.IsSupported, "LZCNT should be disabled when DisableHWIntrinsic is set.");
Assert.False(AdvSimd.IsSupported, "Arm64 AdvSimd should be disabled when DisableHWIntrinsic is set.");
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported, "Arm64 AES should be disabled when DisableHWIntrinsic is set.");
Assert.False(Crc32.IsSupported, "Arm64 CRC32 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Dp.IsSupported, "Arm64 DotProd (DP) should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sha1.IsSupported, "Arm64 SHA1 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sha256.IsSupported, "Arm64 SHA256 should be disabled when DisableHWIntrinsic is set.");
break;
case HwIntrinsics.DisableAES:
Assert.False(Aes.IsSupported);
Assert.False(Pclmulqdq.IsSupported);
Assert.False(Aes.IsSupported, "AES (x86) should be disabled when DisableAES is set.");
#if NET10_0_OR_GREATER
Assert.False(Pclmulqdq.IsSupported, "PCLMULQDQ should be disabled when DisableAES is set (paired disable).");
#endif
break;
case HwIntrinsics.DisableSSE42:
#if NET10_0_OR_GREATER
@ -121,35 +123,35 @@ public class FeatureTestRunnerTests
Assert.False(Sse41.IsSupported, "Sse41 should be disabled.");
Assert.False(Popcnt.IsSupported, "Popcnt should be disabled.");
#else
Assert.False(Sse42.IsSupported, "Sse42 should be disabled.");
Assert.False(Sse42.IsSupported, "Sse42 should be disabled when DisableSSE42 is set.");
#endif
break;
case HwIntrinsics.DisableAVX:
Assert.False(Avx.IsSupported);
Assert.False(Avx.IsSupported, "AVX should be disabled when DisableAVX is set.");
break;
case HwIntrinsics.DisableAVX2:
Assert.False(Avx2.IsSupported);
Assert.False(Avx2.IsSupported, "AVX2 should be disabled when DisableAVX2 is set.");
#if NET10_0_OR_GREATER
Assert.False(Fma.IsSupported);
Assert.False(Bmi1.IsSupported);
Assert.False(Bmi2.IsSupported);
Assert.False(Lzcnt.IsSupported);
Assert.False(Fma.IsSupported, "FMA should be disabled when DisableAVX2 is set (paired disable).");
Assert.False(Bmi1.IsSupported, "BMI1 should be disabled when DisableAVX2 is set (paired disable).");
Assert.False(Bmi2.IsSupported, "BMI2 should be disabled when DisableAVX2 is set (paired disable).");
Assert.False(Lzcnt.IsSupported, "LZCNT should be disabled when DisableAVX2 is set (paired disable).");
#endif
break;
case HwIntrinsics.DisableArm64Aes:
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported);
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported, "Arm64 AES should be disabled when DisableArm64Aes is set.");
break;
case HwIntrinsics.DisableArm64Crc32:
Assert.False(Crc32.IsSupported);
Assert.False(Crc32.IsSupported, "Arm64 CRC32 should be disabled when DisableArm64Crc32 is set.");
break;
case HwIntrinsics.DisableArm64Dp:
Assert.False(Dp.IsSupported);
Assert.False(Dp.IsSupported, "Arm64 DotProd (DP) should be disabled when DisableArm64Dp is set.");
break;
case HwIntrinsics.DisableArm64Sha1:
Assert.False(Sha1.IsSupported);
Assert.False(Sha1.IsSupported, "Arm64 SHA1 should be disabled when DisableArm64Sha1 is set.");
break;
case HwIntrinsics.DisableArm64Sha256:
Assert.False(Sha256.IsSupported);
Assert.False(Sha256.IsSupported, "Arm64 SHA256 should be disabled when DisableArm64Sha256 is set.");
break;
}
}
@ -167,7 +169,7 @@ public class FeatureTestRunnerTests
{
Assert.NotNull(serializable);
Assert.NotNull(FeatureTestRunner.DeserializeForXunit<FakeSerializable>(serializable));
Assert.False(Sse.IsSupported);
Assert.False(Sse.IsSupported, "SSE should be disabled when DisableSSE42 is set (sanity check using serializable param overload).");
}
FeatureTestRunner.RunWithHwIntrinsicsFeature(
@ -187,32 +189,32 @@ public class FeatureTestRunnerTests
switch (Enum.Parse<HwIntrinsics>(intrinsic))
{
case HwIntrinsics.DisableHWIntrinsic:
Assert.False(Sse.IsSupported);
Assert.False(Sse2.IsSupported);
Assert.False(Aes.IsSupported);
Assert.False(Pclmulqdq.IsSupported);
Assert.False(Sse3.IsSupported);
Assert.False(Ssse3.IsSupported);
Assert.False(Sse41.IsSupported);
Assert.False(Sse42.IsSupported);
Assert.False(Popcnt.IsSupported);
Assert.False(Avx.IsSupported);
Assert.False(Fma.IsSupported);
Assert.False(Avx2.IsSupported);
Assert.False(Bmi1.IsSupported);
Assert.False(Bmi2.IsSupported);
Assert.False(Lzcnt.IsSupported);
Assert.False(AdvSimd.IsSupported);
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported);
Assert.False(Crc32.IsSupported);
Assert.False(Dp.IsSupported);
Assert.False(Sha1.IsSupported);
Assert.False(Sha256.IsSupported);
Assert.False(Sse.IsSupported, "SSE should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse2.IsSupported, "SSE2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Aes.IsSupported, "AES (x86) should be disabled when DisableHWIntrinsic is set.");
Assert.False(Pclmulqdq.IsSupported, "PCLMULQDQ should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse3.IsSupported, "SSE3 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Ssse3.IsSupported, "SSSE3 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse41.IsSupported, "SSE4.1 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sse42.IsSupported, "SSE4.2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Popcnt.IsSupported, "POPCNT should be disabled when DisableHWIntrinsic is set.");
Assert.False(Avx.IsSupported, "AVX should be disabled when DisableHWIntrinsic is set.");
Assert.False(Fma.IsSupported, "FMA should be disabled when DisableHWIntrinsic is set.");
Assert.False(Avx2.IsSupported, "AVX2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Bmi1.IsSupported, "BMI1 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Bmi2.IsSupported, "BMI2 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Lzcnt.IsSupported, "LZCNT should be disabled when DisableHWIntrinsic is set.");
Assert.False(AdvSimd.IsSupported, "Arm64 AdvSimd should be disabled when DisableHWIntrinsic is set.");
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported, "Arm64 AES should be disabled when DisableHWIntrinsic is set.");
Assert.False(Crc32.IsSupported, "Arm64 CRC32 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Dp.IsSupported, "Arm64 DotProd (DP) should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sha1.IsSupported, "Arm64 SHA1 should be disabled when DisableHWIntrinsic is set.");
Assert.False(Sha256.IsSupported, "Arm64 SHA256 should be disabled when DisableHWIntrinsic is set.");
break;
case HwIntrinsics.DisableAES:
Assert.False(Aes.IsSupported);
Assert.False(Aes.IsSupported, "AES (x86) should be disabled when DisableAES is set.");
#if NET10_0_OR_GREATER
Assert.False(Pclmulqdq.IsSupported);
Assert.False(Pclmulqdq.IsSupported, "PCLMULQDQ should be disabled when DisableAES is set (paired disable).");
#endif
break;
case HwIntrinsics.DisableSSE42:
@ -222,34 +224,34 @@ public class FeatureTestRunnerTests
Assert.False(Sse41.IsSupported, "Sse41 should be disabled.");
Assert.False(Popcnt.IsSupported, "Popcnt should be disabled.");
#endif
Assert.False(Sse42.IsSupported, "Sse42 should be disabled.");
Assert.False(Sse42.IsSupported, "Sse42 should be disabled when DisableSSE42 is set.");
break;
case HwIntrinsics.DisableAVX:
Assert.False(Avx.IsSupported);
Assert.False(Avx.IsSupported, "AVX should be disabled when DisableAVX is set.");
break;
case HwIntrinsics.DisableAVX2:
Assert.False(Avx2.IsSupported);
Assert.False(Avx2.IsSupported, "AVX2 should be disabled when DisableAVX2 is set.");
#if NET10_0_OR_GREATER
Assert.False(Fma.IsSupported);
Assert.False(Bmi1.IsSupported);
Assert.False(Bmi2.IsSupported);
Assert.False(Lzcnt.IsSupported);
Assert.False(Fma.IsSupported, "FMA should be disabled when DisableAVX2 is set (paired disable).");
Assert.False(Bmi1.IsSupported, "BMI1 should be disabled when DisableAVX2 is set (paired disable).");
Assert.False(Bmi2.IsSupported, "BMI2 should be disabled when DisableAVX2 is set (paired disable).");
Assert.False(Lzcnt.IsSupported, "LZCNT should be disabled when DisableAVX2 is set (paired disable).");
#endif
break;
case HwIntrinsics.DisableArm64Aes:
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported);
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported, "Arm64 AES should be disabled when DisableArm64Aes is set.");
break;
case HwIntrinsics.DisableArm64Crc32:
Assert.False(Crc32.IsSupported);
Assert.False(Crc32.IsSupported, "Arm64 CRC32 should be disabled when DisableArm64Crc32 is set.");
break;
case HwIntrinsics.DisableArm64Dp:
Assert.False(Dp.IsSupported);
Assert.False(Dp.IsSupported, "Arm64 DotProd (DP) should be disabled when DisableArm64Dp is set.");
break;
case HwIntrinsics.DisableArm64Sha1:
Assert.False(Sha1.IsSupported);
Assert.False(Sha1.IsSupported, "Arm64 SHA1 should be disabled when DisableArm64Sha1 is set.");
break;
case HwIntrinsics.DisableArm64Sha256:
Assert.False(Sha256.IsSupported);
Assert.False(Sha256.IsSupported, "Arm64 SHA256 should be disabled when DisableArm64Sha256 is set.");
break;
}
}

Loading…
Cancel
Save