test: run agent tests in parallel

This brings down the test run from 108 sec to 15 sec.

There is an occasional port conflict because of the nature
the next port is chosen. So far it seems rare enough to live
with it.
pull/3037/head
Frank Schroeder 2017-05-21 09:54:40 +02:00
parent 23a6ff383c
commit 308f9929b3
No known key found for this signature in database
GPG Key ID: 4D65C6EAEC87DECD
30 changed files with 421 additions and 20 deletions

View File

@ -31,6 +31,7 @@ func makeTestACL(t *testing.T, srv *HTTPServer) string {
} }
func TestACLUpdate(t *testing.T) { func TestACLUpdate(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
id := makeTestACL(t, srv) id := makeTestACL(t, srv)
@ -58,6 +59,7 @@ func TestACLUpdate(t *testing.T) {
} }
func TestACLUpdate_Upsert(t *testing.T) { func TestACLUpdate_Upsert(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
body := bytes.NewBuffer(nil) body := bytes.NewBuffer(nil)
enc := json.NewEncoder(body) enc := json.NewEncoder(body)
@ -83,6 +85,7 @@ func TestACLUpdate_Upsert(t *testing.T) {
} }
func TestACLDestroy(t *testing.T) { func TestACLDestroy(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
id := makeTestACL(t, srv) id := makeTestACL(t, srv)
req, _ := http.NewRequest("PUT", "/v1/acl/destroy/"+id+"?token=root", nil) req, _ := http.NewRequest("PUT", "/v1/acl/destroy/"+id+"?token=root", nil)
@ -112,6 +115,7 @@ func TestACLDestroy(t *testing.T) {
} }
func TestACLClone(t *testing.T) { func TestACLClone(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
id := makeTestACL(t, srv) id := makeTestACL(t, srv)
@ -146,6 +150,7 @@ func TestACLClone(t *testing.T) {
} }
func TestACLGet(t *testing.T) { func TestACLGet(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
req, _ := http.NewRequest("GET", "/v1/acl/info/nope", nil) req, _ := http.NewRequest("GET", "/v1/acl/info/nope", nil)
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
@ -182,6 +187,7 @@ func TestACLGet(t *testing.T) {
} }
func TestACLList(t *testing.T) { func TestACLList(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
var ids []string var ids []string
for i := 0; i < 10; i++ { for i := 0; i < 10; i++ {
@ -207,6 +213,7 @@ func TestACLList(t *testing.T) {
} }
func TestACLReplicationStatus(t *testing.T) { func TestACLReplicationStatus(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
req, _ := http.NewRequest("GET", "/v1/acl/replication", nil) req, _ := http.NewRequest("GET", "/v1/acl/replication", nil)
resp := httptest.NewRecorder() resp := httptest.NewRecorder()

View File

@ -15,6 +15,7 @@ import (
) )
func TestACL_Bad_Config(t *testing.T) { func TestACL_Bad_Config(t *testing.T) {
t.Parallel()
c := TestConfig() c := TestConfig()
c.ACLDownPolicy = "nope" c.ACLDownPolicy = "nope"
c.DataDir = testutil.TempDir(t, "agent") c.DataDir = testutil.TempDir(t, "agent")
@ -37,6 +38,7 @@ func (m *MockServer) GetPolicy(args *structs.ACLPolicyRequest, reply *structs.AC
} }
func TestACL_Version8(t *testing.T) { func TestACL_Version8(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLEnforceVersion8 = &BoolFalse config.ACLEnforceVersion8 = &BoolFalse
a := NewTestAgent(t.Name(), config) a := NewTestAgent(t.Name(), config)
@ -58,6 +60,7 @@ func TestACL_Version8(t *testing.T) {
} }
func TestACL_Disabled(t *testing.T) { func TestACL_Disabled(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLDisabledTTL = 10 * time.Millisecond config.ACLDisabledTTL = 10 * time.Millisecond
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
@ -110,6 +113,7 @@ func TestACL_Disabled(t *testing.T) {
} }
func TestACL_Special_IDs(t *testing.T) { func TestACL_Special_IDs(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
config.ACLAgentMasterToken = "towel" config.ACLAgentMasterToken = "towel"
@ -162,6 +166,7 @@ func TestACL_Special_IDs(t *testing.T) {
} }
func TestACL_Down_Deny(t *testing.T) { func TestACL_Down_Deny(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLDownPolicy = "deny" config.ACLDownPolicy = "deny"
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
@ -191,6 +196,7 @@ func TestACL_Down_Deny(t *testing.T) {
} }
func TestACL_Down_Allow(t *testing.T) { func TestACL_Down_Allow(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLDownPolicy = "allow" config.ACLDownPolicy = "allow"
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
@ -220,6 +226,7 @@ func TestACL_Down_Allow(t *testing.T) {
} }
func TestACL_Down_Extend(t *testing.T) { func TestACL_Down_Extend(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLDownPolicy = "extend-cache" config.ACLDownPolicy = "extend-cache"
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
@ -297,6 +304,7 @@ func TestACL_Down_Extend(t *testing.T) {
} }
func TestACL_Cache(t *testing.T) { func TestACL_Cache(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
@ -478,6 +486,7 @@ func catalogPolicy(req *structs.ACLPolicyRequest, reply *structs.ACLPolicy) erro
} }
func TestACL_vetServiceRegister(t *testing.T) { func TestACL_vetServiceRegister(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
@ -523,6 +532,7 @@ func TestACL_vetServiceRegister(t *testing.T) {
} }
func TestACL_vetServiceUpdate(t *testing.T) { func TestACL_vetServiceUpdate(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
@ -558,6 +568,7 @@ func TestACL_vetServiceUpdate(t *testing.T) {
} }
func TestACL_vetCheckRegister(t *testing.T) { func TestACL_vetCheckRegister(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
@ -640,6 +651,7 @@ func TestACL_vetCheckRegister(t *testing.T) {
} }
func TestACL_vetCheckUpdate(t *testing.T) { func TestACL_vetCheckUpdate(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
@ -695,6 +707,7 @@ func TestACL_vetCheckUpdate(t *testing.T) {
} }
func TestACL_filterMembers(t *testing.T) { func TestACL_filterMembers(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
@ -730,6 +743,7 @@ func TestACL_filterMembers(t *testing.T) {
} }
func TestACL_filterServices(t *testing.T) { func TestACL_filterServices(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue
@ -760,6 +774,7 @@ func TestACL_filterServices(t *testing.T) {
} }
func TestACL_filterChecks(t *testing.T) { func TestACL_filterChecks(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLEnforceVersion8 = &BoolTrue config.ACLEnforceVersion8 = &BoolTrue

View File

@ -41,6 +41,7 @@ func makeReadOnlyAgentACL(t *testing.T, srv *HTTPServer) string {
} }
func TestAgent_Services(t *testing.T) { func TestAgent_Services(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -67,6 +68,7 @@ func TestAgent_Services(t *testing.T) {
} }
func TestAgent_Services_ACLFilter(t *testing.T) { func TestAgent_Services_ACLFilter(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -96,6 +98,7 @@ func TestAgent_Services_ACLFilter(t *testing.T) {
} }
func TestAgent_Checks(t *testing.T) { func TestAgent_Checks(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -122,6 +125,7 @@ func TestAgent_Checks(t *testing.T) {
} }
func TestAgent_Checks_ACLFilter(t *testing.T) { func TestAgent_Checks_ACLFilter(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -159,6 +163,7 @@ func TestAgent_Checks_ACLFilter(t *testing.T) {
} }
func TestAgent_Self(t *testing.T) { func TestAgent_Self(t *testing.T) {
t.Parallel()
conf := TestConfig() conf := TestConfig()
conf.Meta = map[string]string{"somekey": "somevalue"} conf.Meta = map[string]string{"somekey": "somevalue"}
a := NewTestAgent(t.Name(), conf) a := NewTestAgent(t.Name(), conf)
@ -201,6 +206,7 @@ func TestAgent_Self(t *testing.T) {
} }
func TestAgent_Self_ACLDeny(t *testing.T) { func TestAgent_Self_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -228,6 +234,7 @@ func TestAgent_Self_ACLDeny(t *testing.T) {
} }
func TestAgent_Reload(t *testing.T) { func TestAgent_Reload(t *testing.T) {
t.Parallel()
conf := TestConfig() conf := TestConfig()
tmpDir := testutil.TempDir(t, "consul") tmpDir := testutil.TempDir(t, "consul")
defer os.RemoveAll(tmpDir) defer os.RemoveAll(tmpDir)
@ -299,6 +306,7 @@ func TestAgent_Reload(t *testing.T) {
} }
func TestAgent_Reload_ACLDeny(t *testing.T) { func TestAgent_Reload_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -324,6 +332,7 @@ func TestAgent_Reload_ACLDeny(t *testing.T) {
} }
func TestAgent_Members(t *testing.T) { func TestAgent_Members(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -343,6 +352,7 @@ func TestAgent_Members(t *testing.T) {
} }
func TestAgent_Members_WAN(t *testing.T) { func TestAgent_Members_WAN(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -362,6 +372,7 @@ func TestAgent_Members_WAN(t *testing.T) {
} }
func TestAgent_Members_ACLFilter(t *testing.T) { func TestAgent_Members_ACLFilter(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -391,6 +402,7 @@ func TestAgent_Members_ACLFilter(t *testing.T) {
} }
func TestAgent_Join(t *testing.T) { func TestAgent_Join(t *testing.T) {
t.Parallel()
a1 := NewTestAgent(t.Name(), nil) a1 := NewTestAgent(t.Name(), nil)
defer a1.Shutdown() defer a1.Shutdown()
a2 := NewTestAgent(t.Name(), nil) a2 := NewTestAgent(t.Name(), nil)
@ -418,6 +430,7 @@ func TestAgent_Join(t *testing.T) {
} }
func TestAgent_Join_WAN(t *testing.T) { func TestAgent_Join_WAN(t *testing.T) {
t.Parallel()
a1 := NewTestAgent(t.Name(), nil) a1 := NewTestAgent(t.Name(), nil)
defer a1.Shutdown() defer a1.Shutdown()
a2 := NewTestAgent(t.Name(), nil) a2 := NewTestAgent(t.Name(), nil)
@ -445,6 +458,7 @@ func TestAgent_Join_WAN(t *testing.T) {
} }
func TestAgent_Join_ACLDeny(t *testing.T) { func TestAgent_Join_ACLDeny(t *testing.T) {
t.Parallel()
a1 := NewTestAgent(t.Name(), TestACLConfig()) a1 := NewTestAgent(t.Name(), TestACLConfig())
defer a1.Shutdown() defer a1.Shutdown()
a2 := NewTestAgent(t.Name(), nil) a2 := NewTestAgent(t.Name(), nil)
@ -477,6 +491,7 @@ func TestAgent_Join_ACLDeny(t *testing.T) {
} }
func TestAgent_Leave(t *testing.T) { func TestAgent_Leave(t *testing.T) {
t.Parallel()
a1 := NewTestAgent(t.Name(), nil) a1 := NewTestAgent(t.Name(), nil)
defer a1.Shutdown() defer a1.Shutdown()
@ -511,6 +526,7 @@ func TestAgent_Leave(t *testing.T) {
} }
func TestAgent_Leave_ACLDeny(t *testing.T) { func TestAgent_Leave_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -540,6 +556,7 @@ func TestAgent_Leave_ACLDeny(t *testing.T) {
} }
func TestAgent_ForceLeave(t *testing.T) { func TestAgent_ForceLeave(t *testing.T) {
t.Parallel()
a1 := NewTestAgent(t.Name(), nil) a1 := NewTestAgent(t.Name(), nil)
defer a1.Shutdown() defer a1.Shutdown()
a2 := NewTestAgent(t.Name(), nil) a2 := NewTestAgent(t.Name(), nil)
@ -573,6 +590,7 @@ func TestAgent_ForceLeave(t *testing.T) {
} }
func TestAgent_ForceLeave_ACLDeny(t *testing.T) { func TestAgent_ForceLeave_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -600,6 +618,7 @@ func TestAgent_ForceLeave_ACLDeny(t *testing.T) {
} }
func TestAgent_RegisterCheck(t *testing.T) { func TestAgent_RegisterCheck(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -640,6 +659,7 @@ func TestAgent_RegisterCheck(t *testing.T) {
} }
func TestAgent_RegisterCheck_Passing(t *testing.T) { func TestAgent_RegisterCheck_Passing(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -675,6 +695,7 @@ func TestAgent_RegisterCheck_Passing(t *testing.T) {
} }
func TestAgent_RegisterCheck_BadStatus(t *testing.T) { func TestAgent_RegisterCheck_BadStatus(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -695,6 +716,7 @@ func TestAgent_RegisterCheck_BadStatus(t *testing.T) {
} }
func TestAgent_RegisterCheck_ACLDeny(t *testing.T) { func TestAgent_RegisterCheck_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -719,6 +741,7 @@ func TestAgent_RegisterCheck_ACLDeny(t *testing.T) {
} }
func TestAgent_DeregisterCheck(t *testing.T) { func TestAgent_DeregisterCheck(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -744,6 +767,7 @@ func TestAgent_DeregisterCheck(t *testing.T) {
} }
func TestAgent_DeregisterCheckACLDeny(t *testing.T) { func TestAgent_DeregisterCheckACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -768,6 +792,7 @@ func TestAgent_DeregisterCheckACLDeny(t *testing.T) {
} }
func TestAgent_PassCheck(t *testing.T) { func TestAgent_PassCheck(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -794,6 +819,7 @@ func TestAgent_PassCheck(t *testing.T) {
} }
func TestAgent_PassCheck_ACLDeny(t *testing.T) { func TestAgent_PassCheck_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -819,6 +845,7 @@ func TestAgent_PassCheck_ACLDeny(t *testing.T) {
} }
func TestAgent_WarnCheck(t *testing.T) { func TestAgent_WarnCheck(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -845,6 +872,7 @@ func TestAgent_WarnCheck(t *testing.T) {
} }
func TestAgent_WarnCheck_ACLDeny(t *testing.T) { func TestAgent_WarnCheck_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -870,6 +898,7 @@ func TestAgent_WarnCheck_ACLDeny(t *testing.T) {
} }
func TestAgent_FailCheck(t *testing.T) { func TestAgent_FailCheck(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -896,6 +925,7 @@ func TestAgent_FailCheck(t *testing.T) {
} }
func TestAgent_FailCheck_ACLDeny(t *testing.T) { func TestAgent_FailCheck_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -921,6 +951,7 @@ func TestAgent_FailCheck_ACLDeny(t *testing.T) {
} }
func TestAgent_UpdateCheck(t *testing.T) { func TestAgent_UpdateCheck(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1019,6 +1050,7 @@ func TestAgent_UpdateCheck(t *testing.T) {
} }
func TestAgent_UpdateCheck_ACLDeny(t *testing.T) { func TestAgent_UpdateCheck_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -1046,6 +1078,7 @@ func TestAgent_UpdateCheck_ACLDeny(t *testing.T) {
} }
func TestAgent_RegisterService(t *testing.T) { func TestAgent_RegisterService(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1097,6 +1130,7 @@ func TestAgent_RegisterService(t *testing.T) {
} }
func TestAgent_RegisterService_ACLDeny(t *testing.T) { func TestAgent_RegisterService_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -1133,6 +1167,7 @@ func TestAgent_RegisterService_ACLDeny(t *testing.T) {
} }
func TestAgent_RegisterService_InvalidAddress(t *testing.T) { func TestAgent_RegisterService_InvalidAddress(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1160,6 +1195,7 @@ func TestAgent_RegisterService_InvalidAddress(t *testing.T) {
} }
func TestAgent_DeregisterService(t *testing.T) { func TestAgent_DeregisterService(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1191,6 +1227,7 @@ func TestAgent_DeregisterService(t *testing.T) {
} }
func TestAgent_DeregisterService_ACLDeny(t *testing.T) { func TestAgent_DeregisterService_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -1218,6 +1255,7 @@ func TestAgent_DeregisterService_ACLDeny(t *testing.T) {
} }
func TestAgent_ServiceMaintenance_BadRequest(t *testing.T) { func TestAgent_ServiceMaintenance_BadRequest(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1267,6 +1305,7 @@ func TestAgent_ServiceMaintenance_BadRequest(t *testing.T) {
} }
func TestAgent_ServiceMaintenance_Enable(t *testing.T) { func TestAgent_ServiceMaintenance_Enable(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1308,6 +1347,7 @@ func TestAgent_ServiceMaintenance_Enable(t *testing.T) {
} }
func TestAgent_ServiceMaintenance_Disable(t *testing.T) { func TestAgent_ServiceMaintenance_Disable(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1343,6 +1383,7 @@ func TestAgent_ServiceMaintenance_Disable(t *testing.T) {
} }
func TestAgent_ServiceMaintenance_ACLDeny(t *testing.T) { func TestAgent_ServiceMaintenance_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -1371,6 +1412,7 @@ func TestAgent_ServiceMaintenance_ACLDeny(t *testing.T) {
} }
func TestAgent_NodeMaintenance_BadRequest(t *testing.T) { func TestAgent_NodeMaintenance_BadRequest(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1396,6 +1438,7 @@ func TestAgent_NodeMaintenance_BadRequest(t *testing.T) {
} }
func TestAgent_NodeMaintenance_Enable(t *testing.T) { func TestAgent_NodeMaintenance_Enable(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1427,6 +1470,7 @@ func TestAgent_NodeMaintenance_Enable(t *testing.T) {
} }
func TestAgent_NodeMaintenance_Disable(t *testing.T) { func TestAgent_NodeMaintenance_Disable(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1450,6 +1494,7 @@ func TestAgent_NodeMaintenance_Disable(t *testing.T) {
} }
func TestAgent_NodeMaintenance_ACLDeny(t *testing.T) { func TestAgent_NodeMaintenance_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -1469,6 +1514,7 @@ func TestAgent_NodeMaintenance_ACLDeny(t *testing.T) {
} }
func TestAgent_RegisterCheck_Service(t *testing.T) { func TestAgent_RegisterCheck_Service(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1513,6 +1559,7 @@ func TestAgent_RegisterCheck_Service(t *testing.T) {
} }
func TestAgent_Monitor(t *testing.T) { func TestAgent_Monitor(t *testing.T) {
t.Parallel()
logWriter := logger.NewLogWriter(512) logWriter := logger.NewLogWriter(512)
a := &TestAgent{ a := &TestAgent{
Name: t.Name(), Name: t.Name(),
@ -1579,6 +1626,7 @@ func (r *closableRecorder) CloseNotify() <-chan bool {
} }
func TestAgent_Monitor_ACLDeny(t *testing.T) { func TestAgent_Monitor_ACLDeny(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()

View File

@ -45,6 +45,7 @@ func externalIP() (string, error) {
} }
func TestAgent_StartStop(t *testing.T) { func TestAgent_StartStop(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
// defer a.Shutdown() // defer a.Shutdown()
@ -63,6 +64,7 @@ func TestAgent_StartStop(t *testing.T) {
} }
func TestAgent_RPCPing(t *testing.T) { func TestAgent_RPCPing(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -73,6 +75,7 @@ func TestAgent_RPCPing(t *testing.T) {
} }
func TestAgent_CheckSerfBindAddrsSettings(t *testing.T) { func TestAgent_CheckSerfBindAddrsSettings(t *testing.T) {
t.Parallel()
if runtime.GOOS == "darwin" { if runtime.GOOS == "darwin" {
t.Skip("skip test on macOS to avoid firewall warning dialog") t.Skip("skip test on macOS to avoid firewall warning dialog")
} }
@ -98,6 +101,7 @@ func TestAgent_CheckSerfBindAddrsSettings(t *testing.T) {
} }
} }
func TestAgent_CheckAdvertiseAddrsSettings(t *testing.T) { func TestAgent_CheckAdvertiseAddrsSettings(t *testing.T) {
t.Parallel()
c := TestConfig() c := TestConfig()
c.AdvertiseAddrs.SerfLan, _ = net.ResolveTCPAddr("tcp", "127.0.0.42:1233") c.AdvertiseAddrs.SerfLan, _ = net.ResolveTCPAddr("tcp", "127.0.0.42:1233")
c.AdvertiseAddrs.SerfWan, _ = net.ResolveTCPAddr("tcp", "127.0.0.43:1234") c.AdvertiseAddrs.SerfWan, _ = net.ResolveTCPAddr("tcp", "127.0.0.43:1234")
@ -135,6 +139,7 @@ func TestAgent_CheckAdvertiseAddrsSettings(t *testing.T) {
} }
func TestAgent_CheckPerformanceSettings(t *testing.T) { func TestAgent_CheckPerformanceSettings(t *testing.T) {
t.Parallel()
// Try a default config. // Try a default config.
{ {
c := TestConfig() c := TestConfig()
@ -173,6 +178,7 @@ func TestAgent_CheckPerformanceSettings(t *testing.T) {
} }
func TestAgent_ReconnectConfigSettings(t *testing.T) { func TestAgent_ReconnectConfigSettings(t *testing.T) {
t.Parallel()
func() { func() {
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -208,6 +214,7 @@ func TestAgent_ReconnectConfigSettings(t *testing.T) {
} }
func TestAgent_setupNodeID(t *testing.T) { func TestAgent_setupNodeID(t *testing.T) {
t.Parallel()
c := TestConfig() c := TestConfig()
c.NodeID = "" c.NodeID = ""
a := NewTestAgent(t.Name(), c) a := NewTestAgent(t.Name(), c)
@ -273,6 +280,7 @@ func TestAgent_setupNodeID(t *testing.T) {
} }
func TestAgent_makeNodeID(t *testing.T) { func TestAgent_makeNodeID(t *testing.T) {
t.Parallel()
c := TestConfig() c := TestConfig()
c.NodeID = "" c.NodeID = ""
a := NewTestAgent(t.Name(), c) a := NewTestAgent(t.Name(), c)
@ -308,6 +316,7 @@ func TestAgent_makeNodeID(t *testing.T) {
} }
func TestAgent_AddService(t *testing.T) { func TestAgent_AddService(t *testing.T) {
t.Parallel()
cfg := TestConfig() cfg := TestConfig()
cfg.NodeName = "node1" cfg.NodeName = "node1"
a := NewTestAgent(t.Name(), cfg) a := NewTestAgent(t.Name(), cfg)
@ -453,6 +462,7 @@ func TestAgent_AddService(t *testing.T) {
} }
func TestAgent_RemoveService(t *testing.T) { func TestAgent_RemoveService(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -551,6 +561,7 @@ func TestAgent_RemoveService(t *testing.T) {
} }
func TestAgent_RemoveServiceRemovesAllChecks(t *testing.T) { func TestAgent_RemoveServiceRemovesAllChecks(t *testing.T) {
t.Parallel()
cfg := TestConfig() cfg := TestConfig()
cfg.NodeName = "node1" cfg.NodeName = "node1"
a := NewTestAgent(t.Name(), cfg) a := NewTestAgent(t.Name(), cfg)
@ -600,6 +611,7 @@ func TestAgent_RemoveServiceRemovesAllChecks(t *testing.T) {
} }
func TestAgent_AddCheck(t *testing.T) { func TestAgent_AddCheck(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -636,6 +648,7 @@ func TestAgent_AddCheck(t *testing.T) {
} }
func TestAgent_AddCheck_StartPassing(t *testing.T) { func TestAgent_AddCheck_StartPassing(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -672,6 +685,7 @@ func TestAgent_AddCheck_StartPassing(t *testing.T) {
} }
func TestAgent_AddCheck_MinInterval(t *testing.T) { func TestAgent_AddCheck_MinInterval(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -704,6 +718,7 @@ func TestAgent_AddCheck_MinInterval(t *testing.T) {
} }
func TestAgent_AddCheck_MissingService(t *testing.T) { func TestAgent_AddCheck_MissingService(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -724,6 +739,7 @@ func TestAgent_AddCheck_MissingService(t *testing.T) {
} }
func TestAgent_AddCheck_RestoreState(t *testing.T) { func TestAgent_AddCheck_RestoreState(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -766,6 +782,7 @@ func TestAgent_AddCheck_RestoreState(t *testing.T) {
} }
func TestAgent_RemoveCheck(t *testing.T) { func TestAgent_RemoveCheck(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -811,6 +828,7 @@ func TestAgent_RemoveCheck(t *testing.T) {
} }
func TestAgent_updateTTLCheck(t *testing.T) { func TestAgent_updateTTLCheck(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -844,6 +862,7 @@ func TestAgent_updateTTLCheck(t *testing.T) {
} }
func TestAgent_ConsulService(t *testing.T) { func TestAgent_ConsulService(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -865,6 +884,7 @@ func TestAgent_ConsulService(t *testing.T) {
} }
func TestAgent_PersistService(t *testing.T) { func TestAgent_PersistService(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.Server = false config.Server = false
config.DataDir = testutil.TempDir(t, "agent") // we manage the data dir config.DataDir = testutil.TempDir(t, "agent") // we manage the data dir
@ -955,6 +975,7 @@ func TestAgent_PersistService(t *testing.T) {
} }
func TestAgent_persistedService_compat(t *testing.T) { func TestAgent_persistedService_compat(t *testing.T) {
t.Parallel()
// Tests backwards compatibility of persisted services from pre-0.5.1 // Tests backwards compatibility of persisted services from pre-0.5.1
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -999,6 +1020,7 @@ func TestAgent_persistedService_compat(t *testing.T) {
} }
func TestAgent_PurgeService(t *testing.T) { func TestAgent_PurgeService(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1037,6 +1059,7 @@ func TestAgent_PurgeService(t *testing.T) {
} }
func TestAgent_PurgeServiceOnDuplicate(t *testing.T) { func TestAgent_PurgeServiceOnDuplicate(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.Server = false config.Server = false
a := NewTestAgent(t.Name(), config) a := NewTestAgent(t.Name(), config)
@ -1088,6 +1111,7 @@ func TestAgent_PurgeServiceOnDuplicate(t *testing.T) {
} }
func TestAgent_PersistCheck(t *testing.T) { func TestAgent_PersistCheck(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.Server = false config.Server = false
config.DataDir = testutil.TempDir(t, "agent") // we manage the data dir config.DataDir = testutil.TempDir(t, "agent") // we manage the data dir
@ -1192,6 +1216,7 @@ func TestAgent_PersistCheck(t *testing.T) {
} }
func TestAgent_PurgeCheck(t *testing.T) { func TestAgent_PurgeCheck(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1225,6 +1250,7 @@ func TestAgent_PurgeCheck(t *testing.T) {
} }
func TestAgent_PurgeCheckOnDuplicate(t *testing.T) { func TestAgent_PurgeCheckOnDuplicate(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.Server = false config.Server = false
config.DataDir = testutil.TempDir(t, "agent") // we manage the data dir config.DataDir = testutil.TempDir(t, "agent") // we manage the data dir
@ -1279,6 +1305,7 @@ func TestAgent_PurgeCheckOnDuplicate(t *testing.T) {
} }
func TestAgent_loadChecks_token(t *testing.T) { func TestAgent_loadChecks_token(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.Checks = append(config.Checks, &CheckDefinition{ config.Checks = append(config.Checks, &CheckDefinition{
ID: "rabbitmq", ID: "rabbitmq",
@ -1299,6 +1326,7 @@ func TestAgent_loadChecks_token(t *testing.T) {
} }
func TestAgent_unloadChecks(t *testing.T) { func TestAgent_unloadChecks(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1350,6 +1378,7 @@ func TestAgent_unloadChecks(t *testing.T) {
} }
func TestAgent_loadServices_token(t *testing.T) { func TestAgent_loadServices_token(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.Services = append(config.Services, &ServiceDefinition{ config.Services = append(config.Services, &ServiceDefinition{
ID: "rabbitmq", ID: "rabbitmq",
@ -1370,6 +1399,7 @@ func TestAgent_loadServices_token(t *testing.T) {
} }
func TestAgent_unloadServices(t *testing.T) { func TestAgent_unloadServices(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1416,6 +1446,7 @@ func TestAgent_unloadServices(t *testing.T) {
} }
func TestAgent_Service_MaintenanceMode(t *testing.T) { func TestAgent_Service_MaintenanceMode(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1479,6 +1510,7 @@ func TestAgent_Service_MaintenanceMode(t *testing.T) {
} }
func TestAgent_Service_Reap(t *testing.T) { func TestAgent_Service_Reap(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.CheckReapInterval = time.Millisecond config.CheckReapInterval = time.Millisecond
config.CheckDeregisterIntervalMin = 0 config.CheckDeregisterIntervalMin = 0
@ -1552,6 +1584,7 @@ func TestAgent_Service_Reap(t *testing.T) {
} }
func TestAgent_Service_NoReap(t *testing.T) { func TestAgent_Service_NoReap(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.CheckReapInterval = time.Millisecond config.CheckReapInterval = time.Millisecond
config.CheckDeregisterIntervalMin = 0 config.CheckDeregisterIntervalMin = 0
@ -1604,6 +1637,7 @@ func TestAgent_Service_NoReap(t *testing.T) {
} }
func TestAgent_addCheck_restoresSnapshot(t *testing.T) { func TestAgent_addCheck_restoresSnapshot(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1646,6 +1680,7 @@ func TestAgent_addCheck_restoresSnapshot(t *testing.T) {
} }
func TestAgent_NodeMaintenanceMode(t *testing.T) { func TestAgent_NodeMaintenanceMode(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1690,6 +1725,7 @@ func TestAgent_NodeMaintenanceMode(t *testing.T) {
} }
func TestAgent_checkStateSnapshot(t *testing.T) { func TestAgent_checkStateSnapshot(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1746,6 +1782,7 @@ func TestAgent_checkStateSnapshot(t *testing.T) {
} }
func TestAgent_loadChecks_checkFails(t *testing.T) { func TestAgent_loadChecks_checkFails(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1780,6 +1817,7 @@ func TestAgent_loadChecks_checkFails(t *testing.T) {
} }
func TestAgent_persistCheckState(t *testing.T) { func TestAgent_persistCheckState(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1826,6 +1864,7 @@ func TestAgent_persistCheckState(t *testing.T) {
} }
func TestAgent_loadCheckState(t *testing.T) { func TestAgent_loadCheckState(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1886,6 +1925,7 @@ func TestAgent_loadCheckState(t *testing.T) {
} }
func TestAgent_purgeCheckState(t *testing.T) { func TestAgent_purgeCheckState(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1917,6 +1957,7 @@ func TestAgent_purgeCheckState(t *testing.T) {
} }
func TestAgent_GetCoordinate(t *testing.T) { func TestAgent_GetCoordinate(t *testing.T) {
t.Parallel()
check := func(server bool) { check := func(server bool) {
config := TestConfig() config := TestConfig()
config.Server = server config.Server = server

View File

@ -13,6 +13,7 @@ import (
) )
func TestCatalogRegister(t *testing.T) { func TestCatalogRegister(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -45,6 +46,7 @@ func TestCatalogRegister(t *testing.T) {
} }
func TestCatalogRegister_Service_InvalidAddress(t *testing.T) { func TestCatalogRegister_Service_InvalidAddress(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -69,6 +71,7 @@ func TestCatalogRegister_Service_InvalidAddress(t *testing.T) {
} }
func TestCatalogDeregister(t *testing.T) { func TestCatalogDeregister(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -87,6 +90,7 @@ func TestCatalogDeregister(t *testing.T) {
} }
func TestCatalogDatacenters(t *testing.T) { func TestCatalogDatacenters(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -104,6 +108,7 @@ func TestCatalogDatacenters(t *testing.T) {
} }
func TestCatalogNodes(t *testing.T) { func TestCatalogNodes(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -136,6 +141,7 @@ func TestCatalogNodes(t *testing.T) {
} }
func TestCatalogNodes_MetaFilter(t *testing.T) { func TestCatalogNodes_MetaFilter(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -175,6 +181,7 @@ func TestCatalogNodes_MetaFilter(t *testing.T) {
} }
func TestCatalogNodes_WanTranslation(t *testing.T) { func TestCatalogNodes_WanTranslation(t *testing.T) {
t.Parallel()
c1 := TestConfig() c1 := TestConfig()
c1.Datacenter = "dc1" c1.Datacenter = "dc1"
c1.TranslateWanAddrs = true c1.TranslateWanAddrs = true
@ -268,6 +275,7 @@ func TestCatalogNodes_WanTranslation(t *testing.T) {
} }
func TestCatalogNodes_Blocking(t *testing.T) { func TestCatalogNodes_Blocking(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -320,6 +328,7 @@ func TestCatalogNodes_Blocking(t *testing.T) {
} }
func TestCatalogNodes_DistanceSort(t *testing.T) { func TestCatalogNodes_DistanceSort(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -403,6 +412,7 @@ func TestCatalogNodes_DistanceSort(t *testing.T) {
} }
func TestCatalogServices(t *testing.T) { func TestCatalogServices(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -437,6 +447,7 @@ func TestCatalogServices(t *testing.T) {
} }
func TestCatalogServices_NodeMetaFilter(t *testing.T) { func TestCatalogServices_NodeMetaFilter(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -477,6 +488,7 @@ func TestCatalogServices_NodeMetaFilter(t *testing.T) {
} }
func TestCatalogServiceNodes(t *testing.T) { func TestCatalogServiceNodes(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -529,6 +541,7 @@ func TestCatalogServiceNodes(t *testing.T) {
} }
func TestCatalogServiceNodes_NodeMetaFilter(t *testing.T) { func TestCatalogServiceNodes_NodeMetaFilter(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -583,6 +596,7 @@ func TestCatalogServiceNodes_NodeMetaFilter(t *testing.T) {
} }
func TestCatalogServiceNodes_WanTranslation(t *testing.T) { func TestCatalogServiceNodes_WanTranslation(t *testing.T) {
t.Parallel()
c1 := TestConfig() c1 := TestConfig()
c1.Datacenter = "dc1" c1.Datacenter = "dc1"
c1.TranslateWanAddrs = true c1.TranslateWanAddrs = true
@ -667,6 +681,7 @@ func TestCatalogServiceNodes_WanTranslation(t *testing.T) {
} }
func TestCatalogServiceNodes_DistanceSort(t *testing.T) { func TestCatalogServiceNodes_DistanceSort(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -753,6 +768,7 @@ func TestCatalogServiceNodes_DistanceSort(t *testing.T) {
} }
func TestCatalogNodeServices(t *testing.T) { func TestCatalogNodeServices(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -787,6 +803,7 @@ func TestCatalogNodeServices(t *testing.T) {
} }
func TestCatalogNodeServices_WanTranslation(t *testing.T) { func TestCatalogNodeServices_WanTranslation(t *testing.T) {
t.Parallel()
c1 := TestConfig() c1 := TestConfig()
c1.Datacenter = "dc1" c1.Datacenter = "dc1"
c1.TranslateWanAddrs = true c1.TranslateWanAddrs = true

View File

@ -89,22 +89,27 @@ func expectStatus(t *testing.T, script, status string) {
} }
func TestCheckMonitor_Passing(t *testing.T) { func TestCheckMonitor_Passing(t *testing.T) {
t.Parallel()
expectStatus(t, "exit 0", api.HealthPassing) expectStatus(t, "exit 0", api.HealthPassing)
} }
func TestCheckMonitor_Warning(t *testing.T) { func TestCheckMonitor_Warning(t *testing.T) {
t.Parallel()
expectStatus(t, "exit 1", api.HealthWarning) expectStatus(t, "exit 1", api.HealthWarning)
} }
func TestCheckMonitor_Critical(t *testing.T) { func TestCheckMonitor_Critical(t *testing.T) {
t.Parallel()
expectStatus(t, "exit 2", api.HealthCritical) expectStatus(t, "exit 2", api.HealthCritical)
} }
func TestCheckMonitor_BadCmd(t *testing.T) { func TestCheckMonitor_BadCmd(t *testing.T) {
t.Parallel()
expectStatus(t, "foobarbaz", api.HealthCritical) expectStatus(t, "foobarbaz", api.HealthCritical)
} }
func TestCheckMonitor_Timeout(t *testing.T) { func TestCheckMonitor_Timeout(t *testing.T) {
t.Parallel()
mock := &MockNotify{ mock := &MockNotify{
state: make(map[types.CheckID]string), state: make(map[types.CheckID]string),
updates: make(map[types.CheckID]int), updates: make(map[types.CheckID]int),
@ -134,6 +139,7 @@ func TestCheckMonitor_Timeout(t *testing.T) {
} }
func TestCheckMonitor_RandomStagger(t *testing.T) { func TestCheckMonitor_RandomStagger(t *testing.T) {
t.Parallel()
mock := &MockNotify{ mock := &MockNotify{
state: make(map[types.CheckID]string), state: make(map[types.CheckID]string),
updates: make(map[types.CheckID]int), updates: make(map[types.CheckID]int),
@ -162,6 +168,7 @@ func TestCheckMonitor_RandomStagger(t *testing.T) {
} }
func TestCheckMonitor_LimitOutput(t *testing.T) { func TestCheckMonitor_LimitOutput(t *testing.T) {
t.Parallel()
mock := &MockNotify{ mock := &MockNotify{
state: make(map[types.CheckID]string), state: make(map[types.CheckID]string),
updates: make(map[types.CheckID]int), updates: make(map[types.CheckID]int),
@ -186,6 +193,7 @@ func TestCheckMonitor_LimitOutput(t *testing.T) {
} }
func TestCheckTTL(t *testing.T) { func TestCheckTTL(t *testing.T) {
t.Parallel()
mock := &MockNotify{ mock := &MockNotify{
state: make(map[types.CheckID]string), state: make(map[types.CheckID]string),
updates: make(map[types.CheckID]int), updates: make(map[types.CheckID]int),
@ -289,6 +297,7 @@ func expectHTTPStatus(t *testing.T, url string, status string) {
} }
func TestCheckHTTPCritical(t *testing.T) { func TestCheckHTTPCritical(t *testing.T) {
t.Parallel()
// var server *httptest.Server // var server *httptest.Server
server := mockHTTPServer(150) server := mockHTTPServer(150)
@ -316,6 +325,7 @@ func TestCheckHTTPCritical(t *testing.T) {
} }
func TestCheckHTTPPassing(t *testing.T) { func TestCheckHTTPPassing(t *testing.T) {
t.Parallel()
var server *httptest.Server var server *httptest.Server
server = mockHTTPServer(200) server = mockHTTPServer(200)
@ -336,6 +346,7 @@ func TestCheckHTTPPassing(t *testing.T) {
} }
func TestCheckHTTPWarning(t *testing.T) { func TestCheckHTTPWarning(t *testing.T) {
t.Parallel()
server := mockHTTPServer(429) server := mockHTTPServer(429)
expectHTTPStatus(t, server.URL, api.HealthWarning) expectHTTPStatus(t, server.URL, api.HealthWarning)
server.Close() server.Close()
@ -353,6 +364,7 @@ func mockSlowHTTPServer(responseCode int, sleep time.Duration) *httptest.Server
} }
func TestCheckHTTPTimeout(t *testing.T) { func TestCheckHTTPTimeout(t *testing.T) {
t.Parallel()
server := mockSlowHTTPServer(200, 10*time.Millisecond) server := mockSlowHTTPServer(200, 10*time.Millisecond)
defer server.Close() defer server.Close()
@ -384,6 +396,7 @@ func TestCheckHTTPTimeout(t *testing.T) {
} }
func TestCheckHTTP_disablesKeepAlives(t *testing.T) { func TestCheckHTTP_disablesKeepAlives(t *testing.T) {
t.Parallel()
check := &CheckHTTP{ check := &CheckHTTP{
CheckID: types.CheckID("foo"), CheckID: types.CheckID("foo"),
HTTP: "http://foo.bar/baz", HTTP: "http://foo.bar/baz",
@ -400,6 +413,7 @@ func TestCheckHTTP_disablesKeepAlives(t *testing.T) {
} }
func TestCheckHTTP_TLSSkipVerify_defaultFalse(t *testing.T) { func TestCheckHTTP_TLSSkipVerify_defaultFalse(t *testing.T) {
t.Parallel()
check := &CheckHTTP{ check := &CheckHTTP{
CheckID: "foo", CheckID: "foo",
HTTP: "https://foo.bar/baz", HTTP: "https://foo.bar/baz",
@ -416,6 +430,7 @@ func TestCheckHTTP_TLSSkipVerify_defaultFalse(t *testing.T) {
} }
func TestCheckHTTP_TLSSkipVerify_true_pass(t *testing.T) { func TestCheckHTTP_TLSSkipVerify_true_pass(t *testing.T) {
t.Parallel()
server := mockTLSHTTPServer(200) server := mockTLSHTTPServer(200)
defer server.Close() defer server.Close()
@ -448,6 +463,7 @@ func TestCheckHTTP_TLSSkipVerify_true_pass(t *testing.T) {
} }
func TestCheckHTTP_TLSSkipVerify_true_fail(t *testing.T) { func TestCheckHTTP_TLSSkipVerify_true_fail(t *testing.T) {
t.Parallel()
server := mockTLSHTTPServer(500) server := mockTLSHTTPServer(500)
defer server.Close() defer server.Close()
@ -479,6 +495,7 @@ func TestCheckHTTP_TLSSkipVerify_true_fail(t *testing.T) {
} }
func TestCheckHTTP_TLSSkipVerify_false(t *testing.T) { func TestCheckHTTP_TLSSkipVerify_false(t *testing.T) {
t.Parallel()
server := mockTLSHTTPServer(200) server := mockTLSHTTPServer(200)
defer server.Close() defer server.Close()
@ -559,6 +576,7 @@ func expectTCPStatus(t *testing.T, tcp string, status string) {
} }
func TestCheckTCPCritical(t *testing.T) { func TestCheckTCPCritical(t *testing.T) {
t.Parallel()
var ( var (
tcpServer net.Listener tcpServer net.Listener
) )
@ -569,6 +587,7 @@ func TestCheckTCPCritical(t *testing.T) {
} }
func TestCheckTCPPassing(t *testing.T) { func TestCheckTCPPassing(t *testing.T) {
t.Parallel()
var ( var (
tcpServer net.Listener tcpServer net.Listener
) )
@ -746,30 +765,37 @@ func expectDockerCheckStatus(t *testing.T, dockerClient DockerClient, status str
} }
func TestDockerCheckWhenExecReturnsSuccessExitCode(t *testing.T) { func TestDockerCheckWhenExecReturnsSuccessExitCode(t *testing.T) {
t.Parallel()
expectDockerCheckStatus(t, &fakeDockerClientWithNoErrors{}, api.HealthPassing, "output") expectDockerCheckStatus(t, &fakeDockerClientWithNoErrors{}, api.HealthPassing, "output")
} }
func TestDockerCheckWhenExecCreationFails(t *testing.T) { func TestDockerCheckWhenExecCreationFails(t *testing.T) {
t.Parallel()
expectDockerCheckStatus(t, &fakeDockerClientWithCreateExecFailure{}, api.HealthCritical, "Unable to create Exec, error: Exec Creation Failed") expectDockerCheckStatus(t, &fakeDockerClientWithCreateExecFailure{}, api.HealthCritical, "Unable to create Exec, error: Exec Creation Failed")
} }
func TestDockerCheckWhenExitCodeIsNonZero(t *testing.T) { func TestDockerCheckWhenExitCodeIsNonZero(t *testing.T) {
t.Parallel()
expectDockerCheckStatus(t, &fakeDockerClientWithExecNonZeroExitCode{}, api.HealthCritical, "") expectDockerCheckStatus(t, &fakeDockerClientWithExecNonZeroExitCode{}, api.HealthCritical, "")
} }
func TestDockerCheckWhenExitCodeIsone(t *testing.T) { func TestDockerCheckWhenExitCodeIsone(t *testing.T) {
t.Parallel()
expectDockerCheckStatus(t, &fakeDockerClientWithExecExitCodeOne{}, api.HealthWarning, "output") expectDockerCheckStatus(t, &fakeDockerClientWithExecExitCodeOne{}, api.HealthWarning, "output")
} }
func TestDockerCheckWhenExecStartFails(t *testing.T) { func TestDockerCheckWhenExecStartFails(t *testing.T) {
t.Parallel()
expectDockerCheckStatus(t, &fakeDockerClientWithStartExecFailure{}, api.HealthCritical, "Unable to start Exec: Couldn't Start Exec") expectDockerCheckStatus(t, &fakeDockerClientWithStartExecFailure{}, api.HealthCritical, "Unable to start Exec: Couldn't Start Exec")
} }
func TestDockerCheckWhenExecInfoFails(t *testing.T) { func TestDockerCheckWhenExecInfoFails(t *testing.T) {
t.Parallel()
expectDockerCheckStatus(t, &fakeDockerClientWithExecInfoErrors{}, api.HealthCritical, "Unable to inspect Exec: Unable to query exec info") expectDockerCheckStatus(t, &fakeDockerClientWithExecInfoErrors{}, api.HealthCritical, "Unable to inspect Exec: Unable to query exec info")
} }
func TestDockerCheckDefaultToSh(t *testing.T) { func TestDockerCheckDefaultToSh(t *testing.T) {
t.Parallel()
os.Setenv("SHELL", "") os.Setenv("SHELL", "")
mock := &MockNotify{ mock := &MockNotify{
state: make(map[types.CheckID]string), state: make(map[types.CheckID]string),
@ -795,6 +821,7 @@ func TestDockerCheckDefaultToSh(t *testing.T) {
} }
func TestDockerCheckUseShellFromEnv(t *testing.T) { func TestDockerCheckUseShellFromEnv(t *testing.T) {
t.Parallel()
mock := &MockNotify{ mock := &MockNotify{
state: make(map[types.CheckID]string), state: make(map[types.CheckID]string),
updates: make(map[types.CheckID]int), updates: make(map[types.CheckID]int),
@ -821,6 +848,7 @@ func TestDockerCheckUseShellFromEnv(t *testing.T) {
} }
func TestDockerCheckTruncateOutput(t *testing.T) { func TestDockerCheckTruncateOutput(t *testing.T) {
t.Parallel()
mock := &MockNotify{ mock := &MockNotify{
state: make(map[types.CheckID]string), state: make(map[types.CheckID]string),
updates: make(map[types.CheckID]int), updates: make(map[types.CheckID]int),

View File

@ -25,10 +25,12 @@ func baseCommand(ui *cli.MockUi) base.Command {
} }
func TestCommand_implements(t *testing.T) { func TestCommand_implements(t *testing.T) {
t.Parallel()
var _ cli.Command = new(Command) var _ cli.Command = new(Command)
} }
func TestValidDatacenter(t *testing.T) { func TestValidDatacenter(t *testing.T) {
t.Parallel()
shouldMatch := []string{ shouldMatch := []string{
"dc1", "dc1",
"east-aws-001", "east-aws-001",
@ -53,6 +55,7 @@ func TestValidDatacenter(t *testing.T) {
// TestConfigFail should test command line flags that lead to an immediate error. // TestConfigFail should test command line flags that lead to an immediate error.
func TestConfigFail(t *testing.T) { func TestConfigFail(t *testing.T) {
t.Parallel()
tests := []struct { tests := []struct {
args []string args []string
out string out string
@ -98,6 +101,7 @@ func TestConfigFail(t *testing.T) {
} }
func TestRetryJoin(t *testing.T) { func TestRetryJoin(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -158,6 +162,7 @@ func TestRetryJoin(t *testing.T) {
} }
func TestReadCliConfig(t *testing.T) { func TestReadCliConfig(t *testing.T) {
t.Parallel()
tmpDir := testutil.TempDir(t, "consul") tmpDir := testutil.TempDir(t, "consul")
defer os.RemoveAll(tmpDir) defer os.RemoveAll(tmpDir)
@ -286,6 +291,7 @@ func TestReadCliConfig(t *testing.T) {
} }
func TestRetryJoinFail(t *testing.T) { func TestRetryJoinFail(t *testing.T) {
t.Parallel()
conf := TestConfig() conf := TestConfig()
tmpDir := testutil.TempDir(t, "consul") tmpDir := testutil.TempDir(t, "consul")
defer os.RemoveAll(tmpDir) defer os.RemoveAll(tmpDir)
@ -314,6 +320,7 @@ func TestRetryJoinFail(t *testing.T) {
} }
func TestRetryJoinWanFail(t *testing.T) { func TestRetryJoinWanFail(t *testing.T) {
t.Parallel()
conf := TestConfig() conf := TestConfig()
tmpDir := testutil.TempDir(t, "consul") tmpDir := testutil.TempDir(t, "consul")
defer os.RemoveAll(tmpDir) defer os.RemoveAll(tmpDir)
@ -343,6 +350,7 @@ func TestRetryJoinWanFail(t *testing.T) {
} }
func TestDiscoverEC2Hosts(t *testing.T) { func TestDiscoverEC2Hosts(t *testing.T) {
t.Parallel()
if os.Getenv("AWS_REGION") == "" { if os.Getenv("AWS_REGION") == "" {
t.Skip("AWS_REGION not set, skipping") t.Skip("AWS_REGION not set, skipping")
} }
@ -373,6 +381,7 @@ func TestDiscoverEC2Hosts(t *testing.T) {
} }
func TestDiscoverGCEHosts(t *testing.T) { func TestDiscoverGCEHosts(t *testing.T) {
t.Parallel()
if os.Getenv("GCE_PROJECT") == "" { if os.Getenv("GCE_PROJECT") == "" {
t.Skip("GCE_PROJECT not set, skipping") t.Skip("GCE_PROJECT not set, skipping")
} }
@ -436,6 +445,7 @@ func TestDiscoverAzureHosts(t *testing.T) {
} }
func TestProtectDataDir(t *testing.T) { func TestProtectDataDir(t *testing.T) {
t.Parallel()
dir := testutil.TempDir(t, "consul") dir := testutil.TempDir(t, "consul")
defer os.RemoveAll(dir) defer os.RemoveAll(dir)
@ -466,6 +476,7 @@ func TestProtectDataDir(t *testing.T) {
} }
func TestBadDataDirPermissions(t *testing.T) { func TestBadDataDirPermissions(t *testing.T) {
t.Parallel()
dir := testutil.TempDir(t, "consul") dir := testutil.TempDir(t, "consul")
defer os.RemoveAll(dir) defer os.RemoveAll(dir)

View File

@ -19,6 +19,7 @@ import (
) )
func TestConfigEncryptBytes(t *testing.T) { func TestConfigEncryptBytes(t *testing.T) {
t.Parallel()
// Test with some input // Test with some input
src := []byte("abc") src := []byte("abc")
c := &Config{ c := &Config{
@ -47,6 +48,7 @@ func TestConfigEncryptBytes(t *testing.T) {
} }
func TestDecodeConfig(t *testing.T) { func TestDecodeConfig(t *testing.T) {
t.Parallel()
// Basics // Basics
input := `{"data_dir": "/tmp/", "log_level": "debug"}` input := `{"data_dir": "/tmp/", "log_level": "debug"}`
config, err := DecodeConfig(bytes.NewReader([]byte(input))) config, err := DecodeConfig(bytes.NewReader([]byte(input)))
@ -1073,6 +1075,7 @@ func TestDecodeConfig(t *testing.T) {
} }
func TestDecodeConfig_invalidKeys(t *testing.T) { func TestDecodeConfig_invalidKeys(t *testing.T) {
t.Parallel()
input := `{"bad": "no way jose"}` input := `{"bad": "no way jose"}`
_, err := DecodeConfig(bytes.NewReader([]byte(input))) _, err := DecodeConfig(bytes.NewReader([]byte(input)))
if err == nil || !strings.Contains(err.Error(), "invalid keys") { if err == nil || !strings.Contains(err.Error(), "invalid keys") {
@ -1081,6 +1084,7 @@ func TestDecodeConfig_invalidKeys(t *testing.T) {
} }
func TestRetryJoinEC2(t *testing.T) { func TestRetryJoinEC2(t *testing.T) {
t.Parallel()
input := `{"retry_join_ec2": { input := `{"retry_join_ec2": {
"region": "us-east-1", "region": "us-east-1",
"tag_key": "ConsulRole", "tag_key": "ConsulRole",
@ -1111,6 +1115,7 @@ func TestRetryJoinEC2(t *testing.T) {
} }
func TestRetryJoinGCE(t *testing.T) { func TestRetryJoinGCE(t *testing.T) {
t.Parallel()
input := `{"retry_join_gce": { input := `{"retry_join_gce": {
"project_name": "test-project", "project_name": "test-project",
"zone_pattern": "us-west1-a", "zone_pattern": "us-west1-a",
@ -1178,6 +1183,7 @@ func TestRetryJoinAzure(t *testing.T) {
} }
func TestDecodeConfig_Performance(t *testing.T) { func TestDecodeConfig_Performance(t *testing.T) {
t.Parallel()
input := `{"performance": { "raft_multiplier": 3 }}` input := `{"performance": { "raft_multiplier": 3 }}`
config, err := DecodeConfig(bytes.NewReader([]byte(input))) config, err := DecodeConfig(bytes.NewReader([]byte(input)))
if err != nil { if err != nil {
@ -1195,6 +1201,7 @@ func TestDecodeConfig_Performance(t *testing.T) {
} }
func TestDecodeConfig_Autopilot(t *testing.T) { func TestDecodeConfig_Autopilot(t *testing.T) {
t.Parallel()
input := `{"autopilot": { input := `{"autopilot": {
"cleanup_dead_servers": true, "cleanup_dead_servers": true,
"last_contact_threshold": "100ms", "last_contact_threshold": "100ms",
@ -1228,6 +1235,7 @@ func TestDecodeConfig_Autopilot(t *testing.T) {
} }
func TestDecodeConfig_Services(t *testing.T) { func TestDecodeConfig_Services(t *testing.T) {
t.Parallel()
input := `{ input := `{
"services": [ "services": [
{ {
@ -1343,6 +1351,7 @@ func TestDecodeConfig_Services(t *testing.T) {
} }
func TestDecodeConfig_verifyUniqueListeners(t *testing.T) { func TestDecodeConfig_verifyUniqueListeners(t *testing.T) {
t.Parallel()
tests := []struct { tests := []struct {
name string name string
cfg string cfg string
@ -1374,6 +1383,7 @@ func TestDecodeConfig_verifyUniqueListeners(t *testing.T) {
} }
func TestDecodeConfig_Checks(t *testing.T) { func TestDecodeConfig_Checks(t *testing.T) {
t.Parallel()
input := `{ input := `{
"checks": [ "checks": [
{ {
@ -1481,6 +1491,7 @@ func TestDecodeConfig_Checks(t *testing.T) {
} }
func TestDecodeConfig_Multiples(t *testing.T) { func TestDecodeConfig_Multiples(t *testing.T) {
t.Parallel()
input := `{ input := `{
"services": [ "services": [
{ {
@ -1546,6 +1557,7 @@ func TestDecodeConfig_Multiples(t *testing.T) {
} }
func TestDecodeConfig_Service(t *testing.T) { func TestDecodeConfig_Service(t *testing.T) {
t.Parallel()
// Basics // Basics
input := `{"service": {"id": "red1", "name": "redis", "tags": ["master"], "port":8000, "check": {"script": "/bin/check_redis", "interval": "10s", "ttl": "15s", "DeregisterCriticalServiceAfter": "90m" }}}` input := `{"service": {"id": "red1", "name": "redis", "tags": ["master"], "port":8000, "check": {"script": "/bin/check_redis", "interval": "10s", "ttl": "15s", "DeregisterCriticalServiceAfter": "90m" }}}`
config, err := DecodeConfig(bytes.NewReader([]byte(input))) config, err := DecodeConfig(bytes.NewReader([]byte(input)))
@ -1592,6 +1604,7 @@ func TestDecodeConfig_Service(t *testing.T) {
} }
func TestDecodeConfig_Check(t *testing.T) { func TestDecodeConfig_Check(t *testing.T) {
t.Parallel()
// Basics // Basics
input := `{"check": {"id": "chk1", "name": "mem", "notes": "foobar", "script": "/bin/check_redis", "interval": "10s", "ttl": "15s", "shell": "/bin/bash", "docker_container_id": "redis", "deregister_critical_service_after": "90s" }}` input := `{"check": {"id": "chk1", "name": "mem", "notes": "foobar", "script": "/bin/check_redis", "interval": "10s", "ttl": "15s", "shell": "/bin/bash", "docker_container_id": "redis", "deregister_critical_service_after": "90s" }}`
config, err := DecodeConfig(bytes.NewReader([]byte(input))) config, err := DecodeConfig(bytes.NewReader([]byte(input)))
@ -1642,6 +1655,7 @@ func TestDecodeConfig_Check(t *testing.T) {
} }
func TestMergeConfig(t *testing.T) { func TestMergeConfig(t *testing.T) {
t.Parallel()
a := &Config{ a := &Config{
Bootstrap: false, Bootstrap: false,
BootstrapExpect: 0, BootstrapExpect: 0,
@ -1830,6 +1844,7 @@ func TestMergeConfig(t *testing.T) {
} }
func TestReadConfigPaths_badPath(t *testing.T) { func TestReadConfigPaths_badPath(t *testing.T) {
t.Parallel()
_, err := ReadConfigPaths([]string{"/i/shouldnt/exist/ever/rainbows"}) _, err := ReadConfigPaths([]string{"/i/shouldnt/exist/ever/rainbows"})
if err == nil { if err == nil {
t.Fatal("should have err") t.Fatal("should have err")
@ -1837,6 +1852,7 @@ func TestReadConfigPaths_badPath(t *testing.T) {
} }
func TestReadConfigPaths_file(t *testing.T) { func TestReadConfigPaths_file(t *testing.T) {
t.Parallel()
tf := testutil.TempFile(t, "consul") tf := testutil.TempFile(t, "consul")
tf.Write([]byte(`{"node_name":"bar"}`)) tf.Write([]byte(`{"node_name":"bar"}`))
tf.Close() tf.Close()
@ -1853,6 +1869,7 @@ func TestReadConfigPaths_file(t *testing.T) {
} }
func TestReadConfigPaths_dir(t *testing.T) { func TestReadConfigPaths_dir(t *testing.T) {
t.Parallel()
td := testutil.TempDir(t, "consul") td := testutil.TempDir(t, "consul")
defer os.RemoveAll(td) defer os.RemoveAll(td)
@ -1893,6 +1910,7 @@ func TestReadConfigPaths_dir(t *testing.T) {
} }
func TestUnixSockets(t *testing.T) { func TestUnixSockets(t *testing.T) {
t.Parallel()
if p := socketPath("unix:///path/to/socket"); p != "/path/to/socket" { if p := socketPath("unix:///path/to/socket"); p != "/path/to/socket" {
t.Fatalf("bad: %q", p) t.Fatalf("bad: %q", p)
} }
@ -1902,6 +1920,7 @@ func TestUnixSockets(t *testing.T) {
} }
func TestCheckDefinitionToCheckType(t *testing.T) { func TestCheckDefinitionToCheckType(t *testing.T) {
t.Parallel()
got := &CheckDefinition{ got := &CheckDefinition{
ID: "id", ID: "id",
Name: "name", Name: "name",

View File

@ -11,6 +11,7 @@ import (
) )
func TestCoordinate_Datacenters(t *testing.T) { func TestCoordinate_Datacenters(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -31,6 +32,7 @@ func TestCoordinate_Datacenters(t *testing.T) {
} }
func TestCoordinate_Nodes(t *testing.T) { func TestCoordinate_Nodes(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()

View File

@ -95,6 +95,7 @@ func dnsA(src, dest string) *dns.A {
} }
func TestRecursorAddr(t *testing.T) { func TestRecursorAddr(t *testing.T) {
t.Parallel()
addr, err := recursorAddr("8.8.8.8") addr, err := recursorAddr("8.8.8.8")
if err != nil { if err != nil {
t.Fatalf("err: %v", err) t.Fatalf("err: %v", err)
@ -105,6 +106,7 @@ func TestRecursorAddr(t *testing.T) {
} }
func TestDNS_NodeLookup(t *testing.T) { func TestDNS_NodeLookup(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -197,6 +199,7 @@ func TestDNS_NodeLookup(t *testing.T) {
} }
func TestDNS_CaseInsensitiveNodeLookup(t *testing.T) { func TestDNS_CaseInsensitiveNodeLookup(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -228,6 +231,7 @@ func TestDNS_CaseInsensitiveNodeLookup(t *testing.T) {
} }
func TestDNS_NodeLookup_PeriodName(t *testing.T) { func TestDNS_NodeLookup_PeriodName(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -267,6 +271,7 @@ func TestDNS_NodeLookup_PeriodName(t *testing.T) {
} }
func TestDNS_NodeLookup_AAAA(t *testing.T) { func TestDNS_NodeLookup_AAAA(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -309,6 +314,7 @@ func TestDNS_NodeLookup_AAAA(t *testing.T) {
} }
func TestDNS_NodeLookup_CNAME(t *testing.T) { func TestDNS_NodeLookup_CNAME(t *testing.T) {
t.Parallel()
recursor := makeRecursor(t, []dns.RR{ recursor := makeRecursor(t, []dns.RR{
dnsCNAME("www.google.com", "google.com"), dnsCNAME("www.google.com", "google.com"),
dnsA("google.com", "1.2.3.4"), dnsA("google.com", "1.2.3.4"),
@ -360,6 +366,7 @@ func TestDNS_NodeLookup_CNAME(t *testing.T) {
} }
func TestDNS_ReverseLookup(t *testing.T) { func TestDNS_ReverseLookup(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -399,6 +406,7 @@ func TestDNS_ReverseLookup(t *testing.T) {
} }
func TestDNS_ReverseLookup_CustomDomain(t *testing.T) { func TestDNS_ReverseLookup_CustomDomain(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
a.dns.domain = dns.Fqdn("custom") a.dns.domain = dns.Fqdn("custom")
@ -439,6 +447,7 @@ func TestDNS_ReverseLookup_CustomDomain(t *testing.T) {
} }
func TestDNS_ReverseLookup_IPV6(t *testing.T) { func TestDNS_ReverseLookup_IPV6(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -478,6 +487,7 @@ func TestDNS_ReverseLookup_IPV6(t *testing.T) {
} }
func TestDNS_ServiceLookup(t *testing.T) { func TestDNS_ServiceLookup(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -598,6 +608,7 @@ func TestDNS_ServiceLookup(t *testing.T) {
} }
func TestDNS_ExternalServiceLookup(t *testing.T) { func TestDNS_ExternalServiceLookup(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -669,6 +680,7 @@ func TestDNS_ExternalServiceLookup(t *testing.T) {
} }
func TestDNS_ExternalServiceToConsulCNAMELookup(t *testing.T) { func TestDNS_ExternalServiceToConsulCNAMELookup(t *testing.T) {
t.Parallel()
cfg := TestConfig() cfg := TestConfig()
cfg.Domain = "CONSUL." cfg.Domain = "CONSUL."
a := NewTestAgent(t.Name(), cfg) a := NewTestAgent(t.Name(), cfg)
@ -779,6 +791,7 @@ func TestDNS_ExternalServiceToConsulCNAMELookup(t *testing.T) {
} }
func TestDNS_ExternalServiceToConsulCNAMENestedLookup(t *testing.T) { func TestDNS_ExternalServiceToConsulCNAMENestedLookup(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -918,6 +931,7 @@ func TestDNS_ExternalServiceToConsulCNAMENestedLookup(t *testing.T) {
} }
func TestDNS_ServiceLookup_ServiceAddress_A(t *testing.T) { func TestDNS_ServiceLookup_ServiceAddress_A(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1010,6 +1024,7 @@ func TestDNS_ServiceLookup_ServiceAddress_A(t *testing.T) {
} }
func TestDNS_ServiceLookup_ServiceAddress_CNAME(t *testing.T) { func TestDNS_ServiceLookup_ServiceAddress_CNAME(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1102,6 +1117,7 @@ func TestDNS_ServiceLookup_ServiceAddress_CNAME(t *testing.T) {
} }
func TestDNS_ServiceLookup_ServiceAddressIPV6(t *testing.T) { func TestDNS_ServiceLookup_ServiceAddressIPV6(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1194,6 +1210,7 @@ func TestDNS_ServiceLookup_ServiceAddressIPV6(t *testing.T) {
} }
func TestDNS_ServiceLookup_WanAddress(t *testing.T) { func TestDNS_ServiceLookup_WanAddress(t *testing.T) {
t.Parallel()
c1 := TestConfig() c1 := TestConfig()
c1.Datacenter = "dc1" c1.Datacenter = "dc1"
c1.TranslateWanAddrs = true c1.TranslateWanAddrs = true
@ -1380,6 +1397,7 @@ func TestDNS_ServiceLookup_WanAddress(t *testing.T) {
} }
func TestDNS_CaseInsensitiveServiceLookup(t *testing.T) { func TestDNS_CaseInsensitiveServiceLookup(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1450,6 +1468,7 @@ func TestDNS_CaseInsensitiveServiceLookup(t *testing.T) {
} }
func TestDNS_ServiceLookup_TagPeriod(t *testing.T) { func TestDNS_ServiceLookup_TagPeriod(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1508,6 +1527,7 @@ func TestDNS_ServiceLookup_TagPeriod(t *testing.T) {
} }
func TestDNS_ServiceLookup_PreparedQueryNamePeriod(t *testing.T) { func TestDNS_ServiceLookup_PreparedQueryNamePeriod(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1586,6 +1606,7 @@ func TestDNS_ServiceLookup_PreparedQueryNamePeriod(t *testing.T) {
} }
func TestDNS_ServiceLookup_Dedup(t *testing.T) { func TestDNS_ServiceLookup_Dedup(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1688,6 +1709,7 @@ func TestDNS_ServiceLookup_Dedup(t *testing.T) {
} }
func TestDNS_ServiceLookup_Dedup_SRV(t *testing.T) { func TestDNS_ServiceLookup_Dedup_SRV(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -1818,6 +1840,7 @@ func TestDNS_ServiceLookup_Dedup_SRV(t *testing.T) {
} }
func TestDNS_Recurse(t *testing.T) { func TestDNS_Recurse(t *testing.T) {
t.Parallel()
recursor := makeRecursor(t, []dns.RR{dnsA("apple.com", "1.2.3.4")}) recursor := makeRecursor(t, []dns.RR{dnsA("apple.com", "1.2.3.4")})
defer recursor.Shutdown() defer recursor.Shutdown()
@ -1845,6 +1868,7 @@ func TestDNS_Recurse(t *testing.T) {
} }
func TestDNS_Recurse_Truncation(t *testing.T) { func TestDNS_Recurse_Truncation(t *testing.T) {
t.Parallel()
answerMessage := dns.Msg{ answerMessage := dns.Msg{
MsgHdr: dns.MsgHdr{Truncated: true}, MsgHdr: dns.MsgHdr{Truncated: true},
Answer: []dns.RR{dnsA("apple.com", "1.2.3.4")}, Answer: []dns.RR{dnsA("apple.com", "1.2.3.4")},
@ -1879,6 +1903,7 @@ func TestDNS_Recurse_Truncation(t *testing.T) {
} }
func TestDNS_RecursorTimeout(t *testing.T) { func TestDNS_RecursorTimeout(t *testing.T) {
t.Parallel()
serverClientTimeout := 3 * time.Second serverClientTimeout := 3 * time.Second
testClientTimeout := serverClientTimeout + 5*time.Second testClientTimeout := serverClientTimeout + 5*time.Second
@ -1929,6 +1954,7 @@ func TestDNS_RecursorTimeout(t *testing.T) {
} }
func TestDNS_ServiceLookup_FilterCritical(t *testing.T) { func TestDNS_ServiceLookup_FilterCritical(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -2084,6 +2110,7 @@ func TestDNS_ServiceLookup_FilterCritical(t *testing.T) {
} }
func TestDNS_ServiceLookup_OnlyFailing(t *testing.T) { func TestDNS_ServiceLookup_OnlyFailing(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -2196,6 +2223,7 @@ func TestDNS_ServiceLookup_OnlyFailing(t *testing.T) {
} }
func TestDNS_ServiceLookup_OnlyPassing(t *testing.T) { func TestDNS_ServiceLookup_OnlyPassing(t *testing.T) {
t.Parallel()
cfg := TestConfig() cfg := TestConfig()
cfg.DNSConfig.OnlyPassing = true cfg.DNSConfig.OnlyPassing = true
a := NewTestAgent(t.Name(), cfg) a := NewTestAgent(t.Name(), cfg)
@ -2321,6 +2349,7 @@ func TestDNS_ServiceLookup_OnlyPassing(t *testing.T) {
} }
func TestDNS_ServiceLookup_Randomize(t *testing.T) { func TestDNS_ServiceLookup_Randomize(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -2411,6 +2440,7 @@ func TestDNS_ServiceLookup_Randomize(t *testing.T) {
} }
func TestDNS_ServiceLookup_Truncate(t *testing.T) { func TestDNS_ServiceLookup_Truncate(t *testing.T) {
t.Parallel()
cfg := TestConfig() cfg := TestConfig()
cfg.DNSConfig.EnableTruncate = true cfg.DNSConfig.EnableTruncate = true
a := NewTestAgent(t.Name(), cfg) a := NewTestAgent(t.Name(), cfg)
@ -2477,6 +2507,7 @@ func TestDNS_ServiceLookup_Truncate(t *testing.T) {
} }
func TestDNS_ServiceLookup_LargeResponses(t *testing.T) { func TestDNS_ServiceLookup_LargeResponses(t *testing.T) {
t.Parallel()
cfg := TestConfig() cfg := TestConfig()
cfg.DNSConfig.EnableTruncate = true cfg.DNSConfig.EnableTruncate = true
a := NewTestAgent(t.Name(), cfg) a := NewTestAgent(t.Name(), cfg)
@ -2662,6 +2693,7 @@ func testDNS_ServiceLookup_responseLimits(t *testing.T, answerLimit int, qType u
} }
func TestDNS_ServiceLookup_AnswerLimits(t *testing.T) { func TestDNS_ServiceLookup_AnswerLimits(t *testing.T) {
t.Parallel()
// Build a matrix of config parameters (udpAnswerLimit), and the // Build a matrix of config parameters (udpAnswerLimit), and the
// length of the response per query type and question. Negative // length of the response per query type and question. Negative
// values imply the test must return at least the abs(value) number // values imply the test must return at least the abs(value) number
@ -2717,6 +2749,7 @@ func TestDNS_ServiceLookup_AnswerLimits(t *testing.T) {
} }
func TestDNS_ServiceLookup_CNAME(t *testing.T) { func TestDNS_ServiceLookup_CNAME(t *testing.T) {
t.Parallel()
recursor := makeRecursor(t, []dns.RR{ recursor := makeRecursor(t, []dns.RR{
dnsCNAME("www.google.com", "google.com"), dnsCNAME("www.google.com", "google.com"),
dnsA("google.com", "1.2.3.4"), dnsA("google.com", "1.2.3.4"),
@ -2811,6 +2844,7 @@ func TestDNS_ServiceLookup_CNAME(t *testing.T) {
} }
func TestDNS_NodeLookup_TTL(t *testing.T) { func TestDNS_NodeLookup_TTL(t *testing.T) {
t.Parallel()
recursor := makeRecursor(t, []dns.RR{ recursor := makeRecursor(t, []dns.RR{
dnsCNAME("www.google.com", "google.com"), dnsCNAME("www.google.com", "google.com"),
dnsA("google.com", "1.2.3.4"), dnsA("google.com", "1.2.3.4"),
@ -2932,6 +2966,7 @@ func TestDNS_NodeLookup_TTL(t *testing.T) {
} }
func TestDNS_ServiceLookup_TTL(t *testing.T) { func TestDNS_ServiceLookup_TTL(t *testing.T) {
t.Parallel()
cfg := TestConfig() cfg := TestConfig()
cfg.DNSConfig.ServiceTTL = map[string]time.Duration{ cfg.DNSConfig.ServiceTTL = map[string]time.Duration{
"db": 10 * time.Second, "db": 10 * time.Second,
@ -3031,6 +3066,7 @@ func TestDNS_ServiceLookup_TTL(t *testing.T) {
} }
func TestDNS_PreparedQuery_TTL(t *testing.T) { func TestDNS_PreparedQuery_TTL(t *testing.T) {
t.Parallel()
cfg := TestConfig() cfg := TestConfig()
cfg.DNSConfig.ServiceTTL = map[string]time.Duration{ cfg.DNSConfig.ServiceTTL = map[string]time.Duration{
"db": 10 * time.Second, "db": 10 * time.Second,
@ -3218,6 +3254,7 @@ func TestDNS_PreparedQuery_TTL(t *testing.T) {
} }
func TestDNS_PreparedQuery_Failover(t *testing.T) { func TestDNS_PreparedQuery_Failover(t *testing.T) {
t.Parallel()
c1 := TestConfig() c1 := TestConfig()
c1.Datacenter = "dc1" c1.Datacenter = "dc1"
c1.TranslateWanAddrs = true c1.TranslateWanAddrs = true
@ -3329,6 +3366,7 @@ func TestDNS_PreparedQuery_Failover(t *testing.T) {
} }
func TestDNS_ServiceLookup_SRV_RFC(t *testing.T) { func TestDNS_ServiceLookup_SRV_RFC(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -3403,6 +3441,7 @@ func TestDNS_ServiceLookup_SRV_RFC(t *testing.T) {
} }
func TestDNS_ServiceLookup_SRV_RFC_TCP_Default(t *testing.T) { func TestDNS_ServiceLookup_SRV_RFC_TCP_Default(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -3477,6 +3516,7 @@ func TestDNS_ServiceLookup_SRV_RFC_TCP_Default(t *testing.T) {
} }
func TestDNS_ServiceLookup_FilterACL(t *testing.T) { func TestDNS_ServiceLookup_FilterACL(t *testing.T) {
t.Parallel()
cfg := TestConfig() cfg := TestConfig()
cfg.ACLMasterToken = "root" cfg.ACLMasterToken = "root"
cfg.ACLDatacenter = "dc1" cfg.ACLDatacenter = "dc1"
@ -3529,6 +3569,7 @@ func TestDNS_ServiceLookup_FilterACL(t *testing.T) {
} }
func TestDNS_AddressLookup(t *testing.T) { func TestDNS_AddressLookup(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -3565,6 +3606,7 @@ func TestDNS_AddressLookup(t *testing.T) {
} }
func TestDNS_AddressLookupIPV6(t *testing.T) { func TestDNS_AddressLookupIPV6(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -3602,6 +3644,7 @@ func TestDNS_AddressLookupIPV6(t *testing.T) {
} }
func TestDNS_NonExistingLookup(t *testing.T) { func TestDNS_NonExistingLookup(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -3631,6 +3674,7 @@ func TestDNS_NonExistingLookup(t *testing.T) {
} }
func TestDNS_NonExistingLookupEmptyAorAAAA(t *testing.T) { func TestDNS_NonExistingLookupEmptyAorAAAA(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -3770,6 +3814,7 @@ func TestDNS_NonExistingLookupEmptyAorAAAA(t *testing.T) {
} }
func TestDNS_PreparedQuery_AllowStale(t *testing.T) { func TestDNS_PreparedQuery_AllowStale(t *testing.T) {
t.Parallel()
cfg := TestConfig() cfg := TestConfig()
cfg.DNSConfig.AllowStale = &BoolTrue cfg.DNSConfig.AllowStale = &BoolTrue
cfg.DNSConfig.MaxStale = time.Second cfg.DNSConfig.MaxStale = time.Second
@ -3815,6 +3860,7 @@ func TestDNS_PreparedQuery_AllowStale(t *testing.T) {
} }
func TestDNS_InvalidQueries(t *testing.T) { func TestDNS_InvalidQueries(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -3852,6 +3898,7 @@ func TestDNS_InvalidQueries(t *testing.T) {
} }
func TestDNS_PreparedQuery_AgentSource(t *testing.T) { func TestDNS_PreparedQuery_AgentSource(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -3883,6 +3930,7 @@ func TestDNS_PreparedQuery_AgentSource(t *testing.T) {
} }
func TestDNS_trimUDPResponse_NoTrim(t *testing.T) { func TestDNS_trimUDPResponse_NoTrim(t *testing.T) {
t.Parallel()
resp := &dns.Msg{ resp := &dns.Msg{
Answer: []dns.RR{ Answer: []dns.RR{
&dns.SRV{ &dns.SRV{
@ -3939,6 +3987,7 @@ func TestDNS_trimUDPResponse_NoTrim(t *testing.T) {
} }
func TestDNS_trimUDPResponse_TrimLimit(t *testing.T) { func TestDNS_trimUDPResponse_TrimLimit(t *testing.T) {
t.Parallel()
config := &DefaultConfig().DNSConfig config := &DefaultConfig().DNSConfig
resp, expected := &dns.Msg{}, &dns.Msg{} resp, expected := &dns.Msg{}, &dns.Msg{}
@ -3978,6 +4027,7 @@ func TestDNS_trimUDPResponse_TrimLimit(t *testing.T) {
} }
func TestDNS_trimUDPResponse_TrimSize(t *testing.T) { func TestDNS_trimUDPResponse_TrimSize(t *testing.T) {
t.Parallel()
config := &DefaultConfig().DNSConfig config := &DefaultConfig().DNSConfig
resp := &dns.Msg{} resp := &dns.Msg{}
@ -4030,6 +4080,7 @@ func TestDNS_trimUDPResponse_TrimSize(t *testing.T) {
} }
func TestDNS_syncExtra(t *testing.T) { func TestDNS_syncExtra(t *testing.T) {
t.Parallel()
resp := &dns.Msg{ resp := &dns.Msg{
Answer: []dns.RR{ Answer: []dns.RR{
// These two are on the same host so the redundant extra // These two are on the same host so the redundant extra
@ -4253,6 +4304,7 @@ func TestDNS_syncExtra(t *testing.T) {
} }
func TestDNS_Compression_trimUDPResponse(t *testing.T) { func TestDNS_Compression_trimUDPResponse(t *testing.T) {
t.Parallel()
config := &DefaultConfig().DNSConfig config := &DefaultConfig().DNSConfig
m := dns.Msg{} m := dns.Msg{}
@ -4271,6 +4323,7 @@ func TestDNS_Compression_trimUDPResponse(t *testing.T) {
} }
func TestDNS_Compression_Query(t *testing.T) { func TestDNS_Compression_Query(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -4357,6 +4410,7 @@ func TestDNS_Compression_Query(t *testing.T) {
} }
func TestDNS_Compression_ReverseLookup(t *testing.T) { func TestDNS_Compression_ReverseLookup(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -4408,6 +4462,7 @@ func TestDNS_Compression_ReverseLookup(t *testing.T) {
} }
func TestDNS_Compression_Recurse(t *testing.T) { func TestDNS_Compression_Recurse(t *testing.T) {
t.Parallel()
recursor := makeRecursor(t, []dns.RR{dnsA("apple.com", "1.2.3.4")}) recursor := makeRecursor(t, []dns.RR{dnsA("apple.com", "1.2.3.4")})
defer recursor.Shutdown() defer recursor.Shutdown()

View File

@ -14,6 +14,7 @@ import (
) )
func TestEventFire(t *testing.T) { func TestEventFire(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
body := bytes.NewBuffer([]byte("test")) body := bytes.NewBuffer([]byte("test"))
url := "/v1/event/fire/test?node=Node&service=foo&tag=bar" url := "/v1/event/fire/test?node=Node&service=foo&tag=bar"
@ -51,6 +52,7 @@ func TestEventFire(t *testing.T) {
} }
func TestEventFire_token(t *testing.T) { func TestEventFire_token(t *testing.T) {
t.Parallel()
httpTestWithConfig(t, func(srv *HTTPServer) { httpTestWithConfig(t, func(srv *HTTPServer) {
// Create an ACL token // Create an ACL token
args := structs.ACLRequest{ args := structs.ACLRequest{
@ -110,6 +112,7 @@ func TestEventFire_token(t *testing.T) {
} }
func TestEventList(t *testing.T) { func TestEventList(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
p := &UserEvent{Name: "test"} p := &UserEvent{Name: "test"}
if err := srv.agent.UserEvent("dc1", "root", p); err != nil { if err := srv.agent.UserEvent("dc1", "root", p); err != nil {
@ -140,6 +143,7 @@ func TestEventList(t *testing.T) {
} }
func TestEventList_Filter(t *testing.T) { func TestEventList_Filter(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
p := &UserEvent{Name: "test"} p := &UserEvent{Name: "test"}
if err := srv.agent.UserEvent("dc1", "root", p); err != nil { if err := srv.agent.UserEvent("dc1", "root", p); err != nil {
@ -175,6 +179,7 @@ func TestEventList_Filter(t *testing.T) {
} }
func TestEventList_ACLFilter(t *testing.T) { func TestEventList_ACLFilter(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), TestACLConfig()) a := NewTestAgent(t.Name(), TestACLConfig())
defer a.Shutdown() defer a.Shutdown()
@ -224,6 +229,7 @@ func TestEventList_ACLFilter(t *testing.T) {
} }
func TestEventList_Blocking(t *testing.T) { func TestEventList_Blocking(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
p := &UserEvent{Name: "test"} p := &UserEvent{Name: "test"}
if err := srv.agent.UserEvent("dc1", "root", p); err != nil { if err := srv.agent.UserEvent("dc1", "root", p); err != nil {
@ -273,6 +279,7 @@ func TestEventList_Blocking(t *testing.T) {
} }
func TestEventList_EventBufOrder(t *testing.T) { func TestEventList_EventBufOrder(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
// Fire some events in a non-sequential order // Fire some events in a non-sequential order
expected := &UserEvent{Name: "foo"} expected := &UserEvent{Name: "foo"}
@ -310,6 +317,7 @@ func TestEventList_EventBufOrder(t *testing.T) {
} }
func TestUUIDToUint64(t *testing.T) { func TestUUIDToUint64(t *testing.T) {
t.Parallel()
inp := "cb9a81ad-fff6-52ac-92a7-5f70687805ec" inp := "cb9a81ad-fff6-52ac-92a7-5f70687805ec"
// Output value was computed using python // Output value was computed using python

View File

@ -7,6 +7,7 @@ import (
) )
func TestAppendSliceValue_implements(t *testing.T) { func TestAppendSliceValue_implements(t *testing.T) {
t.Parallel()
var raw interface{} var raw interface{}
raw = new(AppendSliceValue) raw = new(AppendSliceValue)
if _, ok := raw.(flag.Value); !ok { if _, ok := raw.(flag.Value); !ok {
@ -15,6 +16,7 @@ func TestAppendSliceValue_implements(t *testing.T) {
} }
func TestAppendSliceValueSet(t *testing.T) { func TestAppendSliceValueSet(t *testing.T) {
t.Parallel()
sv := new(AppendSliceValue) sv := new(AppendSliceValue)
err := sv.Set("foo") err := sv.Set("foo")
if err != nil { if err != nil {

View File

@ -14,6 +14,7 @@ import (
) )
func TestHealthChecksInState(t *testing.T) { func TestHealthChecksInState(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
req, _ := http.NewRequest("GET", "/v1/health/state/warning?dc=dc1", nil) req, _ := http.NewRequest("GET", "/v1/health/state/warning?dc=dc1", nil)
retry.Run(t, func(r *retry.R) { retry.Run(t, func(r *retry.R) {
@ -56,6 +57,7 @@ func TestHealthChecksInState(t *testing.T) {
} }
func TestHealthChecksInState_NodeMetaFilter(t *testing.T) { func TestHealthChecksInState_NodeMetaFilter(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
args := &structs.RegisterRequest{ args := &structs.RegisterRequest{
Datacenter: "dc1", Datacenter: "dc1",
@ -94,6 +96,7 @@ func TestHealthChecksInState_NodeMetaFilter(t *testing.T) {
} }
func TestHealthChecksInState_DistanceSort(t *testing.T) { func TestHealthChecksInState_DistanceSort(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -167,6 +170,7 @@ func TestHealthChecksInState_DistanceSort(t *testing.T) {
} }
func TestHealthNodeChecks(t *testing.T) { func TestHealthNodeChecks(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -200,6 +204,7 @@ func TestHealthNodeChecks(t *testing.T) {
} }
func TestHealthServiceChecks(t *testing.T) { func TestHealthServiceChecks(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -250,6 +255,7 @@ func TestHealthServiceChecks(t *testing.T) {
} }
func TestHealthServiceChecks_NodeMetaFilter(t *testing.T) { func TestHealthServiceChecks_NodeMetaFilter(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -301,6 +307,7 @@ func TestHealthServiceChecks_NodeMetaFilter(t *testing.T) {
} }
func TestHealthServiceChecks_DistanceSort(t *testing.T) { func TestHealthServiceChecks_DistanceSort(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -379,6 +386,7 @@ func TestHealthServiceChecks_DistanceSort(t *testing.T) {
} }
func TestHealthServiceNodes(t *testing.T) { func TestHealthServiceNodes(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -444,6 +452,7 @@ func TestHealthServiceNodes(t *testing.T) {
} }
func TestHealthServiceNodes_NodeMetaFilter(t *testing.T) { func TestHealthServiceNodes_NodeMetaFilter(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -495,6 +504,7 @@ func TestHealthServiceNodes_NodeMetaFilter(t *testing.T) {
} }
func TestHealthServiceNodes_DistanceSort(t *testing.T) { func TestHealthServiceNodes_DistanceSort(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -573,6 +583,7 @@ func TestHealthServiceNodes_DistanceSort(t *testing.T) {
} }
func TestHealthServiceNodes_PassingFilter(t *testing.T) { func TestHealthServiceNodes_PassingFilter(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -611,6 +622,7 @@ func TestHealthServiceNodes_PassingFilter(t *testing.T) {
} }
func TestHealthServiceNodes_WanTranslation(t *testing.T) { func TestHealthServiceNodes_WanTranslation(t *testing.T) {
t.Parallel()
c1 := TestConfig() c1 := TestConfig()
c1.Datacenter = "dc1" c1.Datacenter = "dc1"
c1.TranslateWanAddrs = true c1.TranslateWanAddrs = true
@ -695,6 +707,7 @@ func TestHealthServiceNodes_WanTranslation(t *testing.T) {
} }
func TestFilterNonPassing(t *testing.T) { func TestFilterNonPassing(t *testing.T) {
t.Parallel()
nodes := structs.CheckServiceNodes{ nodes := structs.CheckServiceNodes{
structs.CheckServiceNode{ structs.CheckServiceNode{
Checks: structs.HealthChecks{ Checks: structs.HealthChecks{

View File

@ -24,6 +24,7 @@ import (
) )
func TestHTTPServer_UnixSocket(t *testing.T) { func TestHTTPServer_UnixSocket(t *testing.T) {
t.Parallel()
if runtime.GOOS == "windows" { if runtime.GOOS == "windows" {
t.SkipNow() t.SkipNow()
} }
@ -81,6 +82,7 @@ func TestHTTPServer_UnixSocket(t *testing.T) {
} }
func TestHTTPServer_UnixSocket_FileExists(t *testing.T) { func TestHTTPServer_UnixSocket_FileExists(t *testing.T) {
t.Parallel()
if runtime.GOOS == "windows" { if runtime.GOOS == "windows" {
t.SkipNow() t.SkipNow()
} }
@ -117,6 +119,7 @@ func TestHTTPServer_UnixSocket_FileExists(t *testing.T) {
} }
func TestSetIndex(t *testing.T) { func TestSetIndex(t *testing.T) {
t.Parallel()
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
setIndex(resp, 1000) setIndex(resp, 1000)
header := resp.Header().Get("X-Consul-Index") header := resp.Header().Get("X-Consul-Index")
@ -130,6 +133,7 @@ func TestSetIndex(t *testing.T) {
} }
func TestSetKnownLeader(t *testing.T) { func TestSetKnownLeader(t *testing.T) {
t.Parallel()
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
setKnownLeader(resp, true) setKnownLeader(resp, true)
header := resp.Header().Get("X-Consul-KnownLeader") header := resp.Header().Get("X-Consul-KnownLeader")
@ -145,6 +149,7 @@ func TestSetKnownLeader(t *testing.T) {
} }
func TestSetLastContact(t *testing.T) { func TestSetLastContact(t *testing.T) {
t.Parallel()
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
setLastContact(resp, 123456*time.Microsecond) setLastContact(resp, 123456*time.Microsecond)
header := resp.Header().Get("X-Consul-LastContact") header := resp.Header().Get("X-Consul-LastContact")
@ -154,6 +159,7 @@ func TestSetLastContact(t *testing.T) {
} }
func TestSetMeta(t *testing.T) { func TestSetMeta(t *testing.T) {
t.Parallel()
meta := structs.QueryMeta{ meta := structs.QueryMeta{
Index: 1000, Index: 1000,
KnownLeader: true, KnownLeader: true,
@ -176,6 +182,7 @@ func TestSetMeta(t *testing.T) {
} }
func TestHTTPAPI_TranslateAddrHeader(t *testing.T) { func TestHTTPAPI_TranslateAddrHeader(t *testing.T) {
t.Parallel()
// Header should not be present if address translation is off. // Header should not be present if address translation is off.
{ {
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
@ -218,6 +225,7 @@ func TestHTTPAPI_TranslateAddrHeader(t *testing.T) {
} }
func TestHTTPAPIResponseHeaders(t *testing.T) { func TestHTTPAPIResponseHeaders(t *testing.T) {
t.Parallel()
c := TestConfig() c := TestConfig()
c.HTTPAPIResponseHeaders = map[string]string{ c.HTTPAPIResponseHeaders = map[string]string{
"Access-Control-Allow-Origin": "*", "Access-Control-Allow-Origin": "*",
@ -246,6 +254,7 @@ func TestHTTPAPIResponseHeaders(t *testing.T) {
} }
func TestContentTypeIsJSON(t *testing.T) { func TestContentTypeIsJSON(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -266,6 +275,7 @@ func TestContentTypeIsJSON(t *testing.T) {
} }
func TestHTTP_wrap_obfuscateLog(t *testing.T) { func TestHTTP_wrap_obfuscateLog(t *testing.T) {
t.Parallel()
buf := new(bytes.Buffer) buf := new(bytes.Buffer)
a := &TestAgent{Name: t.Name(), LogOutput: buf} a := &TestAgent{Name: t.Name(), LogOutput: buf}
a.Start() a.Start()
@ -285,10 +295,12 @@ func TestHTTP_wrap_obfuscateLog(t *testing.T) {
} }
func TestPrettyPrint(t *testing.T) { func TestPrettyPrint(t *testing.T) {
t.Parallel()
testPrettyPrint("pretty=1", t) testPrettyPrint("pretty=1", t)
} }
func TestPrettyPrintBare(t *testing.T) { func TestPrettyPrintBare(t *testing.T) {
t.Parallel()
testPrettyPrint("pretty", t) testPrettyPrint("pretty", t)
} }
@ -320,6 +332,7 @@ func testPrettyPrint(pretty string, t *testing.T) {
} }
func TestParseSource(t *testing.T) { func TestParseSource(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -359,6 +372,7 @@ func TestParseSource(t *testing.T) {
} }
func TestParseWait(t *testing.T) { func TestParseWait(t *testing.T) {
t.Parallel()
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
var b structs.QueryOptions var b structs.QueryOptions
@ -376,6 +390,7 @@ func TestParseWait(t *testing.T) {
} }
func TestParseWait_InvalidTime(t *testing.T) { func TestParseWait_InvalidTime(t *testing.T) {
t.Parallel()
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
var b structs.QueryOptions var b structs.QueryOptions
@ -390,6 +405,7 @@ func TestParseWait_InvalidTime(t *testing.T) {
} }
func TestParseWait_InvalidIndex(t *testing.T) { func TestParseWait_InvalidIndex(t *testing.T) {
t.Parallel()
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
var b structs.QueryOptions var b structs.QueryOptions
@ -404,6 +420,7 @@ func TestParseWait_InvalidIndex(t *testing.T) {
} }
func TestParseConsistency(t *testing.T) { func TestParseConsistency(t *testing.T) {
t.Parallel()
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
var b structs.QueryOptions var b structs.QueryOptions
@ -434,6 +451,7 @@ func TestParseConsistency(t *testing.T) {
} }
func TestParseConsistency_Invalid(t *testing.T) { func TestParseConsistency_Invalid(t *testing.T) {
t.Parallel()
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
var b structs.QueryOptions var b structs.QueryOptions
@ -449,6 +467,7 @@ func TestParseConsistency_Invalid(t *testing.T) {
// Test ACL token is resolved in correct order // Test ACL token is resolved in correct order
func TestACLResolution(t *testing.T) { func TestACLResolution(t *testing.T) {
t.Parallel()
var token string var token string
// Request without token // Request without token
req, _ := http.NewRequest("GET", "/v1/catalog/nodes", nil) req, _ := http.NewRequest("GET", "/v1/catalog/nodes", nil)
@ -498,6 +517,7 @@ func TestACLResolution(t *testing.T) {
} }
func TestEnableWebUI(t *testing.T) { func TestEnableWebUI(t *testing.T) {
t.Parallel()
httpTestWithConfig(t, func(s *HTTPServer) { httpTestWithConfig(t, func(s *HTTPServer) {
req, _ := http.NewRequest("GET", "/ui/", nil) req, _ := http.NewRequest("GET", "/ui/", nil)
resp := httptest.NewRecorder() resp := httptest.NewRecorder()

View File

@ -12,6 +12,7 @@ import (
) )
func TestAgent_LoadKeyrings(t *testing.T) { func TestAgent_LoadKeyrings(t *testing.T) {
t.Parallel()
key := "tbLJg26ZJyJ9pK3qhc9jig==" key := "tbLJg26ZJyJ9pK3qhc9jig=="
// Should be no configured keyring file by default // Should be no configured keyring file by default
@ -74,6 +75,7 @@ func TestAgent_LoadKeyrings(t *testing.T) {
} }
func TestAgent_InitKeyring(t *testing.T) { func TestAgent_InitKeyring(t *testing.T) {
t.Parallel()
key1 := "tbLJg26ZJyJ9pK3qhc9jig==" key1 := "tbLJg26ZJyJ9pK3qhc9jig=="
key2 := "4leC33rgtXKIVUr9Nr0snQ==" key2 := "4leC33rgtXKIVUr9Nr0snQ=="
expected := fmt.Sprintf(`["%s"]`, key1) expected := fmt.Sprintf(`["%s"]`, key1)
@ -112,6 +114,7 @@ func TestAgent_InitKeyring(t *testing.T) {
} }
func TestAgentKeyring_ACL(t *testing.T) { func TestAgentKeyring_ACL(t *testing.T) {
t.Parallel()
key1 := "tbLJg26ZJyJ9pK3qhc9jig==" key1 := "tbLJg26ZJyJ9pK3qhc9jig=="
key2 := "4leC33rgtXKIVUr9Nr0snQ==" key2 := "4leC33rgtXKIVUr9Nr0snQ=="

View File

@ -12,6 +12,7 @@ import (
) )
func TestKVSEndpoint_PUT_GET_DELETE(t *testing.T) { func TestKVSEndpoint_PUT_GET_DELETE(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -70,6 +71,7 @@ func TestKVSEndpoint_PUT_GET_DELETE(t *testing.T) {
} }
func TestKVSEndpoint_Recurse(t *testing.T) { func TestKVSEndpoint_Recurse(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -145,6 +147,7 @@ func TestKVSEndpoint_Recurse(t *testing.T) {
} }
func TestKVSEndpoint_DELETE_CAS(t *testing.T) { func TestKVSEndpoint_DELETE_CAS(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -210,6 +213,7 @@ func TestKVSEndpoint_DELETE_CAS(t *testing.T) {
} }
func TestKVSEndpoint_CAS(t *testing.T) { func TestKVSEndpoint_CAS(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -285,6 +289,7 @@ func TestKVSEndpoint_CAS(t *testing.T) {
} }
func TestKVSEndpoint_ListKeys(t *testing.T) { func TestKVSEndpoint_ListKeys(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -333,6 +338,7 @@ func TestKVSEndpoint_ListKeys(t *testing.T) {
} }
func TestKVSEndpoint_AcquireRelease(t *testing.T) { func TestKVSEndpoint_AcquireRelease(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
// Acquire the lock // Acquire the lock
id := makeTestSession(t, srv) id := makeTestSession(t, srv)
@ -388,6 +394,7 @@ func TestKVSEndpoint_AcquireRelease(t *testing.T) {
} }
func TestKVSEndpoint_GET_Raw(t *testing.T) { func TestKVSEndpoint_GET_Raw(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
buf := bytes.NewBuffer([]byte("test")) buf := bytes.NewBuffer([]byte("test"))
req, _ := http.NewRequest("PUT", "/v1/kv/test", buf) req, _ := http.NewRequest("PUT", "/v1/kv/test", buf)
@ -416,6 +423,7 @@ func TestKVSEndpoint_GET_Raw(t *testing.T) {
} }
func TestKVSEndpoint_PUT_ConflictingFlags(t *testing.T) { func TestKVSEndpoint_PUT_ConflictingFlags(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
req, _ := http.NewRequest("PUT", "/v1/kv/test?cas=0&acquire=xxx", nil) req, _ := http.NewRequest("PUT", "/v1/kv/test?cas=0&acquire=xxx", nil)
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
@ -433,6 +441,7 @@ func TestKVSEndpoint_PUT_ConflictingFlags(t *testing.T) {
} }
func TestKVSEndpoint_DELETE_ConflictingFlags(t *testing.T) { func TestKVSEndpoint_DELETE_ConflictingFlags(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
req, _ := http.NewRequest("DELETE", "/v1/kv/test?recurse&cas=0", nil) req, _ := http.NewRequest("DELETE", "/v1/kv/test?recurse&cas=0", nil)
resp := httptest.NewRecorder() resp := httptest.NewRecorder()

View File

@ -12,6 +12,7 @@ import (
) )
func TestAgentAntiEntropy_Services(t *testing.T) { func TestAgentAntiEntropy_Services(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -235,6 +236,7 @@ func TestAgentAntiEntropy_Services(t *testing.T) {
} }
func TestAgentAntiEntropy_EnableTagOverride(t *testing.T) { func TestAgentAntiEntropy_EnableTagOverride(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -329,6 +331,7 @@ func TestAgentAntiEntropy_EnableTagOverride(t *testing.T) {
} }
func TestAgentAntiEntropy_Services_WithChecks(t *testing.T) { func TestAgentAntiEntropy_Services_WithChecks(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -459,6 +462,7 @@ service "consul" {
` `
func TestAgentAntiEntropy_Services_ACLDeny(t *testing.T) { func TestAgentAntiEntropy_Services_ACLDeny(t *testing.T) {
t.Parallel()
conf := TestConfig() conf := TestConfig()
conf.ACLDatacenter = "dc1" conf.ACLDatacenter = "dc1"
conf.ACLMasterToken = "root" conf.ACLMasterToken = "root"
@ -617,6 +621,7 @@ func TestAgentAntiEntropy_Services_ACLDeny(t *testing.T) {
} }
func TestAgentAntiEntropy_Checks(t *testing.T) { func TestAgentAntiEntropy_Checks(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -827,6 +832,7 @@ func TestAgentAntiEntropy_Checks(t *testing.T) {
} }
func TestAgentAntiEntropy_Checks_ACLDeny(t *testing.T) { func TestAgentAntiEntropy_Checks_ACLDeny(t *testing.T) {
t.Parallel()
conf := TestConfig() conf := TestConfig()
conf.ACLDatacenter = "dc1" conf.ACLDatacenter = "dc1"
conf.ACLMasterToken = "root" conf.ACLMasterToken = "root"
@ -1062,6 +1068,7 @@ func TestAgentAntiEntropy_Checks_ACLDeny(t *testing.T) {
} }
func TestAgentAntiEntropy_Check_DeferSync(t *testing.T) { func TestAgentAntiEntropy_Check_DeferSync(t *testing.T) {
t.Parallel()
conf := TestConfig() conf := TestConfig()
conf.CheckUpdateInterval = 500 * time.Millisecond conf.CheckUpdateInterval = 500 * time.Millisecond
a := NewTestAgent(t.Name(), conf) a := NewTestAgent(t.Name(), conf)
@ -1234,6 +1241,7 @@ func TestAgentAntiEntropy_Check_DeferSync(t *testing.T) {
} }
func TestAgentAntiEntropy_NodeInfo(t *testing.T) { func TestAgentAntiEntropy_NodeInfo(t *testing.T) {
t.Parallel()
conf := TestConfig() conf := TestConfig()
conf.NodeID = types.NodeID("40e4a748-2192-161a-0510-9bf59fe950b5") conf.NodeID = types.NodeID("40e4a748-2192-161a-0510-9bf59fe950b5")
conf.Meta["somekey"] = "somevalue" conf.Meta["somekey"] = "somevalue"
@ -1302,6 +1310,7 @@ func TestAgentAntiEntropy_NodeInfo(t *testing.T) {
} }
func TestAgentAntiEntropy_deleteService_fails(t *testing.T) { func TestAgentAntiEntropy_deleteService_fails(t *testing.T) {
t.Parallel()
l := new(localState) l := new(localState)
if err := l.deleteService(""); err == nil { if err := l.deleteService(""); err == nil {
t.Fatalf("should have failed") t.Fatalf("should have failed")
@ -1309,6 +1318,7 @@ func TestAgentAntiEntropy_deleteService_fails(t *testing.T) {
} }
func TestAgentAntiEntropy_deleteCheck_fails(t *testing.T) { func TestAgentAntiEntropy_deleteCheck_fails(t *testing.T) {
t.Parallel()
l := new(localState) l := new(localState)
if err := l.deleteCheck(""); err == nil { if err := l.deleteCheck(""); err == nil {
t.Fatalf("should have errored") t.Fatalf("should have errored")
@ -1316,6 +1326,7 @@ func TestAgentAntiEntropy_deleteCheck_fails(t *testing.T) {
} }
func TestAgent_serviceTokens(t *testing.T) { func TestAgent_serviceTokens(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLToken = "default" config.ACLToken = "default"
l := new(localState) l := new(localState)
@ -1344,6 +1355,7 @@ func TestAgent_serviceTokens(t *testing.T) {
} }
func TestAgent_checkTokens(t *testing.T) { func TestAgent_checkTokens(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLToken = "default" config.ACLToken = "default"
l := new(localState) l := new(localState)
@ -1368,6 +1380,7 @@ func TestAgent_checkTokens(t *testing.T) {
} }
func TestAgent_checkCriticalTime(t *testing.T) { func TestAgent_checkCriticalTime(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
l := new(localState) l := new(localState)
l.Init(config, nil) l.Init(config, nil)
@ -1428,6 +1441,7 @@ func TestAgent_checkCriticalTime(t *testing.T) {
} }
func TestAgent_nestedPauseResume(t *testing.T) { func TestAgent_nestedPauseResume(t *testing.T) {
t.Parallel()
l := new(localState) l := new(localState)
if l.isPaused() != false { if l.isPaused() != false {
t.Fatal("localState should be unPaused after init") t.Fatal("localState should be unPaused after init")
@ -1459,6 +1473,7 @@ func TestAgent_nestedPauseResume(t *testing.T) {
} }
func TestAgent_sendCoordinate(t *testing.T) { func TestAgent_sendCoordinate(t *testing.T) {
t.Parallel()
conf := TestConfig() conf := TestConfig()
conf.SyncCoordinateRateTarget = 10.0 // updates/sec conf.SyncCoordinateRateTarget = 10.0 // updates/sec
conf.SyncCoordinateIntervalMin = 1 * time.Millisecond conf.SyncCoordinateIntervalMin = 1 * time.Millisecond

View File

@ -15,6 +15,7 @@ import (
) )
func TestOperator_RaftConfiguration(t *testing.T) { func TestOperator_RaftConfiguration(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
body := bytes.NewBuffer(nil) body := bytes.NewBuffer(nil)
req, _ := http.NewRequest("GET", "/v1/operator/raft/configuration", body) req, _ := http.NewRequest("GET", "/v1/operator/raft/configuration", body)
@ -39,6 +40,7 @@ func TestOperator_RaftConfiguration(t *testing.T) {
} }
func TestOperator_RaftPeer(t *testing.T) { func TestOperator_RaftPeer(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
body := bytes.NewBuffer(nil) body := bytes.NewBuffer(nil)
req, _ := http.NewRequest("DELETE", "/v1/operator/raft/peer?address=nope", body) req, _ := http.NewRequest("DELETE", "/v1/operator/raft/peer?address=nope", body)
@ -67,6 +69,7 @@ func TestOperator_RaftPeer(t *testing.T) {
} }
func TestOperator_KeyringInstall(t *testing.T) { func TestOperator_KeyringInstall(t *testing.T) {
t.Parallel()
oldKey := "H3/9gBxcKKRf45CaI2DlRg==" oldKey := "H3/9gBxcKKRf45CaI2DlRg=="
newKey := "z90lFx3sZZLtTOkutXcwYg==" newKey := "z90lFx3sZZLtTOkutXcwYg=="
configFunc := func(c *Config) { configFunc := func(c *Config) {
@ -102,6 +105,7 @@ func TestOperator_KeyringInstall(t *testing.T) {
} }
func TestOperator_KeyringList(t *testing.T) { func TestOperator_KeyringList(t *testing.T) {
t.Parallel()
key := "H3/9gBxcKKRf45CaI2DlRg==" key := "H3/9gBxcKKRf45CaI2DlRg=="
configFunc := func(c *Config) { configFunc := func(c *Config) {
c.EncryptKey = key c.EncryptKey = key
@ -149,6 +153,7 @@ func TestOperator_KeyringList(t *testing.T) {
} }
func TestOperator_KeyringRemove(t *testing.T) { func TestOperator_KeyringRemove(t *testing.T) {
t.Parallel()
key := "H3/9gBxcKKRf45CaI2DlRg==" key := "H3/9gBxcKKRf45CaI2DlRg=="
tempKey := "z90lFx3sZZLtTOkutXcwYg==" tempKey := "z90lFx3sZZLtTOkutXcwYg=="
configFunc := func(c *Config) { configFunc := func(c *Config) {
@ -206,6 +211,7 @@ func TestOperator_KeyringRemove(t *testing.T) {
} }
func TestOperator_KeyringUse(t *testing.T) { func TestOperator_KeyringUse(t *testing.T) {
t.Parallel()
oldKey := "H3/9gBxcKKRf45CaI2DlRg==" oldKey := "H3/9gBxcKKRf45CaI2DlRg=="
newKey := "z90lFx3sZZLtTOkutXcwYg==" newKey := "z90lFx3sZZLtTOkutXcwYg=="
configFunc := func(c *Config) { configFunc := func(c *Config) {
@ -249,6 +255,7 @@ func TestOperator_KeyringUse(t *testing.T) {
} }
func TestOperator_Keyring_InvalidRelayFactor(t *testing.T) { func TestOperator_Keyring_InvalidRelayFactor(t *testing.T) {
t.Parallel()
key := "H3/9gBxcKKRf45CaI2DlRg==" key := "H3/9gBxcKKRf45CaI2DlRg=="
configFunc := func(c *Config) { configFunc := func(c *Config) {
c.EncryptKey = key c.EncryptKey = key
@ -274,6 +281,7 @@ func TestOperator_Keyring_InvalidRelayFactor(t *testing.T) {
} }
func TestOperator_AutopilotGetConfiguration(t *testing.T) { func TestOperator_AutopilotGetConfiguration(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
body := bytes.NewBuffer(nil) body := bytes.NewBuffer(nil)
req, _ := http.NewRequest("GET", "/v1/operator/autopilot/configuration", body) req, _ := http.NewRequest("GET", "/v1/operator/autopilot/configuration", body)
@ -296,6 +304,7 @@ func TestOperator_AutopilotGetConfiguration(t *testing.T) {
} }
func TestOperator_AutopilotSetConfiguration(t *testing.T) { func TestOperator_AutopilotSetConfiguration(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
body := bytes.NewBuffer([]byte(`{"CleanupDeadServers": false}`)) body := bytes.NewBuffer([]byte(`{"CleanupDeadServers": false}`))
req, _ := http.NewRequest("PUT", "/v1/operator/autopilot/configuration", body) req, _ := http.NewRequest("PUT", "/v1/operator/autopilot/configuration", body)
@ -322,6 +331,7 @@ func TestOperator_AutopilotSetConfiguration(t *testing.T) {
} }
func TestOperator_AutopilotCASConfiguration(t *testing.T) { func TestOperator_AutopilotCASConfiguration(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
body := bytes.NewBuffer([]byte(`{"CleanupDeadServers": false}`)) body := bytes.NewBuffer([]byte(`{"CleanupDeadServers": false}`))
req, _ := http.NewRequest("PUT", "/v1/operator/autopilot/configuration", body) req, _ := http.NewRequest("PUT", "/v1/operator/autopilot/configuration", body)
@ -387,6 +397,7 @@ func TestOperator_AutopilotCASConfiguration(t *testing.T) {
} }
func TestOperator_ServerHealth(t *testing.T) { func TestOperator_ServerHealth(t *testing.T) {
t.Parallel()
cb := func(c *Config) { cb := func(c *Config) {
c.RaftProtocol = 3 c.RaftProtocol = 3
} }
@ -418,6 +429,7 @@ func TestOperator_ServerHealth(t *testing.T) {
} }
func TestOperator_ServerHealth_Unhealthy(t *testing.T) { func TestOperator_ServerHealth_Unhealthy(t *testing.T) {
t.Parallel()
cb := func(c *Config) { cb := func(c *Config) {
c.RaftProtocol = 3 c.RaftProtocol = 3

View File

@ -69,6 +69,7 @@ func (m *MockPreparedQuery) Explain(args *structs.PreparedQueryExecuteRequest,
} }
func TestPreparedQuery_Create(t *testing.T) { func TestPreparedQuery_Create(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
m := MockPreparedQuery{} m := MockPreparedQuery{}
if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil { if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil {
@ -151,6 +152,7 @@ func TestPreparedQuery_Create(t *testing.T) {
} }
func TestPreparedQuery_List(t *testing.T) { func TestPreparedQuery_List(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
m := MockPreparedQuery{} m := MockPreparedQuery{}
if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil { if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil {
@ -227,6 +229,7 @@ func TestPreparedQuery_List(t *testing.T) {
} }
func TestPreparedQuery_Execute(t *testing.T) { func TestPreparedQuery_Execute(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
m := MockPreparedQuery{} m := MockPreparedQuery{}
if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil { if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil {
@ -445,6 +448,7 @@ func TestPreparedQuery_Execute(t *testing.T) {
} }
func TestPreparedQuery_Explain(t *testing.T) { func TestPreparedQuery_Explain(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
m := MockPreparedQuery{} m := MockPreparedQuery{}
if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil { if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil {
@ -511,6 +515,7 @@ func TestPreparedQuery_Explain(t *testing.T) {
} }
func TestPreparedQuery_Get(t *testing.T) { func TestPreparedQuery_Get(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
m := MockPreparedQuery{} m := MockPreparedQuery{}
if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil { if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil {
@ -570,6 +575,7 @@ func TestPreparedQuery_Get(t *testing.T) {
} }
func TestPreparedQuery_Update(t *testing.T) { func TestPreparedQuery_Update(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
m := MockPreparedQuery{} m := MockPreparedQuery{}
if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil { if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil {
@ -646,6 +652,7 @@ func TestPreparedQuery_Update(t *testing.T) {
} }
func TestPreparedQuery_Delete(t *testing.T) { func TestPreparedQuery_Delete(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
m := MockPreparedQuery{} m := MockPreparedQuery{}
if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil { if err := srv.agent.InjectEndpoint("PreparedQuery", &m); err != nil {
@ -692,6 +699,7 @@ func TestPreparedQuery_Delete(t *testing.T) {
} }
func TestPreparedQuery_BadMethods(t *testing.T) { func TestPreparedQuery_BadMethods(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
body := bytes.NewBuffer(nil) body := bytes.NewBuffer(nil)
req, _ := http.NewRequest("DELETE", "/v1/query", body) req, _ := http.NewRequest("DELETE", "/v1/query", body)
@ -718,6 +726,7 @@ func TestPreparedQuery_BadMethods(t *testing.T) {
} }
func TestPreparedQuery_parseLimit(t *testing.T) { func TestPreparedQuery_parseLimit(t *testing.T) {
t.Parallel()
body := bytes.NewBuffer(nil) body := bytes.NewBuffer(nil)
req, _ := http.NewRequest("GET", "/v1/query", body) req, _ := http.NewRequest("GET", "/v1/query", body)
limit := 99 limit := 99
@ -746,6 +755,7 @@ func TestPreparedQuery_parseLimit(t *testing.T) {
// this is just a basic end-to-end sanity check to make sure things are wired // this is just a basic end-to-end sanity check to make sure things are wired
// correctly when calling through to the real endpoints. // correctly when calling through to the real endpoints.
func TestPreparedQuery_Integration(t *testing.T) { func TestPreparedQuery_Integration(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
// Register a node and a service. // Register a node and a service.
{ {

View File

@ -22,6 +22,7 @@ func generateUUID() (ret string) {
} }
func TestRexecWriter(t *testing.T) { func TestRexecWriter(t *testing.T) {
t.Parallel()
writer := &rexecWriter{ writer := &rexecWriter{
BufCh: make(chan []byte, 16), BufCh: make(chan []byte, 16),
BufSize: 16, BufSize: 16,
@ -93,11 +94,13 @@ func TestRexecWriter(t *testing.T) {
} }
func TestRemoteExecGetSpec(t *testing.T) { func TestRemoteExecGetSpec(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
testRemoteExecGetSpec(t, config) testRemoteExecGetSpec(t, config)
} }
func TestRemoteExecGetSpec_ACLToken(t *testing.T) { func TestRemoteExecGetSpec_ACLToken(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLDatacenter = "dc1" config.ACLDatacenter = "dc1"
config.ACLToken = "root" config.ACLToken = "root"
@ -137,11 +140,13 @@ func testRemoteExecGetSpec(t *testing.T, c *Config) {
} }
func TestRemoteExecWrites(t *testing.T) { func TestRemoteExecWrites(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
testRemoteExecWrites(t, config) testRemoteExecWrites(t, config)
} }
func TestRemoteExecWrites_ACLToken(t *testing.T) { func TestRemoteExecWrites_ACLToken(t *testing.T) {
t.Parallel()
config := TestConfig() config := TestConfig()
config.ACLDatacenter = "dc1" config.ACLDatacenter = "dc1"
config.ACLToken = "root" config.ACLToken = "root"
@ -258,10 +263,12 @@ func testHandleRemoteExec(t *testing.T, command string, expectedSubstring string
} }
func TestHandleRemoteExec(t *testing.T) { func TestHandleRemoteExec(t *testing.T) {
t.Parallel()
testHandleRemoteExec(t, "uptime", "load", "0") testHandleRemoteExec(t, "uptime", "load", "0")
} }
func TestHandleRemoteExecFailed(t *testing.T) { func TestHandleRemoteExecFailed(t *testing.T) {
t.Parallel()
testHandleRemoteExec(t, "echo failing;exit 2", "failing", "2") testHandleRemoteExec(t, "echo failing;exit 2", "failing", "2")
} }

View File

@ -15,6 +15,7 @@ import (
) )
func TestSessionCreate(t *testing.T) { func TestSessionCreate(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
// Create a health check // Create a health check
args := &structs.RegisterRequest{ args := &structs.RegisterRequest{
@ -59,6 +60,7 @@ func TestSessionCreate(t *testing.T) {
} }
func TestSessionCreateDelete(t *testing.T) { func TestSessionCreateDelete(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
// Create a health check // Create a health check
args := &structs.RegisterRequest{ args := &structs.RegisterRequest{
@ -104,6 +106,7 @@ func TestSessionCreateDelete(t *testing.T) {
} }
func TestFixupLockDelay(t *testing.T) { func TestFixupLockDelay(t *testing.T) {
t.Parallel()
inp := map[string]interface{}{ inp := map[string]interface{}{
"lockdelay": float64(15), "lockdelay": float64(15),
} }
@ -185,6 +188,7 @@ func makeTestSessionTTL(t *testing.T, srv *HTTPServer, ttl string) string {
} }
func TestSessionDestroy(t *testing.T) { func TestSessionDestroy(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
id := makeTestSession(t, srv) id := makeTestSession(t, srv)
@ -201,6 +205,7 @@ func TestSessionDestroy(t *testing.T) {
} }
func TestSessionCustomTTL(t *testing.T) { func TestSessionCustomTTL(t *testing.T) {
t.Parallel()
ttl := 250 * time.Millisecond ttl := 250 * time.Millisecond
testSessionTTL(t, ttl, customTTL(ttl)) testSessionTTL(t, ttl, customTTL(ttl))
} }
@ -251,6 +256,7 @@ func testSessionTTL(t *testing.T, ttl time.Duration, cb func(c *Config)) {
} }
func TestSessionTTLRenew(t *testing.T) { func TestSessionTTLRenew(t *testing.T) {
t.Parallel()
ttl := 250 * time.Millisecond ttl := 250 * time.Millisecond
TTL := ttl.String() TTL := ttl.String()
httpTestWithConfig(t, func(srv *HTTPServer) { httpTestWithConfig(t, func(srv *HTTPServer) {
@ -327,6 +333,7 @@ func TestSessionTTLRenew(t *testing.T) {
} }
func TestSessionGet(t *testing.T) { func TestSessionGet(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
req, _ := http.NewRequest("GET", "/v1/session/info/adf4238a-882b-9ddc-4a9d-5b6758e4159e", nil) req, _ := http.NewRequest("GET", "/v1/session/info/adf4238a-882b-9ddc-4a9d-5b6758e4159e", nil)
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
@ -363,6 +370,7 @@ func TestSessionGet(t *testing.T) {
} }
func TestSessionList(t *testing.T) { func TestSessionList(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
req, _ := http.NewRequest("GET", "/v1/session/list", nil) req, _ := http.NewRequest("GET", "/v1/session/list", nil)
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
@ -402,6 +410,7 @@ func TestSessionList(t *testing.T) {
} }
func TestSessionsForNode(t *testing.T) { func TestSessionsForNode(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
req, _ := http.NewRequest("GET", "/v1/session/node/"+srv.agent.config.NodeName, nil) req, _ := http.NewRequest("GET", "/v1/session/node/"+srv.agent.config.NodeName, nil)
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
@ -441,6 +450,7 @@ func TestSessionsForNode(t *testing.T) {
} }
func TestSessionDeleteDestroy(t *testing.T) { func TestSessionDeleteDestroy(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
id := makeTestSessionDelete(t, srv) id := makeTestSessionDelete(t, srv)

View File

@ -10,6 +10,7 @@ import (
) )
func TestSnapshot(t *testing.T) { func TestSnapshot(t *testing.T) {
t.Parallel()
var snap io.Reader var snap io.Reader
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
body := bytes.NewBuffer(nil) body := bytes.NewBuffer(nil)
@ -44,6 +45,7 @@ func TestSnapshot(t *testing.T) {
} }
func TestSnapshot_Options(t *testing.T) { func TestSnapshot_Options(t *testing.T) {
t.Parallel()
for _, method := range []string{"GET", "PUT"} { for _, method := range []string{"GET", "PUT"} {
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
body := bytes.NewBuffer(nil) body := bytes.NewBuffer(nil)
@ -84,6 +86,7 @@ func TestSnapshot_Options(t *testing.T) {
} }
func TestSnapshot_BadMethods(t *testing.T) { func TestSnapshot_BadMethods(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
body := bytes.NewBuffer(nil) body := bytes.NewBuffer(nil)
req, _ := http.NewRequest("POST", "/v1/snapshot", body) req, _ := http.NewRequest("POST", "/v1/snapshot", body)

View File

@ -5,6 +5,7 @@ import (
) )
func TestStatusLeader(t *testing.T) { func TestStatusLeader(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -19,6 +20,7 @@ func TestStatusLeader(t *testing.T) {
} }
func TestStatusPeers(t *testing.T) { func TestStatusPeers(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()

View File

@ -8,6 +8,7 @@ import (
) )
func TestAgentStructs_HealthCheck(t *testing.T) { func TestAgentStructs_HealthCheck(t *testing.T) {
t.Parallel()
def := CheckDefinition{} def := CheckDefinition{}
check := def.HealthCheck("node1") check := def.HealthCheck("node1")
@ -18,6 +19,7 @@ func TestAgentStructs_HealthCheck(t *testing.T) {
} }
func TestAgentStructs_CheckTypes(t *testing.T) { func TestAgentStructs_CheckTypes(t *testing.T) {
t.Parallel()
svc := new(ServiceDefinition) svc := new(ServiceDefinition)
// Singular Check field works // Singular Check field works

View File

@ -10,7 +10,6 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
"sync/atomic"
"time" "time"
"github.com/hashicorp/consul/consul" "github.com/hashicorp/consul/consul"
@ -22,6 +21,10 @@ import (
uuid "github.com/hashicorp/go-uuid" uuid "github.com/hashicorp/go-uuid"
) )
func init() {
rand.Seed(time.Now().UnixNano()) // seed random number generator
}
var TempDir = "/tmp" var TempDir = "/tmp"
// TestAgent encapsulates an Agent with a default configuration and // TestAgent encapsulates an Agent with a default configuration and
@ -126,9 +129,21 @@ func (a *TestAgent) Start() *TestAgent {
a.Agent = agent a.Agent = agent
a.Agent.LogOutput = a.LogOutput a.Agent.LogOutput = a.LogOutput
a.Agent.LogWriter = a.LogWriter a.Agent.LogWriter = a.LogWriter
if err := a.Agent.Start(); err != nil { retry.Run(&panicFailer{}, func(r *retry.R) {
err := a.Agent.Start()
if err == nil {
return
}
// retry with different ports on port conflict
if strings.Contains(err.Error(), "bind: address already in use") {
pickRandomPorts(a.Config)
r.Fatal("port conflict")
}
// do not retry on other failures
panic(fmt.Sprintf("Error starting agent: %s", err)) panic(fmt.Sprintf("Error starting agent: %s", err))
} })
var out structs.IndexedNodes var out structs.IndexedNodes
retry.Run(&panicFailer{}, func(r *retry.R) { retry.Run(&panicFailer{}, func(r *retry.R) {
@ -180,11 +195,22 @@ func (a *TestAgent) consulConfig() *consul.Config {
return c return c
} }
// nextPort is the next available set of ports for the various // pickRandomPorts selects random ports from fixed size random blocks of
// endpoints. Using a random value between 1024 and 63000 does not // ports. This does not eliminate the chance for port conflict but
// eliminate the chance for a port conflict for concurrent tests but // reduces it significanltly with little overhead. Furthermore, asking
// great reduces it close to zero with almost no overhead. // the kernel for a random port by binding to port 0 prolongs the test
var nextPort uint64 = uint64(rand.Int63n(63000)) + uint64(1024) // execution (in our case +20sec) while also not fully eliminating the
// chance of port conflicts for concurrently executed test binaries.
// Instead of relying on one set of ports to be sufficient we retry
// starting the agent with different ports on port conflict.
func pickRandomPorts(c *Config) {
port := 1030 + int(rand.Int31n(64400))
c.Ports.DNS = port + 1
c.Ports.HTTP = port + 2
c.Ports.SerfLan = port + 3
c.Ports.SerfWan = port + 4
c.Ports.Server = port + 5
}
// BoolTrue and BoolFalse exist to create a *bool value. // BoolTrue and BoolFalse exist to create a *bool value.
var BoolTrue = true var BoolTrue = true
@ -198,25 +224,21 @@ func TestConfig() *Config {
panic(err) panic(err)
} }
port := int(atomic.AddUint64(&nextPort, 10))
conf := DefaultConfig() conf := DefaultConfig()
pickRandomPorts(conf)
conf.Version = version.Version conf.Version = version.Version
conf.VersionPrerelease = "c.d" conf.VersionPrerelease = "c.d"
conf.AdvertiseAddr = "127.0.0.1"
conf.Bootstrap = true
conf.Datacenter = "dc1"
conf.NodeName = fmt.Sprintf("Node %d", port)
conf.NodeID = types.NodeID(nodeID) conf.NodeID = types.NodeID(nodeID)
conf.NodeName = "Node " + nodeID
conf.BindAddr = "127.0.0.1" conf.BindAddr = "127.0.0.1"
conf.Ports.DNS = port + 1 conf.AdvertiseAddr = "127.0.0.1"
conf.Ports.HTTP = port + 2 conf.Datacenter = "dc1"
conf.Ports.SerfLan = port + 3 conf.Bootstrap = true
conf.Ports.SerfWan = port + 4
conf.Ports.Server = port + 5
conf.Server = true conf.Server = true
conf.ACLEnforceVersion8 = &BoolFalse conf.ACLEnforceVersion8 = &BoolFalse
conf.ACLDatacenter = "dc1" conf.ACLDatacenter = conf.Datacenter
conf.ACLMasterToken = "root" conf.ACLMasterToken = "root"
cons := consul.DefaultConfig() cons := consul.DefaultConfig()

View File

@ -13,6 +13,7 @@ import (
) )
func TestTxnEndpoint_Bad_JSON(t *testing.T) { func TestTxnEndpoint_Bad_JSON(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
buf := bytes.NewBuffer([]byte("{")) buf := bytes.NewBuffer([]byte("{"))
req, _ := http.NewRequest("PUT", "/v1/txn", buf) req, _ := http.NewRequest("PUT", "/v1/txn", buf)
@ -30,6 +31,7 @@ func TestTxnEndpoint_Bad_JSON(t *testing.T) {
} }
func TestTxnEndpoint_Bad_Method(t *testing.T) { func TestTxnEndpoint_Bad_Method(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
buf := bytes.NewBuffer([]byte("{}")) buf := bytes.NewBuffer([]byte("{}"))
req, _ := http.NewRequest("GET", "/v1/txn", buf) req, _ := http.NewRequest("GET", "/v1/txn", buf)
@ -44,6 +46,7 @@ func TestTxnEndpoint_Bad_Method(t *testing.T) {
} }
func TestTxnEndpoint_Bad_Size_Item(t *testing.T) { func TestTxnEndpoint_Bad_Size_Item(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
buf := bytes.NewBuffer([]byte(fmt.Sprintf(` buf := bytes.NewBuffer([]byte(fmt.Sprintf(`
[ [
@ -68,6 +71,7 @@ func TestTxnEndpoint_Bad_Size_Item(t *testing.T) {
} }
func TestTxnEndpoint_Bad_Size_Net(t *testing.T) { func TestTxnEndpoint_Bad_Size_Net(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
value := strings.Repeat("X", maxKVSize/2) value := strings.Repeat("X", maxKVSize/2)
buf := bytes.NewBuffer([]byte(fmt.Sprintf(` buf := bytes.NewBuffer([]byte(fmt.Sprintf(`
@ -107,6 +111,7 @@ func TestTxnEndpoint_Bad_Size_Net(t *testing.T) {
} }
func TestTxnEndpoint_Bad_Size_Ops(t *testing.T) { func TestTxnEndpoint_Bad_Size_Ops(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
buf := bytes.NewBuffer([]byte(fmt.Sprintf(` buf := bytes.NewBuffer([]byte(fmt.Sprintf(`
[ [
@ -132,6 +137,7 @@ func TestTxnEndpoint_Bad_Size_Ops(t *testing.T) {
} }
func TestTxnEndpoint_KV_Actions(t *testing.T) { func TestTxnEndpoint_KV_Actions(t *testing.T) {
t.Parallel()
httpTest(t, func(srv *HTTPServer) { httpTest(t, func(srv *HTTPServer) {
// Make sure all incoming fields get converted properly to the internal // Make sure all incoming fields get converted properly to the internal
// RPC format. // RPC format.

View File

@ -19,6 +19,7 @@ import (
) )
func TestUiIndex(t *testing.T) { func TestUiIndex(t *testing.T) {
t.Parallel()
// Make a test dir to serve UI files // Make a test dir to serve UI files
uiDir := testutil.TempDir(t, "consul") uiDir := testutil.TempDir(t, "consul")
defer os.RemoveAll(uiDir) defer os.RemoveAll(uiDir)
@ -61,6 +62,7 @@ func TestUiIndex(t *testing.T) {
} }
func TestUiNodes(t *testing.T) { func TestUiNodes(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -97,6 +99,7 @@ func TestUiNodes(t *testing.T) {
} }
func TestUiNodeInfo(t *testing.T) { func TestUiNodeInfo(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -145,6 +148,7 @@ func TestUiNodeInfo(t *testing.T) {
} }
func TestSummarizeServices(t *testing.T) { func TestSummarizeServices(t *testing.T) {
t.Parallel()
dump := structs.NodeDump{ dump := structs.NodeDump{
&structs.NodeInfo{ &structs.NodeInfo{
Node: "foo", Node: "foo",

View File

@ -9,6 +9,7 @@ import (
) )
func TestValidateUserEventParams(t *testing.T) { func TestValidateUserEventParams(t *testing.T) {
t.Parallel()
p := &UserEvent{} p := &UserEvent{}
err := validateUserEventParams(p) err := validateUserEventParams(p)
if err == nil || err.Error() != "User event missing name" { if err == nil || err.Error() != "User event missing name" {
@ -45,6 +46,7 @@ func TestValidateUserEventParams(t *testing.T) {
} }
func TestShouldProcessUserEvent(t *testing.T) { func TestShouldProcessUserEvent(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -113,6 +115,7 @@ func TestShouldProcessUserEvent(t *testing.T) {
} }
func TestIngestUserEvent(t *testing.T) { func TestIngestUserEvent(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -143,6 +146,7 @@ func TestIngestUserEvent(t *testing.T) {
} }
func TestFireReceiveEvent(t *testing.T) { func TestFireReceiveEvent(t *testing.T) {
t.Parallel()
a := NewTestAgent(t.Name(), nil) a := NewTestAgent(t.Name(), nil)
defer a.Shutdown() defer a.Shutdown()
@ -178,6 +182,7 @@ func TestFireReceiveEvent(t *testing.T) {
} }
func TestUserEventToken(t *testing.T) { func TestUserEventToken(t *testing.T) {
t.Parallel()
conf := TestConfig() conf := TestConfig()
conf.ACLDefaultPolicy = "deny" // Set the default policies to deny conf.ACLDefaultPolicy = "deny" // Set the default policies to deny
a := NewTestAgent(t.Name(), conf) a := NewTestAgent(t.Name(), conf)

View File

@ -10,6 +10,7 @@ import (
) )
func TestAEScale(t *testing.T) { func TestAEScale(t *testing.T) {
t.Parallel()
intv := time.Minute intv := time.Minute
if v := aeScale(intv, 100); v != intv { if v := aeScale(intv, 100); v != intv {
t.Fatalf("Bad: %v", v) t.Fatalf("Bad: %v", v)
@ -26,6 +27,7 @@ func TestAEScale(t *testing.T) {
} }
func TestStringHash(t *testing.T) { func TestStringHash(t *testing.T) {
t.Parallel()
in := "hello world" in := "hello world"
expected := "5eb63bbbe01eeed093cb22bb8f5acdc3" expected := "5eb63bbbe01eeed093cb22bb8f5acdc3"
@ -35,6 +37,7 @@ func TestStringHash(t *testing.T) {
} }
func TestSetFilePermissions(t *testing.T) { func TestSetFilePermissions(t *testing.T) {
t.Parallel()
if runtime.GOOS == "windows" { if runtime.GOOS == "windows" {
t.SkipNow() t.SkipNow()
} }

View File

@ -7,6 +7,7 @@ import (
) )
func TestVerifyWatchHandler(t *testing.T) { func TestVerifyWatchHandler(t *testing.T) {
t.Parallel()
if err := verifyWatchHandler(nil); err == nil { if err := verifyWatchHandler(nil); err == nil {
t.Fatalf("should err") t.Fatalf("should err")
} }
@ -22,6 +23,7 @@ func TestVerifyWatchHandler(t *testing.T) {
} }
func TestMakeWatchHandler(t *testing.T) { func TestMakeWatchHandler(t *testing.T) {
t.Parallel()
defer os.Remove("handler_out") defer os.Remove("handler_out")
defer os.Remove("handler_index_out") defer os.Remove("handler_index_out")
script := "echo $CONSUL_INDEX >> handler_index_out && cat >> handler_out" script := "echo $CONSUL_INDEX >> handler_index_out && cat >> handler_out"