[Aptitude-devel] r2949 - in branches/aptitude-0.3/aptitude: . src/generic/problemresolver

Daniel Burrows dburrows@costa.debian.org
Fri, 08 Apr 2005 03:08:07 +0000


Author: dburrows
Date: Fri Apr  8 03:08:04 2005
New Revision: 2949

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/generic/problemresolver/test.cc
   branches/aptitude-0.3/aptitude/src/generic/problemresolver/test1.txt
Log:
Give the current version after the list of versions in test files.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Fri Apr  8 03:08:04 2005
@@ -1,5 +1,10 @@
 2005-04-07  Daniel Burrows  <dburrows@debian.org>
 
+	* src/generic/problemresolver/test.cc, src/generic/problemresolver/test1.txt:
+
+	  The current version must now be given after the list of versions
+	  (makes it easier to change the current version, hopefully).
+
 	* src/generic/problemresolver/test.cc:
 
 	  Fix a rather silly mistake that caused dummy_dep::broken()

Modified: branches/aptitude-0.3/aptitude/src/generic/problemresolver/test.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/problemresolver/test.cc	(original)
+++ branches/aptitude-0.3/aptitude/src/generic/problemresolver/test.cc	Fri Apr  8 03:08:04 2005
@@ -99,6 +99,11 @@
    */
   vector<dummy_version *> versions;
 
+  /** The current version of this package; defaults to the first
+   *  element of "versions".
+   */
+  dummy_version *cur;
+
   /** The ID of this version. */
   unsigned int ID;
 
@@ -132,15 +137,23 @@
 
   void add_version(dummy_version *version)
   {
+    if(versions.empty())
+      cur=version;
     versions.push_back(version);
   }
 
-  const dummy_version &current_version() const {return *versions.front();}
+  const dummy_version &current_version() const {return *cur;}
   version_iterator versions_begin() const {return versions.begin();}
   version_iterator versions_end() const {return versions.end();}
 
   /** Returns the version corresponding to the given name or aborts */
   dummy_version *version_from_name(const string &the_name);
+
+  /** Sets the current version to the given version. */
+  void set_current_version(dummy_version *v)
+  {
+    cur=v;
+  }
 };
 
 class dummy_dep;
@@ -521,7 +534,8 @@
    *         The first element of the list is the current version.
    */
   void add_package(string name,
-		   vector<string> the_versions)
+		   vector<string> the_versions,
+		   string curname)
   {
     assert(!the_versions.empty());
 
@@ -534,6 +548,8 @@
 	packages.back()->add_version(versions.back());
       }
 
+    packages.back()->set_current_version(packages.back()->version_from_name(curname));
+
     packages_by_name[name]=packages.back();
   }
 
@@ -634,7 +650,7 @@
 //
 // TEST ::= UNIVERSE
 // UNIVERSE ::= PACKAGE | DEP
-// PACKAGE ::= "PACKAGE" pkgname < vername1 ... >
+// PACKAGE ::= "PACKAGE" pkgname < vername1 ... > curver
 // DEP ::= "DEP" pkgname1 vername1 -> < pkgname2 vername2 ... >
 //       | "DEP" pkgname1 vername1 !! < pkgname2 vername2 ... >
 //
@@ -711,10 +727,17 @@
 		throw ParseError("Expected version name or '>', got EOF");
 	    }
 
+	  if(in.eof())
+	    throw ParseError("Expected a definition of the current version of "+pkgname+", got EOF");
+
+	  string curname;
+
+	  in >> curname >> ws;
+
 	  if(vernames.empty())
 	    throw ParseError("Package "+pkgname+" has no versions");
 
-	  rval->add_package(pkgname, vernames);
+	  rval->add_package(pkgname, vernames, curname);
 	}
       else if(s == "DEP")
 	{

Modified: branches/aptitude-0.3/aptitude/src/generic/problemresolver/test1.txt
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/problemresolver/test1.txt	(original)
+++ branches/aptitude-0.3/aptitude/src/generic/problemresolver/test1.txt	Fri Apr  8 03:08:04 2005
@@ -1,7 +1,7 @@
-PACKAGE p1 < v1 v2 v3 >
-PACKAGE p2 < v1 v2 v3 >
-PACKAGE p3 < v1 v2 v3 >
-PACKAGE p4 < v1 v2 v3 >
+PACKAGE p1 < v1 v2 v3 > v1
+PACKAGE p2 < v1 v2 v3 > v1
+PACKAGE p3 < v1 v2 v3 > v1
+PACKAGE p4 < v1 v2 v3 > v1
 
 
 DEP p1 v1 -> < p2 v2  p2 v3 >