Edit

kc3-lang/angle/tests/preprocessor_tests/PreprocessorTest.cpp

Branch :

  • Show log

    Commit

  • Author : alokp@chromium.org
    Date : 2012-05-31 18:10:43
    Hash : c745adb0
    Message : Added PreprocessorTest::preprocess that preprocesses the input string and compares the output with that of the expected string. Renamed other *Test::preprocess methods to something different and clearer. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1126 736b8ea6-26fd-11df-bfd4-992fa37f6226

  • tests/preprocessor_tests/PreprocessorTest.cpp
  • //
    // 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"
    
    void PreprocessorTest::preprocess(const char* input, const char* expected)
    {
        ASSERT_TRUE(mPreprocessor.init(1, &input, NULL));
    
        int line = 1;
        pp::Token token;
        std::stringstream stream;
        do
        {
            mPreprocessor.lex(&token);
            for (; line < token.location.line; ++line)
            {
                stream << "\n";
            }
            stream << token;
        } while (token.type != pp::Token::LAST);
    
        std::string actual = stream.str();
        EXPECT_STREQ(expected, actual.c_str());
    }