info_unix_test.go 2.1 KB

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