#include "upb/wire/decode_fast/select.h" #include #include #include #include #include "absl/base/macros.h" #include "upb/wire/decode_fast/combinations.h" namespace { TEST(SelectTest, FunctionIndicesMatch) { // Verify that UPB_DECODEFAST_FUNCTION_IDX() and UPB_DECODEFAST_FUNCTIONS() // use the same ordering and the indexes correctly match. #define IDX(type, card, size) \ UPB_DECODEFAST_FUNCTION_IDX(kUpb_DecodeFast_##type, kUpb_DecodeFast_##card, \ kUpb_DecodeFast_##size), static const uint32_t numbers[] = {UPB_DECODEFAST_FUNCTIONS(IDX)}; for (size_t i = 0; i < ABSL_ARRAYSIZE(numbers); i++) { EXPECT_EQ(numbers[i], i) << upb_DecodeFast_GetFunctionName(i) << " vs " << upb_DecodeFast_GetFunctionName(numbers[i]); } #undef IDX } // namespace } // namespace