aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/test
AgeCommit message (Collapse)AuthorFilesLines
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])
2020-05-27Initial support for ad hoc recipes (still work in progress)Boris Kolpackov26-8115/+412
2020-05-27Fix unregistered .regex file cleanup error in testscriptKaren Arutyunov1-1/+5
2020-05-22Get rid of now deprecated std::is_pod usageBoris Kolpackov1-2/+4
2020-03-31Switch to project variable visibility by defaultBoris Kolpackov2-15/+12
2020-03-17Rename all find*(variable) to lookup*(variable)Boris Kolpackov3-21/+23
Now we consistently use term "lookup" for variable value lookup. At some point we should also rename type lookup to binding and get rid of all the lookup_type aliases.
2020-03-17Rework config::{omitted,required,optional}() into unified config_lookup()Boris Kolpackov1-3/+4
2020-03-12Minor comment improvementsBoris Kolpackov1-1/+1
2020-02-27Revert recent Clang optimization bug workaround as it doesn't helpKaren Arutyunov1-7/+3
2020-02-26Try to work around Clang optimization bugKaren Arutyunov1-3/+7
2020-02-12Adapt to renaming butl::fdnull() to fdopen_null()Karen Arutyunov1-2/+2
2020-02-12Add builtins support for $process.run*() functionsKaren Arutyunov1-43/+10