Commit Graph

233 Commits

Author SHA1 Message Date
Jurko Gospodnetić
cd67c38e31 Reordered all Boost Build test declarations alphabetically to make it easier to scan through them visually.
[SVN r48597]
2008-09-05 02:04:51 +00:00
Jurko Gospodnetić
324e6bc227 Added a test for and fixed a Boost Build generator selection bug caused by caching viable source target types for different target types and generators and not maintaining those caches when their content gets invalidated by defining a new generator. Currently quick-fixed by clearing most of the cached values when registering a new generator. Later on this could be made more detailed by clearing only the actually invalidated cache values or updating them or even only marking them to be lazily updated when needed next.
Problem detected & and a reproducible example constructed by Juraj Ivančić. Debugged by Vladimir Prus. Patched and packaged by Jurko Gospodnetić.

[SVN r48590]
2008-09-05 00:26:43 +00:00
Jurko Gospodnetić
f20f88b91d Renamed differently named Jamroot and Jamfile files throughout Boost Build's test suite to jamroot.jam & jamfile.jam. Stylistic changes throughout the whole Boost Build test suite.
[SVN r48504]
2008-08-31 21:42:27 +00:00
Jurko Gospodnetić
e8cebe30f4 Added Boost Build database unit tests related to inherited dependency property handling.
Part of the work by Steven Watanabe on fixing the Boost Build trac ticket #13 (http://zigzag.cs.msu.su/boost.build/ticket/13).

[SVN r48317]
2008-08-23 12:22:43 +00:00
Jurko Gospodnetić
265c102f67 Dumping test results no longer fails due to test sources not being located under the main project folder. Added a corresponding unit test which can also be used as a focal point for future test result dumping tests.
[SVN r48296]
2008-08-22 22:06:57 +00:00
Rene Rivera
4563c7e34e Revert changeset [47536].
[SVN r47571]
2008-07-18 16:13:20 +00:00
Steven Watanabe
f7298b43cf Make c-scanner search directories specified
with <include>a&&b

* tools/buitin.jam
  (c-scanner.__init__) split includes at &&

* test/test_all.py test/ordered_include.py
  Test case for this fix.


[SVN r47537]
2008-07-18 03:25:20 +00:00
Steven Watanabe
8518a6fd56 Make dependency properties specified in project requirements
not cause errors in subprojects.

* build/property.jam
  (tranlate-dependencies) New rule to bind dependency
  properties to the project that they are specified in.

* build/property-set.jam
  (create-from-user-input) Add call to property.translate-dependencies

* test/test_all.py test/inherited_dependency.py
  Test case for this fix.


[SVN r47536]
2008-07-18 03:11:08 +00:00
Jürgen Hunold
80ce5b2b76 Refactoring of library declaration in qt4.jam.
Simplyfied declaration of Qt component libraries.
Removed duplicated code.
Add test cases for most of the Qt component libraries.


[SVN r47391]
2008-07-13 18:40:02 +00:00
Jurko Gospodnetić
84a9f25f9f Fixed a bug causing Boost Jam not to handle target file names specified as both short and long file names correctly. Bug fixed by making bindtarget() function map names to TARGETs by using their long file names.
When scanning directories and creating a list of all their content (filent.c) it would identify all the located files and folders using their long file names. On the other hand, referencing a target using its short file name inside a Jam script caused Boost Jam to reference those files twice using two separate TARGET structures - one identified using the file's short name and one using the file's long name.

  One bad example was the MkDir which would always attempt to create a folder identified by its short name even if that folder already existed (due to the NOUPDATE rule getting applied on the incorrect TARGET).

  The change does not affect targets whose names do not represent existing file names.

  Also, it seems to me that the short_path_to_long_path() call in file_dirscan() in the filent.c module should most likely be moved to file_info() in the filesys.c module. This would make mapping file names to file_info_t & TARGET structures consistent. However, I have not done this in this patch just to make the patch as minimal as possible.

  Prepared tests have been do nothing on non Windows platforms.


[SVN r45144]
2008-05-05 15:52:56 +00:00
Jurko Gospodnetić
91c3a8c504 Added a new regression test making sure that the Boost Jam SORT builtin rule does not start getting quadratic behavior in some special cases as well as testing that the sorting algorithm works correctly. Related to the patch committed in revision 44195. Trimmed trailing spaces in tools/build/v2/test/test_all.py.
[SVN r45001]
2008-05-02 00:36:23 +00:00
Jurko Gospodnetić
5b239afb81 Added a new test making sure properties conditioned on multiple different feature values are handled correctly. This especially includes testing the case when one of those features is <toolset> and the value given for it includes a toolset version.
[SVN r42613]
2008-01-08 14:40:24 +00:00
Jurko Gospodnetić
67c18a2efd Added a new configuration test making sure that the bug with not being able to process absolute user-config configuration file references never rears its ugly head again.
[SVN r42568]
2008-01-07 18:38:28 +00:00
Jurko Gospodnetić
d289a56902 Added new tests related to Boost Build's default toolset handling. They test that the correct default toolset gets use and that when it gets used that has no different status than any other explicitly specified toolset.
[SVN r42549]
2008-01-06 20:56:20 +00:00
Jurko Gospodnetić
9b97e0ac91 No functional changes but only stylistic changes such as: comment typo corrections, wrapping lines to 80 characters, indentations, removing trailing spaces, removing empty lines, made tests use Jamfile.jam and Jamroot.jam Boost Build script names, removed unnecessary module imports, etc.
[SVN r42506]
2008-01-06 00:25:48 +00:00
Vladimir Prus
9af56e0e97 Don't run gcc_runtime test on msvc
[SVN r39197]
2007-09-11 19:36:48 +00:00
Vladimir Prus
8edaa3e0f1 Print test results summary at the end
[SVN r39166]
2007-09-08 00:26:18 +00:00
Vladimir Prus
7663d860e2 Make output from test run nicer, and more structured.
In future, we might be able to generate XML, or any other voodoo
we want.


[SVN r39161]
2007-09-07 23:18:20 +00:00
Vladimir Prus
aef14d8748 Make free features on the command line affect all targets,
not just directly requested ones.

Fixes #985.


[SVN r39104]
2007-09-01 21:46:09 +00:00
Vladimir Prus
6488ce31d9 Enable pch test on msvc
[SVN r36143]
2006-11-22 09:33:07 +00:00
Rene Rivera
da98fd5c48 A variety of changes to make most tests pass on Windows (with mingw):
* BoostBuild.py; Make the matching of content and files be more loose and use pattern globbing of toolset names.
* glob.py/project_glob.py; Rename to avoid collision with builtin Python module.
* all; Update copyrights and license info.


[SVN r35729]
2006-10-24 23:25:19 +00:00
Vladimir Prus
90f7514eb8 Test for PCH
* BoostBuild.py (Tester.copy_preserving_timestap): New.
	* pch.py: New.
	* test_all.py: Register pch.py on gcc.


[SVN r35512]
2006-10-07 10:08:19 +00:00
Vladimir Prus
0df12c504b Test for 'cancel requirement' feature
[SVN r35169]
2006-09-18 19:56:19 +00:00
Vladimir Prus
06adc0f63b Tests for more examples.
[SVN r33656]
2006-04-11 07:25:48 +00:00
Vladimir Prus
b31d716fb7 Add a couple of tests for examples.
[SVN r33637]
2006-04-10 13:05:26 +00:00
Vladimir Prus
f1d1f6d3a4 Fix a problem where <implicit-dependency> had no effect unless
the target named by the property was also build (by virtue of being in
the same Jamfile and not marked as "explicit").


[SVN r32885]
2006-02-13 10:34:45 +00:00
Vladimir Prus
b09996a61d Add a test that <source> in 'lib' works even if there's no explicit sources.
[SVN r32882]
2006-02-13 07:51:33 +00:00
Vladimir Prus
3bec6c2038 Change the --clean option to only clean targets under references projects.
Add the --clean-all option to clean everything.


[SVN r32739]
2006-02-08 15:24:31 +00:00
Vladimir Prus
79d7a448aa Allow typed main targets to have arbitrary suffix in the name, that does not
affect the names of the generated targets and only usefull for preventing
V2 from treating two independent targets as target alternatives.


[SVN r32720]
2006-02-08 08:06:31 +00:00
Vladimir Prus
3d42d08c00 Implement <build>no.
[SVN r32708]
2006-02-07 13:46:02 +00:00
Vladimir Prus
ec4969db72 Implement 'indirect conditional requirements', which are simular to V1's
convention that rules used in requiremenst are called to provide extra features.


[SVN r32694]
2006-02-07 10:26:17 +00:00
Vladimir Prus
32d9796a3e Add a test for the "bjam foo.o" feature.
[SVN r32429]
2006-01-27 10:34:58 +00:00
Vladimir Prus
042c7dc35a When resolving target id, first look for target in Jamfile, then for
file in current dir. This partially reverts rev 1.117 of build/targets.jam.

See test for further explanations.


[SVN r32377]
2006-01-23 09:41:18 +00:00
Vladimir Prus
3db370a9e4 Fix using of 'glob' in project root rules.
There were two problems:
- 'glob' was using __name__ as the name of the project and not
  project.current, so it would search in project root, and not in child
  project that inherited project root rules.
- the 'import' that's overrided in project context used __name__ to
  restore the value of current project

Thanks to Emil Dotchevski for the bug report.


[SVN r30507]
2005-08-08 09:31:39 +00:00
Vladimir Prus
6e5772545e Add the 'notfile' target.
[SVN r29606]
2005-06-16 08:24:01 +00:00
Vladimir Prus
792cf4ac64 Allow "bjam some_directory" to work even if there's no Jamfile in ".".
[SVN r29588]
2005-06-15 13:26:37 +00:00
Vladimir Prus
bf21d96225 Don't run 'library_order' on cygwin, because test relied on gcc/Linux shlib
linking mode.


[SVN r29490]
2005-06-09 08:03:42 +00:00
Vladimir Prus
3120f7fbaf Add test for multiple source-location, from Craig Rodrigues.
[SVN r29335]
2005-06-01 05:43:25 +00:00
Vladimir Prus
bfa598ce5f Don't run abs_workdir from test_all.py, because that's internal test for
test system, not for Boost.Build itself. In addition, the test doesn't work
for Windows.


[SVN r28376]
2005-04-21 08:55:09 +00:00
Vladimir Prus
e8cbe47cc8 Allow 'using' in Jamfiles to pick up modules in Jamfile's directory.
[SVN r27979]
2005-04-05 12:53:39 +00:00
Vladimir Prus
4f6a940409 Allow to specify directory where a test will be run.
Patch from Niklaus Giger.


[SVN r27975]
2005-04-05 11:21:52 +00:00
Vladimir Prus
cf407805f7 Fix BB82 (toolset.using breaks Jamfiles).
* build/toolset.jam (using): Move to...

* build/project.jam (_using): ... here.

  (project-context.using, import): New rules that restore the
  .current-project variable properly.


[SVN r27382]
2005-02-15 07:48:13 +00:00
Dave Abrahams
72a5e80e64 jam_src/
builtins.{c,h}
        Support for the REBUILDS rule
        remove unused variable

    rules.h
    make.c
        Support for the REBUILDS rule

    make1.c
        Support for the REBUILDS rule

        Support for recording timing information

        Restructured a case statement because it was masking a bug I
        introduced.

    execcmd.h
    execnt.c
    execunix.c
        Support for recording timing information
        Also removed NT-specific stuff from execunix

    expand.c
        Removed tabs from critical comment
        Added tab-width variable setting comment for emacs.

v2/test
    rebuilds.py, timedata.py, test_all.py
        Tests for REBUILDS and timing.


[SVN r27334]
2005-02-12 02:30:18 +00:00
Vladimir Prus
d4fa3d6092 Added Boostbook test
[SVN r26601]
2004-12-29 11:47:59 +00:00
Vladimir Prus
daf4d58c63 * build/project.jam
(load-parent): New rule, extracted from 'initilize'.
  (load-jamfile): If loading project-root.jam, check for
      Jamfile and load it in the same module.
  (inherit-attributes): Simplify.
  (project-rules.constant, project-rules.path-constant): New rules.

* build/targets.jam
  (project-target.__init__): New paramater 'parent'.
  (project-target.inherit)
  (project-target.add-constant)
  (project-target.intern-constants): New rules

*


[SVN r26251]
2004-11-19 09:51:54 +00:00
Vladimir Prus
fad89f9023 Fix a bug which caused child project to be loaded before parents.
* build/project.jam
  (project-context.use-project): Just record parameters, don't do anything.
  (load): After Jamfile is loaded, use data recorded above to load
   additional projects.
* test/test_all.py: New test.


[SVN r26229]
2004-11-17 13:12:29 +00:00
Vladimir Prus
8f7c1dde3d Restore the gcc specific link generators.
* build/toolset.jam (inherit-generator): New parameter 'generators-to-ignore'.
* tools/gcc.jam: Ignore *link* generators when inheriting. Declare the
  gcc specific generator.
* test/gcc_runtime.py: Test that <link-runtime>static is correctly handled.
  The gcc specific generator is necessary exactly for that reason.


[SVN r25700]
2004-10-13 08:02:23 +00:00
Vladimir Prus
e646c5b8f8 Ignore <library>, except for "exe" and "lib" targets.
[SVN r25661]
2004-10-11 12:13:48 +00:00
Vladimir Prus
692ec14ece Only SystemExit exception from test module indicates failure. Other exceptions
indicator error in the test, so should not be caught.


[SVN r24973]
2004-09-08 14:48:46 +00:00
Vladimir Prus
07f6065611 * build/virtual-target.jam
(from-file): Use full file name as search key, to avoid creating two
  different targets from two different project, which actually correspond
  to the same file.
  (register): Use actual name of the target as key. This again avoid
  the problem with two equivalent targets in two different projects.


[SVN r23173]
2004-06-24 07:26:29 +00:00
Vladimir Prus
33b864e88e Don't run library_order.py on Windows, since the test makes no sense there,
does not work, and can't be easily fixed.


[SVN r22933]
2004-05-26 10:59:48 +00:00
Vladimir Prus
79cd3623f4 Remove check for 'unused sources'. The check causes bogus warnings in at least
a couple of cases.

1. On Windows, DLLs are never directly linked to, so they are considered
   unused and cause a warning. There used to be special code in
   exe-target-class and lib-target-class to supress that warning, but this
   failed for unit-test, for example, since main target class for unit test
   is not related with exe-target-class. And making yet another main target
   class looks ugly.
2. A target specified via project-wide <source> or <library> property is
   added to sources for all targets, and cause a warning when it's not used.
   However, there are valid cases to ignore such sources. For example

       obj a : a.cpp : <optimization>off ;

   need to comsume any libraries.

It was not clear how to fix both problems. Further, the only case when I found
the warning to be usefull is when declaring new toolsets, and it that case it
does not add much information compared to --debug-generators output. So, let's
just kill the feature for now.


[SVN r22927]
2004-05-26 09:57:03 +00:00
Vladimir Prus
12d08a7b73 Bugfix: the main target rules did not work unless called from Jamfile.
The used 'CALLER_MODULE' to determine the project where the main target
is to be declared, which did not work if the rule is called from another
module.

Thanks to Zbynek Winkler for the bug report.

* build/project.jam (current): New rule
* test/wrapper.py: New test
* other files: Use 'project.current'.


[SVN r22569]
2004-03-31 06:53:56 +00:00
Vladimir Prus
2dd280cbb6 Improve the algorithm for computing build properties.
[SVN r22542]
2004-03-22 08:10:42 +00:00
Vladimir Prus
0da0a2e3a4 Disable order-sensitive properties for a while. They cause performance
degradation that should be investigated.


[SVN r22145]
2004-02-03 08:36:46 +00:00
Vladimir Prus
81530cba02 Fix typo
[SVN r22135]
2004-02-02 13:27:46 +00:00
Vladimir Prus
93c3c932e2 Instroduce order-sensitive properties.
* build/feature.jam: New feature attribute 'order-sensitive'.

* jam_src/modules/property-set.c: (property_set_create): Don't sort
  order-sensitive attributes.


[SVN r22132]
2004-02-02 13:12:30 +00:00
Vladimir Prus
9034f3ba61 First version of proper library ordering for gcc.
[SVN r22079]
2004-01-30 14:10:24 +00:00
Vladimir Prus
2078bed239 * test/test_all.py
Don't stop at the first failure, try to move further.

  Patch from Andre Hentz, with some tweaks by myself.


[SVN r21724]
2004-01-14 07:20:49 +00:00
Vladimir Prus
37cf2d1afc Another fix for standalone projects.
[SVN r21226]
2003-12-11 14:12:02 +00:00
Vladimir Prus
49adf0f54e Remove tabs.
[SVN r21112]
2003-12-03 07:56:28 +00:00
Vladimir Prus
e4fb41995a Fix BB58: the unit-test rule was ignoring <library> property.
* tools/builtin.jam
  (linking-generator): Move <library> properties to sources in the 'run'
  method. This makes the logic usable by everyone who invokes the generator.
  (exe-target-class, lib-target-class): Don't do the above.


[SVN r20707]
2003-11-06 16:46:29 +00:00
Vladimir Prus
abd7908cfc Add a test for linking a libary to library. This revealed some bug, and
in fact, caused rsp files refactoring comitted previously.


[SVN r20651]
2003-11-04 16:40:45 +00:00
Vladimir Prus
acadbf896a Fix the bug that compsite properties in the 'requirements' attribute are not expanded.
* build/targets.jam
  (basic-target.refined-properties): expand composites in the 'requirements' property-set.

Patch from Paul Lin.

* tests/composite.py: New test.


[SVN r20615]
2003-11-03 15:19:36 +00:00
Vladimir Prus
583bf9fe87 Make 'regression.py' work with msvc.
* tools/builtin.jam
  (exe-target-class.compute-usage-requirements): Pass <dll-path> properties
  as usage requirements.

* tools/testing.jam
  (capture-output): Handle <dll-path> properties.

* tools/common.jam
  (path-variable-setting-command): New rule.


[SVN r20522]
2003-10-28 12:16:10 +00:00
Vladimir Prus
466105e97d Make library target pass <dll-path> properties it got from
usage requirements of sources. Add a test for the new behaviour.


[SVN r20521]
2003-10-28 10:05:59 +00:00
Vladimir Prus
b2b6e2769b Simplify target paths.
* build/targets.jam
  (project-target.reference-properties): Remove.

* build/virtual-target.jam
  (abstract-file-target.specific-main-target,
   file-target.specific-main-target): Remove.


[SVN r20516]
2003-10-28 07:46:40 +00:00
Vladimir Prus
47aa5f97b7 Fix a bug which caused double loading of Jamfile in some cases. Also,
simplify some things.

* new/project.jam
  (load): Tweak
  (lookup): Remove.
  (find): Simplify.


[SVN r20430]
2003-10-21 05:47:39 +00:00
Vladimir Prus
cb50ed0edd Don't run 'regression' on win, since it's not working there, yet.
[SVN r20336]
2003-10-10 13:18:22 +00:00
Vladimir Prus
d454a26cfe Add tests for regression system.
[SVN r20280]
2003-10-07 13:03:04 +00:00
Dave Abrahams
5ffe27e49e Removed all property-adjuster references and the associated test.
[SVN r20207]
2003-09-29 15:27:47 +00:00
Vladimir Prus
da15d4a222 Fix BB39: project root constants are available also in project-root module
itself.


[SVN r20077]
2003-09-16 14:54:09 +00:00
Vladimir Prus
b8b18394e3 Add 'glob' rule to Jamfile context.
[SVN r19914]
2003-09-04 11:19:03 +00:00
Vladimir Prus
52547317f0 Bugfix. Allow "project-root" to work in Jamfile, again.
Thanks to Peter Schoen for bugreport.

* new/project.jam (initialize): Set 'project-root-module' attribute.
* new/project_root.py: New test.


[SVN r19899]
2003-09-01 14:00:26 +00:00
Vladimir Prus
e92b5c5d23 Fix a hard error whenever a target is skipped. Thanks to
Christopher Currie for spotting this bug.


[SVN r19854]
2003-08-29 08:48:15 +00:00
Vladimir Prus
6165bef6c0 Test toolset inheritance
[SVN r19461]
2003-08-05 06:10:58 +00:00
Vladimir Prus
88d198970c Speed up module imports.
* jam_src/builtins.c: New builtins IMPORT_MODULE and IMPORTED_MODULES.
  jam_src/rules.c: (bindrule): Refactor. (lookup_rule): New function.

* kernel/modules.jam: Make use of IMPORT_MODULE.


[SVN r19422]
2003-08-04 08:45:41 +00:00
Vladimir Prus
630e14381f Bugfix. Keep the same suffix when staging files.
[SVN r19324]
2003-07-28 08:18:20 +00:00
Vladimir Prus
4f30918d6a Patch from Pedro Ferreira to implement <tag> feature.
* new/targets.jam
  (basic-target.tag-name): New rule.
  (basic-target.generate-really): Temporary change self.name

* test/tag.py: New test.


[SVN r19298]
2003-07-24 13:57:45 +00:00
Vladimir Prus
15b0e35204 Python 2.1 compatibility.
[SVN r19255]
2003-07-22 09:02:09 +00:00
Vladimir Prus
72d84b8e49 Bugfix: conditionals properties was misbehaving when there were ":" in
property value.

* new/property.jam
  (evaluate-conditionals-in-context): Don't be greedy in regex.

* test/conditionals3.py: New test.


[SVN r19243]
2003-07-21 07:17:19 +00:00
Vladimir Prus
d14334895e Unbreak STLport and railsys test.
* tools/stlport.jam
  (stlport-target-class.generate): New method.

* test/test_all.py: Run 'railsys' again.


[SVN r19242]
2003-07-21 06:43:28 +00:00
Vladimir Prus
370c9f2bfe Work on BB43 (hang on loop in main target references).
* new/targets.jam
  (start-building, end-building): New rules.
  (main-target.generate): Call the above rules.

* test/loop.py: New test.


[SVN r19241]
2003-07-21 06:21:27 +00:00
Vladimir Prus
1a7819fe34 Fix BB38 (composite properties expansion buggy).
* new/build-request.jam
  (expand-no-defaults): Don't expand composites.

* new/targets.jam
  (main-target.generate): Expand composites.

* test/property_expansion.py: New test.


[SVN r19240]
2003-07-21 05:55:42 +00:00
Vladimir Prus
35aa067d95 Fix a bug which caused non-free feature to appear twice in property set.
[SVN r19239]
2003-07-21 05:34:15 +00:00
Vladimir Prus
d2ad8e70c5 Implement inline main targets.
* new/targets.jam
  (main-target-sources): New rule.
  (abstract-target.rename): New rule
  (project-target.rename-main-target): New rule.


[SVN r18923]
2003-07-03 07:23:26 +00:00
Vladimir Prus
cace6663db Enable 'custom_generator' test.
[SVN r18833]
2003-06-18 06:37:43 +00:00
Vladimir Prus
83394f7ff8 Implement new target-id syntax.
[SVN r18780]
2003-06-11 12:22:03 +00:00
Vladimir Prus
58f0dbb5cd Compile C files with C compiler, not C++. This commit would close BB32, if
it included MSVC...

* new/toolset.jam:
  Allow action names with dots, so that we can set flags for
   gcc.compile.c, gcc.compile and gcc and combine those flags.

* tools/gcc.jam: Use 'gcc' for compiling C files. There's still a problem:
   'init' rules does not allow to configure name of C compiler. Also, don't
   declare flags individually for gcc.link and gcc.link-dll.

* tools/borland.jam: Force C++ compile when needed.


[SVN r18774]
2003-06-11 08:40:45 +00:00
Vladimir Prus
ce2b257a16 Bugfix from Michael Stevens: when directory names contained regex
metacharacters, Boost.Build misbehaved.

* new/path.jam
  (all-parents): Don't use regex to strip path prefix, use a more robust
    approach.

* test/bad_dirname.py: New test.


[SVN r18576]
2003-05-28 07:11:50 +00:00
Vladimir Prus
220713e082 Use the previous approach for finding generator's match rank, now
that we have a use case. Add an explanation in code. More details
will be posted to the list.


[SVN r18475]
2003-05-21 05:37:39 +00:00
Vladimir Prus
cd49e5bc38 Unbreak 'searched_lib.py'.
* new/virtual-target.jam
  (null-action): Pass '.no-action' as action name, not 'no-action'. The
  action name is really dummy, it's not used at all. However, when it does
  not include dot, the smart 'action' ctor will assume it's local and prepend
  module name to it. The calling module will be 'null-action' instance module,
  always unique, and as result, no two targets with null actions will be
  equal, as far as 'virtual-target.register' is concerned.


[SVN r18424]
2003-05-16 12:57:40 +00:00
Vladimir Prus
b651eb1fee Run 'unused' now that it works.
[SVN r18421]
2003-05-16 12:15:36 +00:00
Dave Abrahams
3bb7442512 * added new builtin tests
* handle the absence of QT more gracefully

* flush stdout after each test so that emacs shows progress

****** Commented out tests which appear to be failing outside my control ******


[SVN r18410]
2003-05-15 22:30:08 +00:00
Vladimir Prus
a26f853035 Add tests for typechecking facilities.
* test/core_typecheck.py: New test
* test/core_d12.py: Don't pass toolset name to bjam.
* test/test_all.py: Run core tests.


[SVN r18390]
2003-05-14 06:44:43 +00:00
Vladimir Prus
680a933600 Bugfix.
* new/virtual-target.jam
  (file-target.specific-main-target): Check not only free, but also
  dependency properties when deciding if targets is specific to the main
  target.
* new/dependency_property.py: New test.


[SVN r18363]
2003-05-08 11:24:26 +00:00
Dave Abrahams
5f99b86bd1 Enable symlink test for Cygwin, since it's been fixed there.
[SVN r18347]
2003-05-07 16:08:33 +00:00
Vladimir Prus
e6f4b40277 Fix problem with absolute paths for sources, noted by Kirill Lapshin.
* new/virtual-target.jam
  (from-file): Pass target name via "path.make".
  (abstract-file-target.actual-name): Pass target name via "path.native".

* test/absolute_sources.py: New test.


[SVN r18324]
2003-04-28 07:55:53 +00:00
Vladimir Prus
bfb285baea Implement 'explicit targets'. This closes BB29, except for documentation
issues.

* new/project.jam: New project attribute 'explicit-targets'.
* new/targets.jam (project-target): Don't implicitly generate targets
  that are in 'explicit-targets' attribute.


[SVN r18294]
2003-04-23 13:34:17 +00:00
Dave Abrahams
72e727f4de Modifications for working under Cygwin
[SVN r18266]
2003-04-16 16:14:20 +00:00
Vladimir Prus
b040c8b42e Bugfix: set NDEBUG for release builds.
* new/builtin.jam: Make <optimization>speed active property and add
  <define>NDEBUG for it.

* test/ndebug.py: New test.


[SVN r18250]
2003-04-14 11:02:34 +00:00
Vladimir Prus
394043114a Win32 fixes.
[SVN r18182]
2003-04-04 08:00:42 +00:00
Douglas Gregor
51fc0e2dee print.py: Test the print module by using it to output text with quotes to a
text file

test_all.py: add print.py


[SVN r18126]
2003-03-28 15:27:14 +00:00
Vladimir Prus
6a6d6fb90c Integrate the "railsys" test.
[SVN r17848]
2003-03-12 14:08:57 +00:00
Vladimir Prus
8d38ee1b89 Make default values of features really work. Now a feature with
default value will always be present in build properties of all
main targets. The change moves adding default value into main
targets --- it was done at the top level.

* new/build-request.jam
    (expand-no-defaults): No longer local.

* new/build-system.jam
    Use 'build-request.expand-no-defaults', not 'expand'.

* new/feature.jam
    (add-defaults): Tolerate conditional properties
        (e.g <variant>debug:<define>DEBUG)

* new/property-set.jam
    (property-set.add-defaults): New method.

* new/targets.jam
    (basic-target.final-properties): Add defaults.

* test/default_features.py: New test.


[SVN r17753]
2003-03-07 08:45:37 +00:00
Vladimir Prus
5b1001ef74 Warn on unused sources.
* new/targets.jam
    (basic-target.check-for-unused-sources): New rule.
    (basic-target.generate): Call the above.

* new/virtual-target.jam
    (traverse): New arguments 'include-roots' and 'include-sources'.

* test/unused.py: New test.


[SVN r17685]
2003-02-28 08:13:38 +00:00
Vladimir Prus
8c8f99e835 Refactorings.
* new/targets.jam
    (main-target.select-alternatives): New rule.
    (main-target.generate): Simplify, using the above.

* new/errors.jam
    (error): Do EXIT if --no-error-backtrace is given.

* tests/alternatives.py: New test.


[SVN r17673]
2003-02-27 14:25:26 +00:00
Vladimir Prus
dabd5d5b69 Implement the 'alias' main target. This closes BB12.
[SVN r17574]
2003-02-21 09:25:43 +00:00
Vladimir Prus
a15049afbe Really start the last failed test as soon as possible.
[SVN r17568]
2003-02-21 07:49:14 +00:00
Vladimir Prus
e44c37b94f Allow additional argument for user rule, with "make" main target.
* new/make.jam
    (make): Change name only of the first element in 'generating-rule'

* new/virtual-target.jam
    (action.actualize): Pass only first element of action name to
       toolset.set-target-variables.

* test/make_rule.py: New test.


[SVN r17543]
2003-02-20 07:20:52 +00:00
Vladimir Prus
0264dca306 Improve running tests.
1. Test names are printed as they are executed.
2. The test which failed during the previous run is executed as soon
   as possible.yx


[SVN r17507]
2003-02-18 09:00:59 +00:00
Vladimir Prus
601764adff Bugfix: now search-lib targets can be used in requirements and
usage-requirements.

* new/builtin.jam
    (link-action.adjust-properties): Rework.

* test/searched_lib.py: New test.


[SVN r17104]
2003-01-31 09:26:25 +00:00
Dave Abrahams
52183394e8 Added missing module_actions test
[SVN r16999]
2003-01-22 22:10:11 +00:00
Vladimir Prus
2782e9b785 Fix/improve the symlink rule.
* new/path.jam
    (make-NT, make-UNIX): Convert empty path into "."

* new/project.jam
    (path-relative-to-project-location): New rule.

* new/stage.jam
    (stage-target-class.construct): Use the above rule.

* new/symlink.jam
    (symlink-targets.construct): Call 'set-path' on created
    virtual targets.
    (ln): Attempts at better handling creating symlinks in
    directories.

* new/virtual-target.jam
    (abstract-file-target.actual-name): If explicit path was
    given, include it in grist.

* test/symlink.py: New test.

* test/test_all.py
    Run new test.


[SVN r16889]
2003-01-13 16:09:43 +00:00
Vladimir Prus
022ef577da Implement BB7: now there's "build-dir" project
attribute which controls where generated targets are put,
much in the same was as ALL_LOCATE_TARGET.

* new/virtual-target.jam
    (virtual-target.path): Respect build dir.
    (virtual-target.actualize-location): Don't
       compute path, but call call instead.

* new/project.jam
    (initialize): Set default value for 'build-dir'.
    (project-attributes.set): Handle 'build-dir'.

* new/path.jam
    (relative): New rule.

* test/build_dir.py: New test.


[SVN r16589]
2002-12-11 19:01:50 +00:00
Vladimir Prus
c830f2d90a Better support project requirements with dependency properties
in it. Don't generate all main target into separate subdirectories
in this case.

* new/targets.jam:
    (project-target.reference-properties): New method
    (generate): Moved from basic-target.generate-source
    (generate-dependencies): New rule.

* test/project_dependencies.py: New test.


[SVN r16453]
2002-11-28 08:18:06 +00:00
Vladimir Prus
75230dc75a First implementation of "stage" and "prebuilt" rule.
* new/common.jam (copy): New rule.

* new/targets.jam (main-target.generate): Use a different
   algorith for selecting subvariant. Favour one with
   the longest intersection of requirements with build
   properties.

* new/virtual-target.jam (virtual-target): Eliminate 'subvariant'
   attribute. Use properties of action to for the same
   purpose. New methods 'set-path' and 'extra-grist'.


[SVN r16129]
2002-11-06 10:26:11 +00:00
Vladimir Prus
e60af004d1 Add more tests.
[SVN r15851]
2002-10-10 12:12:06 +00:00
Vladimir Prus
b55dc66bf3 Implement simple form of use requirements.
* new/virtual-target.jam
        (virtual-target.use-requirements): New rule.
        (virtual-target.set-use-requirements): New rule.

    * new/generators.jam (construct): Use 'use-requirements' of sources.

    * new/targets.jam (basic-target.generate): Store use requirements for
             generated targets.
      (main-target-alternative): Process use requirements.

    * new/project.jam: Support 'use-requirements' project attribute.


[SVN r15821]
2002-10-09 11:33:22 +00:00
Vladimir Prus
ef5eff03d0 Bugfixes.
* new/virtual-targets.jam (virtual-target.root): New rule
        (traverse): Don't traverse past roots.
    * new/targets.jam (main-target): Call 'virtual-target.root' as
        appropriate.


[SVN r15773]
2002-10-07 14:34:43 +00:00
Vladimir Prus
12518b72c2 Sundry improvements:
Bison and lex support.
    unit-test rule
    --version option
    default build really works

    * new/build-system.jam: Bugfixes. Added "--version" option.

    * new/project.jam: If default-build is not specifies, don't stick "debug".

    * new/property.jam (evaluate-conditionals): New rule.

    * new/targets.jam (basic-target.generate): Evalute conditional properties.

    * test/BoostBuild.py (Tester.maybe_do_diff): New method.
        (Tester.run_build_system): Call the above method when
        appropriate.


[SVN r15771]
2002-10-07 13:34:14 +00:00
Vladimir Prus
b2ed2fe8f5 Fix some obscure bugs.
* new/virtual-target.jam (clone-template): Improve interface and logic.

    * new/make.jam (make-target-class.construct): Set type and suffix on
    generated targets.

    * new/generators.jam (construct): Make sure all targets have known
     types.


[SVN r15766]
2002-10-07 13:08:04 +00:00
Vladimir Prus
43f2565a2d Allow directory part in names of source files.
[SVN r15708]
2002-10-04 13:59:25 +00:00
Vladimir Prus
bba2939592 Implement path features.
* property.jam (translate-paths): New rule.

    * targets.jam (main-target-alternative): Translate path
      properties.

    * project.jam (project-attributes.set): Likewise.

    * builtin.jam (variant): Fixes.


[SVN r15707]
2002-10-04 13:48:38 +00:00
Vladimir Prus
455019d5dc Propagate free properties in build request to all directly requested targets.
* targets.jam
        (abstract-target.direct-build-request): New rule.
        (project-target.direct-build-request): New rule.
        (main-target.direct-build-request): New rule.
        (main-target.generate): Use data stored by
        'direct-build-request' to adjust build properties.

    * build-system.jam: Call 'direct-build-request' on project
         target in "."

    * feature.jam (feature): Don't allow propagated free features.


[SVN r15677]
2002-10-03 15:18:59 +00:00
Vladimir Prus
44f3faf761 Adjust include paths for compilations, so that generated headers are found.
* virtual-target.jam (traverse): New rule, returns a list of
    targets, given the graph root.
  (subvariant-dg): New class, to keep all targets for a given
    subvariant.
  (virtual-target.dg): New rule to access subvariant-dg.
  (virtual-target.path): New rule

* targets.jam (main-target.generate): Assign subvariant dg to all
  created targets.

* builtin.jam (compile-action.adjust-properties): Use subvariant
  dg to find all targets, their location, and add those location
  to include path.


[SVN r15619]
2002-10-01 17:00:24 +00:00
Vladimir Prus
2796e8f328 Added generators test to the test suite.
[SVN r15269]
2002-09-11 15:56:56 +00:00
Vladimir Prus
8e64eb262d Deleted project_test2 and moved the interesting tests from it to project_test4.
[SVN r14404]
2002-07-11 10:01:53 +00:00
Vladimir Prus
b0c9980865 Specifying target properties in target references now actually work.
* new/targets.jam (basic-target.generate-source): Fix regex.
    * test/project_test4.py: New test.


[SVN r14374]
2002-07-09 15:57:21 +00:00
Vladimir Prus
50137dcc10 Beginning of the 'make' rule.
* new/targets.jam: Check for duplicate 'basic-target::generate()' calls.
        Use better logic to tell is source is another main target or file.
        (project-target::has-main-target): New rule.
    * new/project.jam (lookup): Fixes. (find-target): Implemented.
    * new/make.jam: New file, defines the 'make' rule and associated target
        class.
    * new/build-system.jam: Import 'make'. Generate virtual targets and
        actualize them.
    * new/utility.jam: Added "MkDir" rule and actions.
    * test/project_test3.py: New test.


[SVN r14249]
2002-06-27 14:00:30 +00:00
Dave Abrahams
ca39cf30da Clear environment before testing
[SVN r13696]
2002-05-06 21:09:03 +00:00
Dave Abrahams
2bf1779f95 Bug fixes
[SVN r13693]
2002-05-06 18:54:24 +00:00
Dave Abrahams
2b392b9c3f new initialization code + tests
[SVN r13687]
2002-05-06 17:51:21 +00:00