Skip to content

Commit 38152c8

Browse files
committed
Extend generated_by_dep_loader_ to distinguish depsfile vs. dyndep sources
1 parent ad7ae63 commit 38152c8

File tree

15 files changed

+130
-106
lines changed

15 files changed

+130
-106
lines changed

src/build.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -998,7 +998,7 @@ bool Builder::ExtractDeps(CommandRunner::Result* result,
998998
// all backslashes (as some of the slashes will certainly be backslashes
999999
// anyway). This could be fixed if necessary with some additional
10001000
// complexity in IncludesNormalize::Relativize.
1001-
deps_nodes->push_back(state_->GetNode(*i, ~0u));
1001+
deps_nodes->push_back(state_->GetNodeDeps(*i, ~0u));
10021002
}
10031003
} else if (deps_type == "gcc") {
10041004
string depfile = result->edge->GetUnescapedDepfile();
@@ -1031,7 +1031,7 @@ bool Builder::ExtractDeps(CommandRunner::Result* result,
10311031
i != deps.ins_.end(); ++i) {
10321032
uint64_t slash_bits;
10331033
CanonicalizePath(const_cast<char*>(i->str_), &i->len_, &slash_bits);
1034-
deps_nodes->push_back(state_->GetNode(*i, slash_bits));
1034+
deps_nodes->push_back(state_->GetNodeDeps(*i, slash_bits));
10351035
}
10361036

10371037
if (!g_keep_depfile) {

src/build_test.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1044,7 +1044,7 @@ TEST_F(BuildTest, DepFileOK) {
10441044
Edge* edge = state_.edges_.back();
10451045

10461046
fs_.Create("foo.c", "");
1047-
GetNode("bar.h")->MarkDirty(); // Mark bar.h as missing.
1047+
// bar.h is missing.
10481048
fs_.Create("foo.o.d", "foo.o: blah.h bar.h\n");
10491049
EXPECT_TRUE(builder_.AddTarget("foo.o", &err));
10501050
ASSERT_EQ("", err);
@@ -1969,7 +1969,7 @@ TEST_F(BuildWithLogTest, RestatInputChangesDueToRule) {
19691969
// mtime
19701970
EXPECT_TRUE(builder_.AddTarget("out1", &err));
19711971
ASSERT_EQ("", err);
1972-
EXPECT_TRUE(!state_.GetNode("out1", 0)->dirty());
1972+
EXPECT_TRUE(!state_.GetNode("out1")->dirty());
19731973
EXPECT_EQ(builder_.Build(&err), ExitSuccess);
19741974
ASSERT_EQ("", err);
19751975
EXPECT_EQ(size_t(1), command_runner_.commands_ran_.size());
@@ -3068,7 +3068,7 @@ TEST_F(BuildWithDepsLogTest, DepFileOKDepsLog) {
30683068

30693069
Edge* edge = state.edges_.back();
30703070

3071-
state.GetNode("bar.h", 0)->MarkDirty(); // Mark bar.h as missing.
3071+
// bar.h is missing.
30723072
EXPECT_TRUE(builder.AddTarget("fo o.o", &err));
30733073
ASSERT_EQ("", err);
30743074

src/deps_log.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ LoadStatus DepsLog::Load(const string& path, State* state, string* err) {
252252
// have a correct slash_bits that GetNode will look up), or it is an
253253
// implicit dependency from a .d which does not affect the build command
254254
// (and so need not have its slashes maintained).
255-
Node* node = state->GetNode(subpath, 0);
255+
Node* node = state->GetNodeDeps(subpath, 0);
256256

257257
// Check that the expected index matches the actual index. This can only
258258
// happen if two ninja processes write to the same deps log concurrently.

src/deps_log_test.cc

Lines changed: 61 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,16 @@ TEST_F(DepsLogTest, WriteRead) {
4747

4848
{
4949
vector<Node*> deps;
50-
deps.push_back(state1.GetNode("foo.h", 0));
51-
deps.push_back(state1.GetNode("bar.h", 0));
52-
log1.RecordDeps(state1.GetNode("out.o", 0), 1, deps);
50+
deps.push_back(state1.GetNodeDeps("foo.h", 0));
51+
deps.push_back(state1.GetNodeDeps("bar.h", 0));
52+
log1.RecordDeps(state1.GetNodeDeps("out.o", 0), 1, deps);
5353

5454
deps.clear();
55-
deps.push_back(state1.GetNode("foo.h", 0));
56-
deps.push_back(state1.GetNode("bar2.h", 0));
57-
log1.RecordDeps(state1.GetNode("out2.o", 0), 2, deps);
55+
deps.push_back(state1.GetNodeDeps("foo.h", 0));
56+
deps.push_back(state1.GetNodeDeps("bar2.h", 0));
57+
log1.RecordDeps(state1.GetNodeDeps("out2.o", 0), 2, deps);
5858

59-
DepsLog::Deps* log_deps = log1.GetDeps(state1.GetNode("out.o", 0));
59+
DepsLog::Deps* log_deps = log1.GetDeps(state1.GetNodeDeps("out.o", 0));
6060
ASSERT_TRUE(log_deps);
6161
ASSERT_EQ(1, log_deps->mtime);
6262
ASSERT_EQ(2, log_deps->node_count);
@@ -80,7 +80,7 @@ TEST_F(DepsLogTest, WriteRead) {
8080
}
8181

8282
// Spot-check the entries in log2.
83-
DepsLog::Deps* log_deps = log2.GetDeps(state2.GetNode("out2.o", 0));
83+
DepsLog::Deps* log_deps = log2.GetDeps(state2.GetNodeDeps("out2.o", 0));
8484
ASSERT_TRUE(log_deps);
8585
ASSERT_EQ(2, log_deps->mtime);
8686
ASSERT_EQ(2, log_deps->node_count);
@@ -102,11 +102,11 @@ TEST_F(DepsLogTest, LotsOfDeps) {
102102
for (int i = 0; i < kNumDeps; ++i) {
103103
char buf[32];
104104
sprintf(buf, "file%d.h", i);
105-
deps.push_back(state1.GetNode(buf, 0));
105+
deps.push_back(state1.GetNodeDeps(buf, 0));
106106
}
107-
log1.RecordDeps(state1.GetNode("out.o", 0), 1, deps);
107+
log1.RecordDeps(state1.GetNodeDeps("out.o", 0), 1, deps);
108108

109-
DepsLog::Deps* log_deps = log1.GetDeps(state1.GetNode("out.o", 0));
109+
DepsLog::Deps* log_deps = log1.GetDeps(state1.GetNodeDeps("out.o", 0));
110110
ASSERT_EQ(kNumDeps, log_deps->node_count);
111111
}
112112

@@ -117,7 +117,7 @@ TEST_F(DepsLogTest, LotsOfDeps) {
117117
EXPECT_TRUE(log2.Load(kTestFilename, &state2, &err));
118118
ASSERT_EQ("", err);
119119

120-
DepsLog::Deps* log_deps = log2.GetDeps(state2.GetNode("out.o", 0));
120+
DepsLog::Deps* log_deps = log2.GetDeps(state2.GetNodeDeps("out.o", 0));
121121
ASSERT_EQ(kNumDeps, log_deps->node_count);
122122
}
123123

@@ -133,9 +133,9 @@ TEST_F(DepsLogTest, DoubleEntry) {
133133
ASSERT_EQ("", err);
134134

135135
vector<Node*> deps;
136-
deps.push_back(state.GetNode("foo.h", 0));
137-
deps.push_back(state.GetNode("bar.h", 0));
138-
log.RecordDeps(state.GetNode("out.o", 0), 1, deps);
136+
deps.push_back(state.GetNodeDeps("foo.h", 0));
137+
deps.push_back(state.GetNodeDeps("bar.h", 0));
138+
log.RecordDeps(state.GetNodeDeps("out.o", 0), 1, deps);
139139
log.Close();
140140
#ifdef __USE_LARGEFILE64
141141
struct stat64 st;
@@ -159,9 +159,9 @@ TEST_F(DepsLogTest, DoubleEntry) {
159159
ASSERT_EQ("", err);
160160

161161
vector<Node*> deps;
162-
deps.push_back(state.GetNode("foo.h", 0));
163-
deps.push_back(state.GetNode("bar.h", 0));
164-
log.RecordDeps(state.GetNode("out.o", 0), 1, deps);
162+
deps.push_back(state.GetNodeDeps("foo.h", 0));
163+
deps.push_back(state.GetNodeDeps("bar.h", 0));
164+
log.RecordDeps(state.GetNodeDeps("out.o", 0), 1, deps);
165165
log.Close();
166166
#ifdef __USE_LARGEFILE64
167167
struct stat64 st;
@@ -195,14 +195,14 @@ TEST_F(DepsLogTest, Recompact) {
195195
ASSERT_EQ("", err);
196196

197197
vector<Node*> deps;
198-
deps.push_back(state.GetNode("foo.h", 0));
199-
deps.push_back(state.GetNode("bar.h", 0));
200-
log.RecordDeps(state.GetNode("out.o", 0), 1, deps);
198+
deps.push_back(state.GetNodeDeps("foo.h", 0));
199+
deps.push_back(state.GetNodeDeps("bar.h", 0));
200+
log.RecordDeps(state.GetNodeDeps("out.o", 0), 1, deps);
201201

202202
deps.clear();
203-
deps.push_back(state.GetNode("foo.h", 0));
204-
deps.push_back(state.GetNode("baz.h", 0));
205-
log.RecordDeps(state.GetNode("other_out.o", 0), 1, deps);
203+
deps.push_back(state.GetNodeDeps("foo.h", 0));
204+
deps.push_back(state.GetNodeDeps("baz.h", 0));
205+
log.RecordDeps(state.GetNodeDeps("other_out.o", 0), 1, deps);
206206

207207
log.Close();
208208
#ifdef __USE_LARGEFILE64
@@ -229,8 +229,8 @@ TEST_F(DepsLogTest, Recompact) {
229229
ASSERT_EQ("", err);
230230

231231
vector<Node*> deps;
232-
deps.push_back(state.GetNode("foo.h", 0));
233-
log.RecordDeps(state.GetNode("out.o", 0), 1, deps);
232+
deps.push_back(state.GetNodeDeps("foo.h", 0));
233+
log.RecordDeps(state.GetNodeDeps("out.o", 0), 1, deps);
234234
log.Close();
235235

236236
#ifdef __USE_LARGEFILE64
@@ -255,14 +255,14 @@ TEST_F(DepsLogTest, Recompact) {
255255
string err;
256256
ASSERT_TRUE(log.Load(kTestFilename, &state, &err));
257257

258-
Node* out = state.GetNode("out.o", 0);
258+
Node* out = state.GetNodeDeps("out.o", 0);
259259
DepsLog::Deps* deps = log.GetDeps(out);
260260
ASSERT_TRUE(deps);
261261
ASSERT_EQ(1, deps->mtime);
262262
ASSERT_EQ(1, deps->node_count);
263263
ASSERT_EQ("foo.h", deps->nodes[0]->path());
264264

265-
Node* other_out = state.GetNode("other_out.o", 0);
265+
Node* other_out = state.GetNodeDeps("other_out.o", 0);
266266
deps = log.GetDeps(other_out);
267267
ASSERT_TRUE(deps);
268268
ASSERT_EQ(1, deps->mtime);
@@ -309,14 +309,14 @@ TEST_F(DepsLogTest, Recompact) {
309309
string err;
310310
ASSERT_TRUE(log.Load(kTestFilename, &state, &err));
311311

312-
Node* out = state.GetNode("out.o", 0);
312+
Node* out = state.GetNodeDeps("out.o", 0);
313313
DepsLog::Deps* deps = log.GetDeps(out);
314314
ASSERT_TRUE(deps);
315315
ASSERT_EQ(1, deps->mtime);
316316
ASSERT_EQ(1, deps->node_count);
317317
ASSERT_EQ("foo.h", deps->nodes[0]->path());
318318

319-
Node* other_out = state.GetNode("other_out.o", 0);
319+
Node* other_out = state.GetNodeDeps("other_out.o", 0);
320320
deps = log.GetDeps(other_out);
321321
ASSERT_TRUE(deps);
322322
ASSERT_EQ(1, deps->mtime);
@@ -387,14 +387,14 @@ TEST_F(DepsLogTest, Truncated) {
387387
ASSERT_EQ("", err);
388388

389389
vector<Node*> deps;
390-
deps.push_back(state.GetNode("foo.h", 0));
391-
deps.push_back(state.GetNode("bar.h", 0));
392-
log.RecordDeps(state.GetNode("out.o", 0), 1, deps);
390+
deps.push_back(state.GetNodeDeps("foo.h", 0));
391+
deps.push_back(state.GetNodeDeps("bar.h", 0));
392+
log.RecordDeps(state.GetNodeDeps("out.o", 0), 1, deps);
393393

394394
deps.clear();
395-
deps.push_back(state.GetNode("foo.h", 0));
396-
deps.push_back(state.GetNode("bar2.h", 0));
397-
log.RecordDeps(state.GetNode("out2.o", 0), 2, deps);
395+
deps.push_back(state.GetNodeDeps("foo.h", 0));
396+
deps.push_back(state.GetNodeDeps("bar2.h", 0));
397+
log.RecordDeps(state.GetNodeDeps("out2.o", 0), 2, deps);
398398

399399
log.Close();
400400
}
@@ -451,14 +451,14 @@ TEST_F(DepsLogTest, TruncatedRecovery) {
451451
ASSERT_EQ("", err);
452452

453453
vector<Node*> deps;
454-
deps.push_back(state.GetNode("foo.h", 0));
455-
deps.push_back(state.GetNode("bar.h", 0));
456-
log.RecordDeps(state.GetNode("out.o", 0), 1, deps);
454+
deps.push_back(state.GetNodeDeps("foo.h", 0));
455+
deps.push_back(state.GetNodeDeps("bar.h", 0));
456+
log.RecordDeps(state.GetNodeDeps("out.o", 0), 1, deps);
457457

458458
deps.clear();
459-
deps.push_back(state.GetNode("foo.h", 0));
460-
deps.push_back(state.GetNode("bar2.h", 0));
461-
log.RecordDeps(state.GetNode("out2.o", 0), 2, deps);
459+
deps.push_back(state.GetNodeDeps("foo.h", 0));
460+
deps.push_back(state.GetNodeDeps("bar2.h", 0));
461+
log.RecordDeps(state.GetNodeDeps("out2.o", 0), 2, deps);
462462

463463
log.Close();
464464
}
@@ -486,16 +486,16 @@ TEST_F(DepsLogTest, TruncatedRecovery) {
486486
err.clear();
487487

488488
// The truncated entry should've been discarded.
489-
EXPECT_EQ(NULL, log.GetDeps(state.GetNode("out2.o", 0)));
489+
EXPECT_EQ(NULL, log.GetDeps(state.GetNodeDeps("out2.o", 0)));
490490

491491
EXPECT_TRUE(log.OpenForWrite(kTestFilename, &err));
492492
ASSERT_EQ("", err);
493493

494494
// Add a new entry.
495495
vector<Node*> deps;
496-
deps.push_back(state.GetNode("foo.h", 0));
497-
deps.push_back(state.GetNode("bar2.h", 0));
498-
log.RecordDeps(state.GetNode("out2.o", 0), 3, deps);
496+
deps.push_back(state.GetNodeDeps("foo.h", 0));
497+
deps.push_back(state.GetNodeDeps("bar2.h", 0));
498+
log.RecordDeps(state.GetNodeDeps("out2.o", 0), 3, deps);
499499

500500
log.Close();
501501
}
@@ -509,7 +509,7 @@ TEST_F(DepsLogTest, TruncatedRecovery) {
509509
EXPECT_TRUE(log.Load(kTestFilename, &state, &err));
510510

511511
// The truncated entry should exist.
512-
DepsLog::Deps* deps = log.GetDeps(state.GetNode("out2.o", 0));
512+
DepsLog::Deps* deps = log.GetDeps(state.GetNodeDeps("out2.o", 0));
513513
ASSERT_TRUE(deps);
514514
}
515515
}
@@ -522,23 +522,23 @@ TEST_F(DepsLogTest, ReverseDepsNodes) {
522522
ASSERT_EQ("", err);
523523

524524
vector<Node*> deps;
525-
deps.push_back(state.GetNode("foo.h", 0));
526-
deps.push_back(state.GetNode("bar.h", 0));
527-
log.RecordDeps(state.GetNode("out.o", 0), 1, deps);
525+
deps.push_back(state.GetNodeDeps("foo.h", 0));
526+
deps.push_back(state.GetNodeDeps("bar.h", 0));
527+
log.RecordDeps(state.GetNodeDeps("out.o", 0), 1, deps);
528528

529529
deps.clear();
530-
deps.push_back(state.GetNode("foo.h", 0));
531-
deps.push_back(state.GetNode("bar2.h", 0));
532-
log.RecordDeps(state.GetNode("out2.o", 0), 2, deps);
530+
deps.push_back(state.GetNodeDeps("foo.h", 0));
531+
deps.push_back(state.GetNodeDeps("bar2.h", 0));
532+
log.RecordDeps(state.GetNodeDeps("out2.o", 0), 2, deps);
533533

534534
log.Close();
535535

536-
Node* rev_deps = log.GetFirstReverseDepsNode(state.GetNode("foo.h", 0));
537-
EXPECT_TRUE(rev_deps == state.GetNode("out.o", 0) ||
538-
rev_deps == state.GetNode("out2.o", 0));
536+
Node* rev_deps = log.GetFirstReverseDepsNode(state.GetNodeDeps("foo.h", 0));
537+
EXPECT_TRUE(rev_deps == state.GetNodeDeps("out.o", 0) ||
538+
rev_deps == state.GetNodeDeps("out2.o", 0));
539539

540-
rev_deps = log.GetFirstReverseDepsNode(state.GetNode("bar.h", 0));
541-
EXPECT_TRUE(rev_deps == state.GetNode("out.o", 0));
540+
rev_deps = log.GetFirstReverseDepsNode(state.GetNodeDeps("bar.h", 0));
541+
EXPECT_TRUE(rev_deps == state.GetNodeDeps("out.o", 0));
542542
}
543543

544544
TEST_F(DepsLogTest, MalformedDepsLog) {
@@ -551,9 +551,9 @@ TEST_F(DepsLogTest, MalformedDepsLog) {
551551

552552
// First, create a valid log file.
553553
std::vector<Node*> deps;
554-
deps.push_back(state.GetNode("foo.hh", 0));
555-
deps.push_back(state.GetNode("bar.hpp", 0));
556-
log.RecordDeps(state.GetNode("out.o", 0), 1, deps);
554+
deps.push_back(state.GetNodeDeps("foo.hh", 0));
555+
deps.push_back(state.GetNodeDeps("bar.hpp", 0));
556+
log.RecordDeps(state.GetNodeDeps("out.o", 0), 1, deps);
557557
log.Close();
558558
}
559559

src/dyndep_parser.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ bool DyndepParser::ParseEdge(string* err) {
201201
return lexer_.Error("empty path", err);
202202
uint64_t slash_bits;
203203
CanonicalizePath(&path, &slash_bits);
204-
Node* n = state_->GetNode(path, slash_bits);
204+
Node* n = state_->GetNodeDyn(path, slash_bits);
205205
dyndeps->implicit_inputs_.push_back(n);
206206
}
207207

@@ -212,7 +212,7 @@ bool DyndepParser::ParseEdge(string* err) {
212212
return lexer_.Error("empty path", err);
213213
uint64_t slash_bits;
214214
CanonicalizePath(&path, &slash_bits);
215-
Node* n = state_->GetNode(path, slash_bits);
215+
Node* n = state_->GetNodeDyn(path, slash_bits);
216216
dyndeps->implicit_outputs_.push_back(n);
217217
}
218218

src/graph.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ bool ImplicitDepLoader::ProcessDepfileDeps(
718718
i != depfile_ins->end(); ++i, ++implicit_dep) {
719719
uint64_t slash_bits;
720720
CanonicalizePath(const_cast<char*>(i->str_), &i->len_, &slash_bits);
721-
Node* node = state_->GetNode(*i, slash_bits);
721+
Node* node = state_->GetNodeDeps(*i, slash_bits);
722722
*implicit_dep = node;
723723
node->AddOutEdge(edge);
724724
}

0 commit comments

Comments
 (0)