mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
2a22a3e1f7
--HG-- rename : gfx/angle/src/compiler/compilerdebug.h => gfx/angle/src/compiler/debug.h
81 lines
1.9 KiB
C++
81 lines
1.9 KiB
C++
//
|
|
// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
//
|
|
|
|
#include "PreprocessorTest.h"
|
|
#include "Token.h"
|
|
|
|
struct OperatorTestParam
|
|
{
|
|
const char* str;
|
|
int op;
|
|
};
|
|
|
|
class OperatorTest : public PreprocessorTest,
|
|
public testing::WithParamInterface<OperatorTestParam>
|
|
{
|
|
};
|
|
|
|
TEST_P(OperatorTest, Identified)
|
|
{
|
|
OperatorTestParam param = GetParam();
|
|
|
|
ASSERT_TRUE(mPreprocessor.init(1, ¶m.str, 0));
|
|
|
|
pp::Token token;
|
|
mPreprocessor.lex(&token);
|
|
EXPECT_EQ(param.op, token.type);
|
|
EXPECT_EQ(param.str, token.text);
|
|
}
|
|
|
|
static const OperatorTestParam kOperators[] = {
|
|
{"(", '('},
|
|
{")", ')'},
|
|
{"[", '['},
|
|
{"]", ']'},
|
|
{".", '.'},
|
|
{"+", '+'},
|
|
{"-", '-'},
|
|
{"~", '~'},
|
|
{"!", '!'},
|
|
{"*", '*'},
|
|
{"/", '/'},
|
|
{"%", '%'},
|
|
{"<", '<'},
|
|
{">", '>'},
|
|
{"&", '&'},
|
|
{"^", '^'},
|
|
{"|", '|'},
|
|
{"?", '?'},
|
|
{":", ':'},
|
|
{"=", '='},
|
|
{",", ','},
|
|
{"++", pp::Token::OP_INC},
|
|
{"--", pp::Token::OP_DEC},
|
|
{"<<", pp::Token::OP_LEFT},
|
|
{">>", pp::Token::OP_RIGHT},
|
|
{"<=", pp::Token::OP_LE},
|
|
{">=", pp::Token::OP_GE},
|
|
{"==", pp::Token::OP_EQ},
|
|
{"!=", pp::Token::OP_NE},
|
|
{"&&", pp::Token::OP_AND},
|
|
{"^^", pp::Token::OP_XOR},
|
|
{"||", pp::Token::OP_OR},
|
|
{"+=", pp::Token::OP_ADD_ASSIGN},
|
|
{"-=", pp::Token::OP_SUB_ASSIGN},
|
|
{"*=", pp::Token::OP_MUL_ASSIGN},
|
|
{"/=", pp::Token::OP_DIV_ASSIGN},
|
|
{"%=", pp::Token::OP_MOD_ASSIGN},
|
|
{"<<=", pp::Token::OP_LEFT_ASSIGN},
|
|
{">>=", pp::Token::OP_RIGHT_ASSIGN},
|
|
{"&=", pp::Token::OP_AND_ASSIGN},
|
|
{"^=", pp::Token::OP_XOR_ASSIGN},
|
|
{"|=", pp::Token::OP_OR_ASSIGN}
|
|
};
|
|
|
|
INSTANTIATE_TEST_CASE_P(All, OperatorTest,
|
|
testing::ValuesIn(kOperators));
|
|
|