summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNickolai Zeldovich <nickolai@csail.mit.edu>2021-09-20 11:41:38 -0400
committerNickolai Zeldovich <nickolai@csail.mit.edu>2021-09-20 11:41:38 -0400
commitec9cddf1dbc86d83e26b955658ef95dea87a0785 (patch)
tree67d2b239779916ef480cac972c2ac5c78a3d4375
parent686a38b7df99edf83617f66ab8cfa1cf1998ca26 (diff)
actually check that pipelining in happening in the e2e testfeature/pipeline
-rw-r--r--test/e2e-go/features/pipeline/pipeline_test.go21
1 files changed, 16 insertions, 5 deletions
diff --git a/test/e2e-go/features/pipeline/pipeline_test.go b/test/e2e-go/features/pipeline/pipeline_test.go
index 878bc7fc6..589747560 100644
--- a/test/e2e-go/features/pipeline/pipeline_test.go
+++ b/test/e2e-go/features/pipeline/pipeline_test.go
@@ -11,26 +11,37 @@ import (
"github.com/stretchr/testify/require"
)
-func TestPipeline(t *testing.T) {
+func testPipelineWithConfig(t *testing.T, cfgname string) {
r := require.New(fixtures.SynchronizedTest(t))
configurableConsensus := make(config.ConsensusProtocols)
cp := config.Consensus[protocol.ConsensusCurrentVersion]
cp.AgreementMessagesContainBranch = true
cp.AgreementPipelining = true
- cp.AgreementPipelineDepth = 5
+ cp.AgreementPipelineDepth = 10
cp.AgreementPipelineDelayHistory = 32
cp.AgreementPipelineDelay = 4
configurableConsensus[protocol.ConsensusVersion("vPipeline")] = cp
var fixture fixtures.RestClientFixture
fixture.SetConsensus(configurableConsensus)
- fixture.Setup(t, filepath.Join("nettemplates", "PipelineTwoNodes.json"))
- // fixture.Setup(t, filepath.Join("nettemplates", "PipelineFiveNodes.json"))
+ fixture.Setup(t, filepath.Join("nettemplates", cfgname))
defer fixture.ShutdownImpl(true) // preserve logs in testdir
_, err := fixture.NC.AlgodClient()
r.NoError(err)
- time.Sleep(60 * time.Second)
+ // Without pipelining, we are limited to approximately 1 block per 4 seconds.
+ // Make sure that we can agree on much more than that. In the absence of
+ // pipelining, 50 rounds would take at least 200 seconds.
+ err = fixture.WaitForRound(50, 60 * time.Second)
+ r.NoError(err)
+}
+
+func TestPipelineTwoNodes(t *testing.T) {
+ testPipelineWithConfig(t, "PipelineTwoNodes.json")
+}
+
+func TestPipelineFiveNodes(t *testing.T) {
+ testPipelineWithConfig(t, "PipelineFiveNodes.json")
}