• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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 <sstream>
6 
7 #include "gn/ninja_toolchain_writer.h"
8 #include "gn/test_with_scope.h"
9 #include "util/test/test.h"
10 
TEST(NinjaToolchainWriter,WriteToolRule)11 TEST(NinjaToolchainWriter, WriteToolRule) {
12   TestWithScope setup;
13 
14   std::ostringstream stream;
15   NinjaToolchainWriter writer(setup.settings(), setup.toolchain(), stream);
16   writer.WriteToolRule(setup.toolchain()->GetTool(CTool::kCToolCc),
17                        std::string("prefix_"));
18 
19   EXPECT_EQ(
20       "rule prefix_cc\n"
21       "  command = cc ${in} ${cflags} ${cflags_c} ${defines} ${include_dirs} "
22       "-o ${out}\n",
23       stream.str());
24 }
25 
TEST(NinjaToolchainWriter,WriteToolRuleWithLauncher)26 TEST(NinjaToolchainWriter, WriteToolRuleWithLauncher) {
27   TestWithScope setup;
28 
29   std::ostringstream stream;
30   NinjaToolchainWriter writer(setup.settings(), setup.toolchain(), stream);
31   writer.WriteToolRule(setup.toolchain()->GetTool(CTool::kCToolCxx),
32                        std::string("prefix_"));
33 
34   EXPECT_EQ(
35       "rule prefix_cxx\n"
36       "  command = launcher c++ ${in} ${cflags} ${cflags_cc} ${defines} "
37       "${include_dirs} "
38       "-o ${out}\n",
39       stream.str());
40 }
41