github.com/ethereum-optimism/optimism/l2geth@v0.0.0-20230612200230-50b04ade19e3/statedumper/dumper_test.go (about)

     1  package statedumper
     2  
     3  import (
     4  	"github.com/ethereum-optimism/optimism/l2geth/common"
     5  	"io"
     6  	"os"
     7  	"testing"
     8  )
     9  
    10  func TestFileStateDumper(t *testing.T) {
    11  	f, err := os.CreateTemp("", "")
    12  	if err != nil {
    13  		t.Fatalf("error creating file: %v", err)
    14  	}
    15  	err = os.Setenv("L2GETH_STATE_DUMP_PATH", f.Name())
    16  	if err != nil {
    17  		t.Fatalf("error setting env file: %v", err)
    18  	}
    19  	dumper := NewStateDumper()
    20  	addr := common.Address{19: 0x01}
    21  	dumper.WriteETH(addr)
    22  	dumper.WriteMessage(addr, []byte("hi"))
    23  	_, err = f.Seek(0, 0)
    24  	if err != nil {
    25  		t.Fatalf("error seeking: %v", err)
    26  	}
    27  	data, err := io.ReadAll(f)
    28  	if err != nil {
    29  		t.Fatalf("error reading: %v", err)
    30  	}
    31  	dataStr := string(data)
    32  	if dataStr != "ETH|0x0000000000000000000000000000000000000001\nMSG|0x0000000000000000000000000000000000000001|6869\n" {
    33  		t.Fatalf("invalid data. got: %s", dataStr)
    34  	}
    35  }