mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-06-07 05:42:42 +00:00
Use proper version comparisions for querys
This commit is contained in:
committed by
Benj Fassbind
parent
4c04e77489
commit
954b222fb6
+5
-5
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user