1376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org// 2376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. 3376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org// Use of this source code is governed by a BSD-style license that can be 4376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org// found in the LICENSE file. 5376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org// 6376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org 7376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org#include "PreprocessorTest.h" 8376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org#include "Token.h" 9376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org 10376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.orgvoid PreprocessorTest::preprocess(const char* input, const char* expected) 11376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org{ 12376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org ASSERT_TRUE(mPreprocessor.init(1, &input, NULL)); 13376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org 14376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org int line = 1; 15376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org pp::Token token; 16376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org std::stringstream stream; 17376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org do 18376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org { 19376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org mPreprocessor.lex(&token); 20376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org for (; line < token.location.line; ++line) 21376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org { 22376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org stream << "\n"; 23376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org } 24376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org stream << token; 25376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org } while (token.type != pp::Token::LAST); 26376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org 27376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org std::string actual = stream.str(); 28376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org EXPECT_STREQ(expected, actual.c_str()); 29376155e63ee79e25fd2312d3ca779800124355bbalokp@chromium.org} 30