diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a594ecfa..7ebf7aa7f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,23 +22,23 @@ jobs: matrix: include: - name: A-B tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[a-b].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[a-b].*") - name: C-[a-m] tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[a-m].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[a-m].*") - name: C-[n-o] tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[n-o].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[n-o].*") - name: C-[p-z] tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[p-z].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[p-z].*") - name: D-I tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[d-i].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[d-i].*") - name: J-N tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[j-n].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[j-n].*") - name: O-R tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[o-r].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[o-r].*") - name: S tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/s.*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/s.*") - name: T-Z tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[t-z].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[t-z].*") steps: - name: Check out code uses: actions/checkout@v3 diff --git a/.github/workflows/pr_test.yml b/.github/workflows/pr_test.yml index 1e621b2d7..d9cd73842 100644 --- a/.github/workflows/pr_test.yml +++ b/.github/workflows/pr_test.yml @@ -3,6 +3,10 @@ on: pull_request: branches: - master + #TODO: remove push trigger + push: #temporary trigger tests this way + branches: + - '*' jobs: test_golang: @@ -19,23 +23,23 @@ jobs: matrix: include: - name: A-B tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[a-b].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[a-b].*") - name: C-[a-m] tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[a-m].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[a-m].*") - name: C-[n-o] tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[n-o].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[n-o].*") - name: C-[p-z] tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[p-z].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/c[p-z].*") - name: D-I tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[d-i].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[d-i].*") - name: J-N tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[j-n].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[j-n].*") - name: O-R tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[o-r].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[o-r].*") - name: S tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/s.*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/s.*") - name: T-Z tests - script: go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[t-z].*") + script: mv common/constants/constants.go.unittest common/constants.go; go run build/ci.go test -coverage $(go list ./... | grep "github.com/XinFinOrg/XDC-Subnet/[t-z].*") steps: - name: Check out code uses: actions/checkout@v3 diff --git a/common/constants.go b/common/constants.go index 7415978c0..6595032f0 100644 --- a/common/constants.go +++ b/common/constants.go @@ -36,18 +36,15 @@ var TIPV2SwitchBlock = big.NewInt(0) var TIPNoHalvingMNReward = big.NewInt(0) // hardfork no halving masternodes reward var BlackListHFNumber = uint64(0) +var TIPXDCX = big.NewInt(0) +var TIPXDCXLending = big.NewInt(0) +var TIPXDCXCancellationFee = big.NewInt(0) +var TIPXDCXCancellationFeeTestnet = big.NewInt(0) var TIPXDCXDISABLE = big.NewInt(0) -var TIPXDCX = big.NewInt(38383838) -var TIPXDCXLending = big.NewInt(38383838) -var TIPXDCXCancellationFee = big.NewInt(38383838) -var TIPXDCXCancellationFeeTestnet = big.NewInt(38383838) -var TIPXDCXMinerDisable = big.NewInt(88999999900) -var TIPXDCXReceiverDisable = big.NewInt(99999999999) -var BerlinBlock = big.NewInt(9999999999) -var LondonBlock = big.NewInt(9999999999) -var MergeBlock = big.NewInt(9999999999) -var ShanghaiBlock = big.NewInt(9999999999) -var Eip1559Block = big.NewInt(9999999999) +var BerlinBlock = big.NewInt(0) +var LondonBlock = big.NewInt(0) +var MergeBlock = big.NewInt(0) +var ShanghaiBlock = big.NewInt(0) var TIPXDCXTestnet = big.NewInt(0) var IsTestnet bool = false diff --git a/common/constants/constants.go.custom b/common/constants/constants.go.unittest similarity index 93% rename from common/constants/constants.go.custom rename to common/constants/constants.go.unittest index 6595032f0..7415978c0 100644 --- a/common/constants/constants.go.custom +++ b/common/constants/constants.go.unittest @@ -36,15 +36,18 @@ var TIPV2SwitchBlock = big.NewInt(0) var TIPNoHalvingMNReward = big.NewInt(0) // hardfork no halving masternodes reward var BlackListHFNumber = uint64(0) -var TIPXDCX = big.NewInt(0) -var TIPXDCXLending = big.NewInt(0) -var TIPXDCXCancellationFee = big.NewInt(0) -var TIPXDCXCancellationFeeTestnet = big.NewInt(0) var TIPXDCXDISABLE = big.NewInt(0) -var BerlinBlock = big.NewInt(0) -var LondonBlock = big.NewInt(0) -var MergeBlock = big.NewInt(0) -var ShanghaiBlock = big.NewInt(0) +var TIPXDCX = big.NewInt(38383838) +var TIPXDCXLending = big.NewInt(38383838) +var TIPXDCXCancellationFee = big.NewInt(38383838) +var TIPXDCXCancellationFeeTestnet = big.NewInt(38383838) +var TIPXDCXMinerDisable = big.NewInt(88999999900) +var TIPXDCXReceiverDisable = big.NewInt(99999999999) +var BerlinBlock = big.NewInt(9999999999) +var LondonBlock = big.NewInt(9999999999) +var MergeBlock = big.NewInt(9999999999) +var ShanghaiBlock = big.NewInt(9999999999) +var Eip1559Block = big.NewInt(9999999999) var TIPXDCXTestnet = big.NewInt(0) var IsTestnet bool = false diff --git a/consensus/XDPoS/api.go b/consensus/XDPoS/api.go index 2c85fbca4..5f1e72ba1 100644 --- a/consensus/XDPoS/api.go +++ b/consensus/XDPoS/api.go @@ -261,6 +261,7 @@ func (api *API) NetworkInformation() NetworkInformation { info.XDCValidatorAddress = common.HexToAddress(common.MasternodeVotingSMC) info.Denom = api.chain.Config().XDPoS.Denom info.NetworkName = api.chain.Config().XDPoS.NetworkName + info.ConsensusConfigs = *api.XDPoS.config return info } diff --git a/consensus/tests/api_test.go b/consensus/tests/api_test.go index 9d09d2544..9abc7c743 100644 --- a/consensus/tests/api_test.go +++ b/consensus/tests/api_test.go @@ -25,7 +25,6 @@ func TestConfigApi(t *testing.T) { engine := bc.GetBlockChain().Engine().(*XDPoS.XDPoS) info := engine.APIs(bc.GetBlockChain())[0].Service.(*XDPoS.API).NetworkInformation() - assert.Equal(t, info.NetworkId, big.NewInt(1337)) assert.Equal(t, info.ConsensusConfigs.V2.CurrentConfig.CertThreshold, 0.667) assert.Equal(t, info.ConsensusConfigs.V2.CurrentConfig.MinePeriod, 2) diff --git a/consensus/tests/engine_v2_tests/api_test.go b/consensus/tests/engine_v2_tests/api_test.go index 83c9a00cd..cab0ee131 100644 --- a/consensus/tests/engine_v2_tests/api_test.go +++ b/consensus/tests/engine_v2_tests/api_test.go @@ -11,18 +11,6 @@ import ( "github.com/stretchr/testify/assert" ) -func TestGetMissedRoundsInEpochByBlockNumOnlyForV2Consensus(t *testing.T) { - _, bc, _, _, _ := PrepareXDCTestBlockChainWith128Candidates(t, 1802, params.TestXDPoSMockChainConfig) - - engine := bc.GetBlockChain().Engine().(*XDPoS.XDPoS) - blockNum := rpc.BlockNumber(123) - - data, err := engine.APIs(bc.GetBlockChain())[0].Service.(*XDPoS.API).GetMissedRoundsInEpochByBlockNum(&blockNum) - - assert.EqualError(t, err, "Not supported in the v1 consensus") - assert.Nil(t, data) -} - func TestGetMissedRoundsInEpochByBlockNumReturnEmptyForV2(t *testing.T) { _, bc, cb, _, _ := PrepareXDCTestBlockChainWith128Candidates(t, 1802, params.TestXDPoSMockChainConfig) @@ -32,7 +20,7 @@ func TestGetMissedRoundsInEpochByBlockNumReturnEmptyForV2(t *testing.T) { data, err := engine.APIs(bc.GetBlockChain())[0].Service.(*XDPoS.API).GetMissedRoundsInEpochByBlockNum(&blockNum) assert.Nil(t, err) - assert.Equal(t, types.Round(900), data.EpochRound) + assert.Equal(t, types.Round(1800), data.EpochRound) assert.Equal(t, big.NewInt(1800), data.EpochBlockNumber) assert.Equal(t, 0, len(data.MissedRounds)) @@ -41,7 +29,7 @@ func TestGetMissedRoundsInEpochByBlockNumReturnEmptyForV2(t *testing.T) { data, err = engine.APIs(bc.GetBlockChain())[0].Service.(*XDPoS.API).GetMissedRoundsInEpochByBlockNum(&blockNum) assert.Nil(t, err) - assert.Equal(t, types.Round(900), data.EpochRound) + assert.Equal(t, types.Round(1800), data.EpochRound) assert.Equal(t, big.NewInt(1800), data.EpochBlockNumber) assert.Equal(t, 0, len(data.MissedRounds)) @@ -50,22 +38,22 @@ func TestGetMissedRoundsInEpochByBlockNumReturnEmptyForV2(t *testing.T) { data, err = engine.APIs(bc.GetBlockChain())[0].Service.(*XDPoS.API).GetMissedRoundsInEpochByBlockNum(&blockNum) assert.Nil(t, err) - assert.Equal(t, types.Round(900), data.EpochRound) + assert.Equal(t, types.Round(1800), data.EpochRound) assert.Equal(t, big.NewInt(1800), data.EpochBlockNumber) assert.Equal(t, 0, len(data.MissedRounds)) } func TestGetMissedRoundsInEpochByBlockNumReturnEmptyForV2FistEpoch(t *testing.T) { - _, bc, _, _, _ := PrepareXDCTestBlockChainWith128Candidates(t, 1802, params.TestXDPoSMockChainConfig) + _, bc, _, _, _ := PrepareXDCTestBlockChainWith128Candidates(t, 10, params.TestXDPoSMockChainConfig) engine := bc.GetBlockChain().Engine().(*XDPoS.XDPoS) - blockNum := rpc.BlockNumber(901) + blockNum := rpc.BlockNumber(2) data, err := engine.APIs(bc.GetBlockChain())[0].Service.(*XDPoS.API).GetMissedRoundsInEpochByBlockNum(&blockNum) assert.Nil(t, err) - assert.Equal(t, types.Round(1), data.EpochRound) - assert.Equal(t, big.NewInt(901), data.EpochBlockNumber) + assert.Equal(t, types.Round(0), data.EpochRound) + assert.Equal(t, big.NewInt(0), data.EpochBlockNumber) assert.Equal(t, 0, len(data.MissedRounds)) } @@ -77,8 +65,8 @@ func TestGetMissedRoundsInEpochByBlockNum(t *testing.T) { startingBlockNum := currentBlock.Number().Int64() + 1 // Skipped the round - roundNumber := startingBlockNum - chainConfig.XDPoS.V2.SwitchBlock.Int64() + 2 - block := CreateBlock(blockchain, chainConfig, currentBlock, int(startingBlockNum), roundNumber, blockCoinBase, signer, signFn, nil, nil, "b345a8560bd51926803dd17677c9f0751193914a851a4ec13063d6bf50220b53") + roundNumber := startingBlockNum + 2 + block := CreateBlock(blockchain, chainConfig, currentBlock, int(startingBlockNum), roundNumber, blockCoinBase, signer, signFn, nil, nil, "c2bf7b59be5184fc1148be5db14692b2dc89a1b345895d3e8d0ee7b8a7607450") err := blockchain.InsertBlock(block) if err != nil { t.Fatal(err) @@ -95,15 +83,15 @@ func TestGetMissedRoundsInEpochByBlockNum(t *testing.T) { data, err := engine.APIs(bc.GetBlockChain())[0].Service.(*XDPoS.API).GetMissedRoundsInEpochByBlockNum(&blockNum) assert.Nil(t, err) - assert.Equal(t, types.Round(900), data.EpochRound) + assert.Equal(t, types.Round(1800), data.EpochRound) assert.Equal(t, big.NewInt(1800), data.EpochBlockNumber) assert.Equal(t, 2, len(data.MissedRounds)) assert.NotEmpty(t, data.MissedRounds[0].Miner) - assert.Equal(t, data.MissedRounds[0].Round, types.Round(903)) + assert.Equal(t, data.MissedRounds[0].Round, types.Round(1803)) assert.Equal(t, data.MissedRounds[0].CurrentBlockNum, big.NewInt(1803)) assert.Equal(t, data.MissedRounds[0].ParentBlockNum, big.NewInt(1802)) assert.NotEmpty(t, data.MissedRounds[1].Miner) - assert.Equal(t, data.MissedRounds[1].Round, types.Round(904)) + assert.Equal(t, data.MissedRounds[1].Round, types.Round(1804)) assert.Equal(t, data.MissedRounds[0].CurrentBlockNum, big.NewInt(1803)) assert.Equal(t, data.MissedRounds[0].ParentBlockNum, big.NewInt(1802)) diff --git a/consensus/tests/engine_v2_tests/helper.go b/consensus/tests/engine_v2_tests/helper.go index ffaba166c..06f2038a0 100644 --- a/consensus/tests/engine_v2_tests/helper.go +++ b/consensus/tests/engine_v2_tests/helper.go @@ -565,7 +565,7 @@ func PrepareXDCTestBlockChainWith128Candidates(t *testing.T, numOfBlocks int, ch t.Fatal(err) } - //FROM XDPOS v1 block: prob don't need in subnet + //FROM XDPOS: find v2 switch block, don't need in subnet // First v2 block // if (int64(i) - chainConfig.XDPoS.V2.SwitchBlock.Int64()) == 1 { // lastv1BlockNumber := block.Header().Number.Uint64() - 1 diff --git a/consensus/tests/engine_v2_tests/verify_header_test.go b/consensus/tests/engine_v2_tests/verify_header_test.go index 8f83d2dcd..0d1135ba5 100644 --- a/consensus/tests/engine_v2_tests/verify_header_test.go +++ b/consensus/tests/engine_v2_tests/verify_header_test.go @@ -268,17 +268,17 @@ func TestConfigSwitchOnDifferentMasternodeCount(t *testing.T) { snap, err := x.GetSnapshot(blockchain, currentBlock.Header()) assert.Nil(t, err) - assert.Equal(t, len(snap.NextEpochMasterNodes), 20) + assert.Equal(t, len(snap.NextEpochMasterNodes), 5) header1800.Validators = []common.Address{} - for i := 0; i < 20; i++ { + for i := 0; i < len(snap.NextEpochMasterNodes); i++ { header1800.Validators = append(header1800.Validators, []common.Address{snap.NextEpochMasterNodes[i]}...) } round, err := x.GetRoundNumber(header1800) assert.Nil(t, err) - assert.Equal(t, round, types.Round(900)) + assert.Equal(t, round, types.Round(1800)) - adaptor.EngineV2.SetNewRoundFaker(blockchain, 899, false) + adaptor.EngineV2.SetNewRoundFaker(blockchain, 1799, false) err = adaptor.VerifyHeader(blockchain, header1800, true)