[Aptitude-svn-commit] r3955 - in branches/aptitude-0.3/aptitude: .
tests
Daniel Burrows
dburrows at costa.debian.org
Thu Aug 25 22:16:20 UTC 2005
Author: dburrows
Date: Thu Aug 25 22:16:17 2005
New Revision: 3955
Modified:
branches/aptitude-0.3/aptitude/ChangeLog
branches/aptitude-0.3/aptitude/tests/test_apt_universe.cc
Log:
Do a less intense solves() test of the whole archive, limiting the
(expensive) full-spectrum test to just a few dependencies.
Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog (original)
+++ branches/aptitude-0.3/aptitude/ChangeLog Thu Aug 25 22:16:17 2005
@@ -2,6 +2,11 @@
* tests/test_apt_universe.cc:
+ Instead of completely ceasing tests after a certain amount of
+ time, just test the rest of the archive less aggressively.
+
+ * tests/test_apt_universe.cc:
+
Arbitrarily limit testSolves() so that it terminates in a
reasonable amount of time.
Modified: branches/aptitude-0.3/aptitude/tests/test_apt_universe.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/tests/test_apt_universe.cc (original)
+++ branches/aptitude-0.3/aptitude/tests/test_apt_universe.cc Thu Aug 25 22:16:17 2005
@@ -62,9 +62,10 @@
*
* NB: so that this test terminates before the end of the
* millenium, I placed a limit on the number of dependencies to
- * check. This limit is high enough that it should test a pretty
- * good swathe of the dependency set; nonetheless, it is far from a
- * guarantee that all is well in the (current) universe.
+ * check thoroughly. That number of dependencies are checked in
+ * the fullest way possible; the remainder are subjected to a more
+ * cursory check that should nevertheless detect the most likely
+ * source of problems.
*/
void testSolves()
{
@@ -72,10 +73,10 @@
aptitude_universe u(*apt_cache_file);
- int dep_count = 1000;
+ int dep_count = 500;
for(aptitude_universe::dep_iterator di = u.deps_begin();
- !di.end() && dep_count > 0; ++di, --dep_count)
+ !di.end(); ++di, dep_count = dep_count > 0 ? dep_count-1 : dep_count)
{
aptitude_universe::dep d = *di;
std::set<aptitude_universe::version> solvers;
@@ -97,69 +98,91 @@
solvers.insert(*si);
}
- for(aptitude_universe::package_iterator pi
- = u.packages_begin(); !pi.end(); ++pi)
- for(aptitude_universe::package::version_iterator vi
- = (*pi).versions_begin(); !vi.end(); ++vi)
- {
- if((*pi) == d.get_source().get_package())
+ if(dep_count > 0)
+ {
+ for(aptitude_universe::package_iterator pi
+ = u.packages_begin(); !pi.end(); ++pi)
+ for(aptitude_universe::package::version_iterator vi
+ = (*pi).versions_begin(); !vi.end(); ++vi)
{
- if(*vi == d.get_source())
+ if((*pi) == d.get_source().get_package())
{
- if(d.solved_by(*vi))
+ if(*vi == d.get_source())
+ {
+ if(d.solved_by(*vi))
+ {
+ std::ostringstream out;
+
+ out << "Dependency source "
+ << (*vi).get_package().get_name() << " "
+ << (*vi).get_name()
+ << " unexpectedly solves " << d;
+
+ CPPUNIT_FAIL(out.str());
+ }
+ }
+ else if(!d.solved_by(*vi))
{
std::ostringstream out;
- out << "Dependency source "
+ out << "Dependency source removal "
<< (*vi).get_package().get_name() << " "
<< (*vi).get_name()
- << " unexpectedly solves " << d;
+ << " unexpectedly doesn't solve " << d;
CPPUNIT_FAIL(out.str());
}
}
- else if(!d.solved_by(*vi))
+ else if(solvers.find(*vi) == solvers.end())
{
- std::ostringstream out;
-
- out << "Dependency source removal "
- << (*vi).get_package().get_name() << " "
- << (*vi).get_name()
- << " unexpectedly doesn't solve " << d;
-
- CPPUNIT_FAIL(out.str());
- }
- }
- else if(solvers.find(*vi) == solvers.end())
- {
- if(d.solved_by(*vi))
- {
- std::ostringstream out;
+ if(d.solved_by(*vi))
+ {
+ std::ostringstream out;
- out << (*vi).get_package().get_name() << " "
- << (*vi).get_name()
- << " unexpectedly solves "
- << d;
+ out << (*vi).get_package().get_name() << " "
+ << (*vi).get_name()
+ << " unexpectedly solves "
+ << d;
- CPPUNIT_FAIL(out.str());
+ CPPUNIT_FAIL(out.str());
+ }
}
+ else
+ solvers.erase(*vi);
}
- else
- solvers.erase(*vi);
- }
- if(!solvers.empty())
- {
- std::ostringstream out;
+ if(!solvers.empty())
+ {
+ std::ostringstream out;
- for(std::set<aptitude_universe::version>::const_iterator
- si = solvers.begin(); si != solvers.end(); ++si)
- out << "Solver " << (*si).get_package().get_name()
- << " " << (*si).get_name() << " of dependency "
- << d << " does not appear in the global list of versions!";
+ for(std::set<aptitude_universe::version>::const_iterator
+ si = solvers.begin(); si != solvers.end(); ++si)
+ out << "Solver " << (*si).get_package().get_name()
+ << " " << (*si).get_name() << " of dependency "
+ << d << " does not appear in the global list of versions!";
- CPPUNIT_FAIL(out.str());
+ CPPUNIT_FAIL(out.str());
+ }
}
+ else
+ for(std::set<aptitude_universe::version>::const_iterator si
+ = solvers.begin(); si != solvers.end(); ++si)
+ for(aptitude_universe::package::version_iterator vi
+ = (*si).get_package().versions_begin();
+ !vi.end(); ++vi)
+ {
+ if(solvers.find(*vi) == solvers.end() &&
+ (*di).solved_by(*vi))
+ {
+ std::ostringstream out;
+
+ out << (*vi).get_package().get_name() << " "
+ << (*vi).get_name() << " should not solve "
+ << d << " but does.";
+
+ CPPUNIT_FAIL(out.str());
+ }
+ }
}
}
@@ -178,6 +201,17 @@
for(aptitude_universe::dep::solver_iterator si
= (*di).solvers_begin(); !si.end(); ++si)
{
+ if(!(*di).solved_by(*si))
+ {
+ std::ostringstream out;
+
+ out << (*si).get_package().get_name() << " "
+ << (*si).get_name() << " should solve "
+ << *di << " but doesn't.";
+
+ CPPUNIT_FAIL(out.str());
+ }
+
bool found = false;
for(aptitude_universe::version::revdep_iterator rdi
@@ -188,8 +222,9 @@
if(found)
continue;
- // If the above fails, then one of the other versions of the
- // package must have this dep as a revdep.
+ // If the above fails, then each of the other versions of
+ // the package should either solve this dep or have this dep
+ // as a revdep.
for(aptitude_universe::package::version_iterator vi
= (*si).get_package().versions_begin(); !vi.end(); ++vi)
More information about the Aptitude-svn-commit
mailing list