[dawn][tests] Fix UBSan failures in google3.
- In C++, our enums are uint32_t, and it seems that in google3, the
UBSan tests are failing in these tests because we are assigning
64-bit values to them. Changing them to 0 (the undefined value),
or truncating to the last 32 bits seems to fix the tests.
- Note that this issue has been blocking Dawn->google3 rolls.
Bug: 380277032
Change-Id: I74bd3ce459bc59f54e35d5330da2f195810bdf62
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/224454
Reviewed-by: James Price <jrprice@google.com>
Auto-Submit: Loko Kung <lokokung@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
Commit-Queue: James Price <jrprice@google.com>
diff --git a/src/dawn/tests/unittests/validation/TextureValidationTests.cpp b/src/dawn/tests/unittests/validation/TextureValidationTests.cpp
index e57fc85..70d1780 100644
--- a/src/dawn/tests/unittests/validation/TextureValidationTests.cpp
+++ b/src/dawn/tests/unittests/validation/TextureValidationTests.cpp
@@ -1034,12 +1034,12 @@
TEST_F(TextureValidationTest, CreationParameterReflectionForErrorTextures) {
// Fill a descriptor with a bunch of garbage values.
wgpu::TextureDescriptor desc;
- desc.size = {0, 0xFFFF'FFFF, 1};
+ desc.size = {0, 0xFFFF, 1};
desc.mipLevelCount = 0;
desc.sampleCount = 42;
- desc.dimension = static_cast<wgpu::TextureDimension>(0xFFFF'FF00);
- desc.usage = static_cast<wgpu::TextureUsage>(0xFFFF'FFFF);
- desc.format = static_cast<wgpu::TextureFormat>(0xFFFF'FFF0);
+ desc.dimension = static_cast<wgpu::TextureDimension>(0xFF00);
+ desc.usage = static_cast<wgpu::TextureUsage>(0xFFFF);
+ desc.format = static_cast<wgpu::TextureFormat>(0xFFF0);
// Error! Because the texture width is 0.
wgpu::Texture tex;
diff --git a/src/dawn/tests/unittests/validation/WGSLFeatureValidationTests.cpp b/src/dawn/tests/unittests/validation/WGSLFeatureValidationTests.cpp
index 5eff844..fe937bf 100644
--- a/src/dawn/tests/unittests/validation/WGSLFeatureValidationTests.cpp
+++ b/src/dawn/tests/unittests/validation/WGSLFeatureValidationTests.cpp
@@ -87,8 +87,7 @@
}
};
-wgpu::WGSLLanguageFeatureName kNonExistentFeature =
- static_cast<wgpu::WGSLLanguageFeatureName>(0xFFFF'FFFF);
+wgpu::WGSLLanguageFeatureName kNonExistentFeature = {};
// Check HasFeature for an Instance that doesn't have unsafe APIs.
TEST_F(WGSLFeatureValidationTest, HasFeatureDefaultInstance) {
diff --git a/src/dawn/tests/unittests/wire/WireAdapterTests.cpp b/src/dawn/tests/unittests/wire/WireAdapterTests.cpp
index c1e1e68..f33d0dc 100644
--- a/src/dawn/tests/unittests/wire/WireAdapterTests.cpp
+++ b/src/dawn/tests/unittests/wire/WireAdapterTests.cpp
@@ -246,8 +246,8 @@
// wire reject the callback.
TEST_P(WireAdapterTests, RequestFeatureUnsupportedByWire) {
std::initializer_list<WGPUFeatureName> fakeFeaturesList = {
- // Some value that is not a valid feature
- static_cast<WGPUFeatureName>(-2),
+ // Default feature is an undefined feature.
+ {},
WGPUFeatureName_TextureCompressionASTC,
};
WGPUSupportedFeatures fakeFeatures = {fakeFeaturesList.size(), std::data(fakeFeaturesList)};
diff --git a/src/dawn/tests/unittests/wire/WireInstanceTests.cpp b/src/dawn/tests/unittests/wire/WireInstanceTests.cpp
index 47ba715..f1a2738 100644
--- a/src/dawn/tests/unittests/wire/WireInstanceTests.cpp
+++ b/src/dawn/tests/unittests/wire/WireInstanceTests.cpp
@@ -362,8 +362,8 @@
std::initializer_list<WGPUFeatureName> fakeFeaturesList = {
WGPUFeatureName_Depth32FloatStencil8,
- // Some value that is not a valid feature
- static_cast<WGPUFeatureName>(-2),
+ // Default feature is an undefined feature.
+ {},
};
WGPUSupportedFeatures fakeFeatures = {fakeFeaturesList.size(), std::data(fakeFeaturesList)};