MCPcopy Create free account
hub / github.com/CPChain/chain / TestLogReorgs

Function TestLogReorgs

core/blockchain_test.go:575–622  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

573}
574
575func 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
624func TestReorgSideEvent(t *testing.T) {
625 t.Skip("=== Diff TestReorgSideEvent")

Callers

nothing calls this directly

Calls 12

StopMethod · 0.95
InsertChainMethod · 0.95
NewBlockChainFunction · 0.85
fakeDporFunction · 0.85
GenerateChainFunction · 0.85
MustCommitMethod · 0.80
TxNonceMethod · 0.80
AddTxMethod · 0.80
SignTxMethod · 0.65
ErrorMethod · 0.65
FatalMethod · 0.65

Tested by

no test coverage detected