Dependency parsing.

This commit is contained in:
Andrey Smirnov
2014-01-08 18:16:01 +04:00
parent 275db14b9f
commit b1e9b82ce3
2 changed files with 109 additions and 0 deletions
+56
View File
@@ -97,3 +97,59 @@ func (s *VersionSuite) TestCompareVersions(c *C) {
c.Check(CompareVersions("1.0~beta1~svn1245", "1.0~beta1"), Equals, -1)
c.Check(CompareVersions("1.0~beta1", "1.0"), Equals, -1)
}
func (s *VersionSuite) TestParseDependency(c *C) {
p, r, v, e := parseDependency("dpkg (>= 1.6)")
c.Check(e, IsNil)
c.Check(p, Equals, "dpkg")
c.Check(r, Equals, VersionGreaterOrEqual)
c.Check(v, Equals, "1.6")
p, r, v, e = parseDependency("dpkg(>>1.6)")
c.Check(e, IsNil)
c.Check(p, Equals, "dpkg")
c.Check(r, Equals, VersionGreater)
c.Check(v, Equals, "1.6")
p, r, v, e = parseDependency("dpkg (> 1.6)")
c.Check(e, IsNil)
c.Check(p, Equals, "dpkg")
c.Check(r, Equals, VersionGreaterOrEqual)
c.Check(v, Equals, "1.6")
p, r, v, e = parseDependency("dpkg (< 1.6)")
c.Check(e, IsNil)
c.Check(p, Equals, "dpkg")
c.Check(r, Equals, VersionLessOrEqual)
c.Check(v, Equals, "1.6")
p, r, v, e = parseDependency("dpkg (= 1.6)")
c.Check(e, IsNil)
c.Check(p, Equals, "dpkg")
c.Check(r, Equals, VersionEqual)
c.Check(v, Equals, "1.6")
p, r, v, e = parseDependency("dpkg (<< 1.6)")
c.Check(e, IsNil)
c.Check(p, Equals, "dpkg")
c.Check(r, Equals, VersionLess)
c.Check(v, Equals, "1.6")
p, r, v, e = parseDependency("dpkg(>>1.6)")
c.Check(e, IsNil)
c.Check(p, Equals, "dpkg")
c.Check(r, Equals, VersionGreater)
c.Check(v, Equals, "1.6")
p, r, v, e = parseDependency("dpkg ")
c.Check(e, IsNil)
c.Check(p, Equals, "dpkg")
c.Check(r, Equals, VersionDontCare)
c.Check(v, Equals, "")
p, r, v, e = parseDependency("dpkg(==1.6)")
c.Check(e, ErrorMatches, "relation unknown.*")
p, r, v, e = parseDependency("dpkg==1.6)")
c.Check(e, ErrorMatches, "unable to parse.*")
}