github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/integration/lifecycle/ccenv14_test.go (about) 1 /* 2 Copyright hechain. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package lifecycle 8 9 import ( 10 "io/ioutil" 11 "os" 12 "path/filepath" 13 "runtime" 14 "syscall" 15 16 docker "github.com/fsouza/go-dockerclient" 17 "github.com/hechain20/hechain/integration/nwo" 18 . "github.com/onsi/ginkgo" 19 . "github.com/onsi/gomega" 20 "github.com/tedsuo/ifrit" 21 ) 22 23 var _ = Describe("solo network using ccenv-1.4", func() { 24 var ( 25 client *docker.Client 26 testDir string 27 network *nwo.Network 28 process ifrit.Process 29 ) 30 31 BeforeEach(func() { 32 if runtime.GOARCH != "amd64" { 33 Skip("ccenv-1.4 image may not be available for this platform") 34 } 35 var err error 36 testDir, err = ioutil.TempDir("", "lifecycle") 37 Expect(err).NotTo(HaveOccurred()) 38 39 client, err = docker.NewClientFromEnv() 40 Expect(err).NotTo(HaveOccurred()) 41 42 network = nwo.New(nwo.BasicSolo(), testDir, client, StartPort(), components) 43 network.GenerateConfigTree() 44 for _, peer := range network.PeersWithChannel("testchannel") { 45 core := network.ReadPeerConfig(peer) 46 core.Chaincode.Builder = "$(DOCKER_NS)/fabric-ccenv:1.4" 47 network.WritePeerConfig(peer, core) 48 } 49 network.Bootstrap() 50 51 networkRunner := network.NetworkGroupRunner() 52 process = ifrit.Invoke(networkRunner) 53 Eventually(process.Ready(), network.EventuallyTimeout).Should(BeClosed()) 54 }) 55 56 AfterEach(func() { 57 // Shutdown processes and cleanup 58 process.Signal(syscall.SIGTERM) 59 Eventually(process.Wait(), network.EventuallyTimeout).Should(Receive()) 60 network.Cleanup() 61 62 os.RemoveAll(testDir) 63 }) 64 65 It("deploys and executes chaincode (simple)", func() { 66 By("deploying the chaincode using LSCC on a channel with V1_4 application capabilities") 67 orderer := network.Orderer("orderer") 68 endorsers := []*nwo.Peer{ 69 network.Peer("Org1", "peer0"), 70 network.Peer("Org2", "peer0"), 71 } 72 73 cwd, err := os.Getwd() 74 Expect(err).NotTo(HaveOccurred()) 75 76 // The chaincode in the CDS file for this test was packaged using 77 // the cli container created via the docker-compose.yaml in this directory. 78 // At the time of packaging, hyperledger/fabric-tools:1.4 had 79 // image id '18ed4db0cd57'. 80 // 81 // It was packaged using the following command: 82 // peer chaincode package --name mycc --version 0.0 --lang golang --path github.com/chaincode/simple-v14 mycc-0_0-v14.cds 83 chaincode := nwo.Chaincode{ 84 Name: "mycc", 85 Version: "0.0", 86 PackageFile: filepath.Join(cwd, "testdata/mycc-0_0-v14.cds"), 87 Ctor: `{"Args":["init","a","100","b","200"]}`, 88 Policy: `AND ('Org1MSP.member','Org2MSP.member')`, 89 } 90 91 network.CreateAndJoinChannels(orderer) 92 nwo.DeployChaincodeLegacy(network, "testchannel", orderer, chaincode) 93 RunQueryInvokeQuery(network, orderer, "mycc", 100, endorsers...) 94 }) 95 })