delete_test.go 785 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package daemon
  2. import (
  3. "io/ioutil"
  4. "os"
  5. "testing"
  6. "github.com/docker/docker/runconfig"
  7. )
  8. func TestContainerDoubleDelete(t *testing.T) {
  9. tmp, err := ioutil.TempDir("", "docker-daemon-unix-test-")
  10. if err != nil {
  11. t.Fatal(err)
  12. }
  13. defer os.RemoveAll(tmp)
  14. daemon := &Daemon{
  15. repository: tmp,
  16. root: tmp,
  17. }
  18. container := &Container{
  19. CommonContainer: CommonContainer{
  20. State: NewState(),
  21. Config: &runconfig.Config{},
  22. },
  23. }
  24. // Mark the container as having a delete in progress
  25. if err := container.setRemovalInProgress(); err != nil {
  26. t.Fatal(err)
  27. }
  28. // Try to remove the container when it's start is removalInProgress.
  29. // It should ignore the container and not return an error.
  30. if err := daemon.rm(container, true); err != nil {
  31. t.Fatal(err)
  32. }
  33. }