f0d338d64482d8a22850f5bccde0d98a5f3e86be
[platform/upstream/libzypp.git] / tests / zypp / base / Glob_test.cc
1 #include "TestSetup.h"
2 #include "zypp/Pathname.h"
3 #include "zypp/Glob.h"
4
5 #define BOOST_TEST_MODULE Glob
6
7 static Pathname TEST_ROOT( TESTS_SRC_DIR"/zypp/base/Glob_test.dat" );
8
9 using filesystem::Glob;
10
11 BOOST_AUTO_TEST_CASE(Glob_default)
12 {
13   // enable loging for the scope of this block:
14   // base::LogControl::TmpLineWriter shutUp( new log::FileLineWriter( "-" ) );
15   Glob q;
16   BOOST_CHECK( q.empty() );
17   BOOST_CHECK( q.size() == 0 );
18   BOOST_CHECK_EQUAL( q.begin(), q.end() );
19   BOOST_CHECK( q.defaultFlags() == Glob::Flags() );
20
21   q.add( TEST_ROOT/"file" );
22   BOOST_CHECK( ! q.empty() );
23   BOOST_CHECK( q.size() == 1 );
24   BOOST_CHECK_NE( q.begin(), q.end() );
25   BOOST_CHECK_EQUAL( *q.begin(), TEST_ROOT/"file" );
26
27   q.reset( Glob::_BRACE );
28   BOOST_CHECK( q.empty() );
29   BOOST_CHECK( q.size() == 0 );
30   BOOST_CHECK_EQUAL( q.begin(), q.end() );
31   BOOST_CHECK( q.defaultFlags() == Glob::_BRACE );
32
33   q.add( TEST_ROOT/"file*" );
34   BOOST_CHECK( q.size() == 3 );
35
36   q.add( TEST_ROOT/"*{.xml,.xml.gz}" );
37   BOOST_CHECK( q.size() == 5 );
38
39   q.clear(); // no flags reset: Glob::_BRACE active
40   BOOST_CHECK( q.size() == 0 );
41
42   q.add( TEST_ROOT/"*{.xml,.xml.gz}" );
43   BOOST_CHECK( q.size() == 2 );
44
45   q.reset(); // flags reset: Glob::_BRACE off
46   BOOST_CHECK( q.size() == 0 );
47
48   q.add( TEST_ROOT/"*{.xml,.xml.gz}" );
49   BOOST_CHECK( q.size() == 0 );
50 }
51
52 BOOST_AUTO_TEST_CASE(Glob_static)
53 {
54   std::set<Pathname> q;
55   Glob::collect( TEST_ROOT/"*{.xml,.xml.gz}", Glob::_BRACE, std::inserter( q, q.begin() ) );
56   BOOST_REQUIRE( q.size() == 2 );
57   BOOST_CHECK_EQUAL( *q.begin(), TEST_ROOT/"file.xml" );
58   BOOST_CHECK_EQUAL( *++q.begin(), TEST_ROOT/"file.xml.gz" );
59 }