aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2019-03-13Cutoff append/prepend overrides that come before assignment overrideBoris Kolpackov1-0/+29
For example: $ b x+=1 x=2 x+=3 Should result in '2 3', not '1 2 3'.
2019-01-24Add testscript sleep builtinKaren Arutyunov5-4/+37
2019-01-16Update copyright yearKaren Arutyunov103-103/+103
2018-12-04Adjust module tests to comply with the merged proposal (P1103)Boris Kolpackov1-8/+5
Specifically, import can no longer be inside an export block.
2018-12-03Suppress MSVC warnings at project levelBoris Kolpackov1-0/+6
2018-11-21Add support for target and prerequisite specific variable blocksBoris Kolpackov7-7/+154
For example, now instead of: lib{foo}: cxx.loptions += -static lib{foo}: cxx.libs += -lpthread We can write: lib{foo}: { cxx.loptions += -static cxx.libs += -lpthread } The same works for prerequisites as well as target type/patterns. For example: exe{*.test}: { test = true install = false }
2018-11-19Fix expected diagnostics in testBoris Kolpackov1-1/+1
2018-11-17Print id of failed testKaren Arutyunov9-11/+123
2018-11-16Implement support for dependency chainsBoris Kolpackov3-4/+53
Now instead of: ./: exe{foo} exe{foo}: cxx{*} We can write: ./: exe{foo}: cxx{*} Or even: ./: exe{foo}: libue{foo}: cxx{*} This can be combined with prerequisite-specific variables (which naturally only apply to the last set of prerequisites in the chain): ./: exe{foo}: libue{foo}: bin.whole = false
2018-11-14Tweak assert directive diagnosticsBoris Kolpackov1-1/+1
2018-10-23Treat invalid names as values if they are quotedBoris Kolpackov1-1/+11
2018-09-05Create .buildignore file in testscript root working directoryKaren Arutyunov3-3/+24
2018-09-04Rename .test/test{} to .testscript/testscript{}Boris Kolpackov73-138/+139
2018-08-09Fix tests some moreBoris Kolpackov1-3/+3
2018-08-09Fix test failures on WindowsBoris Kolpackov2-8/+23
2018-08-09Handle few corner cases in concatenated expansionBoris Kolpackov1-0/+28
2018-08-09Add support for name patterns without wildcard charactersBoris Kolpackov1-2/+5
In particular, this allows the "if-exists" specification of prerequisites, for example: for t: $tests exe{$t}: cxx{$t} test{+$t}
2018-08-07Add support for default extension specification, trailing dot escapingBoris Kolpackov1-0/+71
For example: cxx{*}: extension = cxx cxx{foo} # foo.cxx cxx{foo.test} # foo.test (probably what we want...) cxx{foo.test...} # foo.test.cxx (... is this) cxx{foo..} # foo. cxx{foo....} # foo.. cxx{foo.....} # error (must come in escape pair)
2018-07-30Make project variable to be of project_name typeKaren Arutyunov2-4/+4
2018-07-24Handle leading 'module;' marker (p0713)Boris Kolpackov1-0/+17
2018-07-20Implement bash moduleBoris Kolpackov3-1/+233
2018-07-17Add --after <ref-file> option for testscript touch builtinKaren Arutyunov2-9/+30
2018-07-17Add temporary sleep to in test to verify debugging hypothesisBoris Kolpackov1-0/+3
2018-07-17Handle executables (permissions, extensions) in in::ruleBoris Kolpackov1-0/+17
2018-07-16Implement in moduleBoris Kolpackov2-0/+101
Given test.in containing something along these lines: foo = $foo$ Now we can do: using in file{test}: in{test.in} file{test}: foo = FOO The alternative variable substitution symbol can be specified with the in.symbol variable and lax (instead of the default strict) mode with in.substitution. For example: file{test}: in.symbol = '@' file{test}: in.substitution = lax
2018-07-16Resolve function overload via the argument reversal to untypedBoris Kolpackov2-14/+2
2018-07-14Add testscript mv builtinKaren Arutyunov1-0/+252
2018-07-12Adjust modules test to maybe-cleanup .ii files (no longer there for VC)Boris Kolpackov1-1/+1
2018-06-20Regularize .gitignore filesKaren Arutyunov1-0/+2
2018-06-20Add $process.run() and $process.run_regex() functionsBoris Kolpackov2-0/+35
$process.run(<prog>[ <args>...]) Return trimmed stdout. $process.run_regex(<prog>[ <args>...], <pat> [, <fmt>]) Return stdout lines matched and optionally processed with regex. Each line of stdout (including the customary trailing blank) is matched (as a whole) against <pat> and, if successful, returned, optionally processed with <fmt>, as an element of a list.
2018-05-24Remove target/scope irregularity workaroundsBoris Kolpackov3-5/+4
2018-05-19Update copyright yearKaren Arutyunov90-90/+90
2018-05-19Fix testscripts using types for testscript and manifest targetsKaren Arutyunov4-9/+9
2018-05-19Get rid of doc{version} and types for testscript and manifest in buildfilesKaren Arutyunov17-17/+17
2018-05-19Support for deriving target type from file name, handle testscript, buildfileBoris Kolpackov1-1/+1
In particular, instead of: exe{test}: test{testscript} We should now write: exe{test}: testscript
2018-05-16Redo testscript diagnostics not to rely on invalid pathsKaren Arutyunov1-3/+6
2018-05-03Regularize directory target/scope-specific variable assignment syntaxBoris Kolpackov7-6/+131
2018-04-27Redo run directive diagnostics not to rely on invalid pathsBoris Kolpackov1-2/+3
2018-04-27Add support for build hooksBoris Kolpackov2-0/+35
The following buildfiles are loaded (if present) at appropriate times from the out_root subdirectories of a project: build/bootstrap/pre-*.build # before loading bootstrap.build build/bootstrap/post-*.build # after loading bootstrap.build build/root/pre-*.build # before loading root.build build/root/post-*.build # after loading root.build
2018-04-26Fix bug in directive/run testBoris Kolpackov1-4/+4
2018-04-26Implement run buildfile directiveBoris Kolpackov1-0/+36
Now we can do: run echo 'foo = bar' print $foo
2018-03-19Add missed file to builtins tests buildfileKaren Arutyunov1-1/+1
2018-03-19Add support for cp builtin -p optionKaren Arutyunov2-3/+73
2018-02-14Enable modules support only for VC 15u5 and up, drop hacks for earlierBoris Kolpackov1-48/+10
2018-02-09Fix broken test (and few other things)Boris Kolpackov11-64/+48
2018-02-05Add tests for auto-generated test inputs/outputsBoris Kolpackov11-3/+153
2018-02-03Get rid of action rule override semanticsBoris Kolpackov2-3/+2
Instead we now have two more or less separate match states for outer and inner parts of an action.
2018-01-05Add cxx.module_name alias for cc.module_nameBoris Kolpackov1-2/+2
2017-12-16Redo string/stream representation of dir{} name/targetBoris Kolpackov1-8/+8
Now instead of: dir{foo/bar/} We get: foo/dir{bar/} Which feels more consistent with how we print other names/targets. That is, "directory bar/ in directory foo/" similar how foo/exe{bar} is "executable bar in directory foo/".
2017-11-30Adapt testscripts to build2 output changesKaren Arutyunov1-4/+4