diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index cd08c1e7c9f756728e30525aea4b0a67c0d0f6b0..e2d2185afacfaa7f99517ee36d36344b6447dada 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -20,9 +20,9 @@ jobs: - name: Pull additional Docker images run: | docker pull angelocapossele/drand:latest - docker pull gaiaadm/pumba:latest + docker pull gaiaadm/pumba:0.7.2 docker pull gaiadocker/iproute2:latest - + - name: Run integration tests run: docker-compose -f tools/integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build @@ -55,7 +55,41 @@ jobs: - name: Pull additional Docker images run: | docker pull angelocapossele/drand:latest - docker pull gaiaadm/pumba:latest + docker pull gaiaadm/pumba:0.7.2 + docker pull gaiadocker/iproute2:latest + + - name: Run integration tests + run: docker-compose -f tools/integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build + + - name: Create logs from tester + if: always() + run: | + docker logs tester &> tools/integration-tests/logs/tester.log + + - name: Save logs as artifacts + if: always() + uses: actions/upload-artifact@v1 + with: + name: ${{ env.TEST_NAME }} + path: tools/integration-tests/logs + + consensus: + name: consensus + env: + TEST_NAME: consensus + runs-on: ubuntu-latest + steps: + + - name: Check out code + uses: actions/checkout@v2 + + - name: Build GoShimmer image + run: docker build -t iotaledger/goshimmer . + + - name: Pull additional Docker images + run: | + docker pull angelocapossele/drand:latest + docker pull gaiaadm/pumba:0.7.2 docker pull gaiadocker/iproute2:latest - name: Run integration tests @@ -90,7 +124,7 @@ jobs: - name: Pull additional Docker images run: | docker pull angelocapossele/drand:latest - docker pull gaiaadm/pumba:latest + docker pull gaiaadm/pumba:0.7.2 docker pull gaiadocker/iproute2:latest - name: Run integration tests @@ -126,7 +160,7 @@ jobs: - name: Pull additional Docker images run: | docker pull angelocapossele/drand:latest - docker pull gaiaadm/pumba:latest + docker pull gaiaadm/pumba:0.7.2 docker pull gaiadocker/iproute2:latest - name: Run integration tests @@ -161,7 +195,7 @@ jobs: - name: Pull additional Docker images run: | docker pull angelocapossele/drand:latest - docker pull gaiaadm/pumba:latest + docker pull gaiaadm/pumba:0.7.2 docker pull gaiadocker/iproute2:latest - name: Run integration tests diff --git a/dapps/valuetransfers/dapp.go b/dapps/valuetransfers/dapp.go index 45d8ad1a7acfbd57dc4814cdd4126ccdb565cef9..ac216f5bc60de58f3813575eeb7d70e2c09cb90d 100644 --- a/dapps/valuetransfers/dapp.go +++ b/dapps/valuetransfers/dapp.go @@ -5,6 +5,8 @@ import ( "sync" "time" + flag "github.com/spf13/pflag" + "github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/consensus" "github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/payload" valuepayload "github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/payload" diff --git a/dapps/valuetransfers/packages/tangle/tangle.go b/dapps/valuetransfers/packages/tangle/tangle.go index cdd0c16c6206af4b113d4874b5634ae4a966be7e..c04b0974ecc1b3419518007906291a066ad73641 100644 --- a/dapps/valuetransfers/packages/tangle/tangle.go +++ b/dapps/valuetransfers/packages/tangle/tangle.go @@ -234,7 +234,7 @@ func (tangle *Tangle) Fork(transactionID transaction.ID, conflictingInputs []tra } // trigger events + set result - tangle.Events.Fork.Trigger(cachedTransaction, cachedTransactionMetadata) + tangle.Events.Fork.Trigger(cachedTransaction, cachedTransactionMetadata, cachedTargetBranch, conflictingInputs) forked = true return @@ -1907,4 +1907,4 @@ func (stackEntry *valuePayloadPropagationStackEntry) Unwrap() (payload *payload. transactionMetadata = stackEntry.CachedTransactionMetadata.Unwrap() return -} \ No newline at end of file +} diff --git a/dapps/valuetransfers/packages/tangle/tangle_test.go b/dapps/valuetransfers/packages/tangle/tangle_test.go index 598a25c473cb68698f061a2cc90bb2e2018c2f56..8f5c8d26c46ebfd34206e925cfae33883a725ad9 100644 --- a/dapps/valuetransfers/packages/tangle/tangle_test.go +++ b/dapps/valuetransfers/packages/tangle/tangle_test.go @@ -1518,4 +1518,4 @@ func createDummyTransaction() *transaction.Transaction { }, }), ) -} \ No newline at end of file +} diff --git a/tools/integration-tests/tester/go.mod b/tools/integration-tests/tester/go.mod index fb23805656004ff35923f67605f823ac705c6c07..bc7188a199c720fd820117d96e5db574229a1034 100644 --- a/tools/integration-tests/tester/go.mod +++ b/tools/integration-tests/tester/go.mod @@ -12,6 +12,7 @@ require ( github.com/iotaledger/goshimmer v0.1.3 github.com/iotaledger/hive.go v0.0.0-20200610104211-d603429af242 github.com/mr-tron/base58 v1.1.3 + github.com/opencontainers/go-digest v1.0.0 // indirect github.com/stretchr/testify v1.6.1 ) diff --git a/tools/integration-tests/tester/go.sum b/tools/integration-tests/tester/go.sum index 8d1d03b6fd96ca2ba969cd7d6285a4dbb9ad53d1..e26c830f613da1b5962bb4d20b1935439bcad74b 100644 --- a/tools/integration-tests/tester/go.sum +++ b/tools/integration-tests/tester/go.sum @@ -121,6 +121,7 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= diff --git a/tools/integration-tests/tester/tests/consensus/consensus_conflicts_test.go b/tools/integration-tests/tester/tests/consensus/consensus_conflicts_test.go index e0ebf25abb19b226d1fee692ad7dd4d30e8c2dff..46fbc4cacde20637fd9ef384912a6dd7fd0d115c 100644 --- a/tools/integration-tests/tester/tests/consensus/consensus_conflicts_test.go +++ b/tools/integration-tests/tester/tests/consensus/consensus_conflicts_test.go @@ -1,11 +1,12 @@ package consensus import ( - "github.com/iotaledger/goshimmer/tools/integration-tests/tester/framework" "log" "testing" "time" + "github.com/iotaledger/goshimmer/tools/integration-tests/tester/framework" + "github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/address" "github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/address/signaturescheme" "github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/balance" @@ -24,9 +25,17 @@ import ( func TestConsensusFiftyFiftyOpinionSplit(t *testing.T) { // override avg. network delay to accustom integration test slowness + backupFCoBAvgNetworkDelay := framework.ParaFCoBAverageNetworkDelay + backupBootstrapOnEveryNode := framework.ParaBootstrapOnEveryNode framework.ParaFCoBAverageNetworkDelay = 90 framework.ParaBootstrapOnEveryNode = true + // reset framework paras + defer func() { + framework.ParaFCoBAverageNetworkDelay = backupFCoBAvgNetworkDelay + framework.ParaBootstrapOnEveryNode = backupBootstrapOnEveryNode + }() + // create two partitions with their own peers n, err := f.CreateNetworkWithPartitions("abc", 6, 2, 2) require.NoError(t, err) @@ -156,6 +165,7 @@ func TestConsensusFiftyFiftyOpinionSplit(t *testing.T) { }) // wait until the voting has finalized + log.Println("waiting for voting/transaction finalization to be done on all peers...") awaitFinalization := map[string]tests.ExpectedInclusionState{} for _, conflictingTx := range conflictingTxs { awaitFinalization[conflictingTx.ID().String()] = tests.ExpectedInclusionState{