builder_context_test.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package tarsum // import "github.com/docker/docker/pkg/tarsum"
  2. import (
  3. "io"
  4. "os"
  5. "testing"
  6. )
  7. // Try to remove tarsum (in the BuilderContext) that do not exists, won't change a thing
  8. func TestTarSumRemoveNonExistent(t *testing.T) {
  9. filename := "testdata/46af0962ab5afeb5ce6740d4d91652e69206fc991fd5328c1a94d364ad00e457/layer.tar"
  10. reader, err := os.Open(filename)
  11. if err != nil {
  12. t.Fatal(err)
  13. }
  14. defer reader.Close()
  15. ts, err := NewTarSum(reader, false, Version0)
  16. if err != nil {
  17. t.Fatal(err)
  18. }
  19. // Read and discard bytes so that it populates sums
  20. _, err = io.Copy(io.Discard, ts)
  21. if err != nil {
  22. t.Errorf("failed to read from %s: %s", filename, err)
  23. }
  24. expected := len(ts.GetSums())
  25. ts.(BuilderContext).Remove("")
  26. ts.(BuilderContext).Remove("Anything")
  27. if len(ts.GetSums()) != expected {
  28. t.Fatalf("Expected %v sums, go %v.", expected, ts.GetSums())
  29. }
  30. }
  31. // Remove a tarsum (in the BuilderContext)
  32. func TestTarSumRemove(t *testing.T) {
  33. filename := "testdata/46af0962ab5afeb5ce6740d4d91652e69206fc991fd5328c1a94d364ad00e457/layer.tar"
  34. reader, err := os.Open(filename)
  35. if err != nil {
  36. t.Fatal(err)
  37. }
  38. defer reader.Close()
  39. ts, err := NewTarSum(reader, false, Version0)
  40. if err != nil {
  41. t.Fatal(err)
  42. }
  43. // Read and discard bytes so that it populates sums
  44. _, err = io.Copy(io.Discard, ts)
  45. if err != nil {
  46. t.Errorf("failed to read from %s: %s", filename, err)
  47. }
  48. expected := len(ts.GetSums()) - 1
  49. ts.(BuilderContext).Remove("etc/sudoers")
  50. if len(ts.GetSums()) != expected {
  51. t.Fatalf("Expected %v sums, go %v.", expected, len(ts.GetSums()))
  52. }
  53. }