diff options
author | Evan Martin <martine@danga.com> | 2011-01-07 21:54:52 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2011-01-07 21:54:52 (GMT) |
commit | 681de18033236071e822ca709d912d32cd4b2f83 (patch) | |
tree | fb204cdd86ee0937e5f0d1a14eade300e16f1b11 | |
parent | e5ae916071a4e8467d7649a5cc700ca7310b6b69 (diff) | |
download | Ninja-681de18033236071e822ca709d912d32cd4b2f83.zip Ninja-681de18033236071e822ca709d912d32cd4b2f83.tar.gz Ninja-681de18033236071e822ca709d912d32cd4b2f83.tar.bz2 |
later entry in build log should overwrite earlier one
-rw-r--r-- | src/build_log.cc | 2 | ||||
-rw-r--r-- | src/build_log_test.cc | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/build_log.cc b/src/build_log.cc index ba09b46..65567da 100644 --- a/src/build_log.cc +++ b/src/build_log.cc @@ -76,7 +76,7 @@ bool BuildLog::Load(const string& path, string* err) { start = end + 1; end = strchr(start, '\n'); entry->command = string(start, end - start); - log_.insert(make_pair(entry->output, entry)); + log_[entry->output] = entry; } return true; diff --git a/src/build_log_test.cc b/src/build_log_test.cc index 6807a04..11c0e09 100644 --- a/src/build_log_test.cc +++ b/src/build_log_test.cc @@ -41,3 +41,19 @@ TEST_F(BuildLogTest, WriteRead) { ASSERT_EQ(15, e1->time_ms); ASSERT_EQ("out", e1->output); } + +TEST_F(BuildLogTest, DoubleEntry) { + FILE* f = fopen(log_filename_.c_str(), "wb"); + fprintf(f, "0 out command abc\n"); + fprintf(f, "0 out command def\n"); + fclose(f); + + string err; + BuildLog log; + EXPECT_TRUE(log.Load(log_filename_, &err)); + ASSERT_EQ("", err); + + BuildLog::LogEntry* e = log.LookupByOutput("out"); + ASSERT_TRUE(e); + ASSERT_EQ("command def", e->command); +} |