(t *testing.T)
| 573 | } |
| 574 | |
| 575 | func TestLogReorgs(t *testing.T) { |
| 576 | t.Skip("=== Diff TestLogReorgs invalid memory address or nil pointer dereference") |
| 577 | // the signer is changed to cep1 |
| 578 | var ( |
| 579 | key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") |
| 580 | addr1 = crypto.PubkeyToAddress(key1.PublicKey) |
| 581 | db = database.NewMemDatabase() |
| 582 | remoteDB = database.NewIpfsDbWithAdapter(database.NewFakeIpfsAdapter()) |
| 583 | // this code generates a log |
| 584 | code = common.Hex2Bytes("60606040525b7f24ec1d3ff24c2f6ff210738839dbc339cd45a5294d85c79361016243157aae7b60405180905060405180910390a15b600a8060416000396000f360606040526008565b00") |
| 585 | gspec = &Genesis{Config: configs.TestChainConfig, Alloc: GenesisAlloc{addr1: {Balance: big.NewInt(10000000000000)}}} |
| 586 | genesis = gspec.MustCommit(db) |
| 587 | signer = types.NewCep1Signer(gspec.Config.ChainID) |
| 588 | ) |
| 589 | |
| 590 | blockchain, _ := NewBlockChain(db, nil, gspec.Config, fakeDpor(db), vm.Config{}, remoteDB, nil) |
| 591 | defer blockchain.Stop() |
| 592 | |
| 593 | rmLogsCh := make(chan RemovedLogsEvent) |
| 594 | blockchain.SubscribeRemovedLogsEvent(rmLogsCh) |
| 595 | chain, _ := GenerateChain(configs.TestChainConfig, genesis, fakeDpor(db), db, remoteDB, 2, func(i int, gen *BlockGen) { |
| 596 | if i == 1 { |
| 597 | tx, err := types.SignTx(types.NewContractCreation(gen.TxNonce(addr1), new(big.Int), 1000000, new(big.Int), code), signer, key1) |
| 598 | if err != nil { |
| 599 | t.Fatalf("failed to create tx: %v", err) |
| 600 | } |
| 601 | gen.AddTx(tx) |
| 602 | } |
| 603 | }) |
| 604 | if _, err := blockchain.InsertChain(chain); err != nil { |
| 605 | t.Fatalf("failed to insert chain: %v", err) |
| 606 | } |
| 607 | |
| 608 | chain, _ = GenerateChain(configs.TestChainConfig, genesis, fakeDpor(db), db, remoteDB, 3, func(i int, gen *BlockGen) {}) |
| 609 | if _, err := blockchain.InsertChain(chain); err != nil { |
| 610 | t.Fatalf("failed to insert forked chain: %v", err) |
| 611 | } |
| 612 | |
| 613 | timeout := time.NewTimer(1 * time.Second) |
| 614 | select { |
| 615 | case ev := <-rmLogsCh: |
| 616 | if len(ev.Logs) == 0 { |
| 617 | t.Error("expected logs") |
| 618 | } |
| 619 | case <-timeout.C: |
| 620 | t.Fatal("Timeout. There is no RemovedLogsEvent has been sent.") |
| 621 | } |
| 622 | } |
| 623 | |
| 624 | func TestReorgSideEvent(t *testing.T) { |
| 625 | t.Skip("=== Diff TestReorgSideEvent") |
nothing calls this directly
no test coverage detected