1// +build !consulent 2 3package config 4 5import ( 6 "os" 7 "testing" 8 9 "github.com/hashicorp/consul/sdk/testutil" 10) 11 12func TestSegments(t *testing.T) { 13 dataDir := testutil.TempDir(t, "consul") 14 defer os.RemoveAll(dataDir) 15 16 tests := []configTest{ 17 { 18 desc: "segment name not in OSS", 19 args: []string{ 20 `-data-dir=` + dataDir, 21 }, 22 json: []string{`{ "server": true, "segment": "a" }`}, 23 hcl: []string{` server = true segment = "a" `}, 24 err: `Network segments are not supported in this version of Consul`, 25 warns: []string{ 26 enterpriseConfigKeyError{key: "segment"}.Error(), 27 }, 28 }, 29 { 30 desc: "segment port must be set", 31 args: []string{ 32 `-data-dir=` + dataDir, 33 }, 34 json: []string{`{ "segments":[{ "name":"x" }] }`}, 35 hcl: []string{`segments = [{ name = "x" }]`}, 36 err: `Port for segment "x" cannot be <= 0`, 37 warns: []string{ 38 enterpriseConfigKeyError{key: "segments"}.Error(), 39 }, 40 }, 41 { 42 desc: "segments not in OSS", 43 args: []string{ 44 `-data-dir=` + dataDir, 45 }, 46 json: []string{`{ "segments":[{ "name":"x", "port": 123 }] }`}, 47 hcl: []string{`segments = [{ name = "x" port = 123 }]`}, 48 err: `Network segments are not supported in this version of Consul`, 49 warns: []string{ 50 enterpriseConfigKeyError{key: "segments"}.Error(), 51 }, 52 }, 53 } 54 55 testConfig(t, tests, dataDir) 56} 57