• 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 "gn/command_format.h"
6 
7 #include "base/files/file_util.h"
8 #include "base/strings/string_util.h"
9 #include "gn/commands.h"
10 #include "gn/setup.h"
11 #include "gn/test_with_scheduler.h"
12 #include "util/exe_path.h"
13 #include "util/test/test.h"
14 
15 using FormatTest = TestWithScheduler;
16 
17 #define FORMAT_TEST(n)                                                      \
18   TEST_F(FormatTest, n) {                                                   \
19     ::Setup setup;                                                          \
20     std::string input;                                                      \
21     std::string out;                                                        \
22     std::string expected;                                                   \
23     base::FilePath src_dir =                                                \
24         GetExePath().DirName().Append(FILE_PATH_LITERAL(".."));             \
25     base::SetCurrentDirectory(src_dir);                                     \
26     ASSERT_TRUE(base::ReadFileToString(                                     \
27         base::FilePath(FILE_PATH_LITERAL("src/gn/format_test_data/")        \
28                            FILE_PATH_LITERAL(#n) FILE_PATH_LITERAL(".gn")), \
29         &input));                                                           \
30     ASSERT_TRUE(base::ReadFileToString(                                     \
31         base::FilePath(FILE_PATH_LITERAL("src/gn/format_test_data/")        \
32                            FILE_PATH_LITERAL(#n)                            \
33                                FILE_PATH_LITERAL(".golden")),               \
34         &expected));                                                        \
35     EXPECT_TRUE(commands::FormatStringToString(                             \
36         input, commands::TreeDumpMode::kInactive, &out));                   \
37     EXPECT_EQ(expected, out);                                               \
38     /* Make sure formatting the output doesn't cause further changes. */    \
39     std::string out_again;                                                  \
40     EXPECT_TRUE(commands::FormatStringToString(                             \
41         out, commands::TreeDumpMode::kInactive, &out_again));               \
42     ASSERT_EQ(out, out_again);                                              \
43   }
44 
45 // These are expanded out this way rather than a runtime loop so that
46 // --gtest_filter works as expected for individual test running.
47 FORMAT_TEST(001)
48 FORMAT_TEST(002)
49 FORMAT_TEST(003)
50 FORMAT_TEST(004)
51 FORMAT_TEST(005)
52 FORMAT_TEST(006)
53 FORMAT_TEST(007)
54 FORMAT_TEST(008)
55 FORMAT_TEST(009)
56 FORMAT_TEST(010)
57 FORMAT_TEST(011)
58 FORMAT_TEST(012)
59 FORMAT_TEST(013)
60 FORMAT_TEST(014)
61 FORMAT_TEST(015)
62 FORMAT_TEST(016)
63 FORMAT_TEST(017)
64 FORMAT_TEST(018)
65 FORMAT_TEST(019)
66 FORMAT_TEST(020)
67 FORMAT_TEST(021)
68 FORMAT_TEST(022)
69 FORMAT_TEST(023)
70 FORMAT_TEST(024)
71 FORMAT_TEST(025)
72 FORMAT_TEST(026)
73 FORMAT_TEST(027)
74 FORMAT_TEST(028)
75 FORMAT_TEST(029)
76 FORMAT_TEST(030)
77 FORMAT_TEST(031)
78 FORMAT_TEST(032)
79 FORMAT_TEST(033)
80 // TODO(scottmg): args+rebase_path unnecessarily split: FORMAT_TEST(034)
81 FORMAT_TEST(035)
82 FORMAT_TEST(036)
83 FORMAT_TEST(037)
84 FORMAT_TEST(038)
85 FORMAT_TEST(039)
86 FORMAT_TEST(040)
87 FORMAT_TEST(041)
88 FORMAT_TEST(042)
89 FORMAT_TEST(043)
90 FORMAT_TEST(044)
91 FORMAT_TEST(045)
92 FORMAT_TEST(046)
93 FORMAT_TEST(047)
94 FORMAT_TEST(048)
95 // TODO(scottmg): Eval is broken (!) and comment output might have extra ,
96 //                FORMAT_TEST(049)
97 FORMAT_TEST(050)
98 FORMAT_TEST(051)
99 FORMAT_TEST(052)
100 FORMAT_TEST(053)
101 FORMAT_TEST(054)
102 FORMAT_TEST(055)
103 FORMAT_TEST(056)
104 FORMAT_TEST(057)
105 FORMAT_TEST(058)
106 FORMAT_TEST(059)
107 FORMAT_TEST(060)
108 FORMAT_TEST(061)
109 FORMAT_TEST(062)
110 FORMAT_TEST(063)
111 FORMAT_TEST(064)
112 FORMAT_TEST(065)
113 FORMAT_TEST(066)
114 FORMAT_TEST(067)
115 FORMAT_TEST(068)
116 FORMAT_TEST(069)
117 FORMAT_TEST(070)
118 FORMAT_TEST(071)
119 FORMAT_TEST(072)
120 FORMAT_TEST(073)
121 FORMAT_TEST(074)
122 FORMAT_TEST(075)
123 FORMAT_TEST(076)
124 FORMAT_TEST(077)
125 FORMAT_TEST(078)
126 FORMAT_TEST(079)
127 FORMAT_TEST(080)
128 FORMAT_TEST(081)
129