From b856d38f1df1b6e098996140879cc1c1618b29fe Mon Sep 17 00:00:00 2001 From: Stefan Schubert Date: Thu, 22 Mar 2007 12:18:36 +0000 Subject: [PATCH] resetting valid solver run in order to get a complete solver run for the testcase --- zypp/solver/detail/ContextPool.h | 7 +++++++ zypp/solver/detail/Resolver.cc | 5 ++++- zypp/solver/detail/Resolver.h | 2 +- zypp/solver/detail/Testcase.cc | 3 ++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/zypp/solver/detail/ContextPool.h b/zypp/solver/detail/ContextPool.h index 8dbc1b7..59a228c 100644 --- a/zypp/solver/detail/ContextPool.h +++ b/zypp/solver/detail/ContextPool.h @@ -112,6 +112,13 @@ class ContextPool : public base::ReferenceCounted, private base::NonCopyable { ResolverContext_Ptr findContext (PoolItemList & installItems, PoolItemList & deleteItems, const PoolItemList & lockUninstalledItems); + + /** + * Delete all sucessful solver run. + * + * */ + void reset () { contextList.clear(); } + }; /////////////////////////////////////////////////////////////////// };// namespace detail diff --git a/zypp/solver/detail/Resolver.cc b/zypp/solver/detail/Resolver.cc index ecc2902..458497e 100644 --- a/zypp/solver/detail/Resolver.cc +++ b/zypp/solver/detail/Resolver.cc @@ -136,7 +136,7 @@ Resolver::pool (void) const } void -Resolver::reset (void) +Resolver::reset (const bool resetValidResults) { _verifying = false; @@ -160,6 +160,9 @@ Resolver::reset (void) _best_context = NULL; _timed_out = false; + + if (resetValidResults) + contextPool.reset(); } diff --git a/zypp/solver/detail/Resolver.h b/zypp/solver/detail/Resolver.h index 2234f99..b06ddda 100644 --- a/zypp/solver/detail/Resolver.h +++ b/zypp/solver/detail/Resolver.h @@ -238,7 +238,7 @@ class Resolver : public base::ReferenceCounted, private base::NonCopyable { void undo(void); // only for testsuite - void reset (void); + void reset (const bool resetValidResults = false); Arch architecture() const { return _architecture; } void setArchitecture( const Arch & arch) { _architecture = arch; } diff --git a/zypp/solver/detail/Testcase.cc b/zypp/solver/detail/Testcase.cc index 38c256c..deb0957 100644 --- a/zypp/solver/detail/Testcase.cc +++ b/zypp/solver/detail/Testcase.cc @@ -217,7 +217,8 @@ bool Testcase::createTestcase(Resolver & resolver) zypp::base::LogControl::instance().logfile( dumpPath +"/y2log" ); zypp::base::LogControl::TmpExcessive excessive; - + + resolver.reset(true); // true = resetting all valid solverresults resolver.resolvePool(); zypp::base::LogControl::instance().logfile( "/var/log/YaST2/y2log" ); -- 2.7.4