info_unix_test.go 2.4 KB

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