generating flags for distupgrade,verify and update in the testcases
authorStefan Schubert <schubi@suse.de>
Tue, 18 Nov 2008 15:17:19 +0000 (15:17 +0000)
committerStefan Schubert <schubi@suse.de>
Tue, 18 Nov 2008 15:17:19 +0000 (15:17 +0000)
zypp/solver/detail/Resolver.cc
zypp/solver/detail/Resolver.h
zypp/solver/detail/Testcase.cc
zypp/solver/detail/Testcase.h

index 7214659..cdbe5b2 100644 (file)
@@ -72,6 +72,7 @@ Resolver::Resolver (const ResPool & pool)
     , _testing(false)
     , _forceResolve(false)
     , _upgradeMode(false)
+    , _updateMode(false)    
     , _verifying(false)
     , _onlyRequires(indeterminate)
     , _ignorealreadyrecommended(false)
@@ -113,6 +114,7 @@ Resolver::reset (bool keepExtras )
 void
 Resolver::doUpdate()
 {
+    _updateMode = true;
     return _satResolver->doUpdate();
 }
 
index 4e93f0b..3cda52b 100644 (file)
@@ -106,6 +106,7 @@ class Resolver : public base::ReferenceCounted, private base::NonCopyable {
                                   // have unfulfilled requirements.
                                   // This behaviour is favourited by ZMD
     bool _upgradeMode;            // Resolver has been called with doUpgrade
+    bool _updateMode;            // Resolver has been called with doUpdate    
     bool _verifying;              // The system will be checked
     TriBool _onlyRequires;       // do install required resolvables only
                                   // no recommended resolvables, language
@@ -183,6 +184,10 @@ class Resolver : public base::ReferenceCounted, private base::NonCopyable {
     bool doUpgrade( zypp::UpgradeStatistics & opt_stats_r );
     PoolItemList problematicUpdateItems( void ) const;
 
+    bool isUpgradeMode(){ return _upgradeMode;};    // Resolver has been called with doUpgrade
+    bool isUpdateMode(){ return _updateMode;};      // Resolver has been called with doUpdate    
+    bool isVerifyingMode(){ return _verifying;};    // The system will be checked
+
     ResolverProblemList problems () const;
     void applySolutions (const ProblemSolutionList &solutions);
 
index d431a33..a542b14 100644 (file)
@@ -375,6 +375,13 @@ bool Testcase::createTestcase(Resolver & resolver, bool dumpPool, bool runSolver
     control.addDependencies (SystemCheck::instance().requiredSystemCap(),
                             SystemCheck::instance().conflictSystemCap());
 
+    if (resolver.isUpgradeMode())
+       control.distupgrade ();
+    if (resolver.isUpdateMode())
+       control.verifySystem ();
+    if (resolver.isVerifyingMode())
+       control.update();
+
     return true;
 }
 
@@ -459,8 +466,7 @@ HelixControl::HelixControl(const std::string & controlPath,
        *file << TAB << "<ignorealreadyrecommended/>" << endl;
     
     *file << "</setup>" << endl
-         << "<trial>" << endl
-         << "<showpool all=\"yes\"/>" << endl;
+         << "<trial>" << endl;
 }
 
 HelixControl::HelixControl()
@@ -525,6 +531,21 @@ void HelixControl::addDependencies (const CapabilitySet & capRequire, const Capa
     }
 }
 
+void HelixControl::distupgrade()
+{
+    *file << "<distupgrade/>" << endl;
+}
+
+void HelixControl::verifySystem()
+{
+    *file << "<verify/>" << endl;
+}
+
+void HelixControl::update()
+{
+    *file << "<update/>" << endl;
+}
+
 
       ///////////////////////////////////////////////////////////////////
     };// namespace detail
index 9a2280a..eca8dae 100644 (file)
@@ -116,6 +116,11 @@ class  HelixControl {
     void deleteResolvable (const ResObject::constPtr &resObject,
                           const ResStatus &status);
     void addDependencies (const CapabilitySet &capRequire, const CapabilitySet &capConflict);
+    
+    void distupgrade ();
+    void verifySystem ();
+    void update ();
+    
     std::string filename () { return dumpFile; }
 };