From 907689f0c2c979582305a5b959fd8779d9c60556 Mon Sep 17 00:00:00 2001 From: capossele <angelocapossele@gmail.com> Date: Wed, 6 May 2020 12:55:19 +0100 Subject: [PATCH] :white_check_mark: improves dRNG integration test --- .../tester/framework/framework.go | 7 +++++++ .../tester/tests/drng_test.go | 21 ++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/tools/integration-tests/tester/framework/framework.go b/tools/integration-tests/tester/framework/framework.go index 3d104fd5..32c7da0d 100644 --- a/tools/integration-tests/tester/framework/framework.go +++ b/tools/integration-tests/tester/framework/framework.go @@ -153,5 +153,12 @@ func (f *Framework) CreateDRNGNetwork(name string, members, peers int) (*DRNGNet } } + // wait until peers are fully started and connected + time.Sleep(1 * time.Second) + err = drng.network.WaitForAutopeering(3) + if err != nil { + return nil, err + } + return drng, nil } diff --git a/tools/integration-tests/tester/tests/drng_test.go b/tools/integration-tests/tester/tests/drng_test.go index 63de5b46..fff44925 100644 --- a/tools/integration-tests/tester/tests/drng_test.go +++ b/tools/integration-tests/tester/tests/drng_test.go @@ -1,6 +1,7 @@ package tests import ( + "encoding/hex" "log" "testing" "time" @@ -17,22 +18,28 @@ func TestDRNG(t *testing.T) { // wait for randomness generation to be started log.Printf("Waiting for randomness generation to be started...\n") - time.Sleep(70 * time.Second) + time.Sleep(100 * time.Second) peers := len(drng.Peers()) + randomnessMap := make(map[string]int) // check for randomness on every peer for i := 0; i < 3; i++ { - randomness := make([][]byte, peers) - for j, peer := range drng.Peers() { + for _, peer := range drng.Peers() { resp, err := peer.GetRandomness() require.NoError(t, err) log.Println(resp) - randomness[j] = resp.Randomness - } - for i := 1; i < peers; i++ { - require.Equal(t, randomness[0], randomness[i]) + randomnessMap[hex.EncodeToString(resp.Randomness)]++ } + // wait for the next randomness time.Sleep(10 * time.Second) } + + // check that we got at least 3 different random values + require.GreaterOrEqual(t, len(randomnessMap), 3) + + // check that each random values has been received by all the peers. + for _, v := range randomnessMap { + require.GreaterOrEqual(t, v, peers) + } } -- GitLab