blob: 2908bc2790635cfbd4eca3697c83248fa920b865 [file] [log] [blame]
// 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[] = {
{"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[] = {
{"arccy", Builtin::kUndefined},
{"3a", Builtin::kUndefined},
{"aVray", Builtin::kUndefined},
{"1tomic", Builtin::kUndefined},
{"aoqqic", Builtin::kUndefined},
{"atomll77", Builtin::kUndefined},
{"ppqooH", Builtin::kUndefined},
{"c", Builtin::kUndefined},
{"bGo", Builtin::kUndefined},
{"f1vi", Builtin::kUndefined},
{"f8WW", Builtin::kUndefined},
{"fxx", Builtin::kUndefined},
{"fgg", Builtin::kUndefined},
{"X", Builtin::kUndefined},
{"332", Builtin::kUndefined},
{"iE2", Builtin::kUndefined},
{"iPTT", Builtin::kUndefined},
{"dxx2", Builtin::kUndefined},
{"44at2x2", Builtin::kUndefined},
{"mSSVV2x2", Builtin::kUndefined},
{"mat2R2", Builtin::kUndefined},
{"mF2x9f", Builtin::kUndefined},
{"matx2f", Builtin::kUndefined},
{"VOORRH2f", Builtin::kUndefined},
{"ma2xyh", Builtin::kUndefined},
{"llnarr2772h", Builtin::kUndefined},
{"mat24200", Builtin::kUndefined},
{"m2oo", Builtin::kUndefined},
{"atzz3", Builtin::kUndefined},
{"1it2xpp", Builtin::kUndefined},
{"mat2xXXf", Builtin::kUndefined},
{"9II5ann2x3f", Builtin::kUndefined},
{"mataSSrHHYf", Builtin::kUndefined},
{"makkh", Builtin::kUndefined},
{"jatgRx", Builtin::kUndefined},
{"mb2x3", Builtin::kUndefined},
{"mat2j4", Builtin::kUndefined},
{"mt2x4", Builtin::kUndefined},
{"m2q4", Builtin::kUndefined},
{"matNN4f", Builtin::kUndefined},
{"at24vv", Builtin::kUndefined},
{"QQt2x4f", Builtin::kUndefined},
{"maffxr", Builtin::kUndefined},
{"mat2xjh", Builtin::kUndefined},
{"mNNw2x48", Builtin::kUndefined},
{"mt3x2", Builtin::kUndefined},
{"rrat3x2", Builtin::kUndefined},
{"mGt3x2", Builtin::kUndefined},
{"mat3x2FF", Builtin::kUndefined},
{"at3f", Builtin::kUndefined},
{"marrx2f", Builtin::kUndefined},
{"t3x2h", Builtin::kUndefined},
{"Da3xJJh", Builtin::kUndefined},
{"ma82", Builtin::kUndefined},
{"1k33", Builtin::kUndefined},
{"matx3", Builtin::kUndefined},
{"maJx3", Builtin::kUndefined},
{"mat3c3f", Builtin::kUndefined},
{"mat3x3O", Builtin::kUndefined},
{"KK_atvvtt3f", Builtin::kUndefined},
{"xx83x3h", Builtin::kUndefined},
{"__qatF3", Builtin::kUndefined},
{"matqx3h", Builtin::kUndefined},
{"ma33x66", Builtin::kUndefined},
{"mttQQo3x4", Builtin::kUndefined},
{"mat66x", Builtin::kUndefined},
{"mtOxzz66", Builtin::kUndefined},
{"mat3yy4f", Builtin::kUndefined},
{"ZaHH4Z", Builtin::kUndefined},
{"4WWt3q4h", Builtin::kUndefined},
{"mOO3x4h", Builtin::kUndefined},
{"oatY4h", Builtin::kUndefined},
{"ax2", Builtin::kUndefined},
{"ma4x2", Builtin::kUndefined},
{"matw2", Builtin::kUndefined},
{"fGtxKf", Builtin::kUndefined},
{"matqKx2f", Builtin::kUndefined},
{"matmmxFf", Builtin::kUndefined},
{"at4x2h", Builtin::kUndefined},
{"mt4x2q", Builtin::kUndefined},
{"mat4xbb", Builtin::kUndefined},
{"it4x3", Builtin::kUndefined},
{"mOO4xq", Builtin::kUndefined},
{"mat4Tvv3", Builtin::kUndefined},
{"maFF4x3f", Builtin::kUndefined},
{"Pa00xQf", Builtin::kUndefined},
{"mPt4x3f", Builtin::kUndefined},
{"ma774xss", Builtin::kUndefined},
{"RRCbb4x3h", Builtin::kUndefined},
{"mXXt4x3h", Builtin::kUndefined},
{"CCt4OOOO", Builtin::kUndefined},
{"mtsuL", Builtin::kUndefined},
{"mat4xX", Builtin::kUndefined},
{"mat44f", Builtin::kUndefined},
{"qa4O4", Builtin::kUndefined},
{"mat4x22f", Builtin::kUndefined},
{"myzz40XX", Builtin::kUndefined},
{"matVViP", Builtin::kUndefined},
{"mannC4h", Builtin::kUndefined},
{"pHAq", Builtin::kUndefined},
{"tr", Builtin::kUndefined},
{"Kf", Builtin::kUndefined},
{"lmgger", Builtin::kUndefined},
{"samplr", Builtin::kUndefined},
{"NTTmcl4r", Builtin::kUndefined},
{"sampler_clmppri77on", Builtin::kUndefined},
{"samplg_czzmparNNso", Builtin::kUndefined},
{"smpleuuXXomparibbon", Builtin::kUndefined},
{"texture_1", Builtin::kUndefined},
{"t88tueQ1K", Builtin::kUndefined},
{"texturq9d", Builtin::kUndefined},
{"text11re_2d", Builtin::kUndefined},
{"teiiu22eF2d", Builtin::kUndefined},
{"tex77ur_2d", Builtin::kUndefined},
{"textNNr2_d_array", Builtin::kUndefined},
{"textVVre_2d_array", Builtin::kUndefined},
{"texwure_WWF_11rray", Builtin::kUndefined},
{"txture_3ww", Builtin::kUndefined},
{"texturD_3d", Builtin::kUndefined},
{"teKture_d", Builtin::kUndefined},
{"11exPPufe_cubh", Builtin::kUndefined},
{"textue_cube", Builtin::kUndefined},
{"texture_cubYY", Builtin::kUndefined},
{"texttr_cube_HHkkVay", Builtin::kUndefined},
{"texture_crrbe_array", Builtin::kUndefined},
{"texturesscubeWWaray", Builtin::kUndefined},
{"texture_deptY_d", Builtin::kUndefined},
{"teLturq_defh_2d", Builtin::kUndefined},
{"texvvre_duu22th_2d", Builtin::kUndefined},
{"texure_deth_2d_array", Builtin::kUndefined},
{"texturYY_depth_2daray", Builtin::kUndefined},
{"texturE_77epth_2d_aryYay", Builtin::kUndefined},
{"Mexdoore_depth_cue", Builtin::kUndefined},
{"texturedepMMh_cube", Builtin::kUndefined},
{"texture55depth_cube", Builtin::kUndefined},
{"textue_depth_cbe_aNray", Builtin::kUndefined},
{"texture_dpth_c33be_array", Builtin::kUndefined},
{"texture_depth_cub3_array", Builtin::kUndefined},
{"texIure_mepth_mulisampled_2d", Builtin::kUndefined},
{"texture_depthrmKltisampled_2nn", Builtin::kUndefined},
{"textur_depth_multismXld_2d", Builtin::kUndefined},
{"texpure_exLLeIna", Builtin::kUndefined},
{"txture_exfrnal", Builtin::kUndefined},
{"teUture_extYRRDl", Builtin::kUndefined},
{"texturehmultisampled_2d", Builtin::kUndefined},
{"texturqmultsIImuuled_2d", Builtin::kUndefined},
{"Hexture_multisampled_2d", Builtin::kUndefined},
{"texQQur_storge_vvd", Builtin::kUndefined},
{"texeure_66oage_1d", Builtin::kUndefined},
{"texture_stoage71d", Builtin::kUndefined},
{"texture_s55or0ge_2DD", Builtin::kUndefined},
{"teHture_storIIge_2d", Builtin::kUndefined},
{"textue_storage_2d", Builtin::kUndefined},
{"texturestorage_2d_rrray", Builtin::kUndefined},
{"textule_storage_2d_array", Builtin::kUndefined},
{"tetture_JJtorage_Gd_arra", Builtin::kUndefined},
{"yexture_storage3d", Builtin::kUndefined},
{"texturestorage_3d", Builtin::kUndefined},
{"texture_IItorBBge_3d", Builtin::kUndefined},
{"TTK33", Builtin::kUndefined},
{"nnUYdSS2", Builtin::kUndefined},
{"x5dZ", Builtin::kUndefined},
{"veckq", Builtin::kUndefined},
{"ii500", Builtin::kUndefined},
{"vecIIn", Builtin::kUndefined},
{"cceW", Builtin::kUndefined},
{"cKK", Builtin::kUndefined},
{"vec66f", Builtin::kUndefined},
{"vePPK", Builtin::kUndefined},
{"vexxh", Builtin::kUndefined},
{"qec2h", Builtin::kUndefined},
{"veSyMMr", Builtin::kUndefined},
{"v2u", Builtin::kUndefined},
{"ec", Builtin::kUndefined},
{"5eFF2u", Builtin::kUndefined},
{"rrecz44", Builtin::kUndefined},
{"vWW", Builtin::kUndefined},
{"ZJJCcX", Builtin::kUndefined},
{"vcPP", Builtin::kUndefined},
{"vec", Builtin::kUndefined},
{"3Le003f", Builtin::kUndefined},
{"MMec3RR", Builtin::kUndefined},
{"vec39K", Builtin::kUndefined},
{"yyecm", Builtin::kUndefined},
{"v__cD", Builtin::kUndefined},
{"vec3U", Builtin::kUndefined},
{"ze333i", Builtin::kUndefined},
{"eKti", Builtin::kUndefined},
{"ve3V", Builtin::kUndefined},
{"jbR3K", Builtin::kUndefined},
{"e44344", Builtin::kUndefined},
{"00u", Builtin::kUndefined},
{"WK4", Builtin::kUndefined},
{"m", Builtin::kUndefined},
{"vJJ", Builtin::kUndefined},
{"lDDcUfC", Builtin::kUndefined},
{"vec4g", Builtin::kUndefined},
{"CCe", Builtin::kUndefined},
{"ec4h", Builtin::kUndefined},
{"vIc__h", Builtin::kUndefined},
{"ePPtt", Builtin::kUndefined},
{"v3dc4i", Builtin::kUndefined},
{"vcyyi", Builtin::kUndefined},
{"u4", Builtin::kUndefined},
{"v03nnu", Builtin::kUndefined},
{"Cuuecnv", Builtin::kUndefined},
{"vX4ll", 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