info_unix_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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 version0.13.2",
  27. invalid: true,
  28. }, {
  29. output: "",
  30. invalid: true,
  31. }, {
  32. output: "hello world",
  33. invalid: true,
  34. },
  35. }
  36. for _, test := range tests {
  37. version, commit, err := parseInitVersion(string(test.output))
  38. if test.invalid {
  39. assert.Check(t, is.ErrorContains(err, ""))
  40. } else {
  41. assert.Check(t, err)
  42. }
  43. assert.Equal(t, test.version, version)
  44. assert.Equal(t, test.commit, commit)
  45. }
  46. }
  47. func TestParseRuncVersion(t *testing.T) {
  48. tests := []struct {
  49. output string
  50. version string
  51. commit string
  52. invalid bool
  53. }{
  54. {
  55. output: `
  56. runc version 1.0.0-rc5+dev
  57. commit: 69663f0bd4b60df09991c08812a60108003fa340
  58. spec: 1.0.0
  59. `,
  60. version: "1.0.0-rc5+dev",
  61. commit: "69663f0bd4b60df09991c08812a60108003fa340",
  62. },
  63. {
  64. output: `
  65. runc version 1.0.0-rc5+dev
  66. spec: 1.0.0
  67. `,
  68. version: "1.0.0-rc5+dev",
  69. },
  70. {
  71. output: `
  72. commit: 69663f0bd4b60df09991c08812a60108003fa340
  73. spec: 1.0.0
  74. `,
  75. commit: "69663f0bd4b60df09991c08812a60108003fa340",
  76. },
  77. {
  78. output: `
  79. crun version 0.7
  80. spec: 1.0.0
  81. +SYSTEMD +SELINUX +CAP +SECCOMP +EBPF +YAJL
  82. `,
  83. version: "0.7",
  84. },
  85. {
  86. output: "",
  87. invalid: true,
  88. },
  89. {
  90. output: "hello world",
  91. invalid: true,
  92. },
  93. }
  94. for _, test := range tests {
  95. version, commit, err := parseRuncVersion(string(test.output))
  96. if test.invalid {
  97. assert.Check(t, is.ErrorContains(err, ""))
  98. } else {
  99. assert.Check(t, err)
  100. }
  101. assert.Equal(t, test.version, version)
  102. assert.Equal(t, test.commit, commit)
  103. }
  104. }