store_linux_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package libnetwork
  2. import (
  3. "os"
  4. "path/filepath"
  5. "testing"
  6. "github.com/docker/docker/libnetwork/datastore"
  7. store "github.com/docker/docker/libnetwork/internal/kvstore"
  8. )
  9. func TestBoltdbBackend(t *testing.T) {
  10. defer os.Remove(datastore.DefaultScope("").Client.Address)
  11. testLocalBackend(t, "", "", nil)
  12. tmpPath := filepath.Join(t.TempDir(), "boltdb.db")
  13. testLocalBackend(t, "boltdb", tmpPath, &store.Config{
  14. Bucket: "testBackend",
  15. })
  16. }
  17. func TestNoPersist(t *testing.T) {
  18. testController, err := New(OptionBoltdbWithRandomDBFile(t))
  19. if err != nil {
  20. t.Fatalf("Error new controller: %v", err)
  21. }
  22. defer testController.Stop()
  23. nw, err := testController.NewNetwork("host", "host", "", NetworkOptionPersist(false))
  24. if err != nil {
  25. t.Fatalf(`Error creating default "host" network: %v`, err)
  26. }
  27. ep, err := nw.CreateEndpoint("newendpoint", []EndpointOption{}...)
  28. if err != nil {
  29. t.Fatalf("Error creating endpoint: %v", err)
  30. }
  31. kvStore := testController.getStore().KVStore()
  32. if exists, _ := kvStore.Exists(datastore.Key(datastore.NetworkKeyPrefix, nw.ID())); exists {
  33. t.Fatalf("Network with persist=false should not be stored in KV Store")
  34. }
  35. if exists, _ := kvStore.Exists(datastore.Key([]string{datastore.EndpointKeyPrefix, nw.ID(), ep.ID()}...)); exists {
  36. t.Fatalf("Endpoint in Network with persist=false should not be stored in KV Store")
  37. }
  38. kvStore.Close()
  39. }