mirror of
https://github.com/status-im/consul.git
synced 2025-01-24 20:51:10 +00:00
653a886689
* Implement a Catalog Controllers Lifecycle Integration Test * Prevent triggering the race detector. This allows defining some variables for protobuf constants and using those in comparisons. Without that, something internal in the fmt package ended up looking at the protobuf message size cache and triggering the race detector.
45 lines
1.5 KiB
Go
45 lines
1.5 KiB
Go
package catalogtest
|
|
|
|
import (
|
|
"testing"
|
|
|
|
svctest "github.com/hashicorp/consul/agent/grpc-external/services/resource/testing"
|
|
"github.com/hashicorp/consul/internal/catalog"
|
|
"github.com/hashicorp/consul/internal/catalog/internal/controllers"
|
|
"github.com/hashicorp/consul/internal/controller"
|
|
"github.com/hashicorp/consul/internal/resource/reaper"
|
|
"github.com/hashicorp/consul/proto-public/pbresource"
|
|
"github.com/hashicorp/consul/sdk/testutil"
|
|
)
|
|
|
|
func runInMemResourceServiceAndControllers(t *testing.T, deps controllers.Dependencies) pbresource.ResourceServiceClient {
|
|
t.Helper()
|
|
|
|
ctx := testutil.TestContext(t)
|
|
|
|
// Create the in-mem resource service
|
|
client := svctest.RunResourceService(t, catalog.RegisterTypes)
|
|
|
|
// Setup/Run the controller manager
|
|
mgr := controller.NewManager(client, testutil.Logger(t))
|
|
catalog.RegisterControllers(mgr, deps)
|
|
|
|
// We also depend on the reaper to take care of cleaning up owned health statuses and
|
|
// service endpoints so we must enable that controller as well
|
|
reaper.RegisterControllers(mgr)
|
|
mgr.SetRaftLeader(true)
|
|
go mgr.Run(ctx)
|
|
|
|
return client
|
|
}
|
|
|
|
func TestControllers_Integration(t *testing.T) {
|
|
client := runInMemResourceServiceAndControllers(t, catalog.DefaultControllerDependencies())
|
|
RunCatalogV1Alpha1IntegrationTest(t, client)
|
|
}
|
|
|
|
func TestControllers_Lifecycle(t *testing.T) {
|
|
client := runInMemResourceServiceAndControllers(t, catalog.DefaultControllerDependencies())
|
|
RunCatalogV1Alpha1LifecycleIntegrationTest(t, client)
|
|
}
|