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
93 lines
2.3 KiB
C++
93 lines
2.3 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"
|
|
|
|
class ErrorTest : public PreprocessorTest
|
|
{
|
|
};
|
|
|
|
TEST_F(ErrorTest, Empty)
|
|
{
|
|
const char* str = "#error\n";
|
|
const char* expected = "\n";
|
|
|
|
using testing::_;
|
|
EXPECT_CALL(mDirectiveHandler, handleError(pp::SourceLocation(0, 1), ""));
|
|
// No error or warning.
|
|
EXPECT_CALL(mDiagnostics, print(_, _, _)).Times(0);
|
|
|
|
preprocess(str, expected);
|
|
}
|
|
|
|
TEST_F(ErrorTest, OneTokenMessage)
|
|
{
|
|
const char* str = "#error foo\n";
|
|
const char* expected = "\n";
|
|
|
|
using testing::_;
|
|
EXPECT_CALL(mDirectiveHandler,
|
|
handleError(pp::SourceLocation(0, 1), " foo"));
|
|
// No error or warning.
|
|
EXPECT_CALL(mDiagnostics, print(_, _, _)).Times(0);
|
|
|
|
preprocess(str, expected);
|
|
}
|
|
|
|
TEST_F(ErrorTest, TwoTokenMessage)
|
|
{
|
|
const char* str = "#error foo bar\n";
|
|
const char* expected = "\n";
|
|
|
|
using testing::_;
|
|
EXPECT_CALL(mDirectiveHandler,
|
|
handleError(pp::SourceLocation(0, 1), " foo bar"));
|
|
// No error or warning.
|
|
EXPECT_CALL(mDiagnostics, print(_, _, _)).Times(0);
|
|
|
|
preprocess(str, expected);
|
|
}
|
|
|
|
TEST_F(ErrorTest, Comments)
|
|
{
|
|
const char* str = "/*foo*/"
|
|
"#"
|
|
"/*foo*/"
|
|
"error"
|
|
"/*foo*/"
|
|
"foo"
|
|
"/*foo*/"
|
|
"bar"
|
|
"/*foo*/"
|
|
"//foo"
|
|
"\n";
|
|
const char* expected = "\n";
|
|
|
|
using testing::_;
|
|
EXPECT_CALL(mDirectiveHandler,
|
|
handleError(pp::SourceLocation(0, 1), " foo bar"));
|
|
// No error or warning.
|
|
EXPECT_CALL(mDiagnostics, print(_, _, _)).Times(0);
|
|
|
|
preprocess(str, expected);
|
|
}
|
|
|
|
TEST_F(ErrorTest, MissingNewline)
|
|
{
|
|
const char* str = "#error foo";
|
|
const char* expected = "";
|
|
|
|
using testing::_;
|
|
// Directive successfully parsed.
|
|
EXPECT_CALL(mDirectiveHandler,
|
|
handleError(pp::SourceLocation(0, 1), " foo"));
|
|
// Error reported about EOF.
|
|
EXPECT_CALL(mDiagnostics, print(pp::Diagnostics::EOF_IN_DIRECTIVE, _, _));
|
|
|
|
preprocess(str, expected);
|
|
}
|