@@ -13,71 +13,94 @@ import (
13
13
14
14
func TestSourceManager_InferConstraint (t * testing.T ) {
15
15
t .Parallel ()
16
- h := test .NewHelper (t )
17
- cacheDir := "gps-repocache"
18
- h .TempDir (cacheDir )
19
- sm , err := NewSourceManager (h .Path (cacheDir ))
20
- h .Must (err )
21
16
22
- sv , err := NewSemverConstraintIC ("v0.8.1" )
17
+ // Used in git subtests:
18
+ v081 , err := NewSemverConstraintIC ("v0.8.1" )
23
19
if err != nil {
24
20
t .Fatal (err )
25
21
}
26
-
27
- svs , err := NewSemverConstraintIC ("v0.12.0-12-de4dcafe0" )
22
+ v012 , err := NewSemverConstraintIC ("v0.12.0-12-de4dcafe0" )
28
23
if err != nil {
29
24
t .Fatal (err )
30
25
}
31
26
32
- constraints := map [string ]Constraint {
33
- "" : Any (),
34
- "v0.8.1" : sv ,
35
- "v2" : NewBranch ("v2" ),
36
- "v0.12.0-12-de4dcafe0" : svs ,
37
- "master" : NewBranch ("master" ),
38
- "5b3352dc16517996fb951394bcbbe913a2a616e3" : Revision ("5b3352dc16517996fb951394bcbbe913a2a616e3" ),
39
-
40
- // valid bzr rev
41
-
42
- // invalid bzr rev
43
-
27
+ // Used in hg and bzr subtests:
28
+ v1 , err := NewSemverConstraintIC ("v1.0.0" )
29
+ if err != nil {
30
+ t .Fatal (err )
44
31
}
45
32
46
- pi := ProjectIdentifier { ProjectRoot : "github.com/carolynvs/deptest" }
47
- for str , want := range constraints {
48
- got , err := sm . InferConstraint ( str , pi )
49
- h . Must ( err )
33
+ var (
34
+ gitProj = ProjectIdentifier { ProjectRoot : "github.com/carolynvs/deptest" }
35
+ bzrProj = ProjectIdentifier { ProjectRoot : "launchpad.net/govcstestbzrrepo" }
36
+ hgProj = ProjectIdentifier { ProjectRoot : "bitbucket.org/golang-dep/dep-test" }
50
37
51
- wantT := reflect .TypeOf (want )
52
- gotT := reflect .TypeOf (got )
53
- if wantT != gotT {
54
- t .Errorf ("expected type: %s, got %s, for input %s" , wantT , gotT , str )
38
+ testcases = []struct {
39
+ project ProjectIdentifier
40
+ name string
41
+ str string
42
+ want Constraint
43
+ }{
44
+ {gitProj , "empty" , "" , Any ()},
45
+ {gitProj , "semver-short" , "v0.8.1" , v081 },
46
+ {gitProj , "long semver constraint" , "v0.12.0-12-de4dcafe0" , v012 },
47
+ {gitProj , "branch v2" , "v2" , NewBranch ("v2" )},
48
+ {gitProj , "branch master" , "master" , NewBranch ("master" )},
49
+ {gitProj , "long revision" , "3f4c3bea144e112a69bbe5d8d01c1b09a544253f" ,
50
+ Revision ("3f4c3bea144e112a69bbe5d8d01c1b09a544253f" )},
51
+ {gitProj , "short revision" , "3f4c3bea" ,
52
+ Revision ("3f4c3bea144e112a69bbe5d8d01c1b09a544253f" )},
53
+
54
+ {bzrProj , "empty" , "" , Any ()},
55
+ {bzrProj , "semver" , "v1.0.0" , v1 },
56
+ {
bzrProj ,
"revision" ,
"[email protected] " ,
57
+
58
+
59
+ {hgProj , "empty" , "" , Any ()},
60
+ {hgProj , "semver" , "v1.0.0" , v1 },
61
+ {hgProj , "default branch" , "default" , NewBranch ("default" )},
62
+ {hgProj , "revision" , "6f55e1f03d91f8a7cce35d1968eb60a2352e4d59" ,
63
+ Revision ("6f55e1f03d91f8a7cce35d1968eb60a2352e4d59" )},
64
+ {hgProj , "short revision" , "6f55e1f03d91" ,
65
+ Revision ("6f55e1f03d91f8a7cce35d1968eb60a2352e4d59" )},
55
66
}
56
- if got .String () != want .String () {
57
- t .Errorf ("expected value: %s, got %s for input %s" , want , got , str )
67
+ )
68
+
69
+ for _ , tc := range testcases {
70
+ var subtestName string
71
+ switch tc .project {
72
+ case gitProj :
73
+ subtestName = "git-" + tc .name
74
+ case bzrProj :
75
+ subtestName = "bzr-" + tc .name
76
+ case hgProj :
77
+ subtestName = "hg-" + tc .name
78
+ default :
79
+ subtestName = tc .name
58
80
}
59
- }
60
- }
61
81
62
- func TestSourceManager_InferConstraint_InvalidInput (t * testing.T ) {
63
- h := test .NewHelper (t )
82
+ t .Run (subtestName , func (t * testing.T ) {
83
+ t .Parallel ()
84
+ h := test .NewHelper (t )
85
+ defer h .Cleanup ()
64
86
65
- cacheDir := "gps-repocache"
66
- h .TempDir (cacheDir )
67
- sm , err := NewSourceManager (h .Path (cacheDir ))
68
- h .Must (err )
87
+ cacheDir := "gps-repocache"
88
+ h .TempDir (cacheDir )
69
89
70
- constraints := []string {
71
- // invalid bzr revs
72
-
73
- "20120425195858-psty8c35ve2oej8t" ,
74
- }
90
+ sm , err := NewSourceManager (h .Path (cacheDir ))
91
+ h .Must (err )
75
92
76
- pi := ProjectIdentifier {ProjectRoot : "github.com/sdboyer/deptest" }
77
- for _ , str := range constraints {
78
- _ , err := sm .InferConstraint (str , pi )
79
- if err == nil {
80
- t .Errorf ("expected %s to produce an error" , str )
81
- }
93
+ got , err := sm .InferConstraint (tc .str , tc .project )
94
+ h .Must (err )
95
+
96
+ wantT := reflect .TypeOf (tc .want )
97
+ gotT := reflect .TypeOf (got )
98
+ if wantT != gotT {
99
+ t .Errorf ("expected type: %s, got %s, for input %s" , wantT , gotT , tc .str )
100
+ }
101
+ if got .String () != tc .want .String () {
102
+ t .Errorf ("expected value: %s, got %s for input %s" , tc .want , got , tc .str )
103
+ }
104
+ })
82
105
}
83
106
}
0 commit comments