Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Signed-off-by: Sam Yuan <yy19902439@126.com>
  • Loading branch information
SamYuan1990 committed Sep 20, 2021
1 parent 73c1c81 commit 59df782
Show file tree
Hide file tree
Showing 6 changed files with 118 additions and 12 deletions.
10 changes: 10 additions & 0 deletions cmd/tape/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ var (
commitOnly = app.Command("commitOnly", "Start tape with commitOnly mode, starts dummy envelop for test orderer only")

endorsementOnly = app.Command("endorsementOnly", "Start tape with endorsementOnly mode, starts endorsement and end")

trafficOnly = app.Command("traffic", "Start tape with traffic mode")

observerOnly = app.Command("observer", "Start tape with observer mode")
)

func main() {
Expand All @@ -59,6 +63,12 @@ func main() {
case run.FullCommand():
checkArgs(rate, burst, signerNumber, parallelNumber, *con, logger)
err = cmdImpl.Process(*con, *num, *burst, *signerNumber, *parallelNumber, *rate, logger, infra.FULLPROCESS)
case trafficOnly.FullCommand():
checkArgs(rate, burst, signerNumber, parallelNumber, *con, logger)
err = cmdImpl.Process(*con, *num, *burst, *signerNumber, *parallelNumber, *rate, logger, infra.TRAFFIC)
case observerOnly.FullCommand():
checkArgs(rate, burst, signerNumber, parallelNumber, *con, logger)
err = cmdImpl.Process(*con, *num, *burst, *signerNumber, *parallelNumber, *rate, logger, infra.OBSERVER)
default:
err = errors.Errorf("invalid command: %s", fullCmd)
}
Expand Down
75 changes: 75 additions & 0 deletions e2e/TrafficAndObserver_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package e2e

import (
"io/ioutil"
"os/exec"

"tape/e2e/mock"

. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "github.com/onsi/gomega/gbytes"
"github.com/onsi/gomega/gexec"
)

var _ = Describe("Mock test for good path", func() {

Context("E2E with multi mocked Fabric", func() {
When("traffic and observer mode", func() {

It("should work properly", func() {
server, err := mock.NewServer(2, nil)
server.Start()
defer server.Stop()

config, err := ioutil.TempFile("", "endorsement-only-config-*.yaml")
paddrs, oaddr := server.Addresses()
configValue := Values{
PrivSk: mtlsKeyFile.Name(),
SignCert: mtlsCertFile.Name(),
Mtls: false,
PeersAddrs: paddrs,
OrdererAddr: oaddr,
CommitThreshold: 1,
}
GenerateConfigFile(config.Name(), configValue)

cmd0 := exec.Command(tapeBin, "traffic", "-c", config.Name(), "--rate=10")

//cmd1 := exec.Command(tapeBin, "observer", "-c", config.Name())
tapeSession, err = gexec.Start(cmd0, nil, nil)
Expect(err).NotTo(HaveOccurred())
//_, err = gexec.Start(cmd0, nil, nil)
//Expect(err).NotTo(HaveOccurred())
//Eventually(tapeSession.Out).Should(Say("Time.*Tx.*"))
})

PIt("should work properly", func() {
server, err := mock.NewServer(2, nil)
server.Start()
defer server.Stop()

config, err := ioutil.TempFile("", "endorsement-only-config-*.yaml")
paddrs, oaddr := server.Addresses()
configValue := Values{
PrivSk: mtlsKeyFile.Name(),
SignCert: mtlsCertFile.Name(),
Mtls: false,
PeersAddrs: paddrs,
OrdererAddr: oaddr,
CommitThreshold: 1,
}
GenerateConfigFile(config.Name(), configValue)

cmd0 := exec.Command(tapeBin, "traffic", "-c", config.Name())

cmd1 := exec.Command(tapeBin, "observer", "-c", config.Name())
tapeSession, err = gexec.Start(cmd1, nil, nil)
Expect(err).NotTo(HaveOccurred())
_, err = gexec.Start(cmd0, nil, nil)
Expect(err).NotTo(HaveOccurred())
Eventually(tapeSession.Out).Should(Say("Time.*Tx.*"))
})
})
})
})
27 changes: 21 additions & 6 deletions pkg/infra/cmdImpl/fullProcess.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"os"
"os/signal"
"syscall"
"tape/pkg/infra"
"time"

log "github.com/sirupsen/logrus"
Expand All @@ -21,14 +22,28 @@ func Process(configPath string, num int, burst, signerNumber, parallel int, rate
return err
}
defer cmdConfig.cancel()
var Observer_workers []infra.Worker
var Observers infra.ObserverWorker
/*** workers ***/
Observer_workers, Observers, err := cmdConfig.Observerfactory.CreateObserverWorkers(processmod)
if err != nil {
return err
if processmod != infra.TRAFFIC {
Observer_workers, Observers, err = cmdConfig.Observerfactory.CreateObserverWorkers(processmod)
if err != nil {
return err
}
}
generator_workers, err := cmdConfig.Generator.CreateGeneratorWorkers(processmod)
if err != nil {
return err
var generator_workers []infra.Worker
if processmod != infra.OBSERVER {
if processmod == infra.TRAFFIC {
generator_workers, err = cmdConfig.Generator.CreateGeneratorWorkers(processmod - 1)
if err != nil {
return err
}
} else {
generator_workers, err = cmdConfig.Generator.CreateGeneratorWorkers(processmod)
if err != nil {
return err
}
}
}
/*** start workers ***/
for _, worker := range Observer_workers {
Expand Down
9 changes: 6 additions & 3 deletions pkg/infra/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@ import (
)

const (
FULLPROCESS = 6
ENDORSEMENT = 4
COMMIT = 3
FULLPROCESS = 6
TRAFFIC = 7
OBSERVER = 0
ENDORSEMENT = 4
COMMIT = 3

PROPOSALFILTER = 4
COMMITFILTER = 3
QUERYFILTER = 2
Expand Down
2 changes: 2 additions & 0 deletions pkg/infra/observer/observerFactory.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ func (of *ObserverFactory) CreateObserverWorkers(mode int) ([]infra.Worker, infr
switch mode {
case infra.ENDORSEMENT:
return of.CreateEndorsementObserverWorkers()
case infra.OBSERVER:
return of.CreateEndorsementObserverWorkers()
case infra.COMMIT:
return of.CreateCommitObserverWorkers()
default:
Expand Down
7 changes: 4 additions & 3 deletions test/integration-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -114,10 +114,11 @@ sleep 10
case $2 in
ORLogic)
ARGS=(-ccep "OR('Org1.member','Org2.member')")
nohup timeout 5 docker run -d --name tape1 --network $network -v $PWD:/config tape tape $CMD -c $CONFIG_FILE --rate=10 > /dev/null 2>&1
nohup timeout 5 docker run -d --name tape2 --network $network -v $PWD:/config tape tape $CMD -c $CONFIG_FILE --rate=10 > /dev/null 2>&1
docker run --name tape1 --network $network -v $PWD:/config tape tape traffic -c $CONFIG_FILE --rate=10
#nohup timeout 5 docker run --name tape2 --network $network -v $PWD:/config tape tape traffic -c $CONFIG_FILE --rate=10 > /dev/null 2>&1
#nohup timeout 5 docker run --name tape3 --network $network -v $PWD:/config tape tape observer -c $CONFIG_FILE > /dev/null 2>&1
sleep 10
docker logs tape2
#docker logs tape1
;;
ENDORSEMNTONLY)
ARGS=(-ccep "OR('Org1.member','Org2.member')")
Expand Down

0 comments on commit 59df782

Please sign in to comment.