aboutsummaryrefslogtreecommitdiff
path: root/old-tests
AgeCommit message (Collapse)AuthorFilesLines
2022-12-02Fail if scope or target qualification in variable expansion is unknownBoris Kolpackov3-0/+8
There are three options here: we can "fall through" to an outer scope (there is always the global scope backstop; this is the old semantics, sort of), we can return NULL straight away, or we can fail. It feels like in most cases unknown scope or target is a mistake and doing anything other than failing is just making things harder to debug.
2022-10-13Update old tests to public/private variable modelBoris Kolpackov4-77/+77
2022-10-13Switch to public/private variables modelBoris Kolpackov1-21/+21
Now unqualified variables are project-private and can be typified.
2021-09-28Adapt to libbutl headers extension change from .mxx to .hxxKaren Arutyunov1-1/+1
2021-09-24Fortify tests against NDEBUGKaren Arutyunov3-2/+9
2021-05-28Add support for regex-based target type/pattern specific variablesBoris Kolpackov1-39/+0
This is in addition to the already supported path-based target type/pattern specific variables. For example: hxx{*}: x = y # path-based hxx{~/.*/}: x = y # regex-based
2020-02-07Drop copyright notice from source codeKaren Arutyunov6-6/+0
2019-11-15Generalize attributes to be comma-separated with arbitrary valuesBoris Kolpackov1-5/+5
Before: x = [string null] After: x = [string, null]
2019-11-14Tighten up attribute recognition during parsingBoris Kolpackov2-4/+3
Now it should be possible to use `[]` for wildcard patterns, for example: foo = foo.[hit]xx Note that a leading bracket expression will still be recognized as attributes and escaping or quoting it will inhibit pattern matching. To resolve this case we need to specify an empty attribute list: foo = [] [abc]-foo.cxx
2019-07-01Split build system into library and driverBoris Kolpackov1-3/+3
2019-06-03Fix `print $subprojects` failureKaren Arutyunov1-1/+1
This print directive was failing with the message like "error: invalid project_name element key 'tests/'".
2019-03-14Add support for multiple variable overridesBoris Kolpackov1-3/+3
Now we can do: $ b config.cxx.coptions=-O3 config.cxx.coptions=-O0 Or even: $ b config.cxx.coptions=-O3 config.cxx.coptions+=-g
2019-01-16Update copyright yearKaren Arutyunov6-6/+6
2018-11-09Add support for relative to base scope command line variable overridesBoris Kolpackov1-0/+30
Currently, if we say: $ b dir/ ./foo=bar The scope the foo=bar is set on is relative to CWD, not dir/. While this may seem wrong at first, this is the least surprising behavior when we take into account that there can be multiple dir/'s. Sometimes, however, we do want the override directory to be treated relative to (every) target's base scope that we are building. To support this we are extending the '.' and '..' special directory names (which are still resolved relative to CWD) with '...', which means "relative to the base scope of every target in the buildspec". For example: $ b dir/ .../foo=bar Is equivalent to: $ b dir/ dir/foo=bar And: $ b liba/ libb/ .../tests/foo=bar Is equivalent to: $ b liba/ libb/ liba/tests/foo=bar libb/tests/foo=bar
2018-11-08Make command line variable override scope syntax consistent with buildfileBoris Kolpackov1-2/+2
Before: $ b dir/:foo=bar ... After: $ b dir/foo=bar Alternatively (the buildfile syntax): $ b 'dir/ foo=bar' Note that the (rarely used) scope visibility modifier now leads to a double slash: $ b dir//foo=bar
2018-06-28Implement support for excluded and ad hoc prerequisitesBoris Kolpackov1-0/+3
The inclusion/exclusion is controlled via the 'include' prerequisite-specific variable. Valid values are: false - exclude true - include adhoc - include but treat as an ad hoc input For example: lib{foo}: cxx{win32-utility}: include = ($cxx.targe.class == 'windows') exe{bar}: libs{plugin}: include = adhoc
2018-05-19Update copyright yearKaren Arutyunov6-6/+6
2018-05-03Regularize directory target/scope-specific variable assignment syntaxBoris Kolpackov19-66/+24
2018-02-05Add tests for auto-generated test inputs/outputsBoris Kolpackov10-78/+0
2018-02-05Fix test and install rules to handle see-through groups correctlyBoris Kolpackov2-4/+9
2017-10-03Adapt to modularization of libbutlKaren Arutyunov1-1/+1
2017-08-06Resolve if-else block ambiguityBoris Kolpackov2-0/+10
2017-05-01Add hxx extension for headersKaren Arutyunov1-4/+4
2017-04-26Fix bug in pair handlingBoris Kolpackov2-0/+4
2017-03-13Port names testBoris Kolpackov4-103/+0
2017-03-13Implement dir/type-aware name group crossingBoris Kolpackov1-0/+8
2017-03-03Fix test and dist for generated input/outputBoris Kolpackov3-1/+5
2017-02-13Use variable_cache for target type/pattern-specific prepend/appendBoris Kolpackov2-22/+0
2017-02-13Tighten target constness furtherBoris Kolpackov3-4/+4
2017-01-05Update copyright yearBoris Kolpackov6-6/+6
2016-12-17Don't try to test out-of-project prerequisitesBoris Kolpackov1-1/+5
2016-12-07Make use of butl::path::current(), butl::path::parent()Karen Arutyunov1-1/+1
2016-12-05Add comma, ternary, logical operators support in eval contextBoris Kolpackov4-112/+0
2016-12-01Port old value reversibility testsBoris Kolpackov11-156/+12
2016-12-01Move old tests to old-tests/Boris Kolpackov175-0/+2734