diff --git a/evrops_test.go b/evrops_test.go new file mode 100644 index 0000000..6598cdf --- /dev/null +++ b/evrops_test.go @@ -0,0 +1,92 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Contributor: +// - Aaron Meihm ameihm@mozilla.com + +package scribe_test + +import ( + "github.com/mozilla/scribe" + "testing" +) + +type evrTestTable struct { + verA string + op string + verB string +} + +var evrTests = []evrTestTable{ + {"2:3.14.5-1+deb7u1", "=", "2:3.14.5-1+deb7u1"}, + {"0:2.6.6-6+deb7u2", "=", "0:2.6.6-6+deb7u2"}, + {"0:2.2.22-13+deb7u3", "=", "0:2.2.22-13+deb7u3"}, + {"0:0.140-5+deb7u1", "=", "0:0.140-5+deb7u1"}, + {"0:3.2.60-1+deb7u3", "=", "0:3.2.60-1+deb7u3"}, + {"0:1.5.3-5+deb7u4", "=", "0:1.5.3-5+deb7u4"}, + {"2:3.14.5-1+deb7u1", "=", "2:3.14.5-1+deb7u1"}, + {"0:5.5.38-0+wheezy1", "=", "0:5.5.38-0+wheezy1"}, + {"0:0.2.4.23-1~deb7u1", "=", "0:0.2.4.23-1~deb7u1"}, + {"0:2.06-1+deb7u1", "=", "0:2.06-1+deb7u1"}, + {"0:24.7.0esr-1~deb7u1", "=", "0:24.7.0esr-1~deb7u1"}, + {"0:2.52-3+nmu2", "=", "0:2.52-3+nmu2"}, + {"0:7u65-2.5.1-2~deb7u1", "=", "0:7u65-2.5.1-2~deb7u1"}, + {"0:24.7.0-1~deb7u1", "=", "0:24.7.0-1~deb7u1"}, + {"0:1.0.1e-2+deb7u9", "=", "0:1.0.1e-2+deb7u9"}, + {"0:6b31-1.13.3-1~deb7u1", "=", "0:6b31-1.13.3-1~deb7u1"}, + {"2:7.3.547-7", "=", "2:7.3.547-7"}, + {"1:7.3.547-7", "<", "2:7.3.547-7"}, + {"2:7.2.547-7", "<", "2:7.3.547-7"}, + {"2:7.3.540-7", "<", "2:7.3.547-7"}, + {"2:7.3.547-6", "<", "2:7.3.547-7"}, + {"1.0.1e-2+deb7u14", "=", "1.0.1e-2+deb7u14"}, + {"1.0.1d-2+deb7u14", "<", "1.0.1e-2+deb7u14"}, + {"1.0.1", "<", "1.0.1e"}, + {"1.0.1", "=", "1.0.1"}, + {"1.0.1d", "<", "1.0.1e"}, + {"0:0.2.4.23-1~deb7u1", "=", "0:0.2.4.23-1~deb7u1"}, + {"0:0.2.4-1~deb7u1", "<", "0:0.2.4.23-1~deb7u1"}, + {"0:0.2.4.23-0~deb7u1", "<", "0:0.2.4.23-1~deb7u1"}, + {"2.6.32-504.el6", "<", "0:2.6.32-504.8.1.el6"}, + {"1.5.9", "<", "1.5.10"}, + {"1.5.9", "<", "1.5.10z"}, + {"1.5.9z", "<", "1.5.10"}, + {"1.5.9b", "<", "1.5.9f"}, + {"1.5.9g", "=", "1.5.9g"}, + {"1.5.10", ">", "1.5.9"}, + {"f", ">", "a"}, + {"10", ">", "9"}, + {"123", "=", "123"}, + {"1241", "<", "14444"}, + {"12412", ">", "50"}, + {"51", ">", "50"}, +} + +func TestEvrops(t *testing.T) { + scribe.Bootstrap() + scribe.TestHooks(true) + + for _, x := range evrTests { + var opmode int + + switch x.op { + case "=": + opmode = scribe.EvropEquals + case "<": + opmode = scribe.EvropLessThan + case ">": + opmode = scribe.EvropGreaterThan + default: + t.Fatalf("evr test has invalid operation %v", x.op) + } + t.Logf("%v %v %v", x.verA, x.op, x.verB) + result, err := scribe.TestEvrCompare(opmode, x.verA, x.verB) + if err != nil { + t.Fatalf("scribe.TestEvrCompare: %v", err) + } + if !result { + t.Fatalf("scribe.TestEvrCompare: failed %v %v %v", x.verA, x.op, x.verB) + } + } +} diff --git a/evrtest/main.go b/evrtest/main.go deleted file mode 100644 index 29af49f..0000000 --- a/evrtest/main.go +++ /dev/null @@ -1,69 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Contributor: -// - Aaron Meihm ameihm@mozilla.com -package main - -import ( - "bufio" - "fmt" - "github.com/mozilla/scribe" - "os" - "strings" -) - -func main() { - if len(os.Args) < 2 { - fmt.Fprint(os.Stderr, "specify input test data file as argument\n") - os.Exit(1) - } - fmt.Println("starting evr comparison tests") - - fd, err := os.Open(os.Args[1]) - if err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - os.Exit(1) - } - scanner := bufio.NewScanner(fd) - for scanner.Scan() { - buf := strings.TrimSpace(scanner.Text()) - if len(buf) == 0 { - continue - } - fmt.Printf("%v\n", buf) - - var opmode int - fields := strings.Fields(buf) - if len(fields) != 3 { - fmt.Fprintf(os.Stderr, "invalid test string '%s'\n", buf) - os.Exit(1) - } - operator := fields[1] - switch operator { - case "=": - opmode = scribe.EvropEquals - case "<": - opmode = scribe.EvropLessThan - case ">": - opmode = scribe.EvropGreaterThan - default: - fmt.Fprintf(os.Stderr, "unknown operation %v\n", operator) - os.Exit(1) - } - result, err := scribe.TestEvrCompare(opmode, fields[0], fields[2]) - if err != nil { - fmt.Fprintf(os.Stderr, "ERROR %v\n", err) - os.Exit(2) - } - if !result { - fmt.Println("FAIL") - os.Exit(2) - } - fmt.Println("PASS") - } - fd.Close() - - fmt.Println("end evr comparison tests") -} diff --git a/test/evrtest/Makefile b/test/evrtest/Makefile deleted file mode 100644 index 39cfc86..0000000 --- a/test/evrtest/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -all: - -runtests: -ifndef EVRTESTCMD - $(error EVRTESTCMD is undefined, tests must be ran from the root of the repository) -endif - $(EVRTESTCMD) data; \ - -clean: diff --git a/test/evrtest/data b/test/evrtest/data deleted file mode 100644 index df6cf9f..0000000 --- a/test/evrtest/data +++ /dev/null @@ -1,49 +0,0 @@ -2:3.14.5-1+deb7u1 = 2:3.14.5-1+deb7u1 -0:2.6.6-6+deb7u2 = 0:2.6.6-6+deb7u2 -0:2.2.22-13+deb7u3 = 0:2.2.22-13+deb7u3 -0:0.140-5+deb7u1 = 0:0.140-5+deb7u1 -0:3.2.60-1+deb7u3 = 0:3.2.60-1+deb7u3 -0:1.5.3-5+deb7u4 = 0:1.5.3-5+deb7u4 -2:3.14.5-1+deb7u1 = 2:3.14.5-1+deb7u1 -0:5.5.38-0+wheezy1 = 0:5.5.38-0+wheezy1 -0:0.2.4.23-1~deb7u1 = 0:0.2.4.23-1~deb7u1 -0:2.06-1+deb7u1 = 0:2.06-1+deb7u1 -0:24.7.0esr-1~deb7u1 = 0:24.7.0esr-1~deb7u1 -0:2.52-3+nmu2 = 0:2.52-3+nmu2 -0:7u65-2.5.1-2~deb7u1 = 0:7u65-2.5.1-2~deb7u1 -0:24.7.0-1~deb7u1 = 0:24.7.0-1~deb7u1 -0:1.0.1e-2+deb7u9 = 0:1.0.1e-2+deb7u9 -0:6b31-1.13.3-1~deb7u1 = 0:6b31-1.13.3-1~deb7u1 - -2:7.3.547-7 = 2:7.3.547-7 -1:7.3.547-7 < 2:7.3.547-7 -2:7.2.547-7 < 2:7.3.547-7 -2:7.3.540-7 < 2:7.3.547-7 -2:7.3.547-6 < 2:7.3.547-7 - -1.0.1e-2+deb7u14 = 1.0.1e-2+deb7u14 -1.0.1d-2+deb7u14 < 1.0.1e-2+deb7u14 -1.0.1 < 1.0.1e -1.0.1 = 1.0.1 -1.0.1d < 1.0.1e - -0:0.2.4.23-1~deb7u1 = 0:0.2.4.23-1~deb7u1 -0:0.2.4-1~deb7u1 < 0:0.2.4.23-1~deb7u1 -0:0.2.4.23-0~deb7u1 < 0:0.2.4.23-1~deb7u1 - -2.6.32-504.el6 < 0:2.6.32-504.8.1.el6 - -1.5.9 < 1.5.10 -1.5.9 < 1.5.10z -1.5.9z < 1.5.10 -1.5.9b < 1.5.9f -1.5.9g = 1.5.9g - -1.5.10 > 1.5.9 -f > a - -10 > 9 -123 = 123 -1241 < 14444 -12412 > 50 -51 > 50