
On Monday 26 September 2005 12:14, John Maddock wrote:
And then; how do I run test on all of "spoost" and generate test reports that are suitable for evaluation? I guess there is a target in boost.build of some sort I can try.
Yep, use the Jamfile in /status.
Suggest you run everything on the unmodified Boost, and then diff it with the result of the run on the modified version,
Did this, get 705 diffs, most comes as file paths and line number differences when samme warnings or errors are reported in both builds... :-) Thinking about trimming this before I do diff, and possibly running bcp without adding headers to files to get rid of line number diffs. But I have not tried that yet. There are stuff in the diff that looks like real problems, but I have not dug in yet.
or second thoughts just check that the number of failures (if any) is the same.
************ build log for unmodified boost code *************************** cd /dsk1/src/boost_1_33_0/status/ bjam --------------------------------------------------------------------- *** If you don't need Boost.Python, you can ignore this section *** *** pass --without-python to suppress this message in the future *** skipping Boost.Python library build due to missing or incorrect configuration couldn't find Python.h in "/usr/local/include/python2.2" You can configure the location of your python installation by setting: PYTHON_ROOT - currently "/usr/local" PYTHON_VERSION - The 2-part python Major.Minor version number (e.g. "2.2", NOT "2.2.1") - currently "2.2" The following are automatically configured from PYTHON_ROOT if not otherwise set: PYTHON_LIB_PATH - path to Python library object; currently "/usr/local/lib/python2.2/config" PYTHON_INCLUDES - path to Python #include directories; currently "/usr/local/include/python2.2" --------------------------------------------------------------------- Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (and if you don't know what ICU is then you probably don't need it). ...patience... ...patience... ...patience... ...patience... ...patience... ...found 37791 targets... ...updating 9832 targets... MkDir1 ../bin MkDir1 ../bin/boost MkDir1 ../bin/boost/libs MkDir1 ../bin/boost/libs/test MkDir1 ../bin/boost/libs/test/build MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/compiler_log_formatter.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/execution_monitor.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/framework.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/plain_report_formatter.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/progress_monitor.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/results_collector.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/results_reporter.o ************* a lot of stuff cut out **************************** ...failed RmTemps ../bin/boost/libs/test/test/minimal_test.test/gcc/debug/minimal_test.run... execute-test ../bin/boost/libs/test/test/online_test.test/gcc/debug/online_test.run **passed** ../bin/boost/libs/test/test/online_test.test/gcc/debug/online_test.test execute-test ../bin/boost/libs/test/test/errors_handling_test.test/gcc/debug/errors_handling_test.run **passed** ../bin/boost/libs/test/test/errors_handling_test.test/gcc/debug/errors_handling_test.test **passed** ../bin/boost/status/timer_test.test/gcc/debug/timer_test.test execute-test ../bin/boost/status/simple_example_5.test/gcc/debug/simple_example_5.run **passed** ../bin/boost/status/simple_example_5.test/gcc/debug/simple_example_5.test execute-test ../bin/boost/status/simple_example_4.test/gcc/debug/simple_example_4.run **passed** ../bin/boost/status/simple_example_4.test/gcc/debug/simple_example_4.test execute-test ../bin/boost/status/simple_example_3.test/gcc/debug/simple_example_3.run **passed** ../bin/boost/status/simple_example_3.test/gcc/debug/simple_example_3.test execute-test ../bin/boost/status/simple_example_2.test/gcc/debug/simple_example_2.run **passed** ../bin/boost/status/simple_example_2.test/gcc/debug/simple_example_2.test execute-test ../bin/boost/status/simple_example_1.test/gcc/debug/simple_example_1.run **passed** ../bin/boost/status/simple_example_1.test/gcc/debug/simple_example_1.test execute-test ../bin/boost/status/examples.test/gcc/debug/examples.run ...on 9800th target... **passed** ../bin/boost/status/examples.test/gcc/debug/examples.test execute-test ../bin/boost/status/io_test.test/gcc/debug/io_test.run **passed** ../bin/boost/status/io_test.test/gcc/debug/io_test.test execute-test ../bin/boost/status/tuple_test_bench.test/gcc/debug/tuple_test_bench.run **passed** ../bin/boost/status/tuple_test_bench.test/gcc/debug/tuple_test_bench.test ...failed updating 19 targets... ...skipped 28 targets... ...updated 9785 targets... Compilation exited abnormally with code 1 at Wed Sep 28 02:29:57 ******************* end build log *************************************' ************ Build log for modified spoost code ********************* cd /tmp/bcp/spoost/status/ bjam --------------------------------------------------------------------- *** If you don't need Boost.Python, you can ignore this section *** *** pass --without-python to suppress this message in the future *** skipping Boost.Python library build due to missing or incorrect configuration couldn't find Python.h in "/usr/local/include/python2.2" You can configure the location of your python installation by setting: PYTHON_ROOT - currently "/usr/local" PYTHON_VERSION - The 2-part python Major.Minor version number (e.g. "2.2", NOT "2.2.1") - currently "2.2" The following are automatically configured from PYTHON_ROOT if not otherwise set: PYTHON_LIB_PATH - path to Python library object; currently "/usr/local/lib/python2.2/config" PYTHON_INCLUDES - path to Python #include directories; currently "/usr/local/include/python2.2" --------------------------------------------------------------------- Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (and if you don't know what ICU is then you probably don't need it). ...patience... ...patience... ...patience... ...patience... ...patience... ...found 37780 targets... ...updating 9832 targets... MkDir1 ../bin MkDir1 ../bin/boost MkDir1 ../bin/boost/libs MkDir1 ../bin/boost/libs/test MkDir1 ../bin/boost/libs/test/build MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/compiler_log_formatter.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/execution_monitor.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/framework.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/plain_report_formatter.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/progress_monitor.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/results_collector.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/results_reporter.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/test_main.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/test_tools.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/unit_test_log.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/unit_test_main.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/unit_test_monitor.o gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/unit_test_parameters.o ************* a lot of stuff cut out **************************** if test $verbose -eq 0 ; then echo ====== BEGIN OUTPUT ====== cat ../bin/boost/libs/test/test/errors_handling_test.test/gcc/debug/errors_handling_test.output echo ====== END OUTPUT ====== fi exit $status ...failed execute-test ../bin/boost/libs/test/test/errors_handling_test.test/gcc/debug/errors_handling_test.run... **passed** ../bin/boost/status/timer_test.test/gcc/debug/timer_test.test execute-test ../bin/boost/status/simple_example_5.test/gcc/debug/simple_example_5.run **passed** ../bin/boost/status/simple_example_5.test/gcc/debug/simple_example_5.test execute-test ../bin/boost/status/simple_example_4.test/gcc/debug/simple_example_4.run **passed** ../bin/boost/status/simple_example_4.test/gcc/debug/simple_example_4.test execute-test ../bin/boost/status/simple_example_3.test/gcc/debug/simple_example_3.run **passed** ../bin/boost/status/simple_example_3.test/gcc/debug/simple_example_3.test execute-test ../bin/boost/status/simple_example_2.test/gcc/debug/simple_example_2.run **passed** ../bin/boost/status/simple_example_2.test/gcc/debug/simple_example_2.test execute-test ../bin/boost/status/simple_example_1.test/gcc/debug/simple_example_1.run **passed** ../bin/boost/status/simple_example_1.test/gcc/debug/simple_example_1.test execute-test ../bin/boost/status/examples.test/gcc/debug/examples.run **passed** ../bin/boost/status/examples.test/gcc/debug/examples.test execute-test ../bin/boost/status/io_test.test/gcc/debug/io_test.run **passed** ../bin/boost/status/io_test.test/gcc/debug/io_test.test execute-test ../bin/boost/status/tuple_test_bench.test/gcc/debug/tuple_test_bench.run **passed** ../bin/boost/status/tuple_test_bench.test/gcc/debug/tuple_test_bench.test ...failed updating 33 targets... ...skipped 49 targets... ...updated 9750 targets... Compilation exited abnormally with code 1 at Wed Sep 28 11:50:50 ...failed updating 19 targets... ...skipped 28 targets... ...updated 9785 targets... ******************* end build log *************************************' note that the boost build had 37791 targets while spoost had 37780 37791-37780=11 Any idea why? Be aware that I used bcp without the --cvs switch since I downloaded a clean 1.33.0 tar.gz package for the test - no CVS info in that download. RESULT SUMMARY: targets failed skipped updated boost 37791 19 28 9785 spoost 37780 33 49 9750 diff 11 14 21 35 I have the log files if you are interested in details, but they are large so I don't want to post them in the list. -rw-rw-r-- 1 bjorn bjorn 3513039 Sep 28 08:53 bcp.log -rw-rw-r-- 1 bjorn bjorn 1375140 Sep 28 08:27 boost_build.log -rw-rw-r-- 1 bjorn bjorn 2113028 Sep 28 20:57 spoost_build.log Note how much bigger the spoost_build.log is. There are definently some long error listings in there ;-\ Maybe I should compile a list of the targets that failed, boost and spoost side-by-side. If I post that on the list it may be that somebody see a pattern that may be helpful. Next step anyways is for me to dig in and find the problems. One thought, would it be an idea if bcp was modified so it only replaces files if it actually detect a difference from the file which is going to be replaced on the disk? I have done that with some other code generators, and it is helpfull in combination with incremental build capabilities to avoid rebuilding too much too often. It could be turned on by a command line switch. This may be important if it is not going to be tempting to start modifying the generated source, to save build time.
I'm a bit caught up with the tr1 review at present, so if I become a little unresponce this week you know why :-/
No problem, this is very much a spare time activity for me. No real rush :-) I really appreciate your help John, thanks. Bjørn