Browse Source

Enable additional tests

js/color-alpha-handling
James Jackson-South 6 years ago
parent
commit
911d28993c
  1. 341
      tests/ImageSharp.Tests/TestUtilities/Tests/FeatureTestRunnerTests.cs

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

@ -46,7 +46,7 @@ namespace SixLabors.ImageSharp.Tests.TestUtilities.Tests
public void AllowsAllHwIntrinsicFeatures() public void AllowsAllHwIntrinsicFeatures()
{ {
FeatureTestRunner.RunWithHwIntrinsicsFeature( FeatureTestRunner.RunWithHwIntrinsicsFeature(
() => Assert.True(Vector.IsHardwareAccelerated, nameof(Vector.IsHardwareAccelerated)), () => Assert.True(Vector.IsHardwareAccelerated),
HwIntrinsics.AllowAll); HwIntrinsics.AllowAll);
} }
@ -54,7 +54,7 @@ namespace SixLabors.ImageSharp.Tests.TestUtilities.Tests
public void CanLimitHwIntrinsicSIMDFeatures() public void CanLimitHwIntrinsicSIMDFeatures()
{ {
FeatureTestRunner.RunWithHwIntrinsicsFeature( FeatureTestRunner.RunWithHwIntrinsicsFeature(
() => Assert.False(Vector.IsHardwareAccelerated, nameof(Vector.IsHardwareAccelerated)), () => Assert.False(Vector.IsHardwareAccelerated),
HwIntrinsics.DisableSIMD); HwIntrinsics.DisableSIMD);
} }
@ -87,170 +87,195 @@ namespace SixLabors.ImageSharp.Tests.TestUtilities.Tests
} }
#endif #endif
// [Fact] [Fact]
// public void CanLimitHwIntrinsicFeaturesWithIntrinsicsParam() public void CanLimitHwIntrinsicFeaturesWithIntrinsicsParam()
// { {
// static void AssertHwIntrinsicsFeatureDisabled(string intrinsic) static void AssertHwIntrinsicsFeatureDisabled(string intrinsic)
// { {
// Assert.NotNull(intrinsic); Assert.NotNull(intrinsic);
// switch ((HwIntrinsics)Enum.Parse(typeof(HwIntrinsics), intrinsic)) switch ((HwIntrinsics)Enum.Parse(typeof(HwIntrinsics), intrinsic))
// { {
// case HwIntrinsics.DisableSIMD: case HwIntrinsics.DisableSIMD:
// Assert.False(Vector.IsHardwareAccelerated); Assert.False(Vector.IsHardwareAccelerated);
// break; break;
//#if SUPPORTS_RUNTIME_INTRINSICS #if SUPPORTS_RUNTIME_INTRINSICS
// case HwIntrinsics.DisableHWIntrinsic: case HwIntrinsics.DisableHWIntrinsic:
// Assert.False(Vector.IsHardwareAccelerated); Assert.False(Sse.IsSupported);
// break; Assert.False(Sse2.IsSupported);
// case HwIntrinsics.DisableSSE: Assert.False(Aes.IsSupported);
// Assert.False(Sse.IsSupported); Assert.False(Pclmulqdq.IsSupported);
// break; Assert.False(Sse3.IsSupported);
// case HwIntrinsics.DisableSSE2: Assert.False(Ssse3.IsSupported);
// Assert.False(Sse2.IsSupported); Assert.False(Sse41.IsSupported);
// break; Assert.False(Sse42.IsSupported);
// case HwIntrinsics.DisableAES: Assert.False(Popcnt.IsSupported);
// Assert.False(Aes.IsSupported); Assert.False(Avx.IsSupported);
// break; Assert.False(Fma.IsSupported);
// case HwIntrinsics.DisablePCLMULQDQ: Assert.False(Avx2.IsSupported);
// Assert.False(Pclmulqdq.IsSupported); Assert.False(Bmi1.IsSupported);
// break; Assert.False(Bmi2.IsSupported);
// case HwIntrinsics.DisableSSE3: Assert.False(Lzcnt.IsSupported);
// Assert.False(Sse3.IsSupported); break;
// break; case HwIntrinsics.DisableSSE:
// case HwIntrinsics.DisableSSSE3: Assert.False(Sse.IsSupported);
// Assert.False(Ssse3.IsSupported); break;
// break; case HwIntrinsics.DisableSSE2:
// case HwIntrinsics.DisableSSE41: Assert.False(Sse2.IsSupported);
// Assert.False(Sse41.IsSupported); break;
// break; case HwIntrinsics.DisableAES:
// case HwIntrinsics.DisableSSE42: Assert.False(Aes.IsSupported);
// Assert.False(Sse42.IsSupported); break;
// break; case HwIntrinsics.DisablePCLMULQDQ:
// case HwIntrinsics.DisablePOPCNT: Assert.False(Pclmulqdq.IsSupported);
// Assert.False(Popcnt.IsSupported); break;
// break; case HwIntrinsics.DisableSSE3:
// case HwIntrinsics.DisableAVX: Assert.False(Sse3.IsSupported);
// Assert.False(Avx.IsSupported); break;
// break; case HwIntrinsics.DisableSSSE3:
// case HwIntrinsics.DisableFMA: Assert.False(Ssse3.IsSupported);
// Assert.False(Fma.IsSupported); break;
// break; case HwIntrinsics.DisableSSE41:
// case HwIntrinsics.DisableAVX2: Assert.False(Sse41.IsSupported);
// Assert.False(Avx2.IsSupported); break;
// break; case HwIntrinsics.DisableSSE42:
// case HwIntrinsics.DisableBMI1: Assert.False(Sse42.IsSupported);
// Assert.False(Bmi1.IsSupported); break;
// break; case HwIntrinsics.DisablePOPCNT:
// case HwIntrinsics.DisableBMI2: Assert.False(Popcnt.IsSupported);
// Assert.False(Bmi2.IsSupported); break;
// break; case HwIntrinsics.DisableAVX:
// case HwIntrinsics.DisableLZCNT: Assert.False(Avx.IsSupported);
// Assert.False(Lzcnt.IsSupported); break;
// break; case HwIntrinsics.DisableFMA:
//#endif Assert.False(Fma.IsSupported);
// } break;
// } case HwIntrinsics.DisableAVX2:
Assert.False(Avx2.IsSupported);
break;
case HwIntrinsics.DisableBMI1:
Assert.False(Bmi1.IsSupported);
break;
case HwIntrinsics.DisableBMI2:
Assert.False(Bmi2.IsSupported);
break;
case HwIntrinsics.DisableLZCNT:
Assert.False(Lzcnt.IsSupported);
break;
#endif
}
}
// foreach (HwIntrinsics intrinsic in (HwIntrinsics[])Enum.GetValues(typeof(HwIntrinsics))) foreach (HwIntrinsics intrinsic in (HwIntrinsics[])Enum.GetValues(typeof(HwIntrinsics)))
// { {
// FeatureTestRunner.RunWithHwIntrinsicsFeature(AssertHwIntrinsicsFeatureDisabled, intrinsic); FeatureTestRunner.RunWithHwIntrinsicsFeature(AssertHwIntrinsicsFeatureDisabled, intrinsic);
// } }
// } }
// [Fact] [Fact]
// public void CanLimitHwIntrinsicFeaturesWithSerializableParam() public void CanLimitHwIntrinsicFeaturesWithSerializableParam()
// { {
// static void AssertHwIntrinsicsFeatureDisabled(string serializable) static void AssertHwIntrinsicsFeatureDisabled(string serializable)
// { {
// Assert.NotNull(serializable); Assert.NotNull(serializable);
// Assert.NotNull(FeatureTestRunner.Deserialize<FakeSerializable>(serializable)); Assert.NotNull(FeatureTestRunner.Deserialize<FakeSerializable>(serializable));
//#if SUPPORTS_RUNTIME_INTRINSICS #if SUPPORTS_RUNTIME_INTRINSICS
// Assert.False(Sse.IsSupported); Assert.False(Sse.IsSupported);
//#endif #endif
// } }
// foreach (HwIntrinsics intrinsic in (HwIntrinsics[])Enum.GetValues(typeof(HwIntrinsics))) FeatureTestRunner.RunWithHwIntrinsicsFeature(
// { AssertHwIntrinsicsFeatureDisabled,
// FeatureTestRunner.RunWithHwIntrinsicsFeature( HwIntrinsics.DisableSSE,
// AssertHwIntrinsicsFeatureDisabled, new FakeSerializable());
// HwIntrinsics.DisableSSE, }
// new FakeSerializable());
// }
// }
// [Fact] [Fact]
// public void CanLimitHwIntrinsicFeaturesWithSerializableAndIntrinsicsParams() public void CanLimitHwIntrinsicFeaturesWithSerializableAndIntrinsicsParams()
// { {
// static void AssertHwIntrinsicsFeatureDisabled(string serializable, string intrinsic) static void AssertHwIntrinsicsFeatureDisabled(string serializable, string intrinsic)
// { {
// Assert.NotNull(serializable); Assert.NotNull(serializable);
// Assert.NotNull(FeatureTestRunner.Deserialize<FakeSerializable>(serializable)); Assert.NotNull(FeatureTestRunner.Deserialize<FakeSerializable>(serializable));
// switch ((HwIntrinsics)Enum.Parse(typeof(HwIntrinsics), intrinsic)) switch ((HwIntrinsics)Enum.Parse(typeof(HwIntrinsics), intrinsic))
// { {
// case HwIntrinsics.DisableSIMD: case HwIntrinsics.DisableSIMD:
// Assert.False(Vector.IsHardwareAccelerated, nameof(Vector.IsHardwareAccelerated)); Assert.False(Vector.IsHardwareAccelerated, nameof(Vector.IsHardwareAccelerated));
// break; break;
//#if SUPPORTS_RUNTIME_INTRINSICS #if SUPPORTS_RUNTIME_INTRINSICS
// case HwIntrinsics.DisableHWIntrinsic: case HwIntrinsics.DisableHWIntrinsic:
// Assert.False(Vector.IsHardwareAccelerated, nameof(Vector.IsHardwareAccelerated)); Assert.False(Sse.IsSupported);
// break; Assert.False(Sse2.IsSupported);
// case HwIntrinsics.DisableSSE: Assert.False(Aes.IsSupported);
// Assert.False(Sse.IsSupported); Assert.False(Pclmulqdq.IsSupported);
// break; Assert.False(Sse3.IsSupported);
// case HwIntrinsics.DisableSSE2: Assert.False(Ssse3.IsSupported);
// Assert.False(Sse2.IsSupported); Assert.False(Sse41.IsSupported);
// break; Assert.False(Sse42.IsSupported);
// case HwIntrinsics.DisableAES: Assert.False(Popcnt.IsSupported);
// Assert.False(Aes.IsSupported); Assert.False(Avx.IsSupported);
// break; Assert.False(Fma.IsSupported);
// case HwIntrinsics.DisablePCLMULQDQ: Assert.False(Avx2.IsSupported);
// Assert.False(Pclmulqdq.IsSupported); Assert.False(Bmi1.IsSupported);
// break; Assert.False(Bmi2.IsSupported);
// case HwIntrinsics.DisableSSE3: Assert.False(Lzcnt.IsSupported);
// Assert.False(Sse3.IsSupported); break;
// break; case HwIntrinsics.DisableSSE:
// case HwIntrinsics.DisableSSSE3: Assert.False(Sse.IsSupported);
// Assert.False(Ssse3.IsSupported); break;
// break; case HwIntrinsics.DisableSSE2:
// case HwIntrinsics.DisableSSE41: Assert.False(Sse2.IsSupported);
// Assert.False(Sse41.IsSupported); break;
// break; case HwIntrinsics.DisableAES:
// case HwIntrinsics.DisableSSE42: Assert.False(Aes.IsSupported);
// Assert.False(Sse42.IsSupported); break;
// break; case HwIntrinsics.DisablePCLMULQDQ:
// case HwIntrinsics.DisablePOPCNT: Assert.False(Pclmulqdq.IsSupported);
// Assert.False(Popcnt.IsSupported); break;
// break; case HwIntrinsics.DisableSSE3:
// case HwIntrinsics.DisableAVX: Assert.False(Sse3.IsSupported);
// Assert.False(Avx.IsSupported); break;
// break; case HwIntrinsics.DisableSSSE3:
// case HwIntrinsics.DisableFMA: Assert.False(Ssse3.IsSupported);
// Assert.False(Fma.IsSupported); break;
// break; case HwIntrinsics.DisableSSE41:
// case HwIntrinsics.DisableAVX2: Assert.False(Sse41.IsSupported);
// Assert.False(Avx2.IsSupported); break;
// break; case HwIntrinsics.DisableSSE42:
// case HwIntrinsics.DisableBMI1: Assert.False(Sse42.IsSupported);
// Assert.False(Bmi1.IsSupported); break;
// break; case HwIntrinsics.DisablePOPCNT:
// case HwIntrinsics.DisableBMI2: Assert.False(Popcnt.IsSupported);
// Assert.False(Bmi2.IsSupported); break;
// break; case HwIntrinsics.DisableAVX:
// case HwIntrinsics.DisableLZCNT: Assert.False(Avx.IsSupported);
// Assert.False(Lzcnt.IsSupported); break;
// break; case HwIntrinsics.DisableFMA:
//#endif Assert.False(Fma.IsSupported);
// } break;
// } case HwIntrinsics.DisableAVX2:
Assert.False(Avx2.IsSupported);
break;
case HwIntrinsics.DisableBMI1:
Assert.False(Bmi1.IsSupported);
break;
case HwIntrinsics.DisableBMI2:
Assert.False(Bmi2.IsSupported);
break;
case HwIntrinsics.DisableLZCNT:
Assert.False(Lzcnt.IsSupported);
break;
#endif
}
}
// foreach (HwIntrinsics intrinsic in (HwIntrinsics[])Enum.GetValues(typeof(HwIntrinsics))) foreach (HwIntrinsics intrinsic in (HwIntrinsics[])Enum.GetValues(typeof(HwIntrinsics)))
// { {
// FeatureTestRunner.RunWithHwIntrinsicsFeature(AssertHwIntrinsicsFeatureDisabled, intrinsic, new FakeSerializable()); FeatureTestRunner.RunWithHwIntrinsicsFeature(AssertHwIntrinsicsFeatureDisabled, intrinsic, new FakeSerializable());
// } }
// } }
public class FakeSerializable : IXunitSerializable public class FakeSerializable : IXunitSerializable
{ {

Loading…
Cancel
Save