summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2011-05-17 16:54:23 (GMT)
committerEvan Martin <martine@danga.com>2011-05-17 17:39:29 (GMT)
commit25ca3b332bb50df448d02d0f600e109c59e66543 (patch)
tree030b824d6cea015cf1f4e3d193ee1156808268e4 /src
parent207ffaf0d3e4dd60057e13cf0748360fc5049e97 (diff)
downloadNinja-25ca3b332bb50df448d02d0f600e109c59e66543.zip
Ninja-25ca3b332bb50df448d02d0f600e109c59e66543.tar.gz
Ninja-25ca3b332bb50df448d02d0f600e109c59e66543.tar.bz2
check in failing test that hits the "stuck" state
Diffstat (limited to 'src')
-rw-r--r--src/build_test.cc24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/build_test.cc b/src/build_test.cc
index 8530c73..95a7efd 100644
--- a/src/build_test.cc
+++ b/src/build_test.cc
@@ -265,8 +265,7 @@ bool BuildTest::StartCommand(Edge* edge) {
}
bool BuildTest::WaitForCommands() {
- assert(last_command_);
- return true;
+ return last_command_ != NULL;
}
Edge* BuildTest::NextFinishedCommand(bool* success, string* output) {
@@ -561,3 +560,24 @@ TEST_F(BuildTest, SwallowFailures) {
ASSERT_EQ(3u, commands_ran_.size());
ASSERT_EQ("subcommands failed", err);
}
+
+TEST_F(BuildTest, DISABLED_SwallowFailuresLimit) {
+ ASSERT_NO_FATAL_FAILURE(AssertParse(&state_,
+"rule fail\n"
+" command = fail\n"
+"build out1: fail\n"
+"build out2: fail\n"
+"build out3: fail\n"
+"build final: cat out1 out2 out3\n"));
+
+ // Swallow ten failures; we should stop before building final.
+ config_.swallow_failures = 10;
+
+ string err;
+ EXPECT_TRUE(builder_.AddTarget("final", &err));
+ ASSERT_EQ("", err);
+
+ EXPECT_FALSE(builder_.Build(&err));
+ ASSERT_EQ(3u, commands_ran_.size());
+ ASSERT_EQ("subcommands failed", err);
+}