blob: 9ff8d99228ddd0b443f7f0b1efb95a78286a15e1 [file] [log] [blame] [edit]
// 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