summaryrefslogtreecommitdiffstats
path: root/src/build_log_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/build_log_test.cc')
-rw-r--r--src/build_log_test.cc28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/build_log_test.cc b/src/build_log_test.cc
index 9fb42c9..a6c2a86 100644
--- a/src/build_log_test.cc
+++ b/src/build_log_test.cc
@@ -20,9 +20,7 @@
#ifdef _WIN32
#include <fcntl.h>
#include <share.h>
-#endif
-
-#ifdef linux
+#else
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -32,6 +30,8 @@ const char kTestFilename[] = "BuildLogTest-tempfile";
struct BuildLogTest : public StateTestWithBuiltinRules {
virtual void SetUp() {
+ // In case a crashing test left a stale file behind.
+ unlink(kTestFilename);
}
virtual void TearDown() {
unlink(kTestFilename);
@@ -55,8 +55,8 @@ TEST_F(BuildLogTest, WriteRead) {
EXPECT_TRUE(log2.Load(kTestFilename, &err));
ASSERT_EQ("", err);
- ASSERT_EQ(2u, log1.log().size());
- ASSERT_EQ(2u, log2.log().size());
+ ASSERT_EQ(2u, log1.entries().size());
+ ASSERT_EQ(2u, log2.entries().size());
BuildLog::LogEntry* e1 = log1.LookupByOutput("out");
ASSERT_TRUE(e1);
BuildLog::LogEntry* e2 = log2.LookupByOutput("out");
@@ -131,8 +131,16 @@ TEST_F(BuildLogTest, Truncate) {
ASSERT_GT(statbuf.st_size, 0);
// For all possible truncations of the input file, assert that we don't
- // crash or report an error when parsing.
+ // crash when parsing.
for (off_t size = statbuf.st_size; size > 0; --size) {
+ BuildLog log2;
+ string err;
+ EXPECT_TRUE(log2.OpenForWrite(kTestFilename, &err));
+ ASSERT_EQ("", err);
+ log2.RecordCommand(state_.edges_[0], 15, 18);
+ log2.RecordCommand(state_.edges_[1], 20, 25);
+ log2.Close();
+
#ifndef _WIN32
ASSERT_EQ(0, truncate(kTestFilename, size));
#else
@@ -142,9 +150,9 @@ TEST_F(BuildLogTest, Truncate) {
_close(fh);
#endif
- BuildLog log2;
- EXPECT_TRUE(log2.Load(kTestFilename, &err));
- ASSERT_EQ("", err);
+ BuildLog log3;
+ err.clear();
+ ASSERT_TRUE(log3.Load(kTestFilename, &err) || !err.empty());
}
}
@@ -156,7 +164,7 @@ TEST_F(BuildLogTest, ObsoleteOldVersion) {
string err;
BuildLog log;
- EXPECT_FALSE(log.Load(kTestFilename, &err));
+ EXPECT_TRUE(log.Load(kTestFilename, &err));
ASSERT_NE(err.find("version"), string::npos);
}