aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/test
AgeCommit message (Collapse)AuthorFilesLines
2022-10-13Optimize by going straight to public variable pool where applicableBoris Kolpackov1-3/+7
2022-10-13Switch to public/private variables modelBoris Kolpackov2-7/+5
Now unqualified variables are project-private and can be typified.
2022-10-10Preparatory work for public/private variable distinctionBoris Kolpackov1-2/+2
We still always use the public var_pool from context but where required, all access now goes through scope::var_pool().
2022-09-29Fix variable append logic in scriptBoris Kolpackov2-14/+36
2022-09-28Add support for 'for' loop first form (for x:...) in scriptKaren Arutyunov3-52/+427
2022-09-28Add support for 'while' loop in scriptKaren Arutyunov9-112/+517
2022-07-07Use new cmdline type for canned command lines in {Build,Test}scriptBoris Kolpackov5-16/+105
2022-06-28Add support for querying out-qualified target-specific variablesBoris Kolpackov2-2/+2
2022-06-21Add --trace-{match,execute} optionsBoris Kolpackov1-14/+14
These options can be used to understand which dependency chain causes matching or execution of a particular target.
2022-05-23Cache build.host value in contextBoris Kolpackov2-2/+2
2022-04-15Get rid of target::dynamic_type() virtual functionBoris Kolpackov1-2/+5
Instead of overriding this function, derived targets must now set the dynamic_type variable to their static_type in their constructor body.
2022-04-06Add support for rule hintsBoris Kolpackov3-7/+7
A rule hint is a target attribute, for example: [rule_hint=cxx] exe{hello}: c{hello} Rule hints can be used to resolve ambiguity when multiple rules match the same target as well as to override an unambiguous match.
2022-03-07Fix operation-specific variables logic for inner/outer operationsBoris Kolpackov1-1/+1
2022-03-02Add update operation-specific variable with unmatch|match additional valuesBoris Kolpackov1-0/+2
Note that the unmatch (match but do not update) and match (update during match) values are only supported by certain rules (and potentially only for certain prerequisite types). Additionally: - All operation-specific variables are now checked for false as an override for the prerequisite-specific include value. In particular, this can now be used to disable a prerequisite for update, for example: ./: exe{test}: update = false - The cc::link_rule now supports the update=match value for headers and ad hoc prerequisites. In particular, this can be used to make sure all the library headers are updated before matching any of its (or dependent's) object files.
2022-02-21Factor process-wide initialization to init_process() functionBoris Kolpackov1-1/+1
2022-02-16Invent quoting modes for to_stream(name)Karen Arutyunov1-1/+1
2022-02-11Remove unnecessary header inclusionsBoris Kolpackov1-0/+2
2022-02-10Make few global types separately constructible/initializableBoris Kolpackov1-1/+1
2021-12-16Pass context to (meta-)operation hooksBoris Kolpackov1-3/+6
2021-10-14Disable re-parse of sole expansions in BuildscriptBoris Kolpackov1-1/+1
2021-09-24Fortify tests against NDEBUGKaren Arutyunov2-2/+6
2021-06-21Add support for automatic generation of symbol exporting .def fileBoris Kolpackov2-5/+2
2021-05-28Recognize quoting of first character in tokenBoris Kolpackov1-3/+2
Use this to relax the pattern inclusion/exclusion syntax to only require unquoted +/-.
2021-05-28Add pattern_mode::ignore and use in appropriate placesBoris Kolpackov1-1/+1
2021-04-07Register environment variables for hermetic build configurationsBoris Kolpackov1-0/+6
2021-03-18Add noop mode to file cache, add --file-cache option to selectBoris Kolpackov1-1/+1
2021-03-16Define intermediate build results file cache interfaceBoris Kolpackov1-1/+3
2021-01-30Add std::{map, multimap} to types.hxxBoris Kolpackov1-0/+1
Seeing that std::map is becoming a common Buildfile variable type.
2020-12-15Cache more results of executing programs (compilers, etc)Boris Kolpackov1-0/+2
2020-12-11Add export script pseudo-builtinKaren Arutyunov3-1/+16
2020-12-11Copy parent scope's test program list in runner's entry() function rather ↵Karen Arutyunov3-30/+29
than in scope's constructor
2020-12-11Fix set pseudo-builtin to reset special variables when requiredKaren Arutyunov3-10/+19
2020-12-11Prefix pseudo-builtin diagnostincs messages with their namesKaren Arutyunov1-5/+9
2020-12-08Add support for config.test.runnerKaren Arutyunov9-14/+218
2020-11-23Increase terminated process timeout from 1 to 2 sec before killing it on ↵Karen Arutyunov1-3/+3
script pipeline termination
2020-11-06Fix mistreating test operation timeout as test timeout in some caseKaren Arutyunov1-1/+1
2020-11-06Add support for test timeoutsKaren Arutyunov10-24/+511
2020-10-20Add operation callback for adhoc rule match and applyBoris Kolpackov1-1/+5
2020-08-16Add ability to initialize bootstrapped modules after loading root.buildBoris Kolpackov1-3/+1
2020-08-04Fix 'target.path() called out of scope' testscript errorKaren Arutyunov1-0/+7
2020-08-03Fix buildscript diagnostics so diff output is always in unified formatKaren Arutyunov1-1/+16
Also make sure diff refers program stdout as 'stdout' rather than '-' in the test rule diagnostics.
2020-07-13Add ability to extend rule interface in source-compatible mannerBoris Kolpackov1-1/+1
2020-07-10Tweak rule namesBoris Kolpackov1-1/+1
2020-07-09Make sure update-for-{test,install} works for files out of any projectBoris Kolpackov1-2/+12
2020-07-09Relax prerequisite filtering semantics of aliases in test and install rulesBoris Kolpackov1-1/+9
2020-06-20Fix assertion failure for unbound 'end' in testscriptKaren Arutyunov3-8/+36
Issue #83.
2020-06-18Add env script pseudo-builtinKaren Arutyunov1-0/+77
Also disable C++ recipe tests when cross-testing.
2020-06-10Handle special variable names in base lexer via mode dataBoris Kolpackov2-27/+22
2020-06-03Allow process path values and targets as buildscript program namesKaren Arutyunov1-1/+1
Also deduce the recipe name.
2020-05-27Add support for value subscript after expansionsBoris Kolpackov1-8/+7
Value subscript is only recognized in evaluation contexts (due to ambiguity with wildcard patterns; consider: $x[123].txt) and should be unseparated from the previous token. For example: x = ($y[1]) x = (($f ? $y : $z)[1]) x = ($identity($y)[$z])