github.com/chentex/terraform@v0.11.2-0.20171208003256-252e8145842e/backend/remote-state/consul/backend_test.go (about) 1 package consul 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 "os" 7 "testing" 8 "time" 9 10 "github.com/hashicorp/consul/testutil" 11 "github.com/hashicorp/terraform/backend" 12 ) 13 14 func TestBackend_impl(t *testing.T) { 15 var _ backend.Backend = new(Backend) 16 } 17 18 var srv *testutil.TestServer 19 20 func TestMain(m *testing.M) { 21 if os.Getenv("TF_ACC") == "" && os.Getenv("TF_CONSUL_TEST") == "" { 22 fmt.Println("consul server tests require setting TF_ACC or TF_CONSUL_TEST") 23 return 24 } 25 26 var err error 27 srv, err = newConsulTestServer() 28 if err != nil { 29 fmt.Println(err) 30 os.Exit(1) 31 } 32 33 rc := m.Run() 34 srv.Stop() 35 os.Exit(rc) 36 } 37 38 func newConsulTestServer() (*testutil.TestServer, error) { 39 srv, err := testutil.NewTestServerConfig(func(c *testutil.TestServerConfig) { 40 c.LogLevel = "warn" 41 42 if !testing.Verbose() { 43 c.Stdout = ioutil.Discard 44 c.Stderr = ioutil.Discard 45 } 46 }) 47 48 return srv, err 49 } 50 51 func TestBackend(t *testing.T) { 52 path := fmt.Sprintf("tf-unit/%s", time.Now().String()) 53 54 // Get the backend. We need two to test locking. 55 b1 := backend.TestBackendConfig(t, New(), map[string]interface{}{ 56 "address": srv.HTTPAddr, 57 "path": path, 58 }) 59 60 b2 := backend.TestBackendConfig(t, New(), map[string]interface{}{ 61 "address": srv.HTTPAddr, 62 "path": path, 63 }) 64 65 // Test 66 backend.TestBackend(t, b1, b2) 67 } 68 69 func TestBackend_lockDisabled(t *testing.T) { 70 path := fmt.Sprintf("tf-unit/%s", time.Now().String()) 71 72 // Get the backend. We need two to test locking. 73 b1 := backend.TestBackendConfig(t, New(), map[string]interface{}{ 74 "address": srv.HTTPAddr, 75 "path": path, 76 "lock": false, 77 }) 78 79 b2 := backend.TestBackendConfig(t, New(), map[string]interface{}{ 80 "address": srv.HTTPAddr, 81 "path": path + "different", // Diff so locking test would fail if it was locking 82 "lock": false, 83 }) 84 85 // Test 86 backend.TestBackend(t, b1, b2) 87 } 88 89 func TestBackend_gzip(t *testing.T) { 90 // Get the backend 91 b := backend.TestBackendConfig(t, New(), map[string]interface{}{ 92 "address": srv.HTTPAddr, 93 "path": fmt.Sprintf("tf-unit/%s", time.Now().String()), 94 "gzip": true, 95 }) 96 97 // Test 98 backend.TestBackend(t, b, nil) 99 }