graph_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package docker
  2. import (
  3. "github.com/dotcloud/docker"
  4. "io/ioutil"
  5. "os"
  6. "path"
  7. "testing"
  8. )
  9. func TestMount(t *testing.T) {
  10. graph := tempGraph(t)
  11. defer os.RemoveAll(graph.Root)
  12. archive, err := fakeTar()
  13. if err != nil {
  14. t.Fatal(err)
  15. }
  16. image, err := graph.Create(archive, nil, "Testing", "", nil)
  17. if err != nil {
  18. t.Fatal(err)
  19. }
  20. tmp, err := ioutil.TempDir("", "docker-test-graph-mount-")
  21. if err != nil {
  22. t.Fatal(err)
  23. }
  24. defer os.RemoveAll(tmp)
  25. rootfs := path.Join(tmp, "rootfs")
  26. if err := os.MkdirAll(rootfs, 0700); err != nil {
  27. t.Fatal(err)
  28. }
  29. rw := path.Join(tmp, "rw")
  30. if err := os.MkdirAll(rw, 0700); err != nil {
  31. t.Fatal(err)
  32. }
  33. if err := image.Mount(rootfs, rw); err != nil {
  34. t.Fatal(err)
  35. }
  36. // FIXME: test for mount contents
  37. defer func() {
  38. if err := docker.Unmount(rootfs); err != nil {
  39. t.Error(err)
  40. }
  41. }()
  42. }
  43. //FIXME: duplicate
  44. func tempGraph(t *testing.T) *docker.Graph {
  45. tmp, err := ioutil.TempDir("", "docker-graph-")
  46. if err != nil {
  47. t.Fatal(err)
  48. }
  49. graph, err := docker.NewGraph(tmp)
  50. if err != nil {
  51. t.Fatal(err)
  52. }
  53. return graph
  54. }