mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-11 16:09:07 +02:00
Merge remote-tracking branch 'origin/revert/component-types' into revert/component-types
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
This commit is contained in:
@@ -94,7 +94,7 @@ func BenchmarkGetNetworkMapData(b *testing.B) {
|
|||||||
pool, err := pgxpool.NewWithConfig(ctx, cfg)
|
pool, err := pgxpool.NewWithConfig(ctx, cfg)
|
||||||
require.NoError(b, err, "connect nmdata store")
|
require.NoError(b, err, "connect nmdata store")
|
||||||
b.Cleanup(pool.Close)
|
b.Cleanup(pool.Close)
|
||||||
nmStore := &networkmap_pgsql.PgStore{Pool: pool}
|
nmStore := nmDataStore(b, &networkmap_pgsql.PgStore{Pool: pool})
|
||||||
|
|
||||||
for _, accountID := range benchAccountIDs(b, ctx, statsConn) {
|
for _, accountID := range benchAccountIDs(b, ctx, statsConn) {
|
||||||
b.Run(accountID, func(b *testing.B) {
|
b.Run(accountID, func(b *testing.B) {
|
||||||
@@ -161,7 +161,7 @@ func BenchmarkNetworkMapDataFullRound(b *testing.B) {
|
|||||||
pool, err := pgxpool.NewWithConfig(ctx, cfg)
|
pool, err := pgxpool.NewWithConfig(ctx, cfg)
|
||||||
require.NoError(b, err, "connect nmdata store")
|
require.NoError(b, err, "connect nmdata store")
|
||||||
b.Cleanup(pool.Close)
|
b.Cleanup(pool.Close)
|
||||||
nmStore := &networkmap_pgsql.PgStore{Pool: pool}
|
nmStore := nmDataStore(b, &networkmap_pgsql.PgStore{Pool: pool})
|
||||||
|
|
||||||
for _, accountID := range benchAccountIDs(b, ctx, statsConn) {
|
for _, accountID := range benchAccountIDs(b, ctx, statsConn) {
|
||||||
b.Run(accountID, func(b *testing.B) {
|
b.Run(accountID, func(b *testing.B) {
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/golang/mock/gomock"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"google.golang.org/protobuf/encoding/prototext"
|
"google.golang.org/protobuf/encoding/prototext"
|
||||||
goproto "google.golang.org/protobuf/proto"
|
goproto "google.golang.org/protobuf/proto"
|
||||||
@@ -51,8 +52,11 @@ import (
|
|||||||
|
|
||||||
nbdns "github.com/netbirdio/netbird/dns"
|
nbdns "github.com/netbirdio/netbird/dns"
|
||||||
"github.com/netbirdio/netbird/management/internals/controllers/network_map/controller/cache"
|
"github.com/netbirdio/netbird/management/internals/controllers/network_map/controller/cache"
|
||||||
|
networkmapdb "github.com/netbirdio/netbird/management/internals/network_map_db"
|
||||||
networkmap_pgsql "github.com/netbirdio/netbird/management/internals/network_map_db/pgsql"
|
networkmap_pgsql "github.com/netbirdio/netbird/management/internals/network_map_db/pgsql"
|
||||||
mgmtgrpc "github.com/netbirdio/netbird/management/internals/shared/grpc"
|
mgmtgrpc "github.com/netbirdio/netbird/management/internals/shared/grpc"
|
||||||
|
"github.com/netbirdio/netbird/management/server/integrations/integrated_validator/validator"
|
||||||
|
"github.com/netbirdio/netbird/management/server/settings"
|
||||||
"github.com/netbirdio/netbird/management/server/store"
|
"github.com/netbirdio/netbird/management/server/store"
|
||||||
"github.com/netbirdio/netbird/management/server/types"
|
"github.com/netbirdio/netbird/management/server/types"
|
||||||
"github.com/netbirdio/netbird/management/server/types/legacynmap"
|
"github.com/netbirdio/netbird/management/server/types/legacynmap"
|
||||||
@@ -86,9 +90,10 @@ func TestNetworkMapProtoEquivalence(t *testing.T) {
|
|||||||
require.NoError(t, err, "connect to postgres")
|
require.NoError(t, err, "connect to postgres")
|
||||||
t.Cleanup(func() { testStore.Close(ctx) })
|
t.Cleanup(func() { testStore.Close(ctx) })
|
||||||
|
|
||||||
nmStore, err := networkmap_pgsql.NewPostgresqlStore(ctx, dsn)
|
pgStore, err := networkmap_pgsql.NewPostgresqlStore(ctx, dsn)
|
||||||
require.NoError(t, err, "connect nmdata store")
|
require.NoError(t, err, "connect nmdata store")
|
||||||
t.Cleanup(func() { nmStore.Pool.Close() })
|
t.Cleanup(func() { pgStore.Pool.Close() })
|
||||||
|
nmStore := nmDataStore(t, pgStore)
|
||||||
|
|
||||||
accountIDs := equivAccountIDs(t, dsn)
|
accountIDs := equivAccountIDs(t, dsn)
|
||||||
require.NotEmpty(t, accountIDs, "no accounts selected")
|
require.NotEmpty(t, accountIDs, "no accounts selected")
|
||||||
@@ -121,7 +126,7 @@ func TestNetworkMapProtoEquivalence(t *testing.T) {
|
|||||||
|
|
||||||
// checkAccount compares both paths for every peer of one account. Nothing is
|
// checkAccount compares both paths for every peer of one account. Nothing is
|
||||||
// retained across peers, so memory stays flat within an account.
|
// retained across peers, so memory stays flat within an account.
|
||||||
func checkAccount(ctx context.Context, t *testing.T, nmStore *networkmap_pgsql.PgStore, account *types.Account, maxPeers int, stats *equivStats) {
|
func checkAccount(ctx context.Context, t *testing.T, nmStore *networkmapdb.NetworkMapDBStoreImpl, account *types.Account, maxPeers int, stats *equivStats) {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
|
|
||||||
if len(account.Peers) == 0 {
|
if len(account.Peers) == 0 {
|
||||||
@@ -218,6 +223,23 @@ func checkAccount(ctx context.Context, t *testing.T, nmStore *networkmap_pgsql.P
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// nmDataStore wraps a raw connection store the way production's factory does.
|
||||||
|
// The validator marks every peer validated and the extra settings are empty:
|
||||||
|
// checkAccount overwrites ValidatedPeers anyway, and neither reaches the
|
||||||
|
// compared network map.
|
||||||
|
func nmDataStore(tb testing.TB, s networkmapdb.NetworkMapDBStore) *networkmapdb.NetworkMapDBStoreImpl {
|
||||||
|
tb.Helper()
|
||||||
|
|
||||||
|
extraSettings := settings.NewMockManager(gomock.NewController(tb))
|
||||||
|
extraSettings.EXPECT().GetExtraSettings(gomock.Any(), gomock.Any()).Return(&types.ExtraSettings{}, nil).AnyTimes()
|
||||||
|
|
||||||
|
return &networkmapdb.NetworkMapDBStoreImpl{
|
||||||
|
Store: s,
|
||||||
|
IntegratedPeerValidator: &validator.IntegratedValidatorImpl{},
|
||||||
|
ExtraSettingsManager: extraSettings,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func equivDSN() string {
|
func equivDSN() string {
|
||||||
if dsn := os.Getenv("NETBIRD_STORE_ENGINE_POSTGRES_DSN"); dsn != "" {
|
if dsn := os.Getenv("NETBIRD_STORE_ENGINE_POSTGRES_DSN"); dsn != "" {
|
||||||
return dsn
|
return dsn
|
||||||
|
|||||||
Reference in New Issue
Block a user