info_unix_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // +build !windows
  2. package daemon // import "github.com/docker/docker/daemon"
  3. import (
  4. "testing"
  5. "github.com/docker/docker/api/types"
  6. "github.com/docker/docker/dockerversion"
  7. "gotest.tools/assert"
  8. is "gotest.tools/assert/cmp"
  9. )
  10. func TestParseInitVersion(t *testing.T) {
  11. tests := []struct {
  12. version string
  13. result types.Commit
  14. invalid bool
  15. }{
  16. {
  17. version: "tini version 0.13.0 - git.949e6fa",
  18. result: types.Commit{ID: "949e6fa", Expected: dockerversion.InitCommitID[0:7]},
  19. }, {
  20. version: "tini version 0.13.0\n",
  21. result: types.Commit{ID: "v0.13.0", Expected: dockerversion.InitCommitID},
  22. }, {
  23. version: "tini version 0.13.2",
  24. result: types.Commit{ID: "v0.13.2", Expected: dockerversion.InitCommitID},
  25. }, {
  26. version: "tini version0.13.2",
  27. result: types.Commit{ID: "N/A", Expected: dockerversion.InitCommitID},
  28. invalid: true,
  29. }, {
  30. version: "",
  31. result: types.Commit{ID: "N/A", Expected: dockerversion.InitCommitID},
  32. invalid: true,
  33. }, {
  34. version: "hello world",
  35. result: types.Commit{ID: "N/A", Expected: dockerversion.InitCommitID},
  36. invalid: true,
  37. },
  38. }
  39. for _, test := range tests {
  40. ver, err := parseInitVersion(string(test.version))
  41. if test.invalid {
  42. assert.Check(t, is.ErrorContains(err, ""))
  43. } else {
  44. assert.Check(t, err)
  45. }
  46. assert.Check(t, is.DeepEqual(test.result, ver))
  47. }
  48. }