[LAD] Testdriven development with JACK?

Gabriel Beddingfield gabrbedd at gmail.com
Thu Jul 28 01:40:07 UTC 2011


On 07/27/2011 05:24 PM, Adrian Knoth wrote:
> I recently started hacking on a jack-driven matrix mixer (goals so far:
> GUI, maybe network controls (OSC?), maybe LV2 host), and I wonder if
> there are "frameworks" for test-driven development, so I can come up
> with unit and acceptance tests while implementing new functionality.

I use the Boost unit test framework.  Other LA projects are using cpptest.

> Has anyone ever done test-first with jack? One could start jackd in
> dummy mode with a random name, start some clients, wire inputs to
> outputs and compare the generated signal to the expected result, maybe
> with some fuzzy logic to allow for arbitrary delays.

Since I'm usually not running tests while running a stable audio 
set-up... I usually just make sure that jackd is started before my tests 
run.  The down-side of this is that build servers won't run the tests 
because they're /not/ going to start jackd.

> OTOH, if there are existing mocking libraries for jackd, things might be
> a bit more straight forward (provide an input buffer to be returned by
> jack_port_get_buffer, call the process function and check the result
> that's written to the output buffer).

I've been hankering to do this for some time.  I.e. provide a library:

     /usr/share/jacksquat/libjack.so.0

And then run your tests with this:

     LD_LIBRARY_PATH="/usr/share/jackquat" ./run_all_tests

The mock library wouldn't necc. /work/... just simply do just enough for 
testing.

-gabriel



More information about the Linux-audio-dev mailing list