Browse Source

Increment tests

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

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

@ -23,14 +23,6 @@ namespace SixLabors.ImageSharp.Tests.TestUtilities.Tests
{ HwIntrinsics.DisableSSE42 | HwIntrinsics.DisableAVX, new string[] { "EnableSSE42", "EnableAVX" } } { HwIntrinsics.DisableSSE42 | HwIntrinsics.DisableAVX, new string[] { "EnableSSE42", "EnableAVX" } }
}; };
[Fact]
public void TempAssertThrow()
{
FeatureTestRunner.RunWithHwIntrinsicsFeature(
() => Assert.True(false),
HwIntrinsics.DisableAVX);
}
[Theory] [Theory]
[MemberData(nameof(Intrinsics))] [MemberData(nameof(Intrinsics))]
public void ToFeatureCollectionReturnsExpectedResult(HwIntrinsics expectedItrinsics, string[] expectedValues) public void ToFeatureCollectionReturnsExpectedResult(HwIntrinsics expectedItrinsics, string[] expectedValues)
@ -54,7 +46,7 @@ namespace SixLabors.ImageSharp.Tests.TestUtilities.Tests
public void AllowsAllHwIntrinsicFeatures() public void AllowsAllHwIntrinsicFeatures()
{ {
FeatureTestRunner.RunWithHwIntrinsicsFeature( FeatureTestRunner.RunWithHwIntrinsicsFeature(
() => Assert.True(Vector.IsHardwareAccelerated), () => Assert.True(Vector.IsHardwareAccelerated, nameof(Vector.IsHardwareAccelerated)),
HwIntrinsics.AllowAll); HwIntrinsics.AllowAll);
} }
@ -62,174 +54,174 @@ namespace SixLabors.ImageSharp.Tests.TestUtilities.Tests
public void CanLimitHwIntrinsicFeatures() public void CanLimitHwIntrinsicFeatures()
{ {
FeatureTestRunner.RunWithHwIntrinsicsFeature( FeatureTestRunner.RunWithHwIntrinsicsFeature(
() => Assert.False(Vector.IsHardwareAccelerated), () => Assert.False(Vector.IsHardwareAccelerated, nameof(Vector.IsHardwareAccelerated)),
HwIntrinsics.DisableSIMD); HwIntrinsics.DisableSIMD);
} }
[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(Vector.IsHardwareAccelerated);
break; // break;
case HwIntrinsics.DisableSSE: // case HwIntrinsics.DisableSSE:
Assert.False(Sse.IsSupported); // Assert.False(Sse.IsSupported);
break; // break;
case HwIntrinsics.DisableSSE2: // case HwIntrinsics.DisableSSE2:
Assert.False(Sse2.IsSupported); // Assert.False(Sse2.IsSupported);
break; // break;
case HwIntrinsics.DisableAES: // case HwIntrinsics.DisableAES:
Assert.False(Aes.IsSupported); // Assert.False(Aes.IsSupported);
break; // break;
case HwIntrinsics.DisablePCLMULQDQ: // case HwIntrinsics.DisablePCLMULQDQ:
Assert.False(Pclmulqdq.IsSupported); // Assert.False(Pclmulqdq.IsSupported);
break; // break;
case HwIntrinsics.DisableSSE3: // case HwIntrinsics.DisableSSE3:
Assert.False(Sse3.IsSupported); // Assert.False(Sse3.IsSupported);
break; // break;
case HwIntrinsics.DisableSSSE3: // case HwIntrinsics.DisableSSSE3:
Assert.False(Ssse3.IsSupported); // Assert.False(Ssse3.IsSupported);
break; // break;
case HwIntrinsics.DisableSSE41: // case HwIntrinsics.DisableSSE41:
Assert.False(Sse41.IsSupported); // Assert.False(Sse41.IsSupported);
break; // break;
case HwIntrinsics.DisableSSE42: // case HwIntrinsics.DisableSSE42:
Assert.False(Sse42.IsSupported); // Assert.False(Sse42.IsSupported);
break; // break;
case HwIntrinsics.DisablePOPCNT: // case HwIntrinsics.DisablePOPCNT:
Assert.False(Popcnt.IsSupported); // Assert.False(Popcnt.IsSupported);
break; // break;
case HwIntrinsics.DisableAVX: // case HwIntrinsics.DisableAVX:
Assert.False(Avx.IsSupported); // Assert.False(Avx.IsSupported);
break; // break;
case HwIntrinsics.DisableFMA: // case HwIntrinsics.DisableFMA:
Assert.False(Fma.IsSupported); // Assert.False(Fma.IsSupported);
break; // break;
case HwIntrinsics.DisableAVX2: // case HwIntrinsics.DisableAVX2:
Assert.False(Avx2.IsSupported); // Assert.False(Avx2.IsSupported);
break; // break;
case HwIntrinsics.DisableBMI1: // case HwIntrinsics.DisableBMI1:
Assert.False(Bmi1.IsSupported); // Assert.False(Bmi1.IsSupported);
break; // break;
case HwIntrinsics.DisableBMI2: // case HwIntrinsics.DisableBMI2:
Assert.False(Bmi2.IsSupported); // Assert.False(Bmi2.IsSupported);
break; // break;
case HwIntrinsics.DisableLZCNT: // case HwIntrinsics.DisableLZCNT:
Assert.False(Lzcnt.IsSupported); // Assert.False(Lzcnt.IsSupported);
break; // break;
#endif //#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))) // foreach (HwIntrinsics intrinsic in (HwIntrinsics[])Enum.GetValues(typeof(HwIntrinsics)))
{ // {
FeatureTestRunner.RunWithHwIntrinsicsFeature( // FeatureTestRunner.RunWithHwIntrinsicsFeature(
AssertHwIntrinsicsFeatureDisabled, // AssertHwIntrinsicsFeatureDisabled,
HwIntrinsics.DisableSSE, // HwIntrinsics.DisableSSE,
new FakeSerializable()); // 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); // 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); // Assert.False(Vector.IsHardwareAccelerated, nameof(Vector.IsHardwareAccelerated));
break; // break;
case HwIntrinsics.DisableSSE: // case HwIntrinsics.DisableSSE:
Assert.False(Sse.IsSupported); // Assert.False(Sse.IsSupported);
break; // break;
case HwIntrinsics.DisableSSE2: // case HwIntrinsics.DisableSSE2:
Assert.False(Sse2.IsSupported); // Assert.False(Sse2.IsSupported);
break; // break;
case HwIntrinsics.DisableAES: // case HwIntrinsics.DisableAES:
Assert.False(Aes.IsSupported); // Assert.False(Aes.IsSupported);
break; // break;
case HwIntrinsics.DisablePCLMULQDQ: // case HwIntrinsics.DisablePCLMULQDQ:
Assert.False(Pclmulqdq.IsSupported); // Assert.False(Pclmulqdq.IsSupported);
break; // break;
case HwIntrinsics.DisableSSE3: // case HwIntrinsics.DisableSSE3:
Assert.False(Sse3.IsSupported); // Assert.False(Sse3.IsSupported);
break; // break;
case HwIntrinsics.DisableSSSE3: // case HwIntrinsics.DisableSSSE3:
Assert.False(Ssse3.IsSupported); // Assert.False(Ssse3.IsSupported);
break; // break;
case HwIntrinsics.DisableSSE41: // case HwIntrinsics.DisableSSE41:
Assert.False(Sse41.IsSupported); // Assert.False(Sse41.IsSupported);
break; // break;
case HwIntrinsics.DisableSSE42: // case HwIntrinsics.DisableSSE42:
Assert.False(Sse42.IsSupported); // Assert.False(Sse42.IsSupported);
break; // break;
case HwIntrinsics.DisablePOPCNT: // case HwIntrinsics.DisablePOPCNT:
Assert.False(Popcnt.IsSupported); // Assert.False(Popcnt.IsSupported);
break; // break;
case HwIntrinsics.DisableAVX: // case HwIntrinsics.DisableAVX:
Assert.False(Avx.IsSupported); // Assert.False(Avx.IsSupported);
break; // break;
case HwIntrinsics.DisableFMA: // case HwIntrinsics.DisableFMA:
Assert.False(Fma.IsSupported); // Assert.False(Fma.IsSupported);
break; // break;
case HwIntrinsics.DisableAVX2: // case HwIntrinsics.DisableAVX2:
Assert.False(Avx2.IsSupported); // Assert.False(Avx2.IsSupported);
break; // break;
case HwIntrinsics.DisableBMI1: // case HwIntrinsics.DisableBMI1:
Assert.False(Bmi1.IsSupported); // Assert.False(Bmi1.IsSupported);
break; // break;
case HwIntrinsics.DisableBMI2: // case HwIntrinsics.DisableBMI2:
Assert.False(Bmi2.IsSupported); // Assert.False(Bmi2.IsSupported);
break; // break;
case HwIntrinsics.DisableLZCNT: // case HwIntrinsics.DisableLZCNT:
Assert.False(Lzcnt.IsSupported); // Assert.False(Lzcnt.IsSupported);
break; // break;
#endif //#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