github.com/wozhu6104/docker@v20.10.10+incompatible/daemon/info_unix_test.go (about) 1 // +build !windows 2 3 package daemon // import "github.com/docker/docker/daemon" 4 5 import ( 6 "testing" 7 8 "gotest.tools/v3/assert" 9 is "gotest.tools/v3/assert/cmp" 10 ) 11 12 func TestParseInitVersion(t *testing.T) { 13 tests := []struct { 14 output string 15 version string 16 commit string 17 invalid bool 18 }{ 19 { 20 output: "tini version 0.13.0 - git.949e6fa", 21 version: "0.13.0", 22 commit: "949e6fa", 23 }, { 24 output: "tini version 0.13.0\n", 25 version: "0.13.0", 26 }, { 27 output: "tini version 0.13.2", 28 version: "0.13.2", 29 }, { 30 output: "tini version 0.13.2 - ", 31 version: "0.13.2", 32 }, { 33 output: " - git.949e6fa", 34 commit: "949e6fa", 35 }, { 36 output: "tini version0.13.2", 37 invalid: true, 38 }, { 39 output: "version 0.13.0", 40 invalid: true, 41 }, { 42 output: "", 43 invalid: true, 44 }, { 45 output: " - ", 46 invalid: true, 47 }, { 48 output: "hello world", 49 invalid: true, 50 }, 51 } 52 53 for _, test := range tests { 54 test := test 55 t.Run(test.output, func(t *testing.T) { 56 version, commit, err := parseInitVersion(test.output) 57 if test.invalid { 58 assert.Check(t, is.ErrorContains(err, "")) 59 } else { 60 assert.Check(t, err) 61 } 62 assert.Equal(t, test.version, version) 63 assert.Equal(t, test.commit, commit) 64 }) 65 } 66 } 67 68 func TestParseRuntimeVersion(t *testing.T) { 69 tests := []struct { 70 output string 71 runtime string 72 version string 73 commit string 74 invalid bool 75 }{ 76 { 77 output: ` 78 runc version 1.0.0-rc5+dev 79 commit: 69663f0bd4b60df09991c08812a60108003fa340 80 spec: 1.0.0 81 `, 82 runtime: "runc", 83 version: "1.0.0-rc5+dev", 84 commit: "69663f0bd4b60df09991c08812a60108003fa340", 85 }, 86 { 87 output: ` 88 runc version 1.0.0-rc5+dev 89 spec: 1.0.0 90 `, 91 runtime: "runc", 92 version: "1.0.0-rc5+dev", 93 }, 94 { 95 output: ` 96 commit: 69663f0bd4b60df09991c08812a60108003fa340 97 spec: 1.0.0 98 `, 99 commit: "69663f0bd4b60df09991c08812a60108003fa340", 100 }, 101 { 102 output: ` 103 crun version 0.7 104 spec: 1.0.0 105 +SYSTEMD +SELINUX +CAP +SECCOMP +EBPF +YAJL 106 `, 107 runtime: "crun", 108 version: "0.7", 109 }, 110 { 111 output: "", 112 invalid: true, 113 }, 114 { 115 output: "hello world", 116 invalid: true, 117 }, 118 } 119 120 for _, test := range tests { 121 runtime, version, commit, err := parseRuntimeVersion(test.output) 122 if test.invalid { 123 assert.Check(t, is.ErrorContains(err, "")) 124 } else { 125 assert.Check(t, err) 126 } 127 assert.Equal(t, test.runtime, runtime) 128 assert.Equal(t, test.version, version) 129 assert.Equal(t, test.commit, commit) 130 } 131 }