Boost regression testing on Android

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Boost regression testing on Android

Dmitry Moskalchuk
Hi all,

We've just published CrystaX NDK 10.1
(https://www.crystax.net/android/ndk) which is a drop-in replacement for
the Google's Android NDK, and we've included prebuilt Boost 1.57.0
libraries there, to make life easier for those developers who want to
use Boost on Android.

The reason I write here is that in CrystaX NDK we were able to build
Boost for Android without any changes in Boost sources, just because
CrystaX NDK makes Android much more POSIX-conformant than original
Android is, and Boost just works on top of it. If you're interested how
we did it, please read description of CrystaX NDK release on
https://www.crystax.net/android/ndk.

Another important point is that we were able to run Boost regression
tests on Android devices - again, without any changes in Boost sources,
just providing own 'adbrunner' script as tests launcher. The only thing
needed is to plug one or more Android devices to USB ports and/or run
one or more Android emulators and then run script for Boost testing
provided by CrystaX NDK. As long as those devices/emulators are
available by ADB, Boost regressions tests will run on all of them.

As far as I know, Boost is not yet officially supported on Android
platform, mainly because of lack of regular regression testing
procedure. I wonder if someone would be interested in our results and,
if yes, would he/she like to participate in further Boost-on-Android
improvements?

--
Dmitry Moskalchuk




_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

signature.asc (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Boost regression testing on Android

Robert Ramey
Another important point is that we were able to run Boost regression
tests on Android devices - again, without any changes in Boost sources,
...
very, very interesting results for lots of reasons.  Could you try setting
up the boost regression testing on your platforms so that the results
show up on the testing matrix? http://www.boost.org/development/tests/develop/developer/serialization.html
This would be very interesting to anyone considering using your platform.

Robert Ramey
Reply | Threaded
Open this post in threaded view
|

Re: Boost regression testing on Android

Dmitry Moskalchuk
Sure, we have HTML results of regression tests produced by
library_status utility; I just need advice how to integrate those
results into testing matrix you've mentioned.
Maybe, some article about that?

--
Dmitry Moskalchuk

On 21/01/15 19:50, Robert Ramey wrote:

>> Another important point is that we were able to run Boost regression
>> tests on Android devices - again, without any changes in Boost sources,
>> ...
> very, very interesting results for lots of reasons.  Could you try setting
> up the boost regression testing on your platforms so that the results
> show up on the testing matrix?
> http://www.boost.org/development/tests/develop/developer/serialization.html
> This would be very interesting to anyone considering using your platform.
>
> Robert Ramey
>
>
>
> --
> View this message in context: http://boost.2283326.n4.nabble.com/Boost-regression-testing-on-Android-tp4671428p4671433.html
> Sent from the Boost - Dev mailing list archive at Nabble.com.
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

signature.asc (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Boost regression testing on Android

Antony Polukhin
2015-01-21 21:00 GMT+04:00 Dmitry Moskalchuk <[hidden email]>:

> Sure, we have HTML results of regression tests produced by
> library_status utility; I just need advice how to integrate those
> results into testing matrix you've mentioned.
> Maybe, some article about that?
>

I'm very interested in your adbrunner and run.py scripts. Whole
regression/armeabi-v7a-hard folder looks interesting to me.

Could you please provide the sources? I'll do my best to integrate your
work into the Boost regression testing suit and will help you with docs.

--
Best regards,
Antony Polukhin

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Boost regression testing on Android

Dmitry Moskalchuk
Well, test script itself is at
https://github.com/crystax/android-platform-ndk/blob/master/tests/run-boost-tests.
It is part of CrystaX NDK file tree and it do many things to setup
environment for Boost testing. As you can see, it also generate several
shell script wrappers to be able run tests; one of such wrappers is
adbrunner. Content of regression/armeabi-v7a-hard folder is fully
generated on the fly by run-boost-tests script.

However, I'd recommend to not use this script right now since I'm going
to refactor it a bit - at least, extract adbrunner and do several other
changes. Please wait several days and I'll provide full sources and
instructions on how to run Boost regression testing on Android.

BTW, if you'll look on
http://boost.crystax.net/master/developer/summary.html, you'll see clang
toolchains indicated as 'clang-linux-3.4' and 'clang-linux-3.5'. It goes
from the fact that Boost build scripts suppose there are just two types
of clang - clang-darwin and clang-linux, and switch between them based
on host OS condition, which is wrong. It should be based on target OS.
Look here:
https://github.com/boostorg/build/blob/develop/src/tools/clang.jam. I
suppose there should be smth like this:

if $(target-os) = darwin
    toolset.using clang-darwin .....
else if $(target-os) = linux
    toolset.using clang-linux ...
else if $(target-os) = android
    toolset.using clang-android ....

Or smth like that. I don't know bjam syntax good, so it's just to
indicate my idea. I'd be appreciate if you could fix this while I'm
finishing with scripts refactoring.

Finally, when I finish with my task, we could modify Boost jam scripts
to add support of NDK compilers directly instead of relying on wrappers
for g++/clang++.

--
Dmitry Moskalchuk

On 04/02/15 14:17, Antony Polukhin wrote:

> 2015-01-21 21:00 GMT+04:00 Dmitry Moskalchuk <[hidden email]>:
>
>> Sure, we have HTML results of regression tests produced by
>> library_status utility; I just need advice how to integrate those
>> results into testing matrix you've mentioned.
>> Maybe, some article about that?
>>
> I'm very interested in your adbrunner and run.py scripts. Whole
> regression/armeabi-v7a-hard folder looks interesting to me.
>
> Could you please provide the sources? I'll do my best to integrate your
> work into the Boost regression testing suit and will help you with docs.
>



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

signature.asc (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Boost regression testing on Android

Antony Polukhin
2015-02-04 16:59 GMT+04:00 Dmitry Moskalchuk <[hidden email]>:

> Well, test script itself is at
>
> https://github.com/crystax/android-platform-ndk/blob/master/tests/run-boost-tests
> .
> It is part of CrystaX NDK file tree and it do many things to setup
> environment for Boost testing. As you can see, it also generate several
> shell script wrappers to be able run tests; one of such wrappers is
> adbrunner. Content of regression/armeabi-v7a-hard folder is fully
> generated on the fly by run-boost-tests script.
>
> However, I'd recommend to not use this script right now since I'm going
> to refactor it a bit - at least, extract adbrunner and do several other
> changes. Please wait several days and I'll provide full sources and
> instructions on how to run Boost regression testing on Android.
>

Thanks for doing this!

BTW, I'm not quite sure about BSD licensed code usage in Boost. It would be
much simpler to integrate Boost licensed scripts into the Boost. Otherwise,
probably there'll be a long and boring conversation with lawyers from
Software Freedom Conservancy.


> BTW, if you'll look on
> http://boost.crystax.net/master/developer/summary.html, you'll see clang
> toolchains indicated as 'clang-linux-3.4' and 'clang-linux-3.5'. It goes
> from the fact that Boost build scripts suppose there are just two types
> of clang - clang-darwin and clang-linux, and switch between them based
> on host OS condition, which is wrong. It should be based on target OS.
> Look here:
> https://github.com/boostorg/build/blob/develop/src/tools/clang.jam. I
> suppose there should be smth like this:
>
> if $(target-os) = darwin
>     toolset.using clang-darwin .....
> else if $(target-os) = linux
>     toolset.using clang-linux ...
> else if $(target-os) = android
>     toolset.using clang-android ....
>
> Or smth like that. I don't know bjam syntax good, so it's just to
> indicate my idea. I'd be appreciate if you could fix this while I'm
> finishing with scripts refactoring.
>
> Finally, when I finish with my task, we could modify Boost jam scripts
> to add support of NDK compilers directly instead of relying on wrappers
> for g++/clang++.
>

OK, I'll forward your proposal directly to the boost-build developers.
There's a mailing list specially for boost build related questions and
proposals: http://lists.boost.org/mailman/listinfo.cgi/boost-build

--
Best regards,
Antony Polukhin

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Boost regression testing on Android

Dmitry Moskalchuk
On 04/02/15 20:25, Antony Polukhin wrote:
> Thanks for doing this!
>
> BTW, I'm not quite sure about BSD licensed code usage in Boost. It would be
> much simpler to integrate Boost licensed scripts into the Boost. Otherwise,
> probably there'll be a long and boring conversation with lawyers from
> Software Freedom Conservancy.

It's not a problem at all. That script is licensed under BSD license
since it's part of CrystaX NDK, where we use BSD 2-clause license for
everything we produce. However, if you want integrate it into a Boost,
it anyway will need kind of rewriting of some parts, and in this case I
could re-license it since I'm the only author of that script.

> OK, I'll forward your proposal directly to the boost-build developers.
> There's a mailing list specially for boost build related questions and
> proposals: http://lists.boost.org/mailman/listinfo.cgi/boost-build
>

Thanks for letting me know, I'll subscribe to it.

--
Dmitry Moskalchuk




_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

signature.asc (1K) Download Attachment