diff --git a/tools/integration-tests/tester/framework/framework.go b/tools/integration-tests/tester/framework/framework.go index 3d104fd5e16f82727b022cffa1edd83d1a0274ef..32c7da0d93634871a28444ab76cde5b5e9b5290f 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 63de5b4666e10b0c3d98b22a92c5c495086fee22..fff44925cb22d66313e0d71827947472e2828be6 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) + } }