block_processor_test.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package core
  2. import (
  3. "fmt"
  4. "math/big"
  5. "testing"
  6. "github.com/ethereum/go-ethereum/common"
  7. "github.com/ethereum/go-ethereum/core/state"
  8. "github.com/ethereum/go-ethereum/core/types"
  9. "github.com/ethereum/go-ethereum/ethdb"
  10. "github.com/ethereum/go-ethereum/event"
  11. "github.com/ethereum/go-ethereum/pow/ezp"
  12. )
  13. func proc() (*BlockProcessor, *ChainManager) {
  14. db, _ := ethdb.NewMemDatabase()
  15. var mux event.TypeMux
  16. genesis := GenesisBlock(0, db)
  17. chainMan, err := NewChainManager(genesis, db, db, thePow(), &mux)
  18. if err != nil {
  19. fmt.Println(err)
  20. }
  21. return NewBlockProcessor(db, db, ezp.New(), chainMan, &mux), chainMan
  22. }
  23. func TestNumber(t *testing.T) {
  24. pow := ezp.New()
  25. bp, chain := proc()
  26. header := makeHeader(chain.Genesis(), 0, bp.db, 0)
  27. header.Number = big.NewInt(3)
  28. err := ValidateHeader(pow, header, chain.Genesis().Header(), false)
  29. if err != BlockNumberErr {
  30. t.Errorf("expected block number error, got %q", err)
  31. }
  32. header = makeHeader(chain.Genesis(), 0, bp.db, 0)
  33. err = ValidateHeader(pow, header, chain.Genesis().Header(), false)
  34. if err == BlockNumberErr {
  35. t.Errorf("didn't expect block number error")
  36. }
  37. }
  38. func TestPutReceipt(t *testing.T) {
  39. db, _ := ethdb.NewMemDatabase()
  40. var addr common.Address
  41. addr[0] = 1
  42. var hash common.Hash
  43. hash[0] = 2
  44. receipt := new(types.Receipt)
  45. receipt.SetLogs(state.Logs{&state.Log{
  46. Address: addr,
  47. Topics: []common.Hash{hash},
  48. Data: []byte("hi"),
  49. Number: 42,
  50. TxHash: hash,
  51. TxIndex: 0,
  52. BlockHash: hash,
  53. Index: 0,
  54. }})
  55. putReceipts(db, hash, types.Receipts{receipt})
  56. receipts, err := getBlockReceipts(db, hash)
  57. if err != nil {
  58. t.Error("got err:", err)
  59. }
  60. if len(receipts) != 1 {
  61. t.Error("expected to get 1 receipt, got", len(receipts))
  62. }
  63. }