aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2021-05-28Add support for regex-based target type/pattern specific variablesBoris Kolpackov1-0/+127
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
2021-05-28Ban conversion of patterns to valuesBoris Kolpackov3-2/+5
Also improve conversion diagnostic.
2021-04-21Add buildscript depdb builtin 'env' commandKaren Arutyunov1-0/+62
2021-04-20Disable bunch of bogus GCC warningsBoris Kolpackov1-0/+2
2021-03-22Fix tests to work for compressed file cache entriesBoris Kolpackov1-1/+1
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-02-11Improve module name to file name matching logicBoris Kolpackov1-0/+3
2021-02-11Update header unit testsBoris Kolpackov1-4/+4
2021-01-12Diagnose typed and project-qualified empty namesBoris Kolpackov1-1/+0
2020-12-14Make use of export testscript builtinKaren Arutyunov1-5/+7
2020-12-14Make export script builtin tests more robustKaren Arutyunov1-0/+5
2020-12-11Add export script pseudo-builtinKaren Arutyunov3-4/+170
2020-12-11Copy parent scope's test program list in runner's entry() function rather ↵Karen Arutyunov1-3/+29
than in scope's constructor
2020-12-11Fix set pseudo-builtin to reset special variables when requiredKaren Arutyunov1-0/+9
2020-12-11Prefix pseudo-builtin diagnostincs messages with their namesKaren Arutyunov3-12/+12
2020-12-08Redo $normalize(true) as separate $actualize()Karen Arutyunov1-9/+12
2020-12-08Add support for config.test.runnerKaren Arutyunov3-2/+107
2020-12-08Fix buildscript assertion failure on redirecting command stderr to stdoutKaren Arutyunov1-0/+23
2020-12-02Add support for buildscript depdb preambleKaren Arutyunov2-19/+304
2020-11-30Start adapting module mapper to latest GCC protocolBoris Kolpackov2-0/+10
2020-11-19Remove target files on ad hoc rule update buildscript errorKaren Arutyunov1-13/+60
2020-11-19Fix set buildscript builtin crash on WindowsKaren Arutyunov1-1/+8
2020-11-17Generalize dot escaping in target name rulesBoris Kolpackov1-20/+223
Now triple dot and escape sequence can appear almost anywhere in the target name (see target::split_name() for details).
2020-11-06Fix mistreating test operation timeout as test timeout in some caseKaren Arutyunov1-4/+8
2020-11-06Add support for test timeoutsKaren Arutyunov9-22/+888
2020-09-28Add $string.trim() functionBoris Kolpackov1-0/+7
2020-08-03Fix buildscript diagnostics so diff output is always in unified formatKaren Arutyunov1-0/+22
Also make sure diff refers program stdout as 'stdout' rather than '-' in the test rule diagnostics.
2020-07-18Add $regex.find_match() and $regex.find_search() functionsKaren Arutyunov1-0/+84
2020-07-16Save original compiler path/mode in {c,cxx}.config.path/modeBoris Kolpackov4-4/+4
It turns out that when propagating {c,cxx}.config in tests we don't want to propagate any options (such as *.std) that have been folded into our project's mode.
2020-07-06Adjust variable block applicability in dependency chainsBoris Kolpackov2-0/+95
Before the block used to apply to the set of prerequisites before the last `:`. This turned out to be counterintuitive and not very useful since prerequisite-specific variables are a lot less common than target specific. And it doesn't fit with ad hoc recipes. The new rule is if the chain ends with `:`, then the block applies to the last set of prerequisites. Otherwise, it applies to the last set of targets. For example: ./: exe{test}: cxx{main} { test = true # Applies to the exe{test} target. } ./: exe{test}: libue{test}: { bin.whole = false # Applies to the libue{test} prerequisite. } This is actually consistent with both non-chain and non-block cases. Consider: exe{test}: cxx{main} { test = true } exe{test}: libue{test}: { bin.whole = false } exe{test}: libue{test}: bin.whole = false The only exception we now have in this overall approach of "if the dependency declaration ends with a colon, then what follows is for a prerequisite" is for the first semicolon: exe{test}: { test = true } exe{test}: test = true But that's probably intuitive enough since there cannot be a prerequisite without a target.
2020-06-24Stop forcing modules support in testsBoris Kolpackov1-15/+0
2020-06-19Adapt mv builtin tests to terminology changeKaren Arutyunov1-1/+1
2020-06-18Add env script pseudo-builtinKaren Arutyunov4-143/+159
Also disable C++ recipe tests when cross-testing.
2020-06-16Add metadata for exe{b}, including whether it is statically-linkedBoris Kolpackov3-1/+11
Use this information to omit ad hoc C++ recipe tests is testing statically- linked build system.
2020-06-12Fix invalid regex in C++ recipe testsBoris Kolpackov1-2/+2
2020-06-11Add tests for ad hoc C++ recipesBoris Kolpackov3-9/+168
2020-06-10Add ad hoc recipe if-else, switch tests (and fix bug)Boris Kolpackov1-0/+149
2020-06-08Add buildscript recipe testsKaren Arutyunov2-0/+100
2020-06-08Cleanup script command failure diagnosticsKaren Arutyunov4-3/+12
2020-06-05Add depdb buildscript builtinKaren Arutyunov1-0/+1
2020-06-05Add ability to specify ad hoc recipe actionsBoris Kolpackov1-38/+70
We are reusing the buildspec syntax for that.
2020-06-04Properly handle diag directive in build script parserKaren Arutyunov1-3/+4
2020-06-03Allow process path values and targets as buildscript program namesKaren Arutyunov1-39/+297
Also deduce the recipe name.
2020-06-03Add versioning for ad hoc C++ recipesBoris Kolpackov1-2/+2
This will allow us to deal with backward-incompatible changes to cxx_rule interface and semantics.
2020-05-27Add support for value subscript after expansionsBoris Kolpackov2-1/+98
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 Kolpackov8-39/+538
2020-05-01Fix outstanding issue with directive vs assignment differentiationBoris Kolpackov1-0/+23
Specifically, now the following does the right thing: print +foo
2020-04-03Skip unmatched lines in $regex.replace_lines() if format_no_copy flag is ↵Karen Arutyunov1-0/+20
specified
2020-03-31Handle duplicate config directives for same variableBoris Kolpackov1-1/+9