| // 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/builtin/builtin_test.cc.tmpl |
| // |
| // Do not modify this file directly |
| //////////////////////////////////////////////////////////////////////////////// |
| |
| #include "src/tint/builtin/builtin.h" |
| |
| #include <string> |
| |
| #include "gtest/gtest.h" |
| |
| #include "src/tint/utils/string.h" |
| |
| namespace tint::builtin { |
| 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[] = { |
| {"__packed_vec3", Builtin::kPackedVec3}, |
| {"array", Builtin::kArray}, |
| {"atomic", Builtin::kAtomic}, |
| {"bool", Builtin::kBool}, |
| {"f16", Builtin::kF16}, |
| {"f32", Builtin::kF32}, |
| {"i32", Builtin::kI32}, |
| {"mat2x2", Builtin::kMat2X2}, |
| {"mat2x2f", Builtin::kMat2X2F}, |
| {"mat2x2h", Builtin::kMat2X2H}, |
| {"mat2x3", Builtin::kMat2X3}, |
| {"mat2x3f", Builtin::kMat2X3F}, |
| {"mat2x3h", Builtin::kMat2X3H}, |
| {"mat2x4", Builtin::kMat2X4}, |
| {"mat2x4f", Builtin::kMat2X4F}, |
| {"mat2x4h", Builtin::kMat2X4H}, |
| {"mat3x2", Builtin::kMat3X2}, |
| {"mat3x2f", Builtin::kMat3X2F}, |
| {"mat3x2h", Builtin::kMat3X2H}, |
| {"mat3x3", Builtin::kMat3X3}, |
| {"mat3x3f", Builtin::kMat3X3F}, |
| {"mat3x3h", Builtin::kMat3X3H}, |
| {"mat3x4", Builtin::kMat3X4}, |
| {"mat3x4f", Builtin::kMat3X4F}, |
| {"mat3x4h", Builtin::kMat3X4H}, |
| {"mat4x2", Builtin::kMat4X2}, |
| {"mat4x2f", Builtin::kMat4X2F}, |
| {"mat4x2h", Builtin::kMat4X2H}, |
| {"mat4x3", Builtin::kMat4X3}, |
| {"mat4x3f", Builtin::kMat4X3F}, |
| {"mat4x3h", Builtin::kMat4X3H}, |
| {"mat4x4", Builtin::kMat4X4}, |
| {"mat4x4f", Builtin::kMat4X4F}, |
| {"mat4x4h", Builtin::kMat4X4H}, |
| {"ptr", Builtin::kPtr}, |
| {"sampler", Builtin::kSampler}, |
| {"sampler_comparison", Builtin::kSamplerComparison}, |
| {"texture_1d", Builtin::kTexture1D}, |
| {"texture_2d", Builtin::kTexture2D}, |
| {"texture_2d_array", Builtin::kTexture2DArray}, |
| {"texture_3d", Builtin::kTexture3D}, |
| {"texture_cube", Builtin::kTextureCube}, |
| {"texture_cube_array", Builtin::kTextureCubeArray}, |
| {"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_multisampled_2d", Builtin::kTextureMultisampled2D}, |
| {"texture_storage_1d", Builtin::kTextureStorage1D}, |
| {"texture_storage_2d", Builtin::kTextureStorage2D}, |
| {"texture_storage_2d_array", Builtin::kTextureStorage2DArray}, |
| {"texture_storage_3d", Builtin::kTextureStorage3D}, |
| {"u32", Builtin::kU32}, |
| {"vec2", Builtin::kVec2}, |
| {"vec2f", Builtin::kVec2F}, |
| {"vec2h", Builtin::kVec2H}, |
| {"vec2i", Builtin::kVec2I}, |
| {"vec2u", Builtin::kVec2U}, |
| {"vec3", Builtin::kVec3}, |
| {"vec3f", Builtin::kVec3F}, |
| {"vec3h", Builtin::kVec3H}, |
| {"vec3i", Builtin::kVec3I}, |
| {"vec3u", Builtin::kVec3U}, |
| {"vec4", Builtin::kVec4}, |
| {"vec4f", Builtin::kVec4F}, |
| {"vec4h", Builtin::kVec4H}, |
| {"vec4i", Builtin::kVec4I}, |
| {"vec4u", Builtin::kVec4U}, |
| }; |
| |
| static constexpr Case kInvalidCases[] = { |
| {"__acked_veccc", Builtin::kUndefined}, |
| {"_pac3ed_v3", Builtin::kUndefined}, |
| {"__packeV_vec3", Builtin::kUndefined}, |
| {"arra1", Builtin::kUndefined}, |
| {"qqrJy", Builtin::kUndefined}, |
| {"arrll7y", Builtin::kUndefined}, |
| {"atppmHHc", Builtin::kUndefined}, |
| {"cto", Builtin::kUndefined}, |
| {"abGmi", Builtin::kUndefined}, |
| {"bovii", Builtin::kUndefined}, |
| {"boWWl", Builtin::kUndefined}, |
| {"Mxxl", Builtin::kUndefined}, |
| {"fgg", Builtin::kUndefined}, |
| {"X", Builtin::kUndefined}, |
| {"316", Builtin::kUndefined}, |
| {"fE2", Builtin::kUndefined}, |
| {"fPTT", Builtin::kUndefined}, |
| {"dxx2", Builtin::kUndefined}, |
| {"4432", Builtin::kUndefined}, |
| {"iSVV2", Builtin::kUndefined}, |
| {"RR2", Builtin::kUndefined}, |
| {"at292", Builtin::kUndefined}, |
| {"mat2x", Builtin::kUndefined}, |
| {"Vat2OR2", Builtin::kUndefined}, |
| {"ma2xyf", Builtin::kUndefined}, |
| {"llnarr2772f", Builtin::kUndefined}, |
| {"mat24200", Builtin::kUndefined}, |
| {"a2ooh", Builtin::kUndefined}, |
| {"zz2x2h", Builtin::kUndefined}, |
| {"miitppx1", Builtin::kUndefined}, |
| {"maXX2x3", Builtin::kUndefined}, |
| {"55IIt2nn99", Builtin::kUndefined}, |
| {"aHHrrt2xSS", Builtin::kUndefined}, |
| {"makkf", Builtin::kUndefined}, |
| {"jatgRx", Builtin::kUndefined}, |
| {"mb2x3", Builtin::kUndefined}, |
| {"mat2xjh", Builtin::kUndefined}, |
| {"at2x3h", Builtin::kUndefined}, |
| {"q2x3h", Builtin::kUndefined}, |
| {"mNN2x4", Builtin::kUndefined}, |
| {"mavv4", Builtin::kUndefined}, |
| {"maQQx4", Builtin::kUndefined}, |
| {"maffxr", Builtin::kUndefined}, |
| {"mat2xjf", Builtin::kUndefined}, |
| {"mNNw2x48", Builtin::kUndefined}, |
| {"matx4h", Builtin::kUndefined}, |
| {"mrrt2x4h", Builtin::kUndefined}, |
| {"Gat2x4h", Builtin::kUndefined}, |
| {"matFFx2", Builtin::kUndefined}, |
| {"mtx", Builtin::kUndefined}, |
| {"mrrt3x", Builtin::kUndefined}, |
| {"t3x2f", Builtin::kUndefined}, |
| {"Da3xJJf", Builtin::kUndefined}, |
| {"ma82", Builtin::kUndefined}, |
| {"m11k2", Builtin::kUndefined}, |
| {"matx2h", Builtin::kUndefined}, |
| {"maJx2h", Builtin::kUndefined}, |
| {"cat3x3", Builtin::kUndefined}, |
| {"mat3O3", Builtin::kUndefined}, |
| {"ttKavv3x__", Builtin::kUndefined}, |
| {"xx83x3f", Builtin::kUndefined}, |
| {"__qatF3", Builtin::kUndefined}, |
| {"matqx3f", Builtin::kUndefined}, |
| {"33atOx3h", Builtin::kUndefined}, |
| {"mtt63x9oQQ", Builtin::kUndefined}, |
| {"ma3x66h", Builtin::kUndefined}, |
| {"66aOzx4", Builtin::kUndefined}, |
| {"myyt3x4", Builtin::kUndefined}, |
| {"HHZx4", Builtin::kUndefined}, |
| {"4WWt3q4f", Builtin::kUndefined}, |
| {"mOO3x4f", Builtin::kUndefined}, |
| {"oatY4f", Builtin::kUndefined}, |
| {"matx", Builtin::kUndefined}, |
| {"ma3xFh", Builtin::kUndefined}, |
| {"at3x4w", Builtin::kUndefined}, |
| {"ma4Gf", Builtin::kUndefined}, |
| {"qatKKx2", Builtin::kUndefined}, |
| {"mmmt4x2", Builtin::kUndefined}, |
| {"at4x2f", Builtin::kUndefined}, |
| {"mt4x2q", Builtin::kUndefined}, |
| {"mat4xbb", Builtin::kUndefined}, |
| {"mi4x2h", Builtin::kUndefined}, |
| {"maOO4xq", Builtin::kUndefined}, |
| {"matTvvx2h", Builtin::kUndefined}, |
| {"mat4FF3", Builtin::kUndefined}, |
| {"mtQ00P", Builtin::kUndefined}, |
| {"maP4x3", Builtin::kUndefined}, |
| {"ma774xss", Builtin::kUndefined}, |
| {"RRCbb4x3f", Builtin::kUndefined}, |
| {"mXXt4x3f", Builtin::kUndefined}, |
| {"qaCC4xOOh", Builtin::kUndefined}, |
| {"ma4s3L", Builtin::kUndefined}, |
| {"mXt4x3h", Builtin::kUndefined}, |
| {"mat4x", Builtin::kUndefined}, |
| {"qqt4", Builtin::kUndefined}, |
| {"mat4x22", Builtin::kUndefined}, |
| {"myzz40XX", Builtin::kUndefined}, |
| {"matVViP", Builtin::kUndefined}, |
| {"mannC4f", Builtin::kUndefined}, |
| {"atx4AHHq", Builtin::kUndefined}, |
| {"may4x4", Builtin::kUndefined}, |
| {"aOOOZZh", Builtin::kUndefined}, |
| {"V", Builtin::kUndefined}, |
| {"ptf__", Builtin::kUndefined}, |
| {"4lMT", Builtin::kUndefined}, |
| {"sNNmplg", Builtin::kUndefined}, |
| {"uubpXXer", Builtin::kUndefined}, |
| {"samler", Builtin::kUndefined}, |
| {"m88ler_cQmparisoK", Builtin::kUndefined}, |
| {"qa9ler_comparison", Builtin::kUndefined}, |
| {"sampler_comparis11n", Builtin::kUndefined}, |
| {"teiiu22eF1d", Builtin::kUndefined}, |
| {"tex77ur_1d", Builtin::kUndefined}, |
| {"te2urNN_1d", Builtin::kUndefined}, |
| {"texturVV_2d", Builtin::kUndefined}, |
| {"WWFxtu11e_wd", Builtin::kUndefined}, |
| {"txture_2ww", Builtin::kUndefined}, |
| {"texture_2d_arrDy", Builtin::kUndefined}, |
| {"teKtre_2d_array", Builtin::kUndefined}, |
| {"texhure_2fra11raPP", Builtin::kUndefined}, |
| {"texture3d", Builtin::kUndefined}, |
| {"texture_3YY", Builtin::kUndefined}, |
| {"HHtxtrkk_3d", Builtin::kUndefined}, |
| {"texrrure_cube", Builtin::kUndefined}, |
| {"tssxturWW_cue", Builtin::kUndefined}, |
| {"teYure_cube", Builtin::kUndefined}, |
| {"txture_Lufe_arraq", Builtin::kUndefined}, |
| {"te22ture_uuubevvfray", Builtin::kUndefined}, |
| {"texturecube_aray", Builtin::kUndefined}, |
| {"texture_Yepth_2", Builtin::kUndefined}, |
| {"teytYYEe_77epth_2d", Builtin::kUndefined}, |
| {"teMture_deootd2d", Builtin::kUndefined}, |
| {"texMMre_depth_2d_array", Builtin::kUndefined}, |
| {"texture_depth_2d_arra55", Builtin::kUndefined}, |
| {"texture_deh_2d_aNray", Builtin::kUndefined}, |
| {"te3ture_dpth_cO3be", Builtin::kUndefined}, |
| {"texture_depth_cub3", Builtin::kUndefined}, |
| {"Iexturedepth_cume", Builtin::kUndefined}, |
| {"texture_depthnncube_Krrry", Builtin::kUndefined}, |
| {"texture_dth_XXube_rra", Builtin::kUndefined}, |
| {"textIre_depph_ubeLLarray", Builtin::kUndefined}, |
| {"txtfre_depthmultisampled_2d", Builtin::kUndefined}, |
| {"texURuYe_Depthmultisampled_2d", Builtin::kUndefined}, |
| {"texture_depth_multisamphed_2d", Builtin::kUndefined}, |
| {"teqtureuIIextnal", Builtin::kUndefined}, |
| {"texture_externaH", Builtin::kUndefined}, |
| {"texre_externaQvv", Builtin::kUndefined}, |
| {"textureemultismp66ed_d", Builtin::kUndefined}, |
| {"tW7trO_multisampled_2d", Builtin::kUndefined}, |
| {"texture_mult550ampled_2DD", Builtin::kUndefined}, |
| {"teHture_storIIge_1d", Builtin::kUndefined}, |
| {"textue_storage_1d", Builtin::kUndefined}, |
| {"rexture_storae_1d", Builtin::kUndefined}, |
| {"texture_stolage_2d", Builtin::kUndefined}, |
| {"txture_JJtGrgtt_2d", Builtin::kUndefined}, |
| {"yexture_storage2d", Builtin::kUndefined}, |
| {"texture_storage_2d_rray", Builtin::kUndefined}, |
| {"texture_IItorage_2d_BBrray", Builtin::kUndefined}, |
| {"33exture_TTtorge_Kd_ar88ay", Builtin::kUndefined}, |
| {"texSnnYUUure_storage_3d", Builtin::kUndefined}, |
| {"textuxe_5torCCdZ_3d", Builtin::kUndefined}, |
| {"tkkxture_storaqe_3d", Builtin::kUndefined}, |
| {"5i00", Builtin::kUndefined}, |
| {"unII2", Builtin::kUndefined}, |
| {"cc", Builtin::kUndefined}, |
| {"KK", Builtin::kUndefined}, |
| {"66ec2", Builtin::kUndefined}, |
| {"PPEK", Builtin::kUndefined}, |
| {"vexxf", Builtin::kUndefined}, |
| {"qec2f", Builtin::kUndefined}, |
| {"veSyMMr", Builtin::kUndefined}, |
| {"v2u", Builtin::kUndefined}, |
| {"ec", Builtin::kUndefined}, |
| {"5eFF2h", Builtin::kUndefined}, |
| {"rrecz44", Builtin::kUndefined}, |
| {"vWW", Builtin::kUndefined}, |
| {"XJecCZZ", Builtin::kUndefined}, |
| {"vePP2", Builtin::kUndefined}, |
| {"vec2c", Builtin::kUndefined}, |
| {"ve6ll2u", Builtin::kUndefined}, |
| {"vey99", Builtin::kUndefined}, |
| {"vKKc3", Builtin::kUndefined}, |
| {"x_3", Builtin::kUndefined}, |
| {"Ky3", Builtin::kUndefined}, |
| {"zek3f", Builtin::kUndefined}, |
| {"veKSf", Builtin::kUndefined}, |
| {"vc3h", Builtin::kUndefined}, |
| {"ec3VV", Builtin::kUndefined}, |
| {"IAAc3h", Builtin::kUndefined}, |
| {"jbR", Builtin::kUndefined}, |
| {"veY4", Builtin::kUndefined}, |
| {"ec3i", Builtin::kUndefined}, |
| {"vc911", Builtin::kUndefined}, |
| {"mmccu", Builtin::kUndefined}, |
| {"vJJcu", Builtin::kUndefined}, |
| {"lDCfcU", Builtin::kUndefined}, |
| {"veg4", Builtin::kUndefined}, |
| {"CC", Builtin::kUndefined}, |
| {"ec4f", Builtin::kUndefined}, |
| {"vIc__f", Builtin::kUndefined}, |
| {"ePPtt", Builtin::kUndefined}, |
| {"v3dc4h", Builtin::kUndefined}, |
| {"vcyyh", Builtin::kUndefined}, |
| {"u4", Builtin::kUndefined}, |
| {"v03nni", Builtin::kUndefined}, |
| {"Cuuecnv", Builtin::kUndefined}, |
| {"vX4ll", Builtin::kUndefined}, |
| {"vocppu", Builtin::kUndefined}, |
| {"vwwc4", Builtin::kUndefined}, |
| {"veuug", 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::builtin |