blob: 7d512c4d1312bd6e16fc8bf53593a2fa42013286 [file] [log] [blame]
[email protected]43bf6a52013-09-17 16:54:241// 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#ifndef TOOLS_GN_TEST_WITH_SCOPE_H_
6#define TOOLS_GN_TEST_WITH_SCOPE_H_
7
8#include "base/basictypes.h"
9#include "tools/gn/build_settings.h"
10#include "tools/gn/scope.h"
11#include "tools/gn/settings.h"
12#include "tools/gn/toolchain.h"
13
14// A helper class for setting up a Scope that a test can use. It makes a
15// toolchain and sets up all the build state.
16class TestWithScope {
17 public:
18 TestWithScope();
19 ~TestWithScope();
20
21 BuildSettings* build_settings() { return &build_settings_; }
22 Settings* settings() { return &settings_; }
23 Scope* scope() { return &scope_; }
24
25 private:
26 BuildSettings build_settings_;
27 Toolchain toolchain_;
28 Settings settings_;
29 Scope scope_;
30
31 DISALLOW_COPY_AND_ASSIGN(TestWithScope);
32};
33
34#endif // TOOLS_GN_TEST_WITH_SCOPE_H_