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 #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. 16 class TestWithScope { 17 public: 18 TestWithScope(); 19 ~TestWithScope(); 20 21 BuildSettings* build_settings() { return &build_settings_; } 22 Settings* settings() { return &settings_; } 23 Toolchain* toolchain() { return &toolchain_; } 24 Scope* scope() { return &scope_; } 25 26 private: 27 BuildSettings build_settings_; 28 Settings settings_; 29 Toolchain toolchain_; 30 Scope scope_; 31 32 DISALLOW_COPY_AND_ASSIGN(TestWithScope); 33 }; 34 35 #endif // TOOLS_GN_TEST_WITH_SCOPE_H_ 36