Commit Graph

233 Commits

Author SHA1 Message Date
Steven Watanabe
c1395b4961 Make the handling of actions that produce multiple targets more correct.
[SVN r86561]
2013-11-04 22:35:14 +00:00
Steven Watanabe
259b0c5a6f Initial tests for zlib configuration.
[SVN r83773]
2013-04-06 01:32:36 +00:00
Jürgen Hunold
4cb47ecdc0 Start Qt5 support
[SVN r82033]
2012-12-16 20:48:35 +00:00
Steven Watanabe
da7ae0d449 Add test for message.jam
[SVN r80981]
2012-10-13 21:58:54 +00:00
Jurko Gospodnetić
654b8e6a9a Added a new internal Boost Build test checking Boost Build's project id handling.
[SVN r79939]
2012-08-08 22:29:29 +00:00
Jurko Gospodnetić
93c0e2c9b4 Intenral Boost Build testing system cleanup - minor stylistic change.
[SVN r79938]
2012-08-08 22:20:10 +00:00
Jurko Gospodnetić
0e4d14bfe6 Added a new internal Boost Build test illustrating a bug in the current Boost Build/Jam implementation and causing targets to be rebuilt when not necessary in some cases.
[SVN r79599]
2012-07-19 11:53:30 +00:00
Jurko Gospodnetić
678fe54e15 Updated Boost Build tests to run the collect_debug_info.py test only when running the tests non-interactively, i.e. when collecting the test results in an xml output file. When running the tests interactively and observing the results on the console there is no need for this always-failing test to spoil the 'all tests passed' result - the user will generally know everything about his system and can still run this test directly if he wishes to see what it would have returned.
[SVN r79478]
2012-07-13 19:17:04 +00:00
Jurko Gospodnetić
53576e4073 Boost Build testing system code cleanup. Mainly stylistic changes + stopped using old deprecated string module functions in the test_all.py module.
[SVN r79476]
2012-07-13 19:03:54 +00:00
Jurko Gospodnetić
9905deabee Fixed a Boost Jam error reporting bug where it would report the error as originating from an incorrect file & line in case the error occurred after parsing the final token in some file. It usually reported it as the file including the file in question or, if the file is the main project build script not included from anywhere, then it reported the error as originating from file '(builtin)' and line -1. Added a related internal Boost Build unit test (core_source_line_tracking.py).
[SVN r79449]
2012-07-12 13:21:46 +00:00
Jurko Gospodnetić
1791d078cc Boost Build/Jam cleanup - stylistic code changes.
[SVN r79244]
2012-07-03 15:58:26 +00:00
Jurko Gospodnetić
9dc325c5de Added a new Boost Build test - testing the rc.jam toolset. Guards against a regression causing targets depending on a .rc script file to rebuild every time if the .rc script includes a resource file newer than itself.
[SVN r79148]
2012-06-27 22:20:33 +00:00
Jurko Gospodnetić
01321fb209 Added a new Boost Build/Jam -p command line option handling test.
[SVN r79124]
2012-06-26 20:27:59 +00:00
Jurko Gospodnetić
e17fa79213 Updated Boost Jam to execute commands directly on Windows when that is requested by setting the JAMSHELL variable to '%', the same as for Unix OSs, and not change the user's request under covers to running the command via the default shell if it is 8191 characters long or shorter. Renamed the related Boost Build core_nt_line_length.py test to core_nt_cmd_line.py and updated it with more detailed test cases.
[SVN r79097]
2012-06-25 23:01:59 +00:00
Jurko Gospodnetić
5695c65f8b Extracted static/shared library testing out of the generators_test.py Boost Build test and into a separate new static_and_shared_library.py test. Updated the test a bit in the process to make it test some additional use cases.
[SVN r78961]
2012-06-15 20:17:17 +00:00
Jurko Gospodnetić
0c1b6c255b Added a new, temporary, always-failing Boost Build test named collect_debug_info.py. Used to collect additional debugging information about specific test sites, e.g. Python & OS version. Currently collects information required for debugging detected configuration.py test failures. Registered expected Boost library test failures.
[SVN r78918]
2012-06-13 01:02:02 +00:00
Jurko Gospodnetić
34b5b33315 Cleaned up how Boost Build's test system reports unhandled exceptions. Now no longer uses deprecated global sys.exc_* variables and prints out the exception stack trace correctly.
[SVN r78889]
2012-06-11 12:53:54 +00:00
Jurko Gospodnetić
24002030db Made the main Boost Build test runner script correctly report unhandled and unexpected exceptions raised from specific test scripts. Before, such an exception would terminate the whole test run while now it gets cleanly reported as just another test failure. This makes Boost library regression test results correctly report any Python errors (e.g. using a Python feature not supported by the used Python version) which previously developers had no built-in way of getting feedback about.
[SVN r78883]
2012-06-11 02:02:59 +00:00
Jurko Gospodnetić
b8d4657d9c Made the main Boost Build test runner script not assume that successful tests will leave behind no annotations, thus making result processing with and without XML output symmetric. Before, with XML output, if a passed test left behind some annotations, they would get reported as annotations for the next failing test.
[SVN r78882]
2012-06-11 01:58:05 +00:00
Jurko Gospodnetić
6acb36bc11 Removed some 'regression' test specialized debugging code from the main Boost Build test runner script that seems to have been left behind from some debugging efforts. It would cause annotations to be displayed to the user if that test failed and no XML output was requested, while for all the other failed tests such annotations are ignored. This seems unnecessary since this output can be collected by directly running the regression.py test script, same as what is done with any other failed test.
[SVN r78881]
2012-06-11 01:55:43 +00:00
Jurko Gospodnetić
05887be75a Made the main Boost Build test runner script better align its test results on screen when not run with XML output. Now the maximum test name length is no longer hardcoded.
[SVN r78880]
2012-06-11 01:49:52 +00:00
Jurko Gospodnetić
028a05d91a Comment typo correction.
[SVN r78879]
2012-06-11 01:47:08 +00:00
Jurko Gospodnetić
34e2f59a2c Minor stylistic cleanup in the main Boost Build test runner script.
[SVN r78878]
2012-06-11 01:46:24 +00:00
Jurko Gospodnetić
bd4d630f69 Added a new Boost Build unit test exercising the Jam variable expansion in actions.
[SVN r78670]
2012-05-27 00:00:30 +00:00
Jurko Gospodnetić
2fd4ebc4cc Added a new Boost Build unit test exercising the SPLIT_BY_CHARACTERS built-in rule.
[SVN r78669]
2012-05-26 23:27:33 +00:00
Steven Watanabe
b7d2e4d06c Make unit-test handle paths containing spaces.
[SVN r78538]
2012-05-22 04:20:29 +00:00
Steven Watanabe
52b16cdc4d Add test of rescanning for headers.
[SVN r78248]
2012-04-28 19:51:01 +00:00
Steven Watanabe
ee897c8bd3 Test for ECHO.
[SVN r77646]
2012-03-30 14:04:44 +00:00
Steven Watanabe
2a23d156c7 Test for EXIT
[SVN r77644]
2012-03-30 12:51:59 +00:00
Steven Watanabe
3fd7ecbccd More correct behavior of -n with FAIL_EXPECTED targets and across multiple calls to UPDATE_NOW.
[SVN r76045]
2011-12-18 16:51:43 +00:00
Steven Watanabe
e187955f5e Update unused.py and add it to test_all.py.
[SVN r75879]
2011-12-09 18:19:50 +00:00
Steven Watanabe
cf2e6f77ed Fix direct_request_test and add it to test_all.py.
[SVN r75877]
2011-12-09 16:08:44 +00:00
Steven Watanabe
791ef6d70a Handle STDOUT and STDERR in @ files.
[SVN r75872]
2011-12-09 03:56:02 +00:00
Steven Watanabe
c9f73695e3 Remove file_name_handling.py. The functionality that it was testing was a horrible hack that never really worked to solve a problem that has since been fixed in another way.
[SVN r75857]
2011-12-07 19:49:17 +00:00
Steven Watanabe
ec4d53ec97 Remove tests from Boost.Build V1.
[SVN r75850]
2011-12-07 16:52:58 +00:00
Steven Watanabe
67c759581d Integrate everything useful from check-jam-patches into the Python test system.
[SVN r75835]
2011-12-07 05:05:03 +00:00
Steven Watanabe
71b24b5005 Integrate the tests in test/engine/ into the Python test scripts.
[SVN r75834]
2011-12-07 02:43:29 +00:00
Steven Watanabe
c8480a9cf5 Try to test the language semantics thoroughly
[SVN r75738]
2011-11-30 00:06:31 +00:00
Vladimir Prus
c411fb609b Port build/configure.jam.
Also allow to expose Python class to Jam, which fixes
tag.py and inline.py testcases.


[SVN r64610]
2010-08-05 06:22:58 +00:00
Vladimir Prus
90c3f1170f Fix detection of exit status. We use close on pipe to get return status
and if program does exit(1) we get '1'. The code for checking was
using os.WIFSIGNALLED, and that returns true for '1' -- it seems like
it is expecting result of os.system, which would be 256, or something.


[SVN r62634]
2010-06-09 07:09:29 +00:00
Vladimir Prus
2b66a7dc04 Exclude default_toolset.py
[SVN r54972]
2009-07-15 19:06:04 +00:00
Jurko Gospodnetić
9de7e80a1a Makes the Boost Build testing system correctly report the number of passed test cases instead of reporting all test cases as passed.
[SVN r51396]
2009-02-22 17:36:30 +00:00
Jurko Gospodnetić
478d847f17 Converted tabs to spaces in the Boost Build test/test_all.py to make all whitespace style used in this file consistent.
[SVN r51391]
2009-02-22 16:02:58 +00:00
Jurko Gospodnetić
955acd74da Removed trailing spaces.
[SVN r51390]
2009-02-22 15:55:04 +00:00
Vladimir Prus
182ce6525e Include more attributes in test results
[SVN r50179]
2008-12-07 14:56:43 +00:00
Vladimir Prus
6d6162bc99 Include annotations in test log
[SVN r50173]
2008-12-07 08:41:56 +00:00
Vladimir Prus
c3c4a6ac16 Make sure 'FAILED' is printed on failure
[SVN r49787]
2008-11-16 13:19:26 +00:00
Vladimir Prus
3166e502a4 XML output support
[SVN r49731]
2008-11-13 21:30:05 +00:00
Steven Watanabe
77a9d5d406 Make common.copy set the timestamp of the destination to the current time on windows
[SVN r49463]
2008-10-27 16:27:53 +00:00
Jurko Gospodnetić
03b33009ec Fixed how Boost Build's automated testing results get reported in case of tests running on files containing spaces in their path. Regression test added as well.
[SVN r48645]
2008-09-07 07:33:30 +00:00
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