blob: ebd2cea5d84437cfda6912e6fb81ce909aaabe80 [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/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