yay/vendor/github.com/mikkeloscar/gopkgbuild/version_test.go
2018-01-19 23:32:07 +09:00

133 lines
2.1 KiB
Go

package pkgbuild
import "testing"
// Test version comparison
func TestVersionComparison(t *testing.T) {
alphaNumeric := []Version{
"1.0.1",
"1.0.a",
"1.0",
"1.0rc",
"1.0pre",
"1.0p",
"1.0beta",
"1.0b",
"1.0a",
}
numeric := []Version{
"20141130",
"012",
"11",
"3.0.0",
"2.011",
"2.03",
"2.0",
"1.2",
"1.1.1",
"1.1",
"1.0.1",
"1.0.0.0.0.0",
"1.0",
"1",
}
git := []Version{
"r1000.b481c3c",
"r37.e481c3c",
"r36.f481c3c",
}
bigger := func(list []Version) {
for i, v := range list {
for _, v2 := range list[i:] {
if v != v2 && !v.bigger(v2) {
t.Errorf("%s should be bigger than %s", v, v2)
}
}
}
}
smaller := func(list []Version) {
for i := len(list) - 1; i >= 0; i-- {
v := list[i]
for _, v2 := range list[:i] {
if v != v2 && v.bigger(v2) {
t.Errorf("%s should be smaller than %s", v, v2)
}
}
}
}
bigger(alphaNumeric)
smaller(alphaNumeric)
bigger(numeric)
smaller(numeric)
bigger(git)
smaller(git)
}
// Test alphaCompare function
func TestAlphaCompare(t *testing.T) {
if alphaCompare("test", "test") != 0 {
t.Error("should be 0")
}
if alphaCompare("test", "test123") > 0 {
t.Error("should be less than 0")
}
if alphaCompare("test123", "test") < 0 {
t.Error("should be greater than 0")
}
}
// Test CompleteVersion comparisons
func TestCompleteVersionComparison(t *testing.T) {
a := &CompleteVersion{
Version: "2",
Epoch: 1,
Pkgrel: Version("2"),
}
older := []string{
"0-3-4",
"1-2-1",
"1-2-1.5",
"1-1-1",
}
for _, o := range older {
if a.Older(o) {
t.Errorf("%s should be older than %s", o, a.String())
}
}
newer := []string{
"2-1-1",
"1-3-1",
"1-2-3",
"1-2-2.1",
}
for _, n := range newer {
if a.Newer(n) {
t.Errorf("%s should be newer than %s", n, a.String())
}
}
}
func TestCompleteVersionString(t *testing.T) {
str := "42:3.14-1"
version, _ := NewCompleteVersion(str)
if version.String() != str {
t.Errorf("%v should equal %s", version, str)
}
}
// Benchmark rpmvercmp
func BenchmarkVersionCompare(b *testing.B) {
for i := 0; i < b.N; i++ {
rpmvercmp("1.0", "1.0.0")
}
}