Skip to content

Commit

Permalink
[FAB-1960] Add peer test template
Browse files Browse the repository at this point in the history
https://jira.hyperledger.org/browse/FAB-1960

Just like the orderer and MSP, the peer needs to supply a template so
that the configtx/test can generate a valid genesis block for testing
purposes.

This change adds the peer template and adds a test which generates it.

Change-Id: I3b3bb485c321abe41016d5428e582bf7fea23399
Signed-off-by: Jason Yellick <jyellick@us.ibm.com>
  • Loading branch information
Jason Yellick committed Feb 5, 2017
1 parent d6d2250 commit 6a7c188
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 5 deletions.
14 changes: 9 additions & 5 deletions common/configtx/test/helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,10 @@ import (

"github.com/hyperledger/fabric/common/configtx"
"github.com/hyperledger/fabric/common/genesis"
peersharedconfig "github.com/hyperledger/fabric/peer/sharedconfig"
cb "github.com/hyperledger/fabric/protos/common"
"github.com/hyperledger/fabric/protos/utils"

"github.com/golang/protobuf/proto"
"github.com/hyperledger/fabric/protos/peer"
logging "github.com/op/go-logging"
)

Expand All @@ -41,10 +39,12 @@ const (
const (
OrdererTemplateName = "orderer.template"
MSPTemplateName = "msp.template"
PeerTemplateName = "peer.template"
)

var ordererTemplate configtx.Template
var mspTemplate configtx.Template
var peerTemplate configtx.Template

var genesisFactory genesis.Factory

Expand All @@ -71,9 +71,8 @@ func readTemplate(name string) configtx.Template {
func init() {
ordererTemplate = readTemplate(OrdererTemplateName)
mspTemplate = readTemplate(MSPTemplateName)
anchorPeers := []*peer.AnchorPeer{{Host: "fakehost", Port: 2000, Cert: []byte{}}}
gossTemplate := configtx.NewSimpleTemplate(peersharedconfig.TemplateAnchorPeers(anchorPeers))
genesisFactory = genesis.NewFactoryImpl(configtx.NewCompositeTemplate(mspTemplate, ordererTemplate, gossTemplate))
peerTemplate = readTemplate(PeerTemplateName)
genesisFactory = genesis.NewFactoryImpl(configtx.NewCompositeTemplate(mspTemplate, ordererTemplate, peerTemplate))
}

// WriteTemplate takes an output file and set of config items and writes them to that file as a marshaled ConfigurationTemplate
Expand All @@ -100,3 +99,8 @@ func GetOrdererTemplate() configtx.Template {
func GetMSPTemplate() configtx.Template {
return mspTemplate
}

// GetMSPerTemplate returns the test peer template
func GetPeerTemplate() configtx.Template {
return peerTemplate
}
2 changes: 2 additions & 0 deletions common/configtx/test/peer.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

" AnchorPeers
30 changes: 30 additions & 0 deletions peer/sharedconfig/template_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
Copyright IBM Corp. 2017 All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package sharedconfig

import (
"testing"

configtxtest "github.com/hyperledger/fabric/common/configtx/test"
)

func TestTemplate(t *testing.T) {
configtxtest.WriteTemplate(
"../../common/configtx/test/"+configtxtest.PeerTemplateName,
DefaultAnchorPeers(),
)
}

0 comments on commit 6a7c188

Please sign in to comment.