3 #include <zypp/PoolQuery.h>
4 #include <zypp/target/rpm/librpmDb.h>
5 #include <zypp/parser/ProductFileReader.h>
7 #include "zypp/sat/WhatObsoletes.h"
8 #include "zypp/ExternalProgram.h"
10 ///////////////////////////////////////////////////////////////////
12 //static const Pathname sysRoot( getenv("SYSROOT") ? getenv("SYSROOT") : "/Local/ROOT" );
13 //static const Pathname sysRoot( "/tmp/ToolScanRepos" );
14 static const Pathname sysRoot( "/" );
16 ///////////////////////////////////////////////////////////////////
22 //zypp::base::LogControl::TmpLineWriter shutUp;
23 //getZYpp()->resolver()->setOnlyRequires( true );
24 rres = getZYpp()->resolver()->resolvePool();
28 ERR << "resolve " << rres << endl;
29 getZYpp()->resolver()->problems();
32 MIL << "resolve " << rres << endl;
40 //zypp::base::LogControl::TmpLineWriter shutUp;
41 Measure x( "Upgrade" );
42 rres = getZYpp()->resolver()->doUpgrade();
46 Measure x( "Upgrade Error" );
47 ERR << "upgrade " << rres << endl;
48 getZYpp()->resolver()->problems();
51 MIL << "upgrade " << rres << endl;
59 void writeUpgradeTestcase();
63 std::ostream & operator<<( std::ostream & str, const sat::Solvable::SplitIdent & obj )
65 str << "{" << obj.ident() << "}{" << obj.kind() << "}{" << obj.name () << "}" << endl;
70 std::ostream & dumpOn( std::ostream & str, const Url & obj )
72 str << "{" << obj.getHost() << "}{" << obj.getPort() << "}";
77 int main( int argc, char * argv[] )
80 zypp::base::LogControl::instance().logToStdErr();
81 INT << "===[START]==========================================" << endl;
82 ///////////////////////////////////////////////////////////////////
84 ::unsetenv( "ZYPP_CONF" );
85 ResPool pool( ResPool::instance() );
86 sat::Pool satpool( sat::Pool::instance() );
87 ///////////////////////////////////////////////////////////////////
88 dumpRange( WAR << "satpool.multiversion " , satpool.multiversionBegin(), satpool.multiversionEnd() ) << endl;
89 TestSetup::LoadSystemAt( sysRoot, Arch_i586 );
90 ///////////////////////////////////////////////////////////////////
96 argc = arraySize(fix);
97 for ( ; argc; --argc,++argv )
99 ui::Selectable::Ptr p( getSel<Package>( *argv ) );
101 USR << p->setToDelete() << endl;
106 std::set<PoolItem> todel;
108 getZYpp()->resolver()->setCleandepsOnRemove( false );
109 SEC << "=== Solve noclean:" << endl;
111 std::copy( make_filter_begin<resfilter::ByTransact>(pool),
112 make_filter_end<resfilter::ByTransact>(pool),
113 std::inserter( todel, todel.begin() ) );
114 WAR << todel << endl;
117 getZYpp()->resolver()->setCleandepsOnRemove( true );
118 SEC << "=== Solve clean:" << endl;
120 SEC << "========================================================" << endl;
121 for_( it, make_filter_begin<resfilter::ByTransact>(pool), make_filter_end<resfilter::ByTransact>(pool) )
123 ( todel.find( *it ) == todel.end() ? INT : USR ) << *it << endl;
125 SEC << "========================================================" << endl;
130 ///////////////////////////////////////////////////////////////////
131 INT << "===[END]============================================" << endl << endl;
132 zypp::base::LogControl::instance().logNothing();
135 catch ( const Exception & exp )
137 INT << exp << endl << exp.historyAsString();