Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: tools/gn/loader_unittest.cc

Issue 2085023004: Remove calls to deprecated MessageLoop methods in tools. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/gn/loader.cc ('k') | tools/gn/scheduler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 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 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 <map> 5 #include <map>
6 #include <utility> 6 #include <utility>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "base/run_loop.h"
11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
12 #include "tools/gn/build_settings.h" 13 #include "tools/gn/build_settings.h"
13 #include "tools/gn/err.h" 14 #include "tools/gn/err.h"
14 #include "tools/gn/loader.h" 15 #include "tools/gn/loader.h"
15 #include "tools/gn/parse_tree.h" 16 #include "tools/gn/parse_tree.h"
16 #include "tools/gn/parser.h" 17 #include "tools/gn/parser.h"
17 #include "tools/gn/scheduler.h" 18 #include "tools/gn/scheduler.h"
18 #include "tools/gn/tokenizer.h" 19 #include "tools/gn/tokenizer.h"
19 20
20 namespace { 21 namespace {
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 loader->set_async_load_file(mock_ifm_.GetCallback()); 140 loader->set_async_load_file(mock_ifm_.GetCallback());
140 141
141 // Request the root build file be loaded. This should kick off the default 142 // Request the root build file be loaded. This should kick off the default
142 // build config loading. 143 // build config loading.
143 SourceFile root_build("//BUILD.gn"); 144 SourceFile root_build("//BUILD.gn");
144 loader->Load(root_build, LocationRange(), Label()); 145 loader->Load(root_build, LocationRange(), Label());
145 EXPECT_TRUE(mock_ifm_.HasOnePending(build_config)); 146 EXPECT_TRUE(mock_ifm_.HasOnePending(build_config));
146 147
147 // Completing the build config load should kick off the root build file load. 148 // Completing the build config load should kick off the root build file load.
148 mock_ifm_.IssueAllPending(); 149 mock_ifm_.IssueAllPending();
149 scheduler_.main_loop()->RunUntilIdle(); 150 base::RunLoop().RunUntilIdle();
Nico 2016/06/22 18:22:28 (this replacement looks like it makes things more
fdoray 2016/06/22 18:41:50 Ironically, a goal of base::RunLoop is to make thi
150 EXPECT_TRUE(mock_ifm_.HasOnePending(root_build)); 151 EXPECT_TRUE(mock_ifm_.HasOnePending(root_build));
151 152
152 // Load the root build file. 153 // Load the root build file.
153 mock_ifm_.IssueAllPending(); 154 mock_ifm_.IssueAllPending();
154 scheduler_.main_loop()->RunUntilIdle(); 155 base::RunLoop().RunUntilIdle();
155 156
156 // Schedule some other file to load in another toolchain. 157 // Schedule some other file to load in another toolchain.
157 Label second_tc(SourceDir("//tc2/"), "tc2"); 158 Label second_tc(SourceDir("//tc2/"), "tc2");
158 SourceFile second_file("//foo/BUILD.gn"); 159 SourceFile second_file("//foo/BUILD.gn");
159 loader->Load(second_file, LocationRange(), second_tc); 160 loader->Load(second_file, LocationRange(), second_tc);
160 EXPECT_TRUE(mock_ifm_.HasOnePending(SourceFile("//tc2/BUILD.gn"))); 161 EXPECT_TRUE(mock_ifm_.HasOnePending(SourceFile("//tc2/BUILD.gn")));
161 162
162 // Running the toolchain file should schedule the build config file to load 163 // Running the toolchain file should schedule the build config file to load
163 // for that toolchain. 164 // for that toolchain.
164 mock_ifm_.IssueAllPending(); 165 mock_ifm_.IssueAllPending();
165 scheduler_.main_loop()->RunUntilIdle(); 166 base::RunLoop().RunUntilIdle();
166 167
167 // We have to tell it we have a toolchain definition now (normally the 168 // We have to tell it we have a toolchain definition now (normally the
168 // builder would do this). 169 // builder would do this).
169 const Settings* default_settings = loader->GetToolchainSettings(Label()); 170 const Settings* default_settings = loader->GetToolchainSettings(Label());
170 Toolchain second_tc_object(default_settings, second_tc); 171 Toolchain second_tc_object(default_settings, second_tc);
171 loader->ToolchainLoaded(&second_tc_object); 172 loader->ToolchainLoaded(&second_tc_object);
172 EXPECT_TRUE(mock_ifm_.HasOnePending(build_config)); 173 EXPECT_TRUE(mock_ifm_.HasOnePending(build_config));
173 174
174 // Scheduling a second file to load in that toolchain should not make it 175 // Scheduling a second file to load in that toolchain should not make it
175 // pending yet (it's waiting for the build config). 176 // pending yet (it's waiting for the build config).
176 SourceFile third_file("//bar/BUILD.gn"); 177 SourceFile third_file("//bar/BUILD.gn");
177 loader->Load(third_file, LocationRange(), second_tc); 178 loader->Load(third_file, LocationRange(), second_tc);
178 EXPECT_TRUE(mock_ifm_.HasOnePending(build_config)); 179 EXPECT_TRUE(mock_ifm_.HasOnePending(build_config));
179 180
180 // Running the build config file should make our third file pending. 181 // Running the build config file should make our third file pending.
181 mock_ifm_.IssueAllPending(); 182 mock_ifm_.IssueAllPending();
182 scheduler_.main_loop()->RunUntilIdle(); 183 base::RunLoop().RunUntilIdle();
183 EXPECT_TRUE(mock_ifm_.HasTwoPending(second_file, third_file)); 184 EXPECT_TRUE(mock_ifm_.HasTwoPending(second_file, third_file));
184 185
185 EXPECT_FALSE(scheduler_.is_failed()); 186 EXPECT_FALSE(scheduler_.is_failed());
186 } 187 }
OLDNEW
« no previous file with comments | « tools/gn/loader.cc ('k') | tools/gn/scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698