Author: schubi2 Date: Fri Apr 18 13:20:08 2008 New Revision: 9698 URL: http://svn.opensuse.org/viewcvs/zypp?rev=9698&view=rev Log: new call resolveQueue added Added: trunk/libzypp-testsuite/solver/data.deptestomatic/queue/ trunk/libzypp-testsuite/solver/data.deptestomatic/queue/exercise-1-system.xml.gz (with props) trunk/libzypp-testsuite/solver/data.deptestomatic/queue/install-1-test.xml trunk/libzypp-testsuite/solver/data.deptestomatic/queue/install-packages.xml.gz (with props) Modified: trunk/libzypp-testsuite/solver/src/deptestomatic.cc Added: trunk/libzypp-testsuite/solver/data.deptestomatic/queue/exercise-1-system.xml.gz URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp-testsuite/solver/data.deptestomatic/queue/exercise-1-system.xml.gz?rev=9698&view=auto ============================================================================== Binary file - no diff available. Added: trunk/libzypp-testsuite/solver/data.deptestomatic/queue/install-1-test.xml URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp-testsuite/solver/data.deptestomatic/queue/install-1-test.xml?rev=9698&view=auto ============================================================================== --- trunk/libzypp-testsuite/solver/data.deptestomatic/queue/install-1-test.xml (added) +++ trunk/libzypp-testsuite/solver/data.deptestomatic/queue/install-1-test.xml Fri Apr 18 13:20:08 2008 @@ -0,0 +1,10 @@ +<?xml version="1.0"?> +<test> +<setup> + <system file="exercise-1-system.xml.gz"/> + <channel name="test" file="install-packages.xml.gz"/> +</setup> +<trial> + <addQueueInstall name="A"/> +</trial> +</test> Added: trunk/libzypp-testsuite/solver/data.deptestomatic/queue/install-packages.xml.gz URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp-testsuite/solver/data.deptestomatic/queue/install-packages.xml.gz?rev=9698&view=auto ============================================================================== Binary file - no diff available. Modified: trunk/libzypp-testsuite/solver/src/deptestomatic.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp-testsuite/solver/src/deptestomatic.cc?rev=9698&r1=9697&r2=9698&view=diff ============================================================================== --- trunk/libzypp-testsuite/solver/src/deptestomatic.cc (original) +++ trunk/libzypp-testsuite/solver/src/deptestomatic.cc Fri Apr 18 13:20:08 2008 @@ -76,6 +76,12 @@ #include "zypp/solver/detail/Resolver.h" #include "zypp/solver/detail/InstallOrder.h" #include "zypp/solver/detail/Testcase.h" +#include "zypp/solver/detail/SolverQueueItem.h" +#include "zypp/solver/detail/SolverQueueItemDelete.h" +#include "zypp/solver/detail/SolverQueueItemInstall.h" +#include "zypp/solver/detail/SolverQueueItemInstallOneOf.h" +#include "zypp/solver/detail/SolverQueueItemLock.h" +#include "zypp/solver/detail/SolverQueueItemUpdate.h" #include "KeyRingCallbacks.h" #include "XmlNode.h" @@ -98,6 +104,7 @@ static ZYpp::Ptr God; static RepoManager manager; static bool forceResolve; +static zypp::solver::detail::SolverQueueItemList solverQueue; typedef set<PoolItem> PoolItemSet; @@ -297,20 +304,20 @@ if (instorder) { cout << endl; RESULT << "Installation Order:" << endl << endl; - solver::detail::PoolItemSet dummy; + zypp::solver::detail::PoolItemSet dummy; - solver::detail::PoolItemSet insset( install.begin(), install.end() ); + zypp::solver::detail::PoolItemSet insset( install.begin(), install.end() ); int counter = 1; InstallOrder order( pool, insset, dummy ); // sort according to prereq order.init(); - for ( solver::detail::PoolItemList items = order.computeNextSet(); ! items.empty(); items = order.computeNextSet() ) + for ( zypp::solver::detail::PoolItemList items = order.computeNextSet(); ! items.empty(); items = order.computeNextSet() ) { RESULT << endl; RESULT << counter << ". set with " << items.size() << " resolvables" << endl; PoolItemOrderSet orderedset; - for ( solver::detail::PoolItemList::iterator iter = items.begin(); iter != items.end(); ++iter ) + for ( zypp::solver::detail::PoolItemList::iterator iter = items.begin(); iter != items.end(); ++iter ) { orderedset.insert( *iter ); } @@ -530,7 +537,7 @@ // collect all installed items in a set void -print_pool( solver::detail::Resolver_Ptr resolver, const string & prefix = "", bool show_all = true, string show_licence = "false", bool verbose = false ) +print_pool( zypp::solver::detail::Resolver_Ptr resolver, const string & prefix = "", bool show_all = true, string show_licence = "false", bool verbose = false ) { SortItem info( show_all ); cout << "Current pool:" << endl; @@ -827,7 +834,7 @@ exit (0); } - solver::detail::Resolver_Ptr resolver = new solver::detail::Resolver( pool ); + zypp::solver::detail::Resolver_Ptr resolver = new zypp::solver::detail::Resolver( pool ); resolver->setTesting ( true ); // continue despite missing target resolver->setForceResolve( forceResolve ); @@ -846,11 +853,8 @@ string note = node->getContent (); cout << "NOTE: " << note << endl; - } else if (node->equals ("verify")) { - verify = true; - } else if (node->equals ("current")) { // unsupported string source_alias = node->getProp ("channel"); @@ -1154,6 +1158,16 @@ else { cerr << "Unknown item " << source_alias << "::" << name << endl; } + } else if (node->equals ("addQueueInstall")) { + string name = node->getProp ("name"); + + if (name.empty()) + { + cerr << "addQueueInstall need 'name' parameter" << endl; + return; + } + zypp::solver::detail::SolverQueueItemInstall_Ptr install = new zypp::solver::detail::SolverQueueItemInstall(pool, name); + solverQueue.push_back (install); } else if (node->equals ("createTestcase")) { string path = node->getProp ("path"); if (path.empty()) @@ -1170,10 +1184,14 @@ bool success = false; - if (verify) + if (verify) { success = resolver->verifySystem (); - else - success = resolver->resolvePool(); + } else { + if (!solverQueue.empty()) + success = resolver->resolveQueue(solverQueue); + else + success = resolver->resolvePool(); + } if (success) { print_solution (pool, instorder, mediaorder); } else { @@ -1247,6 +1265,7 @@ zypp::base::LogControl::instance().logfile( "-" ); forceResolve = false; + solverQueue.clear(); manager = makeRepoManager( "/tmp/myrepos" ); -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org