f39a6347b68c9489ee548f6e851d439cd99dc195
[platform/upstream/libzypp.git] / devel / devel.ma / Test.cc
1 #include "Tools.h"
2 #include <zypp/ResObjects.h>
3
4 #include <zypp/sat/LookupAttr.h>
5 #include <zypp/PoolQuery.h>
6 #include <zypp/sat/AttrMatcher.h>
7
8 static const Pathname sysRoot( "/tmp/ToolScanRepos" );
9
10 void addInstall( const std::string & pkgspec_r )
11 {
12   bool rewrote( false );
13   Capability pkgspec( Capability::guessPackageSpec( pkgspec_r, rewrote ) );
14   MIL << "Add '" << pkgspec << "' for '" << pkgspec_r << "'" << endl;
15   ResPool::instance().resolver().addRequire( pkgspec );
16 }
17
18 void addConflict( const std::string & pkgspec_r )
19 {
20   bool rewrote( false );
21   Capability pkgspec( Capability::guessPackageSpec( pkgspec_r, rewrote ) );
22   MIL << "Con '" << pkgspec << "' for '" << pkgspec_r << "'" << endl;
23   ResPool::instance().resolver().addConflict( pkgspec );
24 }
25
26 bool solve()
27 {
28   bool rres = false;
29   {
30     //zypp::base::LogControl::TmpLineWriter shutUp;
31     //ResPool::instance().resolver().setOnlyRequires( true );
32     rres = ResPool::instance().resolver().resolvePool();
33   }
34   if ( ! rres )
35   {
36     ERR << "resolve " << rres << endl;
37     ResPool::instance().resolver().problems();
38     return false;
39   }
40   MIL << "resolve " << rres << endl;
41   vdumpPoolStats( USR << "Transacting:"<< endl,
42                   make_filter_begin<resfilter::ByTransact>(ResPool::instance()),
43                   make_filter_end<resfilter::ByTransact>(ResPool::instance()) ) << endl;
44
45   return true;
46 }
47
48 bool install()
49 {
50   ZYppCommitPolicy pol;
51   pol.dryRun( true );
52   pol.rpmInstFlags( pol.rpmInstFlags().setFlag( target::rpm::RPMINST_JUSTDB ) );
53   SEC << getZYpp()->commit( pol ) << endl;
54   return true;
55 }
56
57
58 /******************************************************************
59 **
60 **      FUNCTION NAME : main
61 **      FUNCTION TYPE : int
62 */
63 int main( int argc, char * argv[] )
64 {
65   INT << "===[START]==========================================" << endl;
66   ///////////////////////////////////////////////////////////////////
67   if ( sysRoot == "/" )
68     ::unsetenv( "ZYPP_CONF" );
69   TestSetup::LoadSystemAt( sysRoot, Arch_x86_64 );
70   ///////////////////////////////////////////////////////////////////
71   ResPool   pool( ResPool::instance() );
72   sat::Pool satpool( sat::Pool::instance() );
73   ///////////////////////////////////////////////////////////////////
74
75 //   addConflict( "kernel-default" );
76 //   addConflict( "kernel-default-base" );
77   addInstall( "test");
78   solve();
79
80   INT << "===[END]============================================" << endl << endl;
81   return 0;
82 }
83