Skip to content

Commit eca4734

Browse files
committed
Add more usermessages
1 parent 6aad0e7 commit eca4734

File tree

1 file changed

+89
-87
lines changed

1 file changed

+89
-87
lines changed

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

Lines changed: 89 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public void AllowsAllHwIntrinsicFeatures()
4747
}
4848

4949
FeatureTestRunner.RunWithHwIntrinsicsFeature(
50-
() => Assert.True(Vector.IsHardwareAccelerated),
50+
() => Assert.True(Vector.IsHardwareAccelerated, "Vector hardware acceleration should be enabled when AllowAll is specified."),
5151
HwIntrinsics.AllowAll);
5252
}
5353

@@ -56,21 +56,21 @@ public void CanLimitHwIntrinsicBaseFeatures()
5656
{
5757
static void AssertDisabled()
5858
{
59-
Assert.False(Sse.IsSupported);
60-
Assert.False(Sse2.IsSupported);
61-
Assert.False(Aes.IsSupported);
62-
Assert.False(Pclmulqdq.IsSupported);
63-
Assert.False(Sse3.IsSupported);
64-
Assert.False(Ssse3.IsSupported);
65-
Assert.False(Sse41.IsSupported);
66-
Assert.False(Sse42.IsSupported);
67-
Assert.False(Popcnt.IsSupported);
68-
Assert.False(Avx.IsSupported);
69-
Assert.False(Fma.IsSupported);
70-
Assert.False(Avx2.IsSupported);
71-
Assert.False(Bmi1.IsSupported);
72-
Assert.False(Bmi2.IsSupported);
73-
Assert.False(Lzcnt.IsSupported);
59+
Assert.False(Sse.IsSupported, "SSE should be disabled when DisableHWIntrinsic is set.");
60+
Assert.False(Sse2.IsSupported, "SSE2 should be disabled when DisableHWIntrinsic is set.");
61+
Assert.False(Aes.IsSupported, "AES (x86) should be disabled when DisableHWIntrinsic is set.");
62+
Assert.False(Pclmulqdq.IsSupported, "PCLMULQDQ should be disabled when DisableHWIntrinsic is set.");
63+
Assert.False(Sse3.IsSupported, "SSE3 should be disabled when DisableHWIntrinsic is set.");
64+
Assert.False(Ssse3.IsSupported, "SSSE3 should be disabled when DisableHWIntrinsic is set.");
65+
Assert.False(Sse41.IsSupported, "SSE4.1 should be disabled when DisableHWIntrinsic is set.");
66+
Assert.False(Sse42.IsSupported, "SSE4.2 should be disabled when DisableHWIntrinsic is set.");
67+
Assert.False(Popcnt.IsSupported, "POPCNT should be disabled when DisableHWIntrinsic is set.");
68+
Assert.False(Avx.IsSupported, "AVX should be disabled when DisableHWIntrinsic is set.");
69+
Assert.False(Fma.IsSupported, "FMA should be disabled when DisableHWIntrinsic is set.");
70+
Assert.False(Avx2.IsSupported, "AVX2 should be disabled when DisableHWIntrinsic is set.");
71+
Assert.False(Bmi1.IsSupported, "BMI1 should be disabled when DisableHWIntrinsic is set.");
72+
Assert.False(Bmi2.IsSupported, "BMI2 should be disabled when DisableHWIntrinsic is set.");
73+
Assert.False(Lzcnt.IsSupported, "LZCNT should be disabled when DisableHWIntrinsic is set.");
7474
}
7575

7676
FeatureTestRunner.RunWithHwIntrinsicsFeature(
@@ -88,31 +88,33 @@ static void AssertHwIntrinsicsFeatureDisabled(string intrinsic)
8888
switch (Enum.Parse<HwIntrinsics>(intrinsic))
8989
{
9090
case HwIntrinsics.DisableHWIntrinsic:
91-
Assert.False(Sse.IsSupported);
92-
Assert.False(Sse2.IsSupported);
93-
Assert.False(Aes.IsSupported);
94-
Assert.False(Pclmulqdq.IsSupported);
95-
Assert.False(Sse3.IsSupported);
96-
Assert.False(Ssse3.IsSupported);
97-
Assert.False(Sse41.IsSupported);
98-
Assert.False(Sse42.IsSupported);
99-
Assert.False(Popcnt.IsSupported);
100-
Assert.False(Avx.IsSupported);
101-
Assert.False(Fma.IsSupported);
102-
Assert.False(Avx2.IsSupported);
103-
Assert.False(Bmi1.IsSupported);
104-
Assert.False(Bmi2.IsSupported);
105-
Assert.False(Lzcnt.IsSupported);
106-
Assert.False(AdvSimd.IsSupported);
107-
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported);
108-
Assert.False(Crc32.IsSupported);
109-
Assert.False(Dp.IsSupported);
110-
Assert.False(Sha1.IsSupported);
111-
Assert.False(Sha256.IsSupported);
91+
Assert.False(Sse.IsSupported, "SSE should be disabled when DisableHWIntrinsic is set.");
92+
Assert.False(Sse2.IsSupported, "SSE2 should be disabled when DisableHWIntrinsic is set.");
93+
Assert.False(Aes.IsSupported, "AES (x86) should be disabled when DisableHWIntrinsic is set.");
94+
Assert.False(Pclmulqdq.IsSupported, "PCLMULQDQ should be disabled when DisableHWIntrinsic is set.");
95+
Assert.False(Sse3.IsSupported, "SSE3 should be disabled when DisableHWIntrinsic is set.");
96+
Assert.False(Ssse3.IsSupported, "SSSE3 should be disabled when DisableHWIntrinsic is set.");
97+
Assert.False(Sse41.IsSupported, "SSE4.1 should be disabled when DisableHWIntrinsic is set.");
98+
Assert.False(Sse42.IsSupported, "SSE4.2 should be disabled when DisableHWIntrinsic is set.");
99+
Assert.False(Popcnt.IsSupported, "POPCNT should be disabled when DisableHWIntrinsic is set.");
100+
Assert.False(Avx.IsSupported, "AVX should be disabled when DisableHWIntrinsic is set.");
101+
Assert.False(Fma.IsSupported, "FMA should be disabled when DisableHWIntrinsic is set.");
102+
Assert.False(Avx2.IsSupported, "AVX2 should be disabled when DisableHWIntrinsic is set.");
103+
Assert.False(Bmi1.IsSupported, "BMI1 should be disabled when DisableHWIntrinsic is set.");
104+
Assert.False(Bmi2.IsSupported, "BMI2 should be disabled when DisableHWIntrinsic is set.");
105+
Assert.False(Lzcnt.IsSupported, "LZCNT should be disabled when DisableHWIntrinsic is set.");
106+
Assert.False(AdvSimd.IsSupported, "Arm64 AdvSimd should be disabled when DisableHWIntrinsic is set.");
107+
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported, "Arm64 AES should be disabled when DisableHWIntrinsic is set.");
108+
Assert.False(Crc32.IsSupported, "Arm64 CRC32 should be disabled when DisableHWIntrinsic is set.");
109+
Assert.False(Dp.IsSupported, "Arm64 DotProd (DP) should be disabled when DisableHWIntrinsic is set.");
110+
Assert.False(Sha1.IsSupported, "Arm64 SHA1 should be disabled when DisableHWIntrinsic is set.");
111+
Assert.False(Sha256.IsSupported, "Arm64 SHA256 should be disabled when DisableHWIntrinsic is set.");
112112
break;
113113
case HwIntrinsics.DisableAES:
114-
Assert.False(Aes.IsSupported);
115-
Assert.False(Pclmulqdq.IsSupported);
114+
Assert.False(Aes.IsSupported, "AES (x86) should be disabled when DisableAES is set.");
115+
#if NET10_0_OR_GREATER
116+
Assert.False(Pclmulqdq.IsSupported, "PCLMULQDQ should be disabled when DisableAES is set (paired disable).");
117+
#endif
116118
break;
117119
case HwIntrinsics.DisableSSE42:
118120
#if NET10_0_OR_GREATER
@@ -121,35 +123,35 @@ static void AssertHwIntrinsicsFeatureDisabled(string intrinsic)
121123
Assert.False(Sse41.IsSupported, "Sse41 should be disabled.");
122124
Assert.False(Popcnt.IsSupported, "Popcnt should be disabled.");
123125
#else
124-
Assert.False(Sse42.IsSupported, "Sse42 should be disabled.");
126+
Assert.False(Sse42.IsSupported, "Sse42 should be disabled when DisableSSE42 is set.");
125127
#endif
126128
break;
127129
case HwIntrinsics.DisableAVX:
128-
Assert.False(Avx.IsSupported);
130+
Assert.False(Avx.IsSupported, "AVX should be disabled when DisableAVX is set.");
129131
break;
130132
case HwIntrinsics.DisableAVX2:
131-
Assert.False(Avx2.IsSupported);
133+
Assert.False(Avx2.IsSupported, "AVX2 should be disabled when DisableAVX2 is set.");
132134
#if NET10_0_OR_GREATER
133-
Assert.False(Fma.IsSupported);
134-
Assert.False(Bmi1.IsSupported);
135-
Assert.False(Bmi2.IsSupported);
136-
Assert.False(Lzcnt.IsSupported);
135+
Assert.False(Fma.IsSupported, "FMA should be disabled when DisableAVX2 is set (paired disable).");
136+
Assert.False(Bmi1.IsSupported, "BMI1 should be disabled when DisableAVX2 is set (paired disable).");
137+
Assert.False(Bmi2.IsSupported, "BMI2 should be disabled when DisableAVX2 is set (paired disable).");
138+
Assert.False(Lzcnt.IsSupported, "LZCNT should be disabled when DisableAVX2 is set (paired disable).");
137139
#endif
138140
break;
139141
case HwIntrinsics.DisableArm64Aes:
140-
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported);
142+
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported, "Arm64 AES should be disabled when DisableArm64Aes is set.");
141143
break;
142144
case HwIntrinsics.DisableArm64Crc32:
143-
Assert.False(Crc32.IsSupported);
145+
Assert.False(Crc32.IsSupported, "Arm64 CRC32 should be disabled when DisableArm64Crc32 is set.");
144146
break;
145147
case HwIntrinsics.DisableArm64Dp:
146-
Assert.False(Dp.IsSupported);
148+
Assert.False(Dp.IsSupported, "Arm64 DotProd (DP) should be disabled when DisableArm64Dp is set.");
147149
break;
148150
case HwIntrinsics.DisableArm64Sha1:
149-
Assert.False(Sha1.IsSupported);
151+
Assert.False(Sha1.IsSupported, "Arm64 SHA1 should be disabled when DisableArm64Sha1 is set.");
150152
break;
151153
case HwIntrinsics.DisableArm64Sha256:
152-
Assert.False(Sha256.IsSupported);
154+
Assert.False(Sha256.IsSupported, "Arm64 SHA256 should be disabled when DisableArm64Sha256 is set.");
153155
break;
154156
}
155157
}
@@ -167,7 +169,7 @@ static void AssertHwIntrinsicsFeatureDisabled(string serializable)
167169
{
168170
Assert.NotNull(serializable);
169171
Assert.NotNull(FeatureTestRunner.DeserializeForXunit<FakeSerializable>(serializable));
170-
Assert.False(Sse.IsSupported);
172+
Assert.False(Sse.IsSupported, "SSE should be disabled when DisableSSE42 is set (sanity check using serializable param overload).");
171173
}
172174

173175
FeatureTestRunner.RunWithHwIntrinsicsFeature(
@@ -187,32 +189,32 @@ static void AssertHwIntrinsicsFeatureDisabled(string serializable, string intrin
187189
switch (Enum.Parse<HwIntrinsics>(intrinsic))
188190
{
189191
case HwIntrinsics.DisableHWIntrinsic:
190-
Assert.False(Sse.IsSupported);
191-
Assert.False(Sse2.IsSupported);
192-
Assert.False(Aes.IsSupported);
193-
Assert.False(Pclmulqdq.IsSupported);
194-
Assert.False(Sse3.IsSupported);
195-
Assert.False(Ssse3.IsSupported);
196-
Assert.False(Sse41.IsSupported);
197-
Assert.False(Sse42.IsSupported);
198-
Assert.False(Popcnt.IsSupported);
199-
Assert.False(Avx.IsSupported);
200-
Assert.False(Fma.IsSupported);
201-
Assert.False(Avx2.IsSupported);
202-
Assert.False(Bmi1.IsSupported);
203-
Assert.False(Bmi2.IsSupported);
204-
Assert.False(Lzcnt.IsSupported);
205-
Assert.False(AdvSimd.IsSupported);
206-
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported);
207-
Assert.False(Crc32.IsSupported);
208-
Assert.False(Dp.IsSupported);
209-
Assert.False(Sha1.IsSupported);
210-
Assert.False(Sha256.IsSupported);
192+
Assert.False(Sse.IsSupported, "SSE should be disabled when DisableHWIntrinsic is set.");
193+
Assert.False(Sse2.IsSupported, "SSE2 should be disabled when DisableHWIntrinsic is set.");
194+
Assert.False(Aes.IsSupported, "AES (x86) should be disabled when DisableHWIntrinsic is set.");
195+
Assert.False(Pclmulqdq.IsSupported, "PCLMULQDQ should be disabled when DisableHWIntrinsic is set.");
196+
Assert.False(Sse3.IsSupported, "SSE3 should be disabled when DisableHWIntrinsic is set.");
197+
Assert.False(Ssse3.IsSupported, "SSSE3 should be disabled when DisableHWIntrinsic is set.");
198+
Assert.False(Sse41.IsSupported, "SSE4.1 should be disabled when DisableHWIntrinsic is set.");
199+
Assert.False(Sse42.IsSupported, "SSE4.2 should be disabled when DisableHWIntrinsic is set.");
200+
Assert.False(Popcnt.IsSupported, "POPCNT should be disabled when DisableHWIntrinsic is set.");
201+
Assert.False(Avx.IsSupported, "AVX should be disabled when DisableHWIntrinsic is set.");
202+
Assert.False(Fma.IsSupported, "FMA should be disabled when DisableHWIntrinsic is set.");
203+
Assert.False(Avx2.IsSupported, "AVX2 should be disabled when DisableHWIntrinsic is set.");
204+
Assert.False(Bmi1.IsSupported, "BMI1 should be disabled when DisableHWIntrinsic is set.");
205+
Assert.False(Bmi2.IsSupported, "BMI2 should be disabled when DisableHWIntrinsic is set.");
206+
Assert.False(Lzcnt.IsSupported, "LZCNT should be disabled when DisableHWIntrinsic is set.");
207+
Assert.False(AdvSimd.IsSupported, "Arm64 AdvSimd should be disabled when DisableHWIntrinsic is set.");
208+
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported, "Arm64 AES should be disabled when DisableHWIntrinsic is set.");
209+
Assert.False(Crc32.IsSupported, "Arm64 CRC32 should be disabled when DisableHWIntrinsic is set.");
210+
Assert.False(Dp.IsSupported, "Arm64 DotProd (DP) should be disabled when DisableHWIntrinsic is set.");
211+
Assert.False(Sha1.IsSupported, "Arm64 SHA1 should be disabled when DisableHWIntrinsic is set.");
212+
Assert.False(Sha256.IsSupported, "Arm64 SHA256 should be disabled when DisableHWIntrinsic is set.");
211213
break;
212214
case HwIntrinsics.DisableAES:
213-
Assert.False(Aes.IsSupported);
215+
Assert.False(Aes.IsSupported, "AES (x86) should be disabled when DisableAES is set.");
214216
#if NET10_0_OR_GREATER
215-
Assert.False(Pclmulqdq.IsSupported);
217+
Assert.False(Pclmulqdq.IsSupported, "PCLMULQDQ should be disabled when DisableAES is set (paired disable).");
216218
#endif
217219
break;
218220
case HwIntrinsics.DisableSSE42:
@@ -222,34 +224,34 @@ static void AssertHwIntrinsicsFeatureDisabled(string serializable, string intrin
222224
Assert.False(Sse41.IsSupported, "Sse41 should be disabled.");
223225
Assert.False(Popcnt.IsSupported, "Popcnt should be disabled.");
224226
#endif
225-
Assert.False(Sse42.IsSupported, "Sse42 should be disabled.");
227+
Assert.False(Sse42.IsSupported, "Sse42 should be disabled when DisableSSE42 is set.");
226228
break;
227229
case HwIntrinsics.DisableAVX:
228-
Assert.False(Avx.IsSupported);
230+
Assert.False(Avx.IsSupported, "AVX should be disabled when DisableAVX is set.");
229231
break;
230232
case HwIntrinsics.DisableAVX2:
231-
Assert.False(Avx2.IsSupported);
233+
Assert.False(Avx2.IsSupported, "AVX2 should be disabled when DisableAVX2 is set.");
232234
#if NET10_0_OR_GREATER
233-
Assert.False(Fma.IsSupported);
234-
Assert.False(Bmi1.IsSupported);
235-
Assert.False(Bmi2.IsSupported);
236-
Assert.False(Lzcnt.IsSupported);
235+
Assert.False(Fma.IsSupported, "FMA should be disabled when DisableAVX2 is set (paired disable).");
236+
Assert.False(Bmi1.IsSupported, "BMI1 should be disabled when DisableAVX2 is set (paired disable).");
237+
Assert.False(Bmi2.IsSupported, "BMI2 should be disabled when DisableAVX2 is set (paired disable).");
238+
Assert.False(Lzcnt.IsSupported, "LZCNT should be disabled when DisableAVX2 is set (paired disable).");
237239
#endif
238240
break;
239241
case HwIntrinsics.DisableArm64Aes:
240-
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported);
242+
Assert.False(System.Runtime.Intrinsics.Arm.Aes.IsSupported, "Arm64 AES should be disabled when DisableArm64Aes is set.");
241243
break;
242244
case HwIntrinsics.DisableArm64Crc32:
243-
Assert.False(Crc32.IsSupported);
245+
Assert.False(Crc32.IsSupported, "Arm64 CRC32 should be disabled when DisableArm64Crc32 is set.");
244246
break;
245247
case HwIntrinsics.DisableArm64Dp:
246-
Assert.False(Dp.IsSupported);
248+
Assert.False(Dp.IsSupported, "Arm64 DotProd (DP) should be disabled when DisableArm64Dp is set.");
247249
break;
248250
case HwIntrinsics.DisableArm64Sha1:
249-
Assert.False(Sha1.IsSupported);
251+
Assert.False(Sha1.IsSupported, "Arm64 SHA1 should be disabled when DisableArm64Sha1 is set.");
250252
break;
251253
case HwIntrinsics.DisableArm64Sha256:
252-
Assert.False(Sha256.IsSupported);
254+
Assert.False(Sha256.IsSupported, "Arm64 SHA256 should be disabled when DisableArm64Sha256 is set.");
253255
break;
254256
}
255257
}

0 commit comments

Comments
 (0)