Path: blob/main_old/src/tests/preprocessor_tests/operator_test.cpp
1693 views
//1// Copyright 2012 The ANGLE Project Authors. All rights reserved.2// Use of this source code is governed by a BSD-style license that can be3// found in the LICENSE file.4//56#include "PreprocessorTest.h"7#include "compiler/preprocessor/Token.h"89namespace angle10{1112struct OperatorTestParam13{14const char *str;15int op;16};1718class OperatorTest : public SimplePreprocessorTest,19public testing::WithParamInterface<OperatorTestParam>20{};2122TEST_P(OperatorTest, Identified)23{24OperatorTestParam param = GetParam();2526pp::Token token;27lexSingleToken(param.str, &token);28EXPECT_EQ(param.op, token.type);29EXPECT_EQ(param.str, token.text);30}3132static const OperatorTestParam kOperators[] = {{"(", '('},33{")", ')'},34{"[", '['},35{"]", ']'},36{".", '.'},37{"+", '+'},38{"-", '-'},39{"~", '~'},40{"!", '!'},41{"*", '*'},42{"/", '/'},43{"%", '%'},44{"<", '<'},45{">", '>'},46{"&", '&'},47{"^", '^'},48{"|", '|'},49{"?", '?'},50{":", ':'},51{"=", '='},52{",", ','},53{"++", pp::Token::OP_INC},54{"--", pp::Token::OP_DEC},55{"<<", pp::Token::OP_LEFT},56{">>", pp::Token::OP_RIGHT},57{"<=", pp::Token::OP_LE},58{">=", pp::Token::OP_GE},59{"==", pp::Token::OP_EQ},60{"!=", pp::Token::OP_NE},61{"&&", pp::Token::OP_AND},62{"^^", pp::Token::OP_XOR},63{"||", pp::Token::OP_OR},64{"+=", pp::Token::OP_ADD_ASSIGN},65{"-=", pp::Token::OP_SUB_ASSIGN},66{"*=", pp::Token::OP_MUL_ASSIGN},67{"/=", pp::Token::OP_DIV_ASSIGN},68{"%=", pp::Token::OP_MOD_ASSIGN},69{"<<=", pp::Token::OP_LEFT_ASSIGN},70{">>=", pp::Token::OP_RIGHT_ASSIGN},71{"&=", pp::Token::OP_AND_ASSIGN},72{"^=", pp::Token::OP_XOR_ASSIGN},73{"|=", pp::Token::OP_OR_ASSIGN}};7475INSTANTIATE_TEST_SUITE_P(All, OperatorTest, testing::ValuesIn(kOperators));7677} // namespace angle787980