Ninja
Classes | Functions
build_test.cc File Reference
#include "build.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.
 TEST_F (BuildWithDepsLogTest, ObsoleteDeps)
 Verify that obsolete dependency info causes a rebuild.
 TEST_F (BuildWithDepsLogTest, DepsIgnoredInDryRun)
 TEST_F (BuildTest, RestatDepfileDependency)
 Check that a restat rule generating a header cancels compilations correctly.
 TEST_F (BuildWithDepsLogTest, RestatDepfileDependencyDepsLog)
 Check that a restat rule generating a header cancels compilations correctly, depslog case.
 TEST_F (BuildWithDepsLogTest, DepFileOKDepsLog)
 TEST_F (BuildTest, RestatMissingDepfile)
 Check that a restat rule doesn't clear an edge if the depfile is missing.
 TEST_F (BuildWithDepsLogTest, RestatMissingDepfileDepslog)
 Check that a restat rule doesn't clear an edge if the deps are missing.
 TEST_F (BuildTest, Console)

Function Documentation

TEST_F ( PlanTest  ,
Basic   
)

Definition at line 51 of file build_test.cc.

References AssertParse().

TEST_F ( PlanTest  ,
DoubleOutputDirect   
)

Definition at line 84 of file build_test.cc.

References AssertParse().

TEST_F ( PlanTest  ,
DoubleOutputIndirect   
)

Definition at line 111 of file build_test.cc.

References AssertParse().

TEST_F ( PlanTest  ,
DoubleDependent   
)

Definition at line 149 of file build_test.cc.

References AssertParse().

TEST_F ( PlanTest  ,
DependencyCycle   
)

Definition at line 186 of file build_test.cc.

References AssertParse().

TEST_F ( PlanTest  ,
PoolWithDepthOne   
)

Definition at line 237 of file build_test.cc.

TEST_F ( PlanTest  ,
ConsolePool   
)

Definition at line 248 of file build_test.cc.

TEST_F ( PlanTest  ,
PoolsWithDepthTwo   
)

Definition at line 257 of file build_test.cc.

References AssertParse(), Edge::inputs_, and Edge::outputs_.

TEST_F ( PlanTest  ,
PoolWithRedundantEdges   
)

Definition at line 335 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
NoWork   
)

Definition at line 597 of file build_test.cc.

TEST_F ( BuildTest  ,
OneStep   
)

Definition at line 602 of file build_test.cc.

TEST_F ( BuildTest  ,
OneStep2   
)

Definition at line 616 of file build_test.cc.

TEST_F ( BuildTest  ,
TwoStep   
)

Definition at line 630 of file build_test.cc.

TEST_F ( BuildTest  ,
TwoOutputs   
)

Definition at line 661 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
MultiOutIn   
)

Definition at line 680 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
Chain   
)

Definition at line 698 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
MissingInput   
)

Definition at line 734 of file build_test.cc.

TEST_F ( BuildTest  ,
MissingTarget   
)

Definition at line 743 of file build_test.cc.

TEST_F ( BuildTest  ,
MakeDirs   
)

Definition at line 750 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
DepFileMissing   
)

Definition at line 775 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
DepFileOK   
)

Definition at line 788 of file build_test.cc.

References AssertParse(), Edge::EvaluateCommand(), and Edge::inputs_.

TEST_F ( BuildTest  ,
DepFileParseError   
)

Definition at line 814 of file build_test.cc.

References AssertParse().

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

Definition at line 896 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
Phony   
)

Definition at line 943 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
PhonyNoWork   
)

Definition at line 960 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
Fail   
)

Definition at line 973 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
SwallowFailures   
)

Definition at line 988 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
SwallowFailuresLimit   
)

Definition at line 1009 of file build_test.cc.

References AssertParse().

TEST_F ( BuildWithLogTest  ,
NotInLogButOnDisk   
)

Definition at line 1038 of file build_test.cc.

References AssertParse().

TEST_F ( BuildWithLogTest  ,
RestatTest   
)

Definition at line 1063 of file build_test.cc.

References AssertParse().

TEST_F ( BuildWithLogTest  ,
RestatMissingFile   
)

Definition at line 1127 of file build_test.cc.

References AssertParse().

TEST_F ( BuildWithLogTest  ,
RestatSingleDependentOutputDirty   
)

Definition at line 1168 of file build_test.cc.

References AssertParse().

TEST_F ( BuildWithLogTest  ,
RestatMissingInput   
)

Definition at line 1210 of file build_test.cc.

References AssertParse().

TEST_F ( BuildDryRun  ,
AllCommandsShown   
)

Definition at line 1268 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
RspFileSuccess   
)

Definition at line 1299 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
RspFileFailure   
)

Definition at line 1351 of file build_test.cc.

References AssertParse().

TEST_F ( BuildWithLogTest  ,
RspFileCmdLineChange   
)

Definition at line 1390 of file build_test.cc.

References AssertHash(), and AssertParse().

TEST_F ( BuildTest  ,
InterruptCleanup   
)

Definition at line 1436 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
PhonyWithNoInputs   
)

Definition at line 1470 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
DepsGccWithEmptyDepfileErrorsOut   
)

Definition at line 1496 of file build_test.cc.

References AssertParse().

TEST_F ( BuildTest  ,
StatusFormatReplacePlaceholder   
)

Definition at line 1514 of file build_test.cc.

TEST_F ( BuildTest  ,
FailedDepsParse   
)

Definition at line 1519 of file build_test.cc.

References AssertParse().

TEST_F ( BuildWithDepsLogTest  ,
Straightforward   
)

Run a straightforwad build where the deps log is used.

Definition at line 1561 of file build_test.cc.

References Builder::AddTarget(), AssertParse(), Builder::Build(), DepsLog::Close(), Builder::command_runner_, DepsLog::Load(), and DepsLog::OpenForWrite().

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 1628 of file build_test.cc.

References Builder::AddTarget(), AssertParse(), Builder::Build(), DepsLog::Close(), Builder::command_runner_, 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 1728 of file build_test.cc.

References AssertParse().

TEST_F ( BuildWithDepsLogTest  ,
RestatDepfileDependencyDepsLog   
)

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

Definition at line 1751 of file build_test.cc.

References Builder::AddTarget(), AssertParse(), Builder::Build(), DepsLog::Close(), Builder::command_runner_, 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 1877 of file build_test.cc.

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 1901 of file build_test.cc.

TEST_F ( BuildTest  ,
Console   
)

Definition at line 1951 of file build_test.cc.

References AssertParse().