// +build !windows package daemon // import "github.com/docker/docker/daemon" import ( "testing" "gotest.tools/assert" is "gotest.tools/assert/cmp" ) func TestParseInitVersion(t *testing.T) { tests := []struct { output string version string commit string invalid bool }{ { output: "tini version 0.13.0 - git.949e6fa", version: "0.13.0", commit: "949e6fa", }, { output: "tini version 0.13.0\n", version: "0.13.0", }, { output: "tini version 0.13.2", version: "0.13.2", }, { output: "tini version0.13.2", invalid: true, }, { output: "", invalid: true, }, { output: "hello world", invalid: true, }, } for _, test := range tests { version, commit, err := parseInitVersion(string(test.output)) if test.invalid { assert.Check(t, is.ErrorContains(err, "")) } else { assert.Check(t, err) } assert.Equal(t, test.version, version) assert.Equal(t, test.commit, commit) } } func TestParseRuncVersion(t *testing.T) { tests := []struct { output string version string commit string invalid bool }{ { output: ` runc version 1.0.0-rc5+dev commit: 69663f0bd4b60df09991c08812a60108003fa340 spec: 1.0.0 `, version: "1.0.0-rc5+dev", commit: "69663f0bd4b60df09991c08812a60108003fa340", }, { output: ` runc version 1.0.0-rc5+dev spec: 1.0.0 `, version: "1.0.0-rc5+dev", }, { output: ` commit: 69663f0bd4b60df09991c08812a60108003fa340 spec: 1.0.0 `, commit: "69663f0bd4b60df09991c08812a60108003fa340", }, { output: "", invalid: true, }, { output: "hello world", invalid: true, }, } for _, test := range tests { version, commit, err := parseRuncVersion(string(test.output)) if test.invalid { assert.Check(t, is.ErrorContains(err, "")) } else { assert.Check(t, err) } assert.Equal(t, test.version, version) assert.Equal(t, test.commit, commit) } }