Various restructure of test framework handling of paths to avoid duplicate path editing which caused failed tests. Adjust many tests to deal with added subdirectories in build outputs now that toolset requirements are active.
Related changes:
* BoostBuild.Tester & TestCmd.TestCmd interfaces now accept external process parameters as a list of strings, thus avoiding problems with parsing arguments containing spaces.
* Avoided a potential process hang in case an external process being run prints out enough output to fill up the OS's pipe buffer (OS would pause the process until someone read the data from the pipe but the testing framework would not do this until the process in question had terminated).
[SVN r79448]
rather then only defined on first.
The previous behaviour did not work when there were "default-build" attribute
on project and two alternatives for a main target.
Patch from Michael Stevens.
[SVN r19303]
default build was stored as plain list, and implied properties were not
converted. E.g. we had "debug release", not "<variant>debug <variant>release",
which was assumed.
* new/targets.jam
(main-target, basic-target): Store 'property-set' as default-build
attribute.
(main-target-default-build): Use 'property-set.create-with-validation'.
* new/property-set.jam
(create-with-validation): New rule.
* test/default_build.py: More tests.
[SVN r18436]
* new/targets.jam
(main-target.default-build): New field.
(main-target.add-alternative): Don't allow default-build for
second and subsequence alternatives. Record default build
from the first one.
(main-target.generate): Expand build request.
(main-target.generate-really): New rule, extracted from 'generate'.
(basic-target.default-build): New rule.
(basic-target.generate): Don't expand default build.
* test/BoostBuild.py
Allow to suppress passing toolset when calling run_build_system.
Some Python 2.1 compatibility fixes.
* test/alternatives.py
More tests.
* test/default_build.py
More tests.
[SVN r17683]