Boost logo

Boost :

Subject: [boost] [build][config][geometry] Change in Config preventing generation of the Geometry test results
From: Adam Wulkiewicz (adam.wulkiewicz_at_[hidden])
Date: 2015-05-10 10:37:52


Adam Wulkiewicz wrote:
> Since 2015/04/26 the tests started to dissapear from Geometry summary
> pages for develop branch.
> And now the pages aren't even displayed properly, I see only:
>
> Error extracting file: No matching files were found.
>
<snip>
>
> What may be the reason of such behavior and most importantly do you
> know how to fix it?

I did more research and I found out that this change in Config (from Apr
24, 2015) is preventing the generation of the proper XML output for the
Geometry tests:

https://github.com/boostorg/config/commit/d7e258faf5ca45734a9f0349f2a9decedda50f14

It's because when I'm running tests for the the boost revision
corresponding to this change and Geometry develop the tests for Geometry
aren't listed by b2. If Config isn't tested (e.g. tests are limited to
geometry or geometry|math, etc.) everything is ok. Furthermore if boost
revision is set to the parent commit then the tests for Geometry develop
are listed properly.
More info (reproducing and my output) at the end of the email.
Do you know why the above change may cause the issue or more importantly
how it could be fixed?
This isn't the first time something like this is hapening. Before a
change in Config affected not only Geometry but also Spirit. Do you have
an idea why is this happening and how could this be prevented in the future?
E.g. could it be caused by some error in Build?

Would it be possible to somehow debug the bjam or building scripts to
see why there is a problem?
Is it possible to display some additional bjam debugging info which
could allow to track the issue?
If not then would it be possible to add it?
FYI, the tests are present in the output XML but for them (tag
"test-log") attributes "revision", "test-run" and "test-program" are not
set. So the tests are performed, the log is there in the XML but because
they wasn't somehow marked for execution (listed) the attributes are not
set. This prevents the Regression's boost-report program to generate
summay pages for Geometry. I'm guessing that such situation when the
tests are run but can't be found on the list of the tests for output
could be somehow detected and reported.

Regards,
Adam

P.S.
If you'd like to reproduce it. I'm testing it like this (from BOOST_ROOT):

git checkout 4ba573a
git submodule update
cd libs/geometry
git checkout develop

after this Boost is set to the failing commit and Geometry to develop.
As mentioned above it corresponds to
https://github.com/boostorg/config/commit/d7e258faf5ca45734a9f0349f2a9decedda50f14
Then:

cd ../..
b2 "--debug-configuration" --dump-tests "--limit-tests=geometry|config"
status

you can of course break after all of the tests are listed.

I see:
[some debug output]
[listed tests for other libraries]
boost-test(LINK) "config/has_atomic_lib" :
"libs/config/test/config_info.cpp"
boost-test(COMPILE) "config/config_test_c" :
"libs/config/test/config_test_c.c"
boost-test(RUN) "config/config_test_threaded" :
"libs/config/test/config_test.cpp"
boost-test(RUN) "config/config_test" : "libs/config/test/config_test.cpp"
boost-test(RUN) "config/config_test_no_rtti" :
"libs/config/test/config_test.cpp"
boost-test(RUN) "config/config_test_no_except" :
"libs/config/test/config_test.cpp"
boost-test(RUN) "config/config_info" ["always_show_run_output"] :
"libs/config/test/config_info.cpp"
boost-test(RUN) "config/config_info_threaded" ["always_show_run_output"]
: "libs/config/test/config_info.cpp"
boost-test(RUN) "config/config_info_no_rtti" ["always_show_run_output"]
: "libs/config/test/config_info.cpp"
boost-test(RUN) "config/config_info_no_except"
["always_show_run_output"] : "libs/config/test/config_info.cpp"
boost-test(RUN) "config/math_info" ["always_show_run_output"] :
"libs/config/test/math_info.cpp"
boost-test(RUN) "config/abi_test" : "libs/config/test/abi/abi_test.cpp"
"libs/config/test/abi/main.cpp"
boost-test(RUN) "config/limits_test" : "libs/config/test/limits_test.cpp"
boost-test(RUN) "config/config_link_test" : "libs/config/test/link/main.cpp"
boost-test(COMPILE_FAIL) "config/test_thread_fail1" :
"libs/config/test/threads/test_thread_fail1.cpp"
boost-test(COMPILE_FAIL) "config/test_thread_fail2" :
"libs/config/test/threads/test_thread_fail2.cpp"
boost-test(COMPILE) "config/boost_fallthrough_test" :
"libs/config/test/boost_fallthrough_test.cpp"
boost-test(COMPILE) "config/helper_macro_test" :
"libs/config/test/helper_macro_test.cpp"
boost-test(RUN) "config/cstdint_test" : "libs/config/test/cstdint_test.cpp"
boost-test(RUN) "config/cstdint_test2" :
"libs/config/test/cstdint_test2.cpp"
boost-test(COMPILE) "config/cstdint_include_test" :
"libs/config/test/cstdint_include_test.cpp"
boost-test(RUN) "config/config_build_check" :
"libs/config/test/config_build_check.cpp"
boost-test(RUN) "geometry/index/varray_old" :
"libs/geometry/index/test/varray_old.cpp"
boost-test(RUN) "geometry/index/varray" :
"libs/geometry/index/test/varray.cpp"
     - has_atomic_lib builds : no
     - Clang implicit fallthrough : no
     - Boost.Config Feature Check: int128 : no
     - Boost.Config Feature Check: cxx11_constexpr : no
     - Boost.Config Feature Check: cxx11_user_defined_literals : no
...patience...

Those are the only 2 tests for Geometry. Those are the only ones that
are currently displayed on the website.
Then go to the Boost revision right before the above one and execute the
tests again:

git checkout 826b356
git submodule update
cd libs/geometry
git checkout develop
cd ../..
b2 "--debug-configuration" --dump-tests "--limit-tests=geometry|config"
status

Now I can see:
[some debug output]
     - Boost.Config Feature Check: int128 : no (cached)
     - Boost.Config Feature Check: cxx11_constexpr : no (cached)
     - Boost.Config Feature Check: cxx11_user_defined_literals : no (cached)
[listed tests for other libraries]
boost-test(COMPILE) "config/config_test_c" :
"libs/config/test/config_test_c.c"
boost-test(RUN) "config/config_test_threaded" :
"libs/config/test/config_test.cpp"
boost-test(RUN) "config/config_test" : "libs/config/test/config_test.cpp"
boost-test(RUN) "config/config_test_no_rtti" :
"libs/config/test/config_test.cpp"
boost-test(RUN) "config/config_test_no_except" :
"libs/config/test/config_test.cpp"
boost-test(RUN) "config/config_info" ["always_show_run_output"] :
"libs/config/test/config_info.cpp"
boost-test(RUN) "config/config_info_threaded" ["always_show_run_output"]
: "libs/config/test/config_info.cpp"
boost-test(RUN) "config/config_info_no_rtti" ["always_show_run_output"]
: "libs/config/test/config_info.cpp"
boost-test(RUN) "config/config_info_no_except"
["always_show_run_output"] : "libs/config/test/config_info.cpp"
boost-test(RUN) "config/math_info" ["always_show_run_output"] :
"libs/config/test/math_info.cpp"
boost-test(RUN) "config/abi_test" : "libs/config/test/abi/abi_test.cpp"
"libs/config/test/abi/main.cpp"
boost-test(RUN) "config/limits_test" : "libs/config/test/limits_test.cpp"
boost-test(RUN) "config/config_link_test" : "libs/config/test/link/main.cpp"
boost-test(COMPILE_FAIL) "config/test_thread_fail1" :
"libs/config/test/threads/test_thread_fail1.cpp"
boost-test(COMPILE_FAIL) "config/test_thread_fail2" :
"libs/config/test/threads/test_thread_fail2.cpp"
boost-test(COMPILE) "config/boost_fallthrough_test" :
"libs/config/test/boost_fallthrough_test.cpp"
boost-test(COMPILE) "config/helper_macro_test" :
"libs/config/test/helper_macro_test.cpp"
boost-test(RUN) "config/cstdint_test" : "libs/config/test/cstdint_test.cpp"
boost-test(RUN) "config/cstdint_test2" :
"libs/config/test/cstdint_test2.cpp"
boost-test(COMPILE) "config/cstdint_include_test" :
"libs/config/test/cstdint_include_test.cpp"
boost-test(RUN) "config/config_build_check" :
"libs/config/test/config_build_check.cpp"
boost-test(RUN) "geometry/index/varray_old" :
"libs/geometry/index/test/varray_old.cpp"
boost-test(RUN) "geometry/index/varray" :
"libs/geometry/index/test/varray.cpp"
boost-test(RUN) "config/link_test_test" : "libs/config/test/link/main.cpp"
boost-test(RUN) "geometry/access" : "libs/geometry/test/core/access.cpp"
boost-test(RUN) "geometry/coordinate_dimension" :
"libs/geometry/test/core/coordinate_dimension.cpp"
boost-test(RUN) "geometry/coordinate_system" :
"libs/geometry/test/core/coordinate_system.cpp"
boost-test(RUN) "geometry/coordinate_type" :
"libs/geometry/test/core/coordinate_type.cpp"
[the rest of the tests for Geometry]
...patience...

So AFAIU the issue can be indeed related to the checks for has_atomic_lib.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk