Boost logo

Boost Users :

Subject: Re: [Boost-users] unit test: apply same test case to different fixtures
From: Gennadiy Rozental (rogeeff_at_[hidden])
Date: 2009-07-07 09:46:04


Hicham Mouline <hicham <at> mouline.org> writes:

>
> I have auto test cases that can take fixtures whose members they access in a
> uniform way.
>
> Say struct F1... Fn
>
> BOOST_FIXTURE_TEST_CASE( test_case1 , F1 ... Fn )
> {
> //same code for all Fi
> }
>
> Is there a way to do this?
>
> Regards,
>

1. Make Fi inherit from Fi+1.
2. Use something like this:

template<typename T1,typename T2>
struct FixtureCollector : T1, T2 {};

You can now either implement above using variardic templates or implement macro
that will convert PP sequence into sequence of FixtureCollector<T1,...>:

For example

FIXTURES((T1)(T2)(T3)) should generate:

FixtureCollector<T1,FixtureCollector<T2,T3> >

use it :

BOOST_FIXTURE_TEST_CASE( test_case1 , FIXTURES((T1)(T2)(T3)) )
{
}

Gennadiy


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net