test_with_scope.cc revision c5cede9ae108bb15f6b7a8aea21c7e1fefa2834c
1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "tools/gn/test_with_scope.h"
6
7#include "base/bind.h"
8#include "tools/gn/parser.h"
9#include "tools/gn/tokenizer.h"
10
11TestWithScope::TestWithScope()
12    : build_settings_(),
13      settings_(&build_settings_, std::string()),
14      toolchain_(&settings_, Label(SourceDir("//toolchain/"), "default")),
15      scope_(&settings_) {
16  build_settings_.SetBuildDir(SourceDir("//out/Debug/"));
17  build_settings_.set_print_callback(
18      base::Bind(&TestWithScope::AppendPrintOutput, base::Unretained(this)));
19
20  settings_.set_toolchain_label(toolchain_.label());
21  settings_.set_default_toolchain_label(toolchain_.label());
22}
23
24TestWithScope::~TestWithScope() {
25}
26
27void TestWithScope::AppendPrintOutput(const std::string& str) {
28  print_output_.append(str);
29}
30
31TestParseInput::TestParseInput(const std::string& input)
32    : input_file_(SourceFile("//test")) {
33  input_file_.SetContents(input);
34
35  tokens_ = Tokenizer::Tokenize(&input_file_, &parse_err_);
36  if (!parse_err_.has_error())
37    parsed_ = Parser::Parse(tokens_, &parse_err_);
38}
39
40TestParseInput::~TestParseInput() {
41}
42