wrap_test.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package archive // import "github.com/docker/docker/pkg/archive"
  2. import (
  3. "archive/tar"
  4. "bytes"
  5. "io"
  6. "testing"
  7. "gotest.tools/v3/assert"
  8. )
  9. func TestGenerateEmptyFile(t *testing.T) {
  10. archive, err := Generate("emptyFile")
  11. assert.NilError(t, err)
  12. if archive == nil {
  13. t.Fatal("The generated archive should not be nil.")
  14. }
  15. expectedFiles := [][]string{
  16. {"emptyFile", ""},
  17. }
  18. tr := tar.NewReader(archive)
  19. actualFiles := make([][]string, 0, 10)
  20. i := 0
  21. for {
  22. hdr, err := tr.Next()
  23. if err == io.EOF {
  24. break
  25. }
  26. assert.NilError(t, err)
  27. buf := new(bytes.Buffer)
  28. buf.ReadFrom(tr)
  29. content := buf.String()
  30. actualFiles = append(actualFiles, []string{hdr.Name, content})
  31. i++
  32. }
  33. if len(actualFiles) != len(expectedFiles) {
  34. t.Fatalf("Number of expected file %d, got %d.", len(expectedFiles), len(actualFiles))
  35. }
  36. for i := 0; i < len(expectedFiles); i++ {
  37. actual := actualFiles[i]
  38. expected := expectedFiles[i]
  39. if actual[0] != expected[0] {
  40. t.Fatalf("Expected name '%s', Actual name '%s'", expected[0], actual[0])
  41. }
  42. if actual[1] != expected[1] {
  43. t.Fatalf("Expected content '%s', Actual content '%s'", expected[1], actual[1])
  44. }
  45. }
  46. }
  47. func TestGenerateWithContent(t *testing.T) {
  48. archive, err := Generate("file", "content")
  49. assert.NilError(t, err)
  50. if archive == nil {
  51. t.Fatal("The generated archive should not be nil.")
  52. }
  53. expectedFiles := [][]string{
  54. {"file", "content"},
  55. }
  56. tr := tar.NewReader(archive)
  57. actualFiles := make([][]string, 0, 10)
  58. i := 0
  59. for {
  60. hdr, err := tr.Next()
  61. if err == io.EOF {
  62. break
  63. }
  64. assert.NilError(t, err)
  65. buf := new(bytes.Buffer)
  66. buf.ReadFrom(tr)
  67. content := buf.String()
  68. actualFiles = append(actualFiles, []string{hdr.Name, content})
  69. i++
  70. }
  71. if len(actualFiles) != len(expectedFiles) {
  72. t.Fatalf("Number of expected file %d, got %d.", len(expectedFiles), len(actualFiles))
  73. }
  74. for i := 0; i < len(expectedFiles); i++ {
  75. actual := actualFiles[i]
  76. expected := expectedFiles[i]
  77. if actual[0] != expected[0] {
  78. t.Fatalf("Expected name '%s', Actual name '%s'", expected[0], actual[0])
  79. }
  80. if actual[1] != expected[1] {
  81. t.Fatalf("Expected content '%s', Actual content '%s'", expected[1], actual[1])
  82. }
  83. }
  84. }