summaryrefslogtreecommitdiffstats
path: root/src/state_test.cc
Commit message (Collapse)AuthorAgeFilesLines
* Allow scoping rules through subninjaMohamed Bamakhrama2015-03-011-1/+1
| | | | | | | | Ninja didn't support scoping rules through subninja and assumed a unique rule name in the whole namespace. With this change, this behavior is changed to allow scoping rules. Two rules can have the same name if they belong to two different scopes. However, two rules can NOT have the same name in the same scope.
* make all GetNode explicit, add DepsLog canonicalize testScott Graham2014-11-101-3/+3
|
* wip on adding tests at higher level, some not rightScott Graham2014-11-081-3/+3
|
* Use a small, standalone testing framework instead of googletest.Nico Weber2014-09-181-2/+1
| | | | | | | | | | | | | | | | | | | | | Ninja currently uses googletest for testing. That makes building ninja_test somewhat annoying since it requires that one passes --with-gtest PATH to configure. It turns out just implementing the bits of googletest that ninja uses needs about the same amount of code than making the --with-gtest flag in configure.py work and making googletest print test results in a way we want (!) In addition to making configuration simpler, this also makes compiling tests much faster: On my system, touching src/build_test.cc (the slowest file to build in ninja) and rebuilding ninja_tests is twice as fast than without this patch. Building all is noticeably faster too: 5.6s with this patch, 9.1s without this patch (38% faster). The most noticeable things missing: EXPECT_* and ASSERT_* don't support streaming notes to them with operator<<, and for failing tests the lhs and rhs are not printed. That's so that this header does not have to include sstream, which slows down building ninja_test almost 20%. If this turns out to be annoying, we can maybe add it.
* rearrange handling of builtin bindings to make rules simplerEvan Martin2012-12-291-2/+2
| | | | | Now, a 'build' block can override any special binding like 'command' or 'description' if it needs to.
* all building and tests passingRobert Iannucci2012-11-091-1/+1
|
* clarify setterEvan Martin2012-09-041-4/+7
|
* Fix the TODO in graph.h.Thiago Farina2012-02-161-4/+4
| | | | Signed-off-by: Thiago Farina <tfarina@chromium.org>
* make evalstring internals privateEvan Martin2011-12-301-4/+4
|
* switch the core ninja parser to use re2c for the lexerEvan Martin2011-12-291-3/+6
| | | | | | | | | - Delete the old "Tokenizer" code. - Write separate tests for the lexer distinct from the parser. - Switch the parser to use the new code. - New lexer error output has file:line numbers so e.g. Emacs can jump your editor to the syntax error. - The EvalEnv ($-interpolation) code is now part of the lexer as well.
* Follow up fix to commit 32bf74f (Fix the TODO in Rule class.)Thiago Farina2011-12-241-1/+1
| | | | Signed-off-by: Thiago Farina <tfarina@chromium.org>
* remove unused functionEvan Martin2011-12-071-1/+1
|
* Split ninja_test.cc into state_test.cc and disk_interface_test.ccThiago Farina2011-09-111-0/+41
Signed-off-by: Thiago Farina <tfarina@chromium.org>