[zeromq-dev] C++ assertion failed with Java client

john skaller skaller at users.sourceforge.net
Thu Feb 9 02:52:31 CET 2012

On 09/02/2012, at 11:55 AM, Frittum Johannes wrote:

>> Precisely. It is about lowering the latency between change and validation.
> But don't forget to automatically unit-test on every check in.

Not enough.  0MQ isn't really amenable to unit testing. You need to actually
create a network and check it performs as expected, i.e. a small scale
integration test. Some of the existing tests do that using "inproc",
but that's suspicious because there's a lack of asynchronicity.

> Maybe some kind of continuous delivery pipeline could be setup for ZMQ...
> Therefore automated tests (unit/component, functional, non-functional, performance) would be needed.

Absolutely. I have a process manager working now, that can start up and kill sets of
processes running Guide examples. It's not ready for the big time yet but at least
it isn't segfaulting now :)

> Maybe I look at it if I have more time to spare - At least I could try to set up the pipeline to poll the repo for changes, build automatically from that and report about its outcome a few minutes later online. Then we can add tests gradually for every function that is added/changed. That way the test base can grow. We get automatic health feedback from the system

Yes, but it isn't functions that need testing, as configurations.
The different socket types all use the same factory function.
We need to check all the combinations, including some that are not
supposed to work, and with multiple fanin/fanout etc.

The best set of such tests already in existence is the examples in the Guide.
Plus some tests using Python binding.

> If there is interest in that I can have a look.

Absolutely. Just compiling the sources on different platforms would be a good start!
Including all the guide examples. 

john skaller
skaller at users.sourceforge.net

More information about the zeromq-dev mailing list