6 #include <boost/test/auto_unit_test.hpp>
8 #include "zypp/OnMediaLocation.h"
9 #include "zypp/parser/yum/PatchesFileReader.h"
11 #include "zypp/PathInfo.h"
15 using namespace boost::unit_test;
17 using namespace zypp::parser::yum;
19 #define DATADIR (Pathname(TESTS_SRC_DIR) + "/parser/yum/data")
27 bool callback( const OnMediaLocation &loc, const string &id )
29 items.push_back( make_pair( id, loc ) );
30 //items.push_back(loc);
31 //cout << items.size() << endl;
35 vector<pair<string, OnMediaLocation> > items;
36 //vector<OnMediaLocation> items;
39 BOOST_AUTO_TEST_CASE(patches_read_test)
41 list<Pathname> entries;
42 if ( filesystem::readdir( entries, DATADIR, false ) != 0 )
43 ZYPP_THROW(Exception("failed to read directory"));
45 for ( list<Pathname>::const_iterator it = entries.begin(); it != entries.end(); ++it )
48 //cout << file.basename().substr(0, 7) << " " << file.extension() << endl;
49 if ( ( file.basename().substr(0, 7) == "patches" ) && (file.extension() == ".xml" ) )
51 //cout << *it << endl;
54 PatchesFileReader( file, bind( &Collector::callback, &collect, _1, _2 ));
56 std::ifstream ifs( file.extend(".solution").asString().c_str() );
57 cout << "Comparing to " << file.extend(".solution") << endl;
58 unsigned int count = 0;
59 while ( ifs && ! ifs.eof() && count < collect.items.size() )
67 BOOST_CHECK_EQUAL( collect.items[count].first, id);
68 getline(ifs, checksum_type);
69 getline(ifs, checksum);
70 BOOST_CHECK_EQUAL( collect.items[count].second.checksum(), CheckSum(checksum_type, checksum) );
72 BOOST_CHECK_EQUAL( collect.items[count].second.filename(), Pathname(loc) );
76 BOOST_CHECK_EQUAL( collect.items.size(), count );
81 // vim: set ts=2 sts=2 sw=2 ai et: