github.com/michaeltrobinson/godep@v0.0.0-20160912215839-8088bcf2e78b/dep_test.go (about) 1 package main 2 3 import "testing" 4 5 func TestTrimGoVersion(t *testing.T) { 6 var cases = []struct { 7 in, out string 8 err bool 9 }{ 10 {in: "go1.5", out: "go1.5", err: false}, 11 {in: "go1.5beta1", out: "go1.5", err: false}, 12 {in: "go1.6rc1", out: "go1.6", err: false}, 13 {in: "go1.5.1", out: "go1.5", err: false}, 14 {in: "devel", out: "devel", err: false}, 15 {in: "devel+15f7a66", out: "devel-15f7a66", err: false}, 16 {in: "devel-15f7a66", out: "devel-15f7a66", err: false}, 17 {in: "boom", out: "", err: true}, 18 } 19 20 for _, c := range cases { 21 mv, err := trimGoVersion(c.in) 22 if err != nil && !c.err { 23 t.Errorf("Unexpected error: %s", err) 24 } 25 if mv != c.out { 26 t.Errorf("Expected trimGoVersion(%s) == '%s', but got '%s'", c.in, c.out, mv) 27 } 28 } 29 } 30 31 func TestGoVersion(t *testing.T) { 32 var cases = []struct { 33 o, r string 34 err bool 35 }{ 36 {o: "go version go1.6.2 darwin/amd64", r: "go1.6", err: false}, 37 {o: "go version go1.6 darwin/amd64", r: "go1.6", err: false}, 38 {o: "go version go1.6.2 linux/amd64", r: "go1.6", err: false}, 39 {o: "go version devel +da6205b Wed Apr 13 17:22:38 2016 +0000 darwin/amd64", r: "devel-da6205b", err: false}, 40 } 41 42 for _, c := range cases { 43 goVersionTestOutput = c.o 44 v, err := goVersion() 45 if err != nil && !c.err { 46 t.Errorf("Unexpected error: %s", err) 47 } 48 if v != c.r { 49 t.Errorf("Expected goVersion() == '%s', but got '%s'", c.r, v) 50 } 51 goVersionTestOutput = "" 52 } 53 }