Ninja
|
#include "build.h"
#include "build_log.h"
#include "deps_log.h"
#include "graph.h"
#include "test.h"
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) | |
TEST_F | ( | PlanTest | , |
Basic | |||
) |
Definition at line 51 of file build_test.cc.
References Plan::AddTarget(), AssertParse(), Plan::EdgeFinished(), Plan::FindWork(), StateTestWithBuiltinRules::GetNode(), Node::MarkDirty(), Plan::more_to_do(), PlanTest::plan_, and StateTestWithBuiltinRules::state_.
TEST_F | ( | PlanTest | , |
DoubleOutputDirect | |||
) |
Definition at line 84 of file build_test.cc.
References Plan::AddTarget(), AssertParse(), Plan::EdgeFinished(), Plan::FindWork(), StateTestWithBuiltinRules::GetNode(), Node::MarkDirty(), Plan::more_to_do(), PlanTest::plan_, and StateTestWithBuiltinRules::state_.
TEST_F | ( | PlanTest | , |
DoubleOutputIndirect | |||
) |
Definition at line 111 of file build_test.cc.
References Plan::AddTarget(), AssertParse(), Plan::EdgeFinished(), Plan::FindWork(), StateTestWithBuiltinRules::GetNode(), Node::MarkDirty(), Plan::more_to_do(), PlanTest::plan_, and StateTestWithBuiltinRules::state_.
TEST_F | ( | PlanTest | , |
DoubleDependent | |||
) |
Definition at line 149 of file build_test.cc.
References Plan::AddTarget(), AssertParse(), Plan::EdgeFinished(), Plan::FindWork(), StateTestWithBuiltinRules::GetNode(), Node::MarkDirty(), Plan::more_to_do(), PlanTest::plan_, and StateTestWithBuiltinRules::state_.
TEST_F | ( | PlanTest | , |
DependencyCycle | |||
) |
Definition at line 186 of file build_test.cc.
References Plan::AddTarget(), AssertParse(), StateTestWithBuiltinRules::GetNode(), Node::MarkDirty(), PlanTest::plan_, and StateTestWithBuiltinRules::state_.
TEST_F | ( | PlanTest | , |
PoolWithDepthOne | |||
) |
Definition at line 237 of file build_test.cc.
References PlanTest::TestPoolWithDepthOne().
TEST_F | ( | PlanTest | , |
ConsolePool | |||
) |
Definition at line 248 of file build_test.cc.
References PlanTest::TestPoolWithDepthOne().
TEST_F | ( | PlanTest | , |
PoolsWithDepthTwo | |||
) |
Definition at line 257 of file build_test.cc.
References Plan::AddTarget(), AssertParse(), Plan::EdgeFinished(), Plan::FindWork(), PlanTest::FindWorkSorted(), StateTestWithBuiltinRules::GetNode(), Edge::inputs_, Node::MarkDirty(), Plan::more_to_do(), Edge::outputs_, PlanTest::plan_, and StateTestWithBuiltinRules::state_.
TEST_F | ( | PlanTest | , |
PoolWithRedundantEdges | |||
) |
Definition at line 335 of file build_test.cc.
References Plan::AddTarget(), AssertParse(), Plan::EdgeFinished(), Plan::FindWork(), PlanTest::FindWorkSorted(), StateTestWithBuiltinRules::GetNode(), Node::MarkDirty(), Plan::more_to_do(), PlanTest::plan_, and StateTestWithBuiltinRules::state_.
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.
References State::Reset(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
TwoOutputs | |||
) |
Definition at line 661 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
MultiOutIn | |||
) |
Definition at line 680 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
Chain | |||
) |
Definition at line 698 of file build_test.cc.
References AssertParse(), State::Reset(), and StateTestWithBuiltinRules::state_.
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(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
DepFileMissing | |||
) |
Definition at line 775 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
DepFileOK | |||
) |
Definition at line 788 of file build_test.cc.
References AssertParse(), State::edges_, Edge::EvaluateCommand(), StateTestWithBuiltinRules::GetNode(), Edge::inputs_, Node::MarkDirty(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
DepFileParseError | |||
) |
Definition at line 814 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
OrderOnlyDeps | |||
) |
Definition at line 826 of file build_test.cc.
References AssertParse(), State::edges_, Edge::EvaluateCommand(), Edge::implicit_deps_, Edge::inputs_, Edge::order_only_deps_, State::Reset(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
RebuildOrderOnlyDeps | |||
) |
Definition at line 896 of file build_test.cc.
References AssertParse(), State::Reset(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
Phony | |||
) |
Definition at line 943 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
PhonyNoWork | |||
) |
Definition at line 960 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
Fail | |||
) |
Definition at line 973 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
SwallowFailures | |||
) |
Definition at line 988 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
SwallowFailuresLimit | |||
) |
Definition at line 1009 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildWithLogTest | , |
NotInLogButOnDisk | |||
) |
Definition at line 1038 of file build_test.cc.
References AssertParse(), State::Reset(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildWithLogTest | , |
RestatTest | |||
) |
Definition at line 1063 of file build_test.cc.
References AssertParse(), State::Reset(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildWithLogTest | , |
RestatMissingFile | |||
) |
Definition at line 1127 of file build_test.cc.
References AssertParse(), State::Reset(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildWithLogTest | , |
RestatSingleDependentOutputDirty | |||
) |
Definition at line 1168 of file build_test.cc.
References AssertParse(), State::Reset(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildWithLogTest | , |
RestatMissingInput | |||
) |
Definition at line 1210 of file build_test.cc.
References AssertParse(), State::Reset(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildDryRun | , |
AllCommandsShown | |||
) |
Definition at line 1268 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
RspFileSuccess | |||
) |
Definition at line 1299 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
RspFileFailure | |||
) |
Definition at line 1351 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildWithLogTest | , |
RspFileCmdLineChange | |||
) |
Definition at line 1390 of file build_test.cc.
References AssertHash(), AssertParse(), State::Reset(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
InterruptCleanup | |||
) |
Definition at line 1436 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
PhonyWithNoInputs | |||
) |
Definition at line 1470 of file build_test.cc.
References AssertParse(), State::Reset(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildTest | , |
DepsGccWithEmptyDepfileErrorsOut | |||
) |
Definition at line 1496 of file build_test.cc.
References AssertParse(), and StateTestWithBuiltinRules::state_.
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(), and StateTestWithBuiltinRules::state_.
TEST_F | ( | BuildWithDepsLogTest | , |
Straightforward | |||
) |
Run a straightforwad build where the deps log is used.
Definition at line 1561 of file build_test.cc.
References StateTestWithBuiltinRules::AddCatRule(), 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 StateTestWithBuiltinRules::AddCatRule(), Builder::AddTarget(), AssertParse(), Builder::Build(), DepsLog::Close(), Builder::command_runner_, DepsLog::Load(), and DepsLog::OpenForWrite().
TEST_F | ( | BuildWithDepsLogTest | , |
DepsIgnoredInDryRun | |||
) |
Definition at line 1698 of file build_test.cc.
References StateTestWithBuiltinRules::AddCatRule(), Builder::AddTarget(), AssertParse(), Builder::Build(), and Builder::command_runner_.
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(), and StateTestWithBuiltinRules::state_.
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 StateTestWithBuiltinRules::AddCatRule(), Builder::AddTarget(), AssertParse(), Builder::Build(), DepsLog::Close(), Builder::command_runner_, DepsLog::Load(), and DepsLog::OpenForWrite().
TEST_F | ( | BuildWithDepsLogTest | , |
DepFileOKDepsLog | |||
) |
Definition at line 1814 of file build_test.cc.
References Builder::AddTarget(), AssertParse(), Builder::Build(), DepsLog::Close(), Builder::command_runner_, State::edges_, Edge::EvaluateCommand(), State::GetNode(), Edge::inputs_, DepsLog::Load(), Node::MarkDirty(), and DepsLog::OpenForWrite().
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(), and StateTestWithBuiltinRules::state_.