Use proper version comparisions for querys

This commit is contained in:
Russell Greene
2022-04-22 11:58:43 -05:00
committed by Benj Fassbind
parent 4c04e77489
commit 954b222fb6
3 changed files with 30 additions and 5 deletions
+5 -5
View File
@@ -168,15 +168,15 @@ func (q *FieldQuery) Matches(pkg PackageLike) bool {
case VersionDontCare:
return field != ""
case VersionEqual:
return field == q.Value
return CompareVersions(field, q.Value) == 0
case VersionGreater:
return field > q.Value
return CompareVersions(field, q.Value) > 0
case VersionGreaterOrEqual:
return field >= q.Value
return CompareVersions(field, q.Value) >= 0
case VersionLess:
return field < q.Value
return CompareVersions(field, q.Value) < 0
case VersionLessOrEqual:
return field <= q.Value
return CompareVersions(field, q.Value) <= 0
case VersionPatternMatch:
matched, err := filepath.Match(q.Value, field)
return err == nil && matched
+23
View File
@@ -0,0 +1,23 @@
package deb
import (
. "gopkg.in/check.v1"
)
type QuerySuite struct {
}
var _ = Suite(&QuerySuite{})
func (s *QuerySuite) TestVersionCompare(c *C) {
q := FieldQuery{"Version", VersionLess, "5.0.0.2", nil}
p100 := Package{}
p100.Version = "5.0.0.100"
p1 := Package{}
p1.Version = "5.0.0.1"
c.Check(q.Matches(&p100), Equals, false)
c.Check(q.Matches(&p1), Equals, true)
}
+2
View File
@@ -98,6 +98,8 @@ func (s *VersionSuite) TestCompareVersions(c *C) {
c.Check(CompareVersions("1.0-133-avc", "1.1"), Equals, -1)
c.Check(CompareVersions("1.0-133-avc", "1.0"), Equals, 1)
c.Check(CompareVersions("5.2.0.3", "5.2.0.283"), Equals, -1)
}
func (s *VersionSuite) TestParseDependency(c *C) {