Ninja
Classes | Functions
build_test.cc File Reference
#include "build.h"
#include <assert.h>
#include "build_log.h"
#include "deps_log.h"
#include "graph.h"
#include "test.h"
Include dependency graph for build_test.cc:

Go to the source code of this file.

Classes

struct  BuildDryRun
 
struct  BuildTest
 
struct  BuildWithDepsLogTest
 Tests of builds involving deps logs necessarily must span multiple builds. More...
 
struct  BuildWithLogTest
 
struct  FakeCommandRunner
 Fake implementation of CommandRunner, useful for tests. More...
 
struct  PlanTest
 Fixture for tests involving Plan. More...
 

Functions

 TEST_F (PlanTest, Basic)
 
 TEST_F (PlanTest, DoubleOutputDirect)
 
 TEST_F (PlanTest, DoubleOutputIndirect)
 
 TEST_F (PlanTest, DoubleDependent)
 
 TEST_F (PlanTest, DependencyCycle)
 
 TEST_F (PlanTest, PoolWithDepthOne)
 
 TEST_F (PlanTest, ConsolePool)
 
 TEST_F (PlanTest, PoolsWithDepthTwo)
 
 TEST_F (PlanTest, PoolWithRedundantEdges)
 
 TEST_F (BuildTest, NoWork)
 
 TEST_F (BuildTest, OneStep)
 
 TEST_F (BuildTest, OneStep2)
 
 TEST_F (BuildTest, TwoStep)
 
 TEST_F (BuildTest, TwoOutputs)
 
 TEST_F (BuildTest, MultiOutIn)
 
 TEST_F (BuildTest, Chain)
 
 TEST_F (BuildTest, MissingInput)
 
 TEST_F (BuildTest, MissingTarget)
 
 TEST_F (BuildTest, MakeDirs)
 
 TEST_F (BuildTest, DepFileMissing)
 
 TEST_F (BuildTest, DepFileOK)
 
 TEST_F (BuildTest, DepFileParseError)
 
 TEST_F (BuildTest, OrderOnlyDeps)
 
 TEST_F (BuildTest, RebuildOrderOnlyDeps)
 
 TEST_F (BuildTest, Phony)
 
 TEST_F (BuildTest, PhonyNoWork)
 
 TEST_F (BuildTest, Fail)
 
 TEST_F (BuildTest, SwallowFailures)
 
 TEST_F (BuildTest, SwallowFailuresLimit)
 
 TEST_F (BuildWithLogTest, NotInLogButOnDisk)
 
 TEST_F (BuildWithLogTest, RestatTest)
 
 TEST_F (BuildWithLogTest, RestatMissingFile)
 
 TEST_F (BuildWithLogTest, RestatSingleDependentOutputDirty)
 
 TEST_F (BuildWithLogTest, RestatMissingInput)
 
 TEST_F (BuildDryRun, AllCommandsShown)
 
 TEST_F (BuildTest, RspFileSuccess)
 
 TEST_F (BuildTest, RspFileFailure)
 
 TEST_F (BuildWithLogTest, RspFileCmdLineChange)
 
 TEST_F (BuildTest, InterruptCleanup)
 
 TEST_F (BuildTest, PhonyWithNoInputs)
 
 TEST_F (BuildTest, DepsGccWithEmptyDepfileErrorsOut)
 
 TEST_F (BuildTest, StatusFormatReplacePlaceholder)
 
 TEST_F (BuildTest, FailedDepsParse)
 
 TEST_F (BuildWithDepsLogTest, Straightforward)
 Run a straightforwad build where the deps log is used. More...
 
 TEST_F (BuildWithDepsLogTest, ObsoleteDeps)
 Verify that obsolete dependency info causes a rebuild. More...
 
 TEST_F (BuildWithDepsLogTest, DepsIgnoredInDryRun)
 
 TEST_F (BuildTest, RestatDepfileDependency)
 Check that a restat rule generating a header cancels compilations correctly. More...
 
 TEST_F (BuildWithDepsLogTest, RestatDepfileDependencyDepsLog)
 Check that a restat rule generating a header cancels compilations correctly, depslog case. More...
 
 TEST_F (BuildWithDepsLogTest, DepFileOKDepsLog)
 
 TEST_F (BuildTest, RestatMissingDepfile)
 Check that a restat rule doesn't clear an edge if the depfile is missing. More...
 
 TEST_F (BuildWithDepsLogTest, RestatMissingDepfileDepslog)
 Check that a restat rule doesn't clear an edge if the deps are missing. More...
 
 TEST_F (BuildTest, Console)
 

Function Documentation

TEST_F ( PlanTest  ,
Basic   
)

Definition at line 53 of file build_test.cc.

References ASSERT_EQ, ASSERT_FALSE, ASSERT_TRUE, AssertParse(), and EXPECT_TRUE.

TEST_F ( PlanTest  ,
DoubleOutputDirect   
)

Definition at line 86 of file build_test.cc.

References ASSERT_EQ, ASSERT_FALSE, ASSERT_TRUE, AssertParse(), and EXPECT_TRUE.

TEST_F ( PlanTest  ,
DoubleOutputIndirect   
)

Definition at line 113 of file build_test.cc.

References ASSERT_EQ, ASSERT_FALSE, ASSERT_TRUE, AssertParse(), and EXPECT_TRUE.

TEST_F ( PlanTest  ,
DoubleDependent   
)

Definition at line 151 of file build_test.cc.

References ASSERT_EQ, ASSERT_FALSE, ASSERT_TRUE, AssertParse(), and EXPECT_TRUE.

TEST_F ( PlanTest  ,
DependencyCycle   
)

Definition at line 188 of file build_test.cc.

References ASSERT_EQ, AssertParse(), and EXPECT_FALSE.

TEST_F ( PlanTest  ,
PoolWithDepthOne   
)

Definition at line 239 of file build_test.cc.

TEST_F ( PlanTest  ,
ConsolePool   
)

Definition at line 250 of file build_test.cc.

TEST_F ( PlanTest  ,
PoolsWithDepthTwo   
)
TEST_F ( PlanTest  ,
PoolWithRedundantEdges   
)
TEST_F ( BuildTest  ,
NoWork   
)

Definition at line 599 of file build_test.cc.

References EXPECT_TRUE.

TEST_F ( BuildTest  ,
OneStep   
)

Definition at line 604 of file build_test.cc.

References ASSERT_EQ, EXPECT_EQ, and EXPECT_TRUE.

TEST_F ( BuildTest  ,
OneStep2   
)

Definition at line 618 of file build_test.cc.

References ASSERT_EQ, EXPECT_EQ, and EXPECT_TRUE.

TEST_F ( BuildTest  ,
TwoStep   
)

Definition at line 632 of file build_test.cc.

References ASSERT_EQ, EXPECT_EQ, and EXPECT_TRUE.

TEST_F ( BuildTest  ,
TwoOutputs   
)

Definition at line 663 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_EQ, and EXPECT_TRUE.

TEST_F ( BuildTest  ,
MultiOutIn   
)

Definition at line 682 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_EQ, and EXPECT_TRUE.

TEST_F ( BuildTest  ,
Chain   
)
TEST_F ( BuildTest  ,
MissingInput   
)

Definition at line 736 of file build_test.cc.

References EXPECT_EQ, and EXPECT_FALSE.

TEST_F ( BuildTest  ,
MissingTarget   
)

Definition at line 745 of file build_test.cc.

References EXPECT_EQ, and EXPECT_FALSE.

TEST_F ( BuildTest  ,
MakeDirs   
)

Definition at line 752 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_EQ, and EXPECT_TRUE.

TEST_F ( BuildTest  ,
DepFileMissing   
)

Definition at line 772 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_EQ, and EXPECT_TRUE.

TEST_F ( BuildTest  ,
DepFileOK   
)
TEST_F ( BuildTest  ,
DepFileParseError   
)

Definition at line 811 of file build_test.cc.

References ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_EQ, and EXPECT_FALSE.

TEST_F ( BuildTest  ,
OrderOnlyDeps   
)
TEST_F ( BuildTest  ,
RebuildOrderOnlyDeps   
)

Definition at line 893 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_EQ, and EXPECT_TRUE.

TEST_F ( BuildTest  ,
Phony   
)

Definition at line 972 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_FALSE, and EXPECT_TRUE.

TEST_F ( BuildTest  ,
PhonyNoWork   
)

Definition at line 989 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), and EXPECT_TRUE.

TEST_F ( BuildTest  ,
Fail   
)
TEST_F ( BuildTest  ,
SwallowFailures   
)
TEST_F ( BuildTest  ,
SwallowFailuresLimit   
)
TEST_F ( BuildWithLogTest  ,
NotInLogButOnDisk   
)

Definition at line 1067 of file build_test.cc.

References ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_FALSE, and EXPECT_TRUE.

TEST_F ( BuildWithLogTest  ,
RestatTest   
)

Definition at line 1092 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_EQ, and EXPECT_TRUE.

TEST_F ( BuildWithLogTest  ,
RestatMissingFile   
)

Definition at line 1156 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), and EXPECT_TRUE.

TEST_F ( BuildWithLogTest  ,
RestatSingleDependentOutputDirty   
)

Definition at line 1197 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), and EXPECT_TRUE.

TEST_F ( BuildWithLogTest  ,
RestatMissingInput   
)

Definition at line 1239 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, ASSERT_TRUE, AssertParse(), and EXPECT_TRUE.

TEST_F ( BuildDryRun  ,
AllCommandsShown   
)

Definition at line 1297 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), and EXPECT_TRUE.

TEST_F ( BuildTest  ,
RspFileSuccess   
)

Definition at line 1328 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), and EXPECT_TRUE.

TEST_F ( BuildTest  ,
RspFileFailure   
)
TEST_F ( BuildWithLogTest  ,
RspFileCmdLineChange   
)
TEST_F ( BuildTest  ,
InterruptCleanup   
)
TEST_F ( BuildTest  ,
PhonyWithNoInputs   
)

Definition at line 1499 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_EQ, and EXPECT_TRUE.

TEST_F ( BuildTest  ,
DepsGccWithEmptyDepfileErrorsOut   
)
TEST_F ( BuildTest  ,
StatusFormatReplacePlaceholder   
)

Definition at line 1543 of file build_test.cc.

References EXPECT_EQ.

TEST_F ( BuildTest  ,
FailedDepsParse   
)
TEST_F ( BuildWithDepsLogTest  ,
Straightforward   
)
TEST_F ( BuildWithDepsLogTest  ,
ObsoleteDeps   
)

Verify that obsolete dependency info causes a rebuild.

1) Run a successful build where everything has time t, record deps. 2) Move input/output to time t+1 – despite files in alignment, should still need to rebuild due to deps at older time.

Definition at line 1657 of file build_test.cc.

References Builder::AddTarget(), ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, ASSERT_TRUE, AssertParse(), Builder::Build(), DepsLog::Close(), Builder::command_runner_, EXPECT_EQ, EXPECT_TRUE, DepsLog::Load(), and DepsLog::OpenForWrite().

TEST_F ( BuildWithDepsLogTest  ,
DepsIgnoredInDryRun   
)
TEST_F ( BuildTest  ,
RestatDepfileDependency   
)

Check that a restat rule generating a header cancels compilations correctly.

Definition at line 1757 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_EQ, and EXPECT_TRUE.

TEST_F ( BuildWithDepsLogTest  ,
RestatDepfileDependencyDepsLog   
)

Check that a restat rule generating a header cancels compilations correctly, depslog case.

Definition at line 1780 of file build_test.cc.

References Builder::AddTarget(), ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, ASSERT_TRUE, AssertParse(), Builder::Build(), DepsLog::Close(), Builder::command_runner_, EXPECT_EQ, EXPECT_TRUE, DepsLog::Load(), and DepsLog::OpenForWrite().

TEST_F ( BuildWithDepsLogTest  ,
DepFileOKDepsLog   
)
TEST_F ( BuildTest  ,
RestatMissingDepfile   
)

Check that a restat rule doesn't clear an edge if the depfile is missing.

Follows from: https://github.com/martine/ninja/issues/603

Definition at line 1972 of file build_test.cc.

References ASSERT_EQ.

TEST_F ( BuildWithDepsLogTest  ,
RestatMissingDepfileDepslog   
)

Check that a restat rule doesn't clear an edge if the deps are missing.

https://github.com/martine/ninja/issues/603

Definition at line 1996 of file build_test.cc.

References ASSERT_EQ.

TEST_F ( BuildTest  ,
Console   
)

Definition at line 2046 of file build_test.cc.

References ASSERT_EQ, ASSERT_NO_FATAL_FAILURE, AssertParse(), EXPECT_EQ, and EXPECT_TRUE.