| // Copyright 2022 The Tint Authors. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // File generated by tools/src/cmd/gen |
| // using the template: |
| // src/tint/type/builtin_test.cc.tmpl |
| // |
| // Do not modify this file directly |
| //////////////////////////////////////////////////////////////////////////////// |
| |
| #include "src/tint/type/builtin.h" |
| |
| #include <string> |
| |
| #include "gtest/gtest.h" |
| |
| #include "src/tint/utils/string.h" |
| |
| namespace tint::type { |
| namespace { |
| |
| namespace parse_print_tests { |
| |
| struct Case { |
| const char* string; |
| Builtin value; |
| }; |
| |
| inline std::ostream& operator<<(std::ostream& out, Case c) { |
| return out << "'" << std::string(c.string) << "'"; |
| } |
| |
| static constexpr Case kValidCases[] = { |
| {"bool", Builtin::kBool}, |
| {"f16", Builtin::kF16}, |
| {"f32", Builtin::kF32}, |
| {"i32", Builtin::kI32}, |
| {"mat2x2f", Builtin::kMat2X2F}, |
| {"mat2x2h", Builtin::kMat2X2H}, |
| {"mat2x3f", Builtin::kMat2X3F}, |
| {"mat2x3h", Builtin::kMat2X3H}, |
| {"mat2x4f", Builtin::kMat2X4F}, |
| {"mat2x4h", Builtin::kMat2X4H}, |
| {"mat3x2f", Builtin::kMat3X2F}, |
| {"mat3x2h", Builtin::kMat3X2H}, |
| {"mat3x3f", Builtin::kMat3X3F}, |
| {"mat3x3h", Builtin::kMat3X3H}, |
| {"mat3x4f", Builtin::kMat3X4F}, |
| {"mat3x4h", Builtin::kMat3X4H}, |
| {"mat4x2f", Builtin::kMat4X2F}, |
| {"mat4x2h", Builtin::kMat4X2H}, |
| {"mat4x3f", Builtin::kMat4X3F}, |
| {"mat4x3h", Builtin::kMat4X3H}, |
| {"mat4x4f", Builtin::kMat4X4F}, |
| {"mat4x4h", Builtin::kMat4X4H}, |
| {"sampler", Builtin::kSampler}, |
| {"sampler_comparison", Builtin::kSamplerComparison}, |
| {"texture_depth_2d", Builtin::kTextureDepth2D}, |
| {"texture_depth_2d_array", Builtin::kTextureDepth2DArray}, |
| {"texture_depth_cube", Builtin::kTextureDepthCube}, |
| {"texture_depth_cube_array", Builtin::kTextureDepthCubeArray}, |
| {"texture_depth_multisampled_2d", Builtin::kTextureDepthMultisampled2D}, |
| {"texture_external", Builtin::kTextureExternal}, |
| {"texture_storage_1d", Builtin::kTextureStorage1D}, |
| {"texture_storage_2d", Builtin::kTextureStorage2D}, |
| {"texture_storage_2d_array", Builtin::kTextureStorage2DArray}, |
| {"texture_storage_3d", Builtin::kTextureStorage3D}, |
| {"u32", Builtin::kU32}, |
| {"vec2f", Builtin::kVec2F}, |
| {"vec2h", Builtin::kVec2H}, |
| {"vec2i", Builtin::kVec2I}, |
| {"vec2u", Builtin::kVec2U}, |
| {"vec3f", Builtin::kVec3F}, |
| {"vec3h", Builtin::kVec3H}, |
| {"vec3i", Builtin::kVec3I}, |
| {"vec3u", Builtin::kVec3U}, |
| {"vec4f", Builtin::kVec4F}, |
| {"vec4h", Builtin::kVec4H}, |
| {"vec4i", Builtin::kVec4I}, |
| {"vec4u", Builtin::kVec4U}, |
| }; |
| |
| static constexpr Case kInvalidCases[] = { |
| {"ccol", Builtin::kUndefined}, |
| {"3", Builtin::kUndefined}, |
| {"bVol", Builtin::kUndefined}, |
| {"116", Builtin::kUndefined}, |
| {"qJ6", Builtin::kUndefined}, |
| {"f17ll", Builtin::kUndefined}, |
| {"fppqH", Builtin::kUndefined}, |
| {"", Builtin::kUndefined}, |
| {"Gb", Builtin::kUndefined}, |
| {"i3vi", Builtin::kUndefined}, |
| {"i8WW", Builtin::kUndefined}, |
| {"ixx", Builtin::kUndefined}, |
| {"mX2x2gg", Builtin::kUndefined}, |
| {"a2xXf", Builtin::kUndefined}, |
| {"mat232f", Builtin::kUndefined}, |
| {"Eat2x2h", Builtin::kUndefined}, |
| {"mPTT2x2h", Builtin::kUndefined}, |
| {"mat2xdxx", Builtin::kUndefined}, |
| {"m44t2x3f", Builtin::kUndefined}, |
| {"maSS2xVVf", Builtin::kUndefined}, |
| {"RatR22f", Builtin::kUndefined}, |
| {"mF2x9h", Builtin::kUndefined}, |
| {"matx3h", Builtin::kUndefined}, |
| {"VOORRH3h", Builtin::kUndefined}, |
| {"ma2xyf", Builtin::kUndefined}, |
| {"llnarr2774f", Builtin::kUndefined}, |
| {"mat24400", Builtin::kUndefined}, |
| {"a2ooh", Builtin::kUndefined}, |
| {"zz2x4h", Builtin::kUndefined}, |
| {"miitppx1", Builtin::kUndefined}, |
| {"mat3xXXf", Builtin::kUndefined}, |
| {"9II5ann3x2f", Builtin::kUndefined}, |
| {"mataSSrHHYf", Builtin::kUndefined}, |
| {"makkh", Builtin::kUndefined}, |
| {"jatgRx", Builtin::kUndefined}, |
| {"mb3x2", Builtin::kUndefined}, |
| {"mat3xjf", Builtin::kUndefined}, |
| {"at3x3f", Builtin::kUndefined}, |
| {"q3x3f", Builtin::kUndefined}, |
| {"matNN3h", Builtin::kUndefined}, |
| {"at33vv", Builtin::kUndefined}, |
| {"QQt3x3h", Builtin::kUndefined}, |
| {"maffxr", Builtin::kUndefined}, |
| {"mat3xjf", Builtin::kUndefined}, |
| {"mNNw3x48", Builtin::kUndefined}, |
| {"matx4h", Builtin::kUndefined}, |
| {"mrrt3x4h", Builtin::kUndefined}, |
| {"Gat3x4h", Builtin::kUndefined}, |
| {"mat4x2FF", Builtin::kUndefined}, |
| {"at4f", Builtin::kUndefined}, |
| {"marrx2f", Builtin::kUndefined}, |
| {"t4x2h", Builtin::kUndefined}, |
| {"Da4xJJh", Builtin::kUndefined}, |
| {"ma82", Builtin::kUndefined}, |
| {"m11k3", Builtin::kUndefined}, |
| {"matx3f", Builtin::kUndefined}, |
| {"maJx3f", Builtin::kUndefined}, |
| {"mat4c3h", Builtin::kUndefined}, |
| {"mat4x3O", Builtin::kUndefined}, |
| {"KK_atvvtt3h", Builtin::kUndefined}, |
| {"xx84x4f", Builtin::kUndefined}, |
| {"__qatF4", Builtin::kUndefined}, |
| {"matqx4f", Builtin::kUndefined}, |
| {"33atOx4h", Builtin::kUndefined}, |
| {"mtt64x9oQQ", Builtin::kUndefined}, |
| {"ma4x66h", Builtin::kUndefined}, |
| {"smOlzz66", Builtin::kUndefined}, |
| {"sampyyer", Builtin::kUndefined}, |
| {"ZaHHeZ", Builtin::kUndefined}, |
| {"sWWpleq_compari44on", Builtin::kUndefined}, |
| {"sampler_compaisoOO", Builtin::kUndefined}, |
| {"smpeoo_coYparison", Builtin::kUndefined}, |
| {"eture_dpth_2d", Builtin::kUndefined}, |
| {"texture_detF_2d", Builtin::kUndefined}, |
| {"texturedwpth_2d", Builtin::kUndefined}, |
| {"teKuffe_Gepth_2d_arry", Builtin::kUndefined}, |
| {"texture_dKKptq_2d_array", Builtin::kUndefined}, |
| {"texture_depmmh32d_arraF", Builtin::kUndefined}, |
| {"textur_depth_cube", Builtin::kUndefined}, |
| {"texure_depqh_cube", Builtin::kUndefined}, |
| {"texture_debth_cube", Builtin::kUndefined}, |
| {"txture_deptii_cube_arry", Builtin::kUndefined}, |
| {"textureqdepth_OOube_arry", Builtin::kUndefined}, |
| {"texture_deTvvth_cube_array", Builtin::kUndefined}, |
| {"texture_depth_multiFFampled_2d", Builtin::kUndefined}, |
| {"textue_depthPmfl00isampled_Qd", Builtin::kUndefined}, |
| {"textuPe_depth_multisampled_2d", Builtin::kUndefined}, |
| {"texture_exernss77", Builtin::kUndefined}, |
| {"texture_bbxternRRl", Builtin::kUndefined}, |
| {"textureXXexternal", Builtin::kUndefined}, |
| {"CCextOOre_stoage_qOd", Builtin::kUndefined}, |
| {"txtsre_sturage_1L", Builtin::kUndefined}, |
| {"texture_stoXage_1d", Builtin::kUndefined}, |
| {"textue_storage_2d", Builtin::kUndefined}, |
| {"teuresOorageqq2d", Builtin::kUndefined}, |
| {"texture_sto22age_2d", Builtin::kUndefined}, |
| {"exture_syora0e_2d_Xzzrray", Builtin::kUndefined}, |
| {"texiVVr_storageP2d_array", Builtin::kUndefined}, |
| {"texturestorage_2nn_arCay", Builtin::kUndefined}, |
| {"texturHHstorAAe_qqd", Builtin::kUndefined}, |
| {"textur_storage_3d", Builtin::kUndefined}, |
| {"texure_sfKorage3d", Builtin::kUndefined}, |
| {"gg", Builtin::kUndefined}, |
| {"u3", Builtin::kUndefined}, |
| {"NT42", Builtin::kUndefined}, |
| {"ppec7l", Builtin::kUndefined}, |
| {"zNe2f", Builtin::kUndefined}, |
| {"uXXb2f", Builtin::kUndefined}, |
| {"vec2", Builtin::kUndefined}, |
| {"882K", Builtin::kUndefined}, |
| {"vq9h", Builtin::kUndefined}, |
| {"vec211", Builtin::kUndefined}, |
| {"22ciii", Builtin::kUndefined}, |
| {"ec77i", Builtin::kUndefined}, |
| {"NN22u", Builtin::kUndefined}, |
| {"vVVc2u", Builtin::kUndefined}, |
| {"WW11w2u", Builtin::kUndefined}, |
| {"vcwwf", Builtin::kUndefined}, |
| {"vDc3f", Builtin::kUndefined}, |
| {"vecK", Builtin::kUndefined}, |
| {"f11r3PP", Builtin::kUndefined}, |
| {"ve3h", Builtin::kUndefined}, |
| {"vec3YY", Builtin::kUndefined}, |
| {"vkktHH", Builtin::kUndefined}, |
| {"rrec3i", Builtin::kUndefined}, |
| {"vWWssi", Builtin::kUndefined}, |
| {"veYu", Builtin::kUndefined}, |
| {"eq3f", Builtin::kUndefined}, |
| {"u22ec3u", Builtin::kUndefined}, |
| {"c4f", Builtin::kUndefined}, |
| {"vec4", Builtin::kUndefined}, |
| {"vYyc47E", Builtin::kUndefined}, |
| {"veMoh", Builtin::kUndefined}, |
| {"ve4MM", Builtin::kUndefined}, |
| {"55ec4h", Builtin::kUndefined}, |
| {"N4i", Builtin::kUndefined}, |
| {"ve33i", Builtin::kUndefined}, |
| {"3ec4i", Builtin::kUndefined}, |
| {"mecI", Builtin::kUndefined}, |
| {"vrnK4u", Builtin::kUndefined}, |
| {"v4", Builtin::kUndefined}, |
| }; |
| |
| using BuiltinParseTest = testing::TestWithParam<Case>; |
| |
| TEST_P(BuiltinParseTest, Parse) { |
| const char* string = GetParam().string; |
| Builtin expect = GetParam().value; |
| EXPECT_EQ(expect, ParseBuiltin(string)); |
| } |
| |
| INSTANTIATE_TEST_SUITE_P(ValidCases, BuiltinParseTest, testing::ValuesIn(kValidCases)); |
| INSTANTIATE_TEST_SUITE_P(InvalidCases, BuiltinParseTest, testing::ValuesIn(kInvalidCases)); |
| |
| using BuiltinPrintTest = testing::TestWithParam<Case>; |
| |
| TEST_P(BuiltinPrintTest, Print) { |
| Builtin value = GetParam().value; |
| const char* expect = GetParam().string; |
| EXPECT_EQ(expect, utils::ToString(value)); |
| } |
| |
| INSTANTIATE_TEST_SUITE_P(ValidCases, BuiltinPrintTest, testing::ValuesIn(kValidCases)); |
| |
| } // namespace parse_print_tests |
| |
| } // namespace |
| } // namespace tint::type |