[Aptitude-svn-commit] r3682 - in branches/aptitude-0.3/aptitude: .
src/generic/tests
Daniel Burrows
dburrows at costa.debian.org
Tue Jul 26 00:56:25 UTC 2005
Author: dburrows
Date: Tue Jul 26 00:56:22 2005
New Revision: 3682
Modified:
branches/aptitude-0.3/aptitude/ChangeLog
branches/aptitude-0.3/aptitude/src/generic/tests/test_tags.cc
Log:
Add more unit tests for tags.
Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog (original)
+++ branches/aptitude-0.3/aptitude/ChangeLog Tue Jul 26 00:56:22 2005
@@ -1,5 +1,9 @@
2005-07-25 Daniel Burrows <dburrows at debian.org>
+ * src/generic/tests/test_tags.cc:
+
+ Test the tag parser more exhaustively.
+
* doc/en/aptitude.xml, src/generic/matchers.cc:
Add a tag matcher, to match against the new Tags field.
Modified: branches/aptitude-0.3/aptitude/src/generic/tests/test_tags.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/tests/test_tags.cc (original)
+++ branches/aptitude-0.3/aptitude/src/generic/tests/test_tags.cc Tue Jul 26 00:56:22 2005
@@ -28,9 +28,10 @@
CPPUNIT_TEST_SUITE(TagTest);
CPPUNIT_TEST(testTagTraverse);
- //CPPUNIT_TEST(testTagEqual);
- //CPPUNIT_TEST(testTagOrder);
- //CPPUNIT_TEST(testTagListTraverse);
+ CPPUNIT_TEST(testTagStr);
+ CPPUNIT_TEST(testTagEqual);
+ CPPUNIT_TEST(testTagOrder);
+ CPPUNIT_TEST(testTagListTraverse);
CPPUNIT_TEST_SUITE_END();
private:
@@ -90,15 +91,82 @@
++s;
}
}
+
+ void testTagStr()
+ {
+ const char **s=basicTagEntries;
+ while(*s)
+ {
+ tag parsed=parseTag(*s);
+ CPPUNIT_ASSERT(parsed.str() == "tag1::tag2::tag3");
+ ++s;
+ }
+ }
+
+ void testTagEqual()
+ {
+ for(const char **s=basicTagEntries; *s; ++s)
+ for(const char **t=basicTagEntries; *t; ++t)
+ CPPUNIT_ASSERT(parseTag(*s) == parseTag(*t));
+ }
+
+ void testTagOrder()
+ {
+ for(const char **s = tagorder; *s; ++s)
+ {
+ tag ps = parseTag(*s);
+
+ CPPUNIT_ASSERT(ps == ps);
+
+ for(const char **t = s; *t; ++t)
+ {
+ tag pt = parseTag(*t);
+
+ CPPUNIT_ASSERT(ps <= pt);
+ CPPUNIT_ASSERT(pt >= ps);
+
+ if(t != s)
+ {
+ CPPUNIT_ASSERT(ps < pt);
+ CPPUNIT_ASSERT(ps > pt);
+ }
+ }
+ }
+ }
+
+ void testTagListTraverse()
+ {
+ for(const char **l = tagLists; *l; ++l)
+ {
+ tag_list lp(*l, (*l)+strlen(*l));
+
+ tag_list :: const_iterator i = lp.begin();
+
+ CPPUNIT_ASSERT(i != lp.end());
+ CPPUNIT_ASSERT((*i).str() == "a::b");
+
+ ++i;
+
+ CPPUNIT_ASSERT(i != lp.end());
+ CPPUNIT_ASSERT((*i).str() == "c::d");
+
+ ++i;
+
+ CPPUNIT_ASSERT(i != lp.end());
+ CPPUNIT_ASSERT((*i).str() == "e::f");
+
+ ++i;
+
+ CPPUNIT_ASSERT(i == lp.end());
+ }
+ }
};
const char *TagTest::basicTagEntries[]={
"tag1::tag2::tag3",
- "tag1 ::tag2::tag3",
- "tag1:: tag2::tag3",
" tag1::tag2::tag3",
"tag1::tag2::tag3 ",
- " tag1 :: tag2 :: tag3",
+ " tag1::tag2::tag3 ",
0
};
@@ -111,10 +179,10 @@
// Tag order checks. The tag ordering function should say that
// forall n . tagorder[n]<tagorder[n+1]
const char *TagTest::tagorder[]={
- "tag1 :: tag2::tag3",
+ "tag1::tag2::tag3 ",
" tag1::tag3::tag3",
- "tag2::tag1:: tag1",
- "tag3::tag2::tag2",
+ "tag2::tag1::tag1",
+ " tag3::tag2::tag2",
"tag3::tag2::tag3",
0
};
More information about the Aptitude-svn-commit
mailing list