blob: 3852d409a9afd571d1e823c85e242d284eda9e4f [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/lang/core/builtin_test.cc.tmpl
//
// Do not modify this file directly
////////////////////////////////////////////////////////////////////////////////
#include "src/tint/lang/core/builtin.h"
#include <string>
#include "gtest/gtest.h"
#include "src/tint/utils/text/string.h"
namespace tint::core {
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[] = {
{"__atomic_compare_exchange_result_i32", Builtin::kAtomicCompareExchangeResultI32},
{"__atomic_compare_exchange_result_u32", Builtin::kAtomicCompareExchangeResultU32},
{"__frexp_result_abstract", Builtin::kFrexpResultAbstract},
{"__frexp_result_f16", Builtin::kFrexpResultF16},
{"__frexp_result_f32", Builtin::kFrexpResultF32},
{"__frexp_result_vec2_abstract", Builtin::kFrexpResultVec2Abstract},
{"__frexp_result_vec2_f16", Builtin::kFrexpResultVec2F16},
{"__frexp_result_vec2_f32", Builtin::kFrexpResultVec2F32},
{"__frexp_result_vec3_abstract", Builtin::kFrexpResultVec3Abstract},
{"__frexp_result_vec3_f16", Builtin::kFrexpResultVec3F16},
{"__frexp_result_vec3_f32", Builtin::kFrexpResultVec3F32},
{"__frexp_result_vec4_abstract", Builtin::kFrexpResultVec4Abstract},
{"__frexp_result_vec4_f16", Builtin::kFrexpResultVec4F16},
{"__frexp_result_vec4_f32", Builtin::kFrexpResultVec4F32},
{"__modf_result_abstract", Builtin::kModfResultAbstract},
{"__modf_result_f16", Builtin::kModfResultF16},
{"__modf_result_f32", Builtin::kModfResultF32},
{"__modf_result_vec2_abstract", Builtin::kModfResultVec2Abstract},
{"__modf_result_vec2_f16", Builtin::kModfResultVec2F16},
{"__modf_result_vec2_f32", Builtin::kModfResultVec2F32},
{"__modf_result_vec3_abstract", Builtin::kModfResultVec3Abstract},
{"__modf_result_vec3_f16", Builtin::kModfResultVec3F16},
{"__modf_result_vec3_f32", Builtin::kModfResultVec3F32},
{"__modf_result_vec4_abstract", Builtin::kModfResultVec4Abstract},
{"__modf_result_vec4_f16", Builtin::kModfResultVec4F16},
{"__modf_result_vec4_f32", Builtin::kModfResultVec4F32},
{"__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[] = {
{"__atomic_compareexchangeccresult_i32", Builtin::kUndefined},
{"__atoml3_compare_exchane_resulti2", Builtin::kUndefined},
{"__atomic_compare_Vxchange_result_i32", Builtin::kUndefined},
{"__atomic_com1are_exchange_result_u32", Builtin::kUndefined},
{"__atomic_qqompare_exchage_resulJ_u32", Builtin::kUndefined},
{"__atllmic_compare_exchange_result_u377", Builtin::kUndefined},
{"qpp_frexp_resultHHbstract", Builtin::kUndefined},
{"__fep_esulv_abstract", Builtin::kUndefined},
{"__Gbexp_resul_abstract", Builtin::kUndefined},
{"_vfrexp_resiilt_f16", Builtin::kUndefined},
{"__fr8xp_resultWWf16", Builtin::kUndefined},
{"__frxp_result_fMxx", Builtin::kUndefined},
{"gg_fXexp_reslt_f32", Builtin::kUndefined},
{"__frXxpresul_V32", Builtin::kUndefined},
{"__frexp_r3sult_f32", Builtin::kUndefined},
{"__frexpEresult_vec2_abstract", Builtin::kUndefined},
{"__frex_rPPsult_vTTc2_abstract", Builtin::kUndefined},
{"__frexp_resuddt_ec2_xxbstract", Builtin::kUndefined},
{"__frexp_result_ve442_f16", Builtin::kUndefined},
{"_SSfrexp_resulVV_vec2_f16", Builtin::kUndefined},
{"__fRxpRr22sult_vec2_f16", Builtin::kUndefined},
{"__frexp_res9lt_vec_fF2", Builtin::kUndefined},
{"__frexp_result_ve2_f32", Builtin::kUndefined},
{"_OOfrexp_result_VeHRRf32", Builtin::kUndefined},
{"__frexp_reyult_vec3_absract", Builtin::kUndefined},
{"__frexp_re77ulll_vecG_arrnstract", Builtin::kUndefined},
{"__4rexp_result_vec3_00bstract", Builtin::kUndefined},
{"__oorxp_result_vec316", Builtin::kUndefined},
{"zz_frexp_esult_ec3_f16", Builtin::kUndefined},
{"__iirex11_result_vp3_f16", Builtin::kUndefined},
{"__frXXxp_result_vec3_f32", Builtin::kUndefined},
{"__fnnexp99resIIlt_vec3_f355", Builtin::kUndefined},
{"__faSSerrp_result_vHHc3_fY2", Builtin::kUndefined},
{"__freHp_resutve4_abstkkact", Builtin::kUndefined},
{"jfrexpgresult_veRR4_abstrac", Builtin::kUndefined},
{"__frexp_resul_vec4_absbrac", Builtin::kUndefined},
{"_jfrexp_result_vec4_f16", Builtin::kUndefined},
{"__frexp_resultvec4_f16", Builtin::kUndefined},
{"__freqpresultvec4_f16", Builtin::kUndefined},
{"__frexNN_result_vec_f32", Builtin::kUndefined},
{"__frexp_resvvlt_vc4_f3", Builtin::kUndefined},
{"__frexp_esult_vec4_f3QQ", Builtin::kUndefined},
{"rmodf_reffultabstract", Builtin::kUndefined},
{"__jodf_result_abstract", Builtin::kUndefined},
{"_mNNwdf_r2sult8abstract", Builtin::kUndefined},
{"__mdf_result_f16", Builtin::kUndefined},
{"__modrr_result_f16", Builtin::kUndefined},
{"__mGdf_result_f16", Builtin::kUndefined},
{"__modf_resulFF_f32", Builtin::kUndefined},
{"__modf_eult_E3", Builtin::kUndefined},
{"__odf_resurrt_f32", Builtin::kUndefined},
{"__modf_reslt_vec_abstract", Builtin::kUndefined},
{"__modfJJresuDt_Xc2_abstract", Builtin::kUndefined},
{"_modf_reslt_vec28abstrct", Builtin::kUndefined},
{"__odf_reult_vkc211f1", Builtin::kUndefined},
{"__mdf_result_vec2_f16", Builtin::kUndefined},
{"__modf_resuJt_vec2_f6", Builtin::kUndefined},
{"__modf_result_vec2cf32", Builtin::kUndefined},
{"__modf_result_vec2_fO2", Builtin::kUndefined},
{"KK_movvf_result_vec2_ftt__", Builtin::kUndefined},
{"xx_modf_r8sult_vec3_abtr5ct", Builtin::kUndefined},
{"__modf_resuFt_vec3_aqt__act", Builtin::kUndefined},
{"__modf_result_vec3_aqqstrac", Builtin::kUndefined},
{"__odf_33esult_vec3_f1O6", Builtin::kUndefined},
{"_ttm6df_resQQlt_ooec9_f16", Builtin::kUndefined},
{"_modf_resu66t_vec3_f16", Builtin::kUndefined},
{"__mdf_resultOvxc3_f36zz", Builtin::kUndefined},
{"__modf_resuyyt_vec3_f32", Builtin::kUndefined},
{"__mod_resul_vecZHHf32", Builtin::kUndefined},
{"__modf_reqult_44ec4WWbstract", Builtin::kUndefined},
{"__mof_result_vec4_abstrOOct", Builtin::kUndefined},
{"__modYooresult_vh4_bstract", Builtin::kUndefined},
{"__modf_relt_ve4_f16", Builtin::kUndefined},
{"__modf_result_ve4Ff16", Builtin::kUndefined},
{"__modf_result_wec4_f1", Builtin::kUndefined},
{"__Kdff_rGsult_vec4_f2", Builtin::kUndefined},
{"__modf_reKKulq_vec4_f32", Builtin::kUndefined},
{"__modf_resummt3vec4_f3F", Builtin::kUndefined},
{"__packed_ec3", Builtin::kUndefined},
{"__packed_ecq", Builtin::kUndefined},
{"_backed_bbec3", Builtin::kUndefined},
{"iira", Builtin::kUndefined},
{"aqOOy", Builtin::kUndefined},
{"arvvTTy", Builtin::kUndefined},
{"atomFFc", Builtin::kUndefined},
{"aoQ00P", Builtin::kUndefined},
{"atPmic", Builtin::kUndefined},
{"bos77", Builtin::kUndefined},
{"CoRbbl", Builtin::kUndefined},
{"booXX", Builtin::kUndefined},
{"qOOO6", Builtin::kUndefined},
{"fs", Builtin::kUndefined},
{"f1X", Builtin::kUndefined},
{"f3", Builtin::kUndefined},
{"q", Builtin::kUndefined},
{"f322", Builtin::kUndefined},
{"0yz2", Builtin::kUndefined},
{"iVP", Builtin::kUndefined},
{"Cnn", Builtin::kUndefined},
{"AtqqHH2", Builtin::kUndefined},
{"at2x2", Builtin::kUndefined},
{"mafKK", Builtin::kUndefined},
{"ltgg2f", Builtin::kUndefined},
{"mat2xf", Builtin::kUndefined},
{"NTTtcx4f", Builtin::kUndefined},
{"ma7ppl2h", Builtin::kUndefined},
{"mNNt2xg", Builtin::kUndefined},
{"uub2XX2h", Builtin::kUndefined},
{"mt2x3", Builtin::kUndefined},
{"m88xK", Builtin::kUndefined},
{"maqx3", Builtin::kUndefined},
{"m11t2x3f", Builtin::kUndefined},
{"22at2iif", Builtin::kUndefined},
{"at2x377", Builtin::kUndefined},
{"m2t2xNh", Builtin::kUndefined},
{"mVVt2x3h", Builtin::kUndefined},
{"FaWW2w11h", Builtin::kUndefined},
{"matww4", Builtin::kUndefined},
{"mat2D4", Builtin::kUndefined},
{"maKx4", Builtin::kUndefined},
{"mat21PPhf", Builtin::kUndefined},
{"mat24f", Builtin::kUndefined},
{"mYYt2x4f", Builtin::kUndefined},
{"mttHH4kk", Builtin::kUndefined},
{"mat2rr4h", Builtin::kUndefined},
{"WWas2x4h", Builtin::kUndefined},
{"maYx2", Builtin::kUndefined},
{"mq3f2", Builtin::kUndefined},
{"vvafu222", Builtin::kUndefined},
{"t3x2f", Builtin::kUndefined},
{"YYat3f", Builtin::kUndefined},
{"may3x2EYY", Builtin::kUndefined},
{"da3xMoh", Builtin::kUndefined},
{"matMMx2", Builtin::kUndefined},
{"mat3x55h", Builtin::kUndefined},
{"maN3", Builtin::kUndefined},
{"ma33x3", Builtin::kUndefined},
{"mt3x3", Builtin::kUndefined},
{"mm66Issf", Builtin::kUndefined},
{"mat3x1f", Builtin::kUndefined},
{"Xt3x3", Builtin::kUndefined},
{"LatIx3h", Builtin::kUndefined},
{"at3fh", Builtin::kUndefined},
{"mYtURD3", Builtin::kUndefined},
{"mah3x4", Builtin::kUndefined},
{"muqII4", Builtin::kUndefined},
{"mat3xH", Builtin::kUndefined},
{"at3QQvv", Builtin::kUndefined},
{"at66ef", Builtin::kUndefined},
{"ma7O4f", Builtin::kUndefined},
{"m55t3x0DD", Builtin::kUndefined},
{"maH3x4II", Builtin::kUndefined},
{"at3x4", Builtin::kUndefined},
{"ma994x2", Builtin::kUndefined},
{"mWWt4Gt2", Builtin::kUndefined},
{"ay42", Builtin::kUndefined},
{"mt4x2f", Builtin::kUndefined},
{"IIaBB4x2f", Builtin::kUndefined},
{"TTat4x833", Builtin::kUndefined},
{"ddUUnntYYx2h", Builtin::kUndefined},
{"m5CCxxdZ", Builtin::kUndefined},
{"matkkq2h", Builtin::kUndefined},
{"5iitp00", Builtin::kUndefined},
{"mnntIIx3", Builtin::kUndefined},
{"ccaKx", Builtin::kUndefined},
{"m43KK", Builtin::kUndefined},
{"mat66x3f", Builtin::kUndefined},
{"Et4PP3K", Builtin::kUndefined},
{"xxatx3h", Builtin::kUndefined},
{"qat4x3h", Builtin::kUndefined},
{"MMayySrxh", Builtin::kUndefined},
{"uat4", Builtin::kUndefined},
{"tx4", Builtin::kUndefined},
{"ma54FF4", Builtin::kUndefined},
{"rra444z4f", Builtin::kUndefined},
{"matWW", Builtin::kUndefined},
{"CatZJXx4f", Builtin::kUndefined},
{"maPPx4h", Builtin::kUndefined},
{"mat4c4h", Builtin::kUndefined},
{"matPPll6h", Builtin::kUndefined},
{"9tyy", Builtin::kUndefined},
{"ptKK", Builtin::kUndefined},
{"x_", Builtin::kUndefined},
{"ayKer", Builtin::kUndefined},
{"szmpVek", Builtin::kUndefined},
{"sampqeK", Builtin::kUndefined},
{"sampler_comparisn", Builtin::kUndefined},
{"sapler_comparisVVn", Builtin::kUndefined},
{"samplerIcompaAUison", Builtin::kUndefined},
{"jexurbRd", Builtin::kUndefined},
{"exure_YYd", Builtin::kUndefined},
{"exture_1d", Builtin::kUndefined},
{"texxxur_1d", Builtin::kUndefined},
{"tJxucce_2d", Builtin::kUndefined},
{"texure_JJd", Builtin::kUndefined},
{"lDexture_fCC_arraU", Builtin::kUndefined},
{"tegture_2d_array", Builtin::kUndefined},
{"teCCure2d_arra", Builtin::kUndefined},
{"textue_3d", Builtin::kUndefined},
{"tIx__ure_3d", Builtin::kUndefined},
{"texurettPP", Builtin::kUndefined},
{"tddx3ure_cube", Builtin::kUndefined},
{"teKyyur_cube", Builtin::kUndefined},
{"teturecub", Builtin::kUndefined},
{"textinne_c03e_array", Builtin::kUndefined},
{"nextCCruuvcubK_array", Builtin::kUndefined},
{"tXxturellcbe_array", Builtin::kUndefined},
{"tppxture_depth_2d", Builtin::kUndefined},
{"txture_deptww_2d", Builtin::kUndefined},
{"gexturedemmthuu2", Builtin::kUndefined},
{"texmmre_depthaa2daray", Builtin::kUndefined},
{"texture_RRepth_Td_ccZray", Builtin::kUndefined},
{"text88re_depthTOd_array", Builtin::kUndefined},
{"texture_depth_cm00e", Builtin::kUndefined},
{"texture_Bmepth_cube", Builtin::kUndefined},
{"Mextre_ppeph_cube", Builtin::kUndefined},
{"texturOO_depth_cub_array", Builtin::kUndefined},
{"GeGGture_depthcube_array", Builtin::kUndefined},
{"texture11Hdepth_cube_array", Builtin::kUndefined},
{"textu6e_FFepth_multiameeled_2d", Builtin::kUndefined},
{"texture_epth_mltisampled_2d", Builtin::kUndefined},
{"texture_depth_mullKsaiipled_2d", Builtin::kUndefined},
{"texture_extenal", Builtin::kUndefined},
{"IIext99reexvvernal", Builtin::kUndefined},
{"texture_externl", Builtin::kUndefined},
{"texture_mhltisampled_2d", Builtin::kUndefined},
{"texturemPllltisampzzed_2d", Builtin::kUndefined},
{"exture_mltisamed_2d", Builtin::kUndefined},
{"texture_qqtoragff_1", Builtin::kUndefined},
{"textre_JJddorage_1W", Builtin::kUndefined},
{"XXrxture_storae1zz", Builtin::kUndefined},
{"texturestorag2_2d", Builtin::kUndefined},
{"yyNxture_storage_2d", Builtin::kUndefined},
{"etue_storage_2OO", Builtin::kUndefined},
{"reutuPe_storZgeE2d_array", Builtin::kUndefined},
{"texlure_storddeee_d_22rray", Builtin::kUndefined},
{"texture_mtorage_2V_a9ra", Builtin::kUndefined},
{"teII1re_storage_3d", Builtin::kUndefined},
{"texture_storagb_3d", Builtin::kUndefined},
{"texizrestorge73d", Builtin::kUndefined},
{"u3oi", Builtin::kUndefined},
{"3", Builtin::kUndefined},
{"S2", Builtin::kUndefined},
{"e22", Builtin::kUndefined},
{"1eC2", Builtin::kUndefined},
{"vf8c2", Builtin::kUndefined},
{"c2f", Builtin::kUndefined},
{"JJecSSf", Builtin::kUndefined},
{"92f", Builtin::kUndefined},
{"vbbJJ2TT", Builtin::kUndefined},
{"e66h", Builtin::kUndefined},
{"u662h", Builtin::kUndefined},
{"vW2i", Builtin::kUndefined},
{"v2i", Builtin::kUndefined},
{"veci", Builtin::kUndefined},
{"rec2u", Builtin::kUndefined},
{"2ec2B", Builtin::kUndefined},
{"vcBBu", Builtin::kUndefined},
{"veRR", Builtin::kUndefined},
{"VLL0", Builtin::kUndefined},
{"KOe3", Builtin::kUndefined},
{"vgwcf", Builtin::kUndefined},
{"vLphf", Builtin::kUndefined},
{"eiiEf", Builtin::kUndefined},
{"ec3h", Builtin::kUndefined},
{"UU883", Builtin::kUndefined},
{"rrecvvh", Builtin::kUndefined},
{"ecmm", Builtin::kUndefined},
{"vec4j", Builtin::kUndefined},
{"vec3X", Builtin::kUndefined},
{"vec38", Builtin::kUndefined},
{"vecvEE", Builtin::kUndefined},
{"z99ci", Builtin::kUndefined},
{"JJGeQQ4", Builtin::kUndefined},
{"ssec4", Builtin::kUndefined},
{"PecK", Builtin::kUndefined},
{"tpc4f", Builtin::kUndefined},
{"vec", Builtin::kUndefined},
{"MMec4f", Builtin::kUndefined},
{"vJJc40", Builtin::kUndefined},
{"8c", Builtin::kUndefined},
{"vecggKh", Builtin::kUndefined},
{"vecfi", Builtin::kUndefined},
{"vec47Q", Builtin::kUndefined},
{"veY4i", Builtin::kUndefined},
{"keSu", Builtin::kUndefined},
{"n422", Builtin::kUndefined},
{"vFFu", 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, tint::ToString(value));
}
INSTANTIATE_TEST_SUITE_P(ValidCases, BuiltinPrintTest, testing::ValuesIn(kValidCases));
} // namespace parse_print_tests
} // namespace
} // namespace tint::core