go_study/fabric-main/gossip/service/config_test.go

56 lines
2.0 KiB
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package service_test
import (
"testing"
"time"
"github.com/hyperledger/fabric/gossip/election"
"github.com/hyperledger/fabric/gossip/service"
"github.com/spf13/viper"
"github.com/stretchr/testify/require"
)
func TestGlobalConfig(t *testing.T) {
viper.Reset()
// Capture the configuration from viper
viper.Set("peer.tls.enabled", true)
viper.Set("peer.gossip.pvtData.pullRetryThreshold", "10s")
viper.Set("peer.gossip.endpoint", "gossip_endpoint")
viper.Set("peer.gossip.pvtData.pushAckTimeout", "20s")
viper.Set("peer.gossip.nonBlockingCommitMode", true)
viper.Set("peer.gossip.useLeaderElection", true)
viper.Set("peer.gossip.orgLeader", true)
viper.Set("peer.gossip.election.leaderAliveThreshold", "10m")
viper.Set("peer.gossip.election.leaderElectionDuration", "5s")
viper.Set("peer.gossip.pvtData.btlPullMargin", 15)
viper.Set("peer.gossip.pvtData.transientstoreMaxBlockRetention", 1000)
viper.Set("peer.gossip.pvtData.skipPullingInvalidTransactionsDuringCommit", false)
coreConfig := service.GlobalConfig()
expectedConfig := &service.ServiceConfig{
PeerTLSEnabled: true,
PvtDataPullRetryThreshold: 10 * time.Second,
Endpoint: "gossip_endpoint",
PvtDataPushAckTimeout: 20 * time.Second,
NonBlockingCommitMode: true,
UseLeaderElection: true,
OrgLeader: true,
ElectionLeaderAliveThreshold: 10 * time.Minute,
ElectionLeaderElectionDuration: 5 * time.Second,
ElectionStartupGracePeriod: election.DefStartupGracePeriod,
ElectionMembershipSampleInterval: election.DefMembershipSampleInterval,
BtlPullMargin: 15,
TransientstoreMaxBlockRetention: uint64(1000),
SkipPullingInvalidTransactionsDuringCommit: false,
}
require.Equal(t, coreConfig, expectedConfig)
}