mirror of https://github.com/status-im/consul.git
cache-types: skip tests with races
This commit is contained in:
parent
af8a617797
commit
3ff6c5b3d3
|
@ -9,9 +9,10 @@ import (
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/hashicorp/consul/lib"
|
|
||||||
"github.com/mitchellh/hashstructure"
|
"github.com/mitchellh/hashstructure"
|
||||||
|
|
||||||
|
"github.com/hashicorp/consul/lib"
|
||||||
|
|
||||||
"github.com/hashicorp/consul/agent/cache"
|
"github.com/hashicorp/consul/agent/cache"
|
||||||
"github.com/hashicorp/consul/agent/connect"
|
"github.com/hashicorp/consul/agent/connect"
|
||||||
"github.com/hashicorp/consul/agent/consul"
|
"github.com/hashicorp/consul/agent/consul"
|
||||||
|
@ -466,11 +467,7 @@ func (c *ConnectCALeaf) Fetch(opts cache.FetchOptions, req cache.Request) (cache
|
||||||
func activeRootHasKey(roots *structs.IndexedCARoots, currentSigningKeyID string) bool {
|
func activeRootHasKey(roots *structs.IndexedCARoots, currentSigningKeyID string) bool {
|
||||||
for _, ca := range roots.Roots {
|
for _, ca := range roots.Roots {
|
||||||
if ca.Active {
|
if ca.Active {
|
||||||
if ca.SigningKeyID == currentSigningKeyID {
|
return ca.SigningKeyID == currentSigningKeyID
|
||||||
return true
|
|
||||||
}
|
|
||||||
// Found the active CA but it has changed
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Shouldn't be possible since at least one root should be active.
|
// Shouldn't be possible since at least one root should be active.
|
||||||
|
|
|
@ -10,14 +10,14 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/hashicorp/consul/sdk/testutil/retry"
|
"github.com/stretchr/testify/mock"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/hashicorp/consul/agent/cache"
|
"github.com/hashicorp/consul/agent/cache"
|
||||||
"github.com/hashicorp/consul/agent/connect"
|
"github.com/hashicorp/consul/agent/connect"
|
||||||
"github.com/hashicorp/consul/agent/consul"
|
"github.com/hashicorp/consul/agent/consul"
|
||||||
"github.com/hashicorp/consul/agent/structs"
|
"github.com/hashicorp/consul/agent/structs"
|
||||||
"github.com/stretchr/testify/mock"
|
"github.com/hashicorp/consul/sdk/testutil/retry"
|
||||||
"github.com/stretchr/testify/require"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCalculateSoftExpire(t *testing.T) {
|
func TestCalculateSoftExpire(t *testing.T) {
|
||||||
|
@ -147,6 +147,9 @@ func TestCalculateSoftExpire(t *testing.T) {
|
||||||
// Test that after an initial signing, new CA roots (new ID) will
|
// Test that after an initial signing, new CA roots (new ID) will
|
||||||
// trigger a blocking query to execute.
|
// trigger a blocking query to execute.
|
||||||
func TestConnectCALeaf_changingRoots(t *testing.T) {
|
func TestConnectCALeaf_changingRoots(t *testing.T) {
|
||||||
|
if testingRace {
|
||||||
|
t.Skip("fails with -race because caRoot.Active is modified concurrently")
|
||||||
|
}
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
require := require.New(t)
|
require := require.New(t)
|
||||||
|
@ -693,6 +696,9 @@ func TestConnectCALeaf_CSRRateLimiting(t *testing.T) {
|
||||||
// This test runs multiple concurrent callers watching different leaf certs and
|
// This test runs multiple concurrent callers watching different leaf certs and
|
||||||
// tries to ensure that the background root watch activity behaves correctly.
|
// tries to ensure that the background root watch activity behaves correctly.
|
||||||
func TestConnectCALeaf_watchRootsDedupingMultipleCallers(t *testing.T) {
|
func TestConnectCALeaf_watchRootsDedupingMultipleCallers(t *testing.T) {
|
||||||
|
if testingRace {
|
||||||
|
t.Skip("fails with -race because caRoot.Active is modified concurrently")
|
||||||
|
}
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
rpc := TestRPC(t)
|
rpc := TestRPC(t)
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
// +build !race
|
||||||
|
|
||||||
|
package cachetype
|
||||||
|
|
||||||
|
const testingRace = false
|
|
@ -0,0 +1,5 @@
|
||||||
|
// +build race
|
||||||
|
|
||||||
|
package cachetype
|
||||||
|
|
||||||
|
const testingRace = true
|
|
@ -4,8 +4,9 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/hashicorp/consul/agent/cache"
|
|
||||||
"github.com/mitchellh/go-testing-interface"
|
"github.com/mitchellh/go-testing-interface"
|
||||||
|
|
||||||
|
"github.com/hashicorp/consul/agent/cache"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestRPC returns a mock implementation of the RPC interface.
|
// TestRPC returns a mock implementation of the RPC interface.
|
||||||
|
@ -23,7 +24,8 @@ func TestFetchCh(
|
||||||
t testing.T,
|
t testing.T,
|
||||||
typ cache.Type,
|
typ cache.Type,
|
||||||
opts cache.FetchOptions,
|
opts cache.FetchOptions,
|
||||||
req cache.Request) <-chan interface{} {
|
req cache.Request,
|
||||||
|
) <-chan interface{} {
|
||||||
resultCh := make(chan interface{})
|
resultCh := make(chan interface{})
|
||||||
go func() {
|
go func() {
|
||||||
result, err := typ.Fetch(opts, req)
|
result, err := typ.Fetch(opts, req)
|
||||||
|
|
Loading…
Reference in New Issue