summaryrefslogtreecommitdiffstats
path: root/src/clean_test.cc
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2015-03-31 15:12:12 (GMT)
committerNico Weber <nicolasweber@gmx.de>2015-03-31 19:21:57 (GMT)
commit3beebde51a2089ecb01820f1428efe0263deaeea (patch)
tree55aec535c37434dbe5893e8ed37c69891b6d4b74 /src/clean_test.cc
parenta88b75d9a9df1b3722ad649ae275d342f3b57b22 (diff)
downloadNinja-3beebde51a2089ecb01820f1428efe0263deaeea.zip
Ninja-3beebde51a2089ecb01820f1428efe0263deaeea.tar.gz
Ninja-3beebde51a2089ecb01820f1428efe0263deaeea.tar.bz2
Let Stat() have an err outparam instead of writing to stderr.
Also check for Stat() failure in a few more places. This way, ninja doesn't print two "ninja: error: " lines if stat() fails during a build. It also makes it easier to keep the stat tests quiet. Every caller of Stat() needs to explicitly log the error string if that's desired.
Diffstat (limited to 'src/clean_test.cc')
-rw-r--r--src/clean_test.cc85
1 files changed, 47 insertions, 38 deletions
diff --git a/src/clean_test.cc b/src/clean_test.cc
index 5869bbb..395343b 100644
--- a/src/clean_test.cc
+++ b/src/clean_test.cc
@@ -44,10 +44,11 @@ TEST_F(CleanTest, CleanAll) {
EXPECT_EQ(4u, fs_.files_removed_.size());
// Check they are removed.
- EXPECT_EQ(0, fs_.Stat("in1"));
- EXPECT_EQ(0, fs_.Stat("out1"));
- EXPECT_EQ(0, fs_.Stat("in2"));
- EXPECT_EQ(0, fs_.Stat("out2"));
+ string err;
+ EXPECT_EQ(0, fs_.Stat("in1", &err));
+ EXPECT_EQ(0, fs_.Stat("out1", &err));
+ EXPECT_EQ(0, fs_.Stat("in2", &err));
+ EXPECT_EQ(0, fs_.Stat("out2", &err));
fs_.files_removed_.clear();
EXPECT_EQ(0, cleaner.CleanAll());
@@ -75,10 +76,11 @@ TEST_F(CleanTest, CleanAllDryRun) {
EXPECT_EQ(0u, fs_.files_removed_.size());
// Check they are not removed.
- EXPECT_NE(0, fs_.Stat("in1"));
- EXPECT_NE(0, fs_.Stat("out1"));
- EXPECT_NE(0, fs_.Stat("in2"));
- EXPECT_NE(0, fs_.Stat("out2"));
+ string err;
+ EXPECT_LT(0, fs_.Stat("in1", &err));
+ EXPECT_LT(0, fs_.Stat("out1", &err));
+ EXPECT_LT(0, fs_.Stat("in2", &err));
+ EXPECT_LT(0, fs_.Stat("out2", &err));
fs_.files_removed_.clear();
EXPECT_EQ(0, cleaner.CleanAll());
@@ -105,10 +107,11 @@ TEST_F(CleanTest, CleanTarget) {
EXPECT_EQ(2u, fs_.files_removed_.size());
// Check they are removed.
- EXPECT_EQ(0, fs_.Stat("in1"));
- EXPECT_EQ(0, fs_.Stat("out1"));
- EXPECT_NE(0, fs_.Stat("in2"));
- EXPECT_NE(0, fs_.Stat("out2"));
+ string err;
+ EXPECT_EQ(0, fs_.Stat("in1", &err));
+ EXPECT_EQ(0, fs_.Stat("out1", &err));
+ EXPECT_LT(0, fs_.Stat("in2", &err));
+ EXPECT_LT(0, fs_.Stat("out2", &err));
fs_.files_removed_.clear();
ASSERT_EQ(0, cleaner.CleanTarget("out1"));
@@ -135,11 +138,12 @@ TEST_F(CleanTest, CleanTargetDryRun) {
EXPECT_EQ(2, cleaner.cleaned_files_count());
EXPECT_EQ(0u, fs_.files_removed_.size());
- // Check they are removed.
- EXPECT_NE(0, fs_.Stat("in1"));
- EXPECT_NE(0, fs_.Stat("out1"));
- EXPECT_NE(0, fs_.Stat("in2"));
- EXPECT_NE(0, fs_.Stat("out2"));
+ // Check they are not removed.
+ string err;
+ EXPECT_LT(0, fs_.Stat("in1", &err));
+ EXPECT_LT(0, fs_.Stat("out1", &err));
+ EXPECT_LT(0, fs_.Stat("in2", &err));
+ EXPECT_LT(0, fs_.Stat("out2", &err));
fs_.files_removed_.clear();
ASSERT_EQ(0, cleaner.CleanTarget("out1"));
@@ -168,10 +172,11 @@ TEST_F(CleanTest, CleanRule) {
EXPECT_EQ(2u, fs_.files_removed_.size());
// Check they are removed.
- EXPECT_EQ(0, fs_.Stat("in1"));
- EXPECT_NE(0, fs_.Stat("out1"));
- EXPECT_EQ(0, fs_.Stat("in2"));
- EXPECT_NE(0, fs_.Stat("out2"));
+ string err;
+ EXPECT_EQ(0, fs_.Stat("in1", &err));
+ EXPECT_LT(0, fs_.Stat("out1", &err));
+ EXPECT_EQ(0, fs_.Stat("in2", &err));
+ EXPECT_LT(0, fs_.Stat("out2", &err));
fs_.files_removed_.clear();
ASSERT_EQ(0, cleaner.CleanRule("cat_e"));
@@ -200,11 +205,12 @@ TEST_F(CleanTest, CleanRuleDryRun) {
EXPECT_EQ(2, cleaner.cleaned_files_count());
EXPECT_EQ(0u, fs_.files_removed_.size());
- // Check they are removed.
- EXPECT_NE(0, fs_.Stat("in1"));
- EXPECT_NE(0, fs_.Stat("out1"));
- EXPECT_NE(0, fs_.Stat("in2"));
- EXPECT_NE(0, fs_.Stat("out2"));
+ // Check they are not removed.
+ string err;
+ EXPECT_LT(0, fs_.Stat("in1", &err));
+ EXPECT_LT(0, fs_.Stat("out1", &err));
+ EXPECT_LT(0, fs_.Stat("in2", &err));
+ EXPECT_LT(0, fs_.Stat("out2", &err));
fs_.files_removed_.clear();
ASSERT_EQ(0, cleaner.CleanRule("cat_e"));
@@ -328,12 +334,13 @@ TEST_F(CleanTest, CleanRsp) {
EXPECT_EQ(6u, fs_.files_removed_.size());
// Check they are removed.
- EXPECT_EQ(0, fs_.Stat("in1"));
- EXPECT_EQ(0, fs_.Stat("out1"));
- EXPECT_EQ(0, fs_.Stat("in2"));
- EXPECT_EQ(0, fs_.Stat("out2"));
- EXPECT_EQ(0, fs_.Stat("in2.rsp"));
- EXPECT_EQ(0, fs_.Stat("out2.rsp"));
+ string err;
+ EXPECT_EQ(0, fs_.Stat("in1", &err));
+ EXPECT_EQ(0, fs_.Stat("out1", &err));
+ EXPECT_EQ(0, fs_.Stat("in2", &err));
+ EXPECT_EQ(0, fs_.Stat("out2", &err));
+ EXPECT_EQ(0, fs_.Stat("in2.rsp", &err));
+ EXPECT_EQ(0, fs_.Stat("out2.rsp", &err));
}
TEST_F(CleanTest, CleanFailure) {
@@ -345,6 +352,7 @@ TEST_F(CleanTest, CleanFailure) {
}
TEST_F(CleanTest, CleanPhony) {
+ string err;
ASSERT_NO_FATAL_FAILURE(AssertParse(&state_,
"build phony: phony t1 t2\n"
"build t1: cat\n"
@@ -358,7 +366,7 @@ TEST_F(CleanTest, CleanPhony) {
Cleaner cleaner(&state_, config_, &fs_);
EXPECT_EQ(0, cleaner.CleanAll());
EXPECT_EQ(2, cleaner.cleaned_files_count());
- EXPECT_NE(0, fs_.Stat("phony"));
+ EXPECT_LT(0, fs_.Stat("phony", &err));
fs_.Create("t1", "");
fs_.Create("t2", "");
@@ -366,7 +374,7 @@ TEST_F(CleanTest, CleanPhony) {
// Check that CleanTarget does not remove "phony".
EXPECT_EQ(0, cleaner.CleanTarget("phony"));
EXPECT_EQ(2, cleaner.cleaned_files_count());
- EXPECT_NE(0, fs_.Stat("phony"));
+ EXPECT_LT(0, fs_.Stat("phony", &err));
}
TEST_F(CleanTest, CleanDepFileAndRspFileWithSpaces) {
@@ -391,8 +399,9 @@ TEST_F(CleanTest, CleanDepFileAndRspFileWithSpaces) {
EXPECT_EQ(4, cleaner.cleaned_files_count());
EXPECT_EQ(4u, fs_.files_removed_.size());
- EXPECT_EQ(0, fs_.Stat("out 1"));
- EXPECT_EQ(0, fs_.Stat("out 2"));
- EXPECT_EQ(0, fs_.Stat("out 1.d"));
- EXPECT_EQ(0, fs_.Stat("out 2.rsp"));
+ string err;
+ EXPECT_EQ(0, fs_.Stat("out 1", &err));
+ EXPECT_EQ(0, fs_.Stat("out 2", &err));
+ EXPECT_EQ(0, fs_.Stat("out 1.d", &err));
+ EXPECT_EQ(0, fs_.Stat("out 2.rsp", &err));
}