summaryrefslogtreecommitdiffstats
path: root/src/lexer_test.cc
Commit message (Collapse)AuthorAgeFilesLines
* Add 'using namespace std;' to all cc files to prepare for removing it from ↵Michael Jones2020-09-301-0/+2
| | | | header files
* 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.
* reject tabs (and CRs) in input files more aggressivelyEvan Martin2012-08-021-0/+10
|
* add colon escapingPeter Kuemmel2012-01-291-2/+2
| | | | | | | | Needed for Windows drive names. For instance configure with gtest: python configure.py --with-gtest=c$:\gtest-1.6.0
* make Lexer::Error not emit trailing newlineEvan Martin2012-01-051-1/+1
| | | | | Now it's consistent with other errors. Fixes part of issue #187.
* allow hyphen in variable namesEvan Martin2011-12-301-1/+3
|
* switch the core ninja parser to use re2c for the lexerEvan Martin2011-12-291-0/+85
- 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.