mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
trie: make spongedb nicer to work with
This commit is contained in:
parent
13cdb5eaf7
commit
61354dcb8e
1 changed files with 21 additions and 11 deletions
|
|
@ -787,6 +787,18 @@ type spongeDb struct {
|
|||
journal []string
|
||||
}
|
||||
|
||||
func (s *spongeDb) PrettyPrint(t *testing.T) {
|
||||
t.Helper()
|
||||
limit := 4
|
||||
for i := 0; i < len(s.journal); i++ {
|
||||
if i == limit && len(s.journal) > 2+limit {
|
||||
t.Logf("... omitting %d ops", len(s.journal)-3*limit)
|
||||
i += len(s.journal) - 2*limit
|
||||
}
|
||||
t.Logf("op %d: %v", i, s.journal[i])
|
||||
}
|
||||
|
||||
}
|
||||
func (s *spongeDb) Has(key []byte) (bool, error) { panic("implement me") }
|
||||
func (s *spongeDb) Get(key []byte) ([]byte, error) { return nil, errors.New("no such elem") }
|
||||
func (s *spongeDb) Delete(key []byte) error { panic("implement me") }
|
||||
|
|
@ -799,15 +811,17 @@ func (s *spongeDb) Close() error { return nil }
|
|||
func (s *spongeDb) Put(key []byte, value []byte) error {
|
||||
var (
|
||||
keybrief = key
|
||||
keybrief2 []byte
|
||||
valbrief = value
|
||||
)
|
||||
if len(keybrief) > 8 {
|
||||
keybrief = keybrief[:8]
|
||||
keybrief2 = key[len(key)-4:]
|
||||
}
|
||||
if len(valbrief) > 8 {
|
||||
valbrief = valbrief[:8]
|
||||
}
|
||||
s.journal = append(s.journal, fmt.Sprintf("%v: PUT([%x...], [%d bytes] %x...)\n", s.id, keybrief, len(value), valbrief))
|
||||
s.journal = append(s.journal, fmt.Sprintf("%v: PUT([%x...%x], [%d bytes] %x...)\n", s.id, keybrief, keybrief2, len(value), valbrief))
|
||||
s.sponge.Write(key)
|
||||
s.sponge.Write(value)
|
||||
return nil
|
||||
|
|
@ -946,14 +960,10 @@ func TestCommitSequenceStackTrie(t *testing.T) {
|
|||
}
|
||||
if got, exp := stackTrieSponge.sponge.Sum(nil), s.sponge.Sum(nil); !bytes.Equal(got, exp) {
|
||||
// Show the journal
|
||||
t.Logf("Expected:")
|
||||
for i, v := range s.journal {
|
||||
t.Logf("op %d: %v", i, v)
|
||||
}
|
||||
t.Logf("Stacktrie:")
|
||||
for i, v := range stackTrieSponge.journal {
|
||||
t.Logf("op %d: %v", i, v)
|
||||
}
|
||||
t.Logf("Want:")
|
||||
s.PrettyPrint(t)
|
||||
t.Logf("Have:")
|
||||
stackTrieSponge.PrettyPrint(t)
|
||||
t.Fatalf("test %d, disk write sequence wrong:\ngot %x exp %x\n", count, got, exp)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue