@@ -23,23 +23,64 @@ import (
23
23
)
24
24
25
25
func TestParseVersion (t * testing.T ) {
26
- const data = `runc version 1.0.0-rc3
27
- commit: 17f3e2a07439a024e54566774d597df9177ee216
28
- spec: 1.0.0-rc5-dev`
29
26
30
- v , err := parseVersion ([]byte (data ))
31
- if err != nil {
32
- t .Fatal (err )
33
- }
34
- if v .Runc != "1.0.0-rc3" {
35
- t .Errorf ("expected runc version 1.0.0-rc3 but received %s" , v .Runc )
36
- }
37
- if v .Commit != "17f3e2a07439a024e54566774d597df9177ee216" {
38
- t .Errorf ("expected commit 17f3e2a07439a024e54566774d597df9177ee216 but received %s" , v .Commit )
39
- }
40
- if v .Spec != "1.0.0-rc5-dev" {
41
- t .Errorf ("expected spec version 1.0.0-rc5-dev but received %s" , v .Spec )
27
+ testParseVersion := func (t * testing.T , input string , expected Version ) {
28
+ actual , err := parseVersion ([]byte (input ))
29
+ if err != nil {
30
+ t .Fatalf ("unexpected error: %v" , err )
31
+ }
32
+ if expected != actual {
33
+ t .Fatalf ("expected: %v, actual: %v" , expected , actual )
34
+ }
42
35
}
36
+
37
+ t .Run ("Full" , func (t * testing.T ) {
38
+ input := `runc version 1.0.0-rc3
39
+ commit: 17f3e2a07439a024e54566774d597df9177ee216
40
+ spec: 1.0.0-rc5-dev
41
+ `
42
+ expected := Version {
43
+ Runc : "1.0.0-rc3" ,
44
+ Commit : "17f3e2a07439a024e54566774d597df9177ee216" ,
45
+ Spec : "1.0.0-rc5-dev" ,
46
+ }
47
+ testParseVersion (t , input , expected )
48
+ })
49
+
50
+ t .Run ("WithoutCommit" , func (t * testing.T ) {
51
+ input := `runc version 1.0.0-rc9
52
+ spec: 1.0.1-dev
53
+ `
54
+ expected := Version {
55
+ Runc : "1.0.0-rc9" ,
56
+ Commit : "" ,
57
+ Spec : "1.0.1-dev" ,
58
+ }
59
+ testParseVersion (t , input , expected )
60
+ })
61
+
62
+ t .Run ("Oneline" , func (t * testing.T ) {
63
+ input := `runc version 1.0.0-rc8+dev
64
+ `
65
+ expected := Version {
66
+ Runc : "1.0.0-rc8+dev" ,
67
+ Commit : "" ,
68
+ Spec : "" ,
69
+ }
70
+ testParseVersion (t , input , expected )
71
+ })
72
+
73
+ t .Run ("Garbage" , func (t * testing.T ) {
74
+ input := `Garbage
75
+ spec: nope
76
+ `
77
+ expected := Version {
78
+ Runc : "" ,
79
+ Commit : "" ,
80
+ Spec : "" ,
81
+ }
82
+ testParseVersion (t , input , expected )
83
+ })
43
84
}
44
85
45
86
func TestParallelCmds (t * testing.T ) {
0 commit comments