OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "tools/gn/functions.h" | 5 #include "tools/gn/functions.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 input.parsed()->Execute(setup.scope(), &err); | 118 input.parsed()->Execute(setup.scope(), &err); |
119 ASSERT_FALSE(err.has_error()) << err.message(); | 119 ASSERT_FALSE(err.has_error()) << err.message(); |
120 | 120 |
121 EXPECT_EQ( | 121 EXPECT_EQ( |
122 "empty = [[]] [[], [], []]\n" | 122 "empty = [[]] [[], [], []]\n" |
123 "one = [[1]] [[1], []]\n" | 123 "one = [[1]] [[1], []]\n" |
124 "many = [[1, 2, 3, 4, 5], [6, 7, 8, 9]]\n" | 124 "many = [[1, 2, 3, 4, 5], [6, 7, 8, 9]]\n" |
125 "rounding = [[1, 2], [3, 4], [5], [6]]\n", | 125 "rounding = [[1, 2], [3, 4], [5], [6]]\n", |
126 setup.print_output()); | 126 setup.print_output()); |
127 } | 127 } |
128 | |
129 TEST(Functions, DeclareArgs) { | |
130 TestWithScope setup; | |
131 Err err; | |
132 | |
133 // It is not legal to read the value of an argument declared in a | |
134 // declare_args() from inside the call, but outside the call and in | |
135 // a separate call should work. | |
136 | |
137 TestParseInput reading_from_same_call(R"( | |
138 declare_args() { | |
139 foo = true | |
140 bar = foo | |
141 })"); | |
142 reading_from_same_call.parsed()->Execute(setup.scope(), &err); | |
143 ASSERT_TRUE(err.has_error()); | |
144 | |
145 TestParseInput reading_from_outside_call(R"( | |
146 declare_args() { | |
147 foo = true | |
148 } | |
149 | |
150 bar = foo | |
151 assert(bar) | |
152 )"); | |
153 err = Err(); | |
154 reading_from_outside_call.parsed()->Execute(setup.scope(), &err); | |
155 ASSERT_FALSE(err.has_error()); | |
156 | |
157 TestParseInput reading_from_different_call(R"( | |
158 declare_args() { | |
159 foo = true | |
160 } | |
161 | |
162 declare_args() { | |
163 bar = foo | |
164 } | |
165 | |
166 assert(bar) | |
167 )"); | |
168 err = Err(); | |
169 TestWithScope setup2; | |
170 reading_from_different_call.parsed()->Execute(setup2.scope(), &err); | |
171 ASSERT_FALSE(err.has_error()); | |
172 } | |
OLD | NEW |