LEFT | RIGHT |
(no file at all) | |
| 1 package version_test |
| 2 |
| 3 import ( |
| 4 "." |
| 5 . "launchpad.net/gocheck" |
| 6 "testing" |
| 7 ) |
| 8 |
| 9 type suite struct{} |
| 10 |
| 11 var _ = Suite(suite{}) |
| 12 |
| 13 func Test(t *testing.T) { |
| 14 TestingT(t) |
| 15 } |
| 16 |
| 17 var cmpTests = []struct { |
| 18 v1, v2 string |
| 19 less bool |
| 20 eq bool |
| 21 }{ |
| 22 {"1.0.0", "1.0.0", false, true}, |
| 23 {"01.0.0", "1.0.0", false, true}, |
| 24 {"10.0.0", "9.0.0", false, false}, |
| 25 {"1.0.0", "1.0.1", true, false}, |
| 26 {"1.0.1", "1.0.0", false, false}, |
| 27 {"1.0.0", "1.1.0", true, false}, |
| 28 {"1.1.0", "1.0.0", false, false}, |
| 29 {"1.0.0", "2.0.0", true, false}, |
| 30 {"2.0.0", "1.0.0", false, false}, |
| 31 } |
| 32 |
| 33 func (suite) TestComparison(c *C) { |
| 34 for i, test := range cmpTests { |
| 35 c.Logf("test %d", i) |
| 36 v1, err := version.Parse(test.v1) |
| 37 c.Assert(err, IsNil) |
| 38 v2, err := version.Parse(test.v2) |
| 39 c.Assert(err, IsNil) |
| 40 less := v1.Less(v2) |
| 41 gt := v2.Less(v1) |
| 42 c.Check(less, Equals, test.less) |
| 43 if test.eq { |
| 44 c.Check(gt, Equals, false) |
| 45 } else { |
| 46 c.Check(gt, Equals, !test.less) |
| 47 } |
| 48 } |
| 49 } |
| 50 |
| 51 var parseTests = []struct { |
| 52 v string |
| 53 err string |
| 54 expect version.Version |
| 55 dev bool |
| 56 }{ |
| 57 { |
| 58 v: "0.0.0", |
| 59 dev: false, |
| 60 }, |
| 61 { |
| 62 v: "1.0.0", |
| 63 expect: version.Version{Major: 1}, |
| 64 dev: true, |
| 65 }, |
| 66 { |
| 67 v: "0.1.0", |
| 68 expect: version.Version{Minor: 1}, |
| 69 dev: true, |
| 70 }, |
| 71 { |
| 72 v: "0.0.1", |
| 73 expect: version.Version{Patch: 1}, |
| 74 dev: true, |
| 75 }, |
| 76 { |
| 77 v: "10.234.3456", |
| 78 expect: version.Version{Major: 10, Minor: 234, Patch: 3456}, |
| 79 dev: false, |
| 80 }, |
| 81 { |
| 82 v: "1234567890.2.1", |
| 83 err: "invalid version.*", |
| 84 }, |
| 85 { |
| 86 v: "0.2..1", |
| 87 err: "invalid version.*", |
| 88 }, |
| 89 } |
| 90 |
| 91 func (suite) TestParse(c *C) { |
| 92 for i, test := range parseTests { |
| 93 c.Logf("test %d", i) |
| 94 v, err := version.Parse(test.v) |
| 95 if test.err != "" { |
| 96 c.Assert(err, ErrorMatches, test.err) |
| 97 } else { |
| 98 c.Assert(err, IsNil) |
| 99 c.Assert(v, Equals, test.expect) |
| 100 c.Check(v.IsDev(), Equals, test.dev) |
| 101 } |
| 102 } |
| 103 } |
LEFT | RIGHT |