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