aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2016-11-04Add support of merge redirect to testscript runnerKaren Arutyunov3-9/+35
2016-11-04Add support of file redirects to testscript runnerKaren Arutyunov2-3/+11
2016-11-04Implement support for testscript scopesBoris Kolpackov1-12/+16
2016-11-04Add few testscript integration testsBoris Kolpackov1-2/+34
2016-11-04Add support of file redirects to testscript parserKaren Arutyunov1-0/+2
2016-11-04Support paths cleanup when test scope is leftKaren Arutyunov1-0/+4
2016-11-04Fix printing no-newline here-doc and here-strKaren Arutyunov2-19/+54
2016-11-04Add support for setup/teardown commandsBoris Kolpackov4-1/+39
2016-11-04Rename tests/test/script/ to tests/test/script/runner/Boris Kolpackov4-4/+11
2016-11-04Change <! and >! syntaxt to <- and >-Karen Arutyunov1-2/+2
2016-11-04Add couple of testscript testsBoris Kolpackov1-12/+16
2016-11-04Add support for no-newline redirects in testscriptBoris Kolpackov1-0/+26
The no-newline operators are '<:', '>:', '<<:', and '>>:'.
2016-11-04Implement concurrent_runnerBoris Kolpackov5-1/+133
2016-11-04When assigning always ignore existing value typeBoris Kolpackov2-0/+5
For example: x = [uint64] 1 x = a # Ok.
2016-11-04Cosmetic changeBoris Kolpackov1-1/+1
2016-09-15Add io_error alias for std::ios_base::failureKaren Arutyunov1-1/+1
2016-08-30Add support for using '*' as target type in variable assignmentBoris Kolpackov1-0/+6
So these three are equivalent: *: foo = 1 {*}: foo = 2 *{*}: foo = 3
2016-08-26Add pkg-config support for import installedBoris Kolpackov1-1/+3
Redesign library importing/exporting while at it.
2016-08-23Update install.* variables in buildfilesBoris Kolpackov2-2/+2
2016-08-05Implement out-qualified target syntax for setting target-specific varsBoris Kolpackov5-0/+11
So now we can do: doc{INSTALL}@./: install = false Note that so far that's the only place where we support out-qualification. Grep for @@ OUT to see other places.
2016-07-28Adjust to new path implementation, use to support reversibilityBoris Kolpackov6-1/+80
2016-07-22Change default var override from 'projects and subprojects' to amalgamationBoris Kolpackov2-0/+11
The 'projects and subprojects' semantics resulted in some counter-intuitive behavior. For example, in a project with tests/ as a subproject if one builds one of the tests directly with a non-global override (say C++ compiler), then the main project would be built without the overrides. I this light, overriding in the whole amalgamation seems like the right thing to do. The old behavior can still be obtained with scope qualification, for example: b ./:foo=bar
2016-07-21Add support for single line if-blocksBoris Kolpackov2-2/+27
So now we can do: if true print true else print false Instead having to do: if true { print true } else { print false }
2016-07-20Implement support for <, >, <=, >= in eval contextBoris Kolpackov4-0/+25
Now can write: if ($build.version > 30000)
2016-07-16Add support for prepend/append in target type/pattern-specific varsBoris Kolpackov4-0/+70
Semantically, these are similar to variable overrides and are essentially treated as "templates" that are applied on lookup to the "stem" value that is specific to the target type/name. For example: x = [string] a file{f*}: x =+ b sub/: { file{*}: x += c print $(file{foo}:x) # abc print $(file{bar}:x) # ac }
2016-07-12Use ./ instead of just . to denote current directory in buildfilesBoris Kolpackov9-10/+10
2016-06-18Port to MinGWKaren Arutyunov17-20/+75
2016-04-22Fix testBoris Kolpackov2-2/+2
2016-04-21Fix legacy stuff in testsBoris Kolpackov13-39/+12
2016-04-21Implement short-circuiting to group stateBoris Kolpackov1-3/+3
This is necessary to get rid of bogus restarts in inject_prerequisites() where it think a group member was updated since its state changed from unknown to (group's) changed.
2016-04-18Add support for using value attributes in eval contextBoris Kolpackov4-3/+28
For example: if ($x == [null]) Or: if ([uint64] 01 == [uint64] 1)
2016-04-12Add support for scope-qualification of overrides, scope visibilityBoris Kolpackov1-2/+42
2016-04-06Test and fix override logicBoris Kolpackov7-0/+366
2016-04-05Add support for scope/target-qualified variable expansionBoris Kolpackov3-0/+42
For example: print $(dir/:var) print $(file{target}:var) print $(dir/file{target}:var) Note that if the scope/target does not (yet) exists, it will be created.
2016-04-04Implement value typing, null support via value attributesBoris Kolpackov5-4/+104
For example: v = [null] v = [string] abc v += ABC # abcABC
2016-04-02Implement variable typing (via attributes)Boris Kolpackov3-0/+26
Now we can do: [string] str = foo
2016-04-02Add attribute syntax infrastructureBoris Kolpackov10-10/+31
2016-03-31Set part of variable override implementationBoris Kolpackov2-2/+2
2016-03-28Add support for pair representation reversibilityBoris Kolpackov2-0/+16
2016-03-28Adjust tests/quote now that we support escaping in double-quoted stringsBoris Kolpackov2-0/+5
2016-03-28Change pairs semantics from separated to unseparatedBoris Kolpackov3-0/+70
Before we use to recognize 'x @ y' as a pair. Now it has to be written unseparated, as 'x@y'. See tests/pairs for details on the new semantics.
2016-02-29Implement auxiliary dependency database (.d files), use in cxx.compileBoris Kolpackov2-0/+174
This is part of the "High Fidelity Build" work.
2016-01-24Fix bug in dynamically derived target typesBoris Kolpackov1-1/+1
2016-01-21Add support for ==, != in eval contextBoris Kolpackov4-0/+66
2016-01-09Update copyright yearBoris Kolpackov5-5/+5
2015-12-14Add support for variable prepend operator: =+Boris Kolpackov3-0/+21
2015-12-07Add support for specifying minimum required build2 versionBoris Kolpackov1-0/+31
The syntax is: using build@0.1.0-a1 The idea is that we will later also use it for modules and 'build' is a special, the "build system itself" module. Also fix a problem with peeking and lexer mode switching.
2015-12-03Implement new potential directive keyword testBoris Kolpackov5-9/+25
Now we can use directive names as variables and targets type, for example: print = foo # variable print{foo}: # target
2015-12-03Implement if-else conditionsBoris Kolpackov3-0/+126
if if! elif elif! else The expression should evaluate to true of false. The if! and elif! versions are provided as shortcuts to writing if (!...). See tests/if-else for examples.
2015-12-02Implement optional module loadingBoris Kolpackov1-0/+5
The syntax is: using? cli Now each module use results in two bool variables: <module>.loaded and <module>.configured. Also implement variable visibility (the above two variables are limited to project).