On Wednesday 01 October 2008 18:24:56 Michael Andres wrote:
> - added tests/include/TestSetup.h to ease building a test environment below
> some tempdir. Currently supports easy setup of Target, RepoManager and
> loading data (raw metadata and .solv files) into the pool.
>
>
> That's how it currently looks like:
>
> #include "TestSetup.h"
>
> BOOST_AUTO_TEST_CASE(WhatProvides)
> {
> TestSetup test( Arch_x86_64 ); // use x86_64 as system arch
> test.loadTarget(); // initialize and load target
> test.loadRepo( TESTS_SRC_DIR"/data/openSUSE-11.1" );
>
> This is all you need to setup Target, RepoManager below some temp directory
> and load the raw metadata into the pool.
>
> In case you want to setup the system below some fix directory, use:
>
> TestSetup test( "/tmp/mydir", Arch_x86_64 );
I just want to point out that the lifetime of the TestSetup instance is also the lifetime of the temp. directory!
So if you want to setup a common environment for many test cases, you
CAN'T DO IT LIKE THIS:
BOOST_AUTO_TEST_CASE(init)
{
TestSetup test( Arch_x86_64 );
//test.loadTarget(); // initialize and load target
test.loadRepo( TESTS_SRC_DIR "/data/openSUSE-11.1", "opensuse" );
test.loadRepo( TESTS_SRC_DIR "/data/OBS_zypp_svn-11.1", "zyppsvn" );
test.loadRepo( TESTS_SRC_DIR "/data/OBS:VirtualBox-11.1", "vbox" );
dumpRange( USR, test.pool().knownRepositoriesBegin(),
test.pool().knownRepositoriesEnd() );
USR << "pool: " << test.pool() << endl;
}
Leaving the init function the directory gets deleted, which may result in strange effects.
Best might be to have a global static instance, so you can also access all components and convenience methods we may add.
static TestSetup test( Arch_x86_64 );
BOOST_AUTO_TEST_CASE(init)
{
//test.loadTarget(); // initialize and load target
test.loadRepo( TESTS_SRC_DIR "/data/openSUSE-11.1", "opensuse" );
test.loadRepo( TESTS_SRC_DIR "/data/OBS_zypp_svn-11.1", "zyppsvn" );
test.loadRepo( TESTS_SRC_DIR "/data/OBS:VirtualBox-11.1", "vbox" );
dumpRange( USR, test.pool().knownRepositoriesBegin(),
test.pool().knownRepositoriesEnd() );
USR << "pool: " << test.pool() << endl;
}
--
cu,
Michael Andres
+------------------------------------------------------------------+
Key fingerprint = 2DFA 5D73 18B1 E7EF A862 27AC 3FB8 9E3A 27C6 B0E4
+------------------------------------------------------------------+
Michael Andres YaST Development ma@novell.com
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg)
Maxfeldstrasse 5, D-90409 Nuernberg, Germany, ++49 (0)911 - 740 53-0
+------------------------------------------------------------------+