mirror of https://github.com/poanetwork/gecko.git
updated tests
This commit is contained in:
parent
198accdea7
commit
232f962d4b
|
@ -77,7 +77,7 @@ func (s *prefixedState) SetDBInitialized(status choices.Status) error {
|
|||
// Funds returns the mapping from the 32 byte representation of an address to a
|
||||
// list of utxo IDs that reference the address.
|
||||
func (s *prefixedState) Funds(id ids.ID) ([]ids.ID, error) {
|
||||
return s.state.IDs(uniqueID(id, fundsID, s.funds))
|
||||
return s.state.IDs(id)
|
||||
}
|
||||
|
||||
// SpendUTXO consumes the provided utxo.
|
||||
|
|
|
@ -182,8 +182,11 @@ func TestPrefixedFundingAddresses(t *testing.T) {
|
|||
if err := state.SpendUTXO(utxo.InputID()); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, err = state.Funds(ids.NewID(hashing.ComputeHash256Array([]byte{0})))
|
||||
if err == nil {
|
||||
t.Fatalf("Should have returned no utxoIDs")
|
||||
funds, err = state.Funds(ids.NewID(hashing.ComputeHash256Array([]byte{0})))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(funds) != 0 {
|
||||
t.Fatalf("Should have returned 0 utxoIDs")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,9 +23,9 @@ func TestStateIDs(t *testing.T) {
|
|||
|
||||
state := vm.state.state
|
||||
|
||||
id0 := ids.NewID([32]byte{0xff, 0})
|
||||
id1 := ids.NewID([32]byte{0xff, 0})
|
||||
id2 := ids.NewID([32]byte{0xff, 0})
|
||||
id0 := ids.NewID([32]byte{0x00, 0})
|
||||
id1 := ids.NewID([32]byte{0x01, 0})
|
||||
id2 := ids.NewID([32]byte{0x02, 0})
|
||||
|
||||
if _, err := state.IDs(ids.Empty); err != nil {
|
||||
t.Fatal(err)
|
||||
|
@ -47,6 +47,7 @@ func TestStateIDs(t *testing.T) {
|
|||
t.Fatalf("Returned the wrong number of ids")
|
||||
}
|
||||
|
||||
ids.SortIDs(result)
|
||||
for i, resultID := range result {
|
||||
expectedID := expected[i]
|
||||
if !expectedID.Equals(resultID) {
|
||||
|
@ -54,6 +55,21 @@ func TestStateIDs(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
for _, id := range expected {
|
||||
if err := state.RemoveID(ids.Empty, id); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
result, err = state.IDs(ids.Empty)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if len(result) != 0 {
|
||||
t.Fatalf("Should have returned 0 IDs")
|
||||
}
|
||||
|
||||
expected = []ids.ID{id1, id2}
|
||||
for _, id := range expected {
|
||||
if err := state.AddID(ids.Empty, id); err != nil {
|
||||
|
@ -70,6 +86,7 @@ func TestStateIDs(t *testing.T) {
|
|||
t.Fatalf("Returned the wrong number of ids")
|
||||
}
|
||||
|
||||
ids.SortIDs(result)
|
||||
for i, resultID := range result {
|
||||
expectedID := expected[i]
|
||||
if !expectedID.Equals(resultID) {
|
||||
|
@ -88,6 +105,7 @@ func TestStateIDs(t *testing.T) {
|
|||
t.Fatalf("Returned the wrong number of ids")
|
||||
}
|
||||
|
||||
ids.SortIDs(result)
|
||||
for i, resultID := range result {
|
||||
expectedID := expected[i]
|
||||
if !expectedID.Equals(resultID) {
|
||||
|
@ -99,18 +117,6 @@ func TestStateIDs(t *testing.T) {
|
|||
t.Fatal(err)
|
||||
}
|
||||
|
||||
result, err = state.IDs(ids.Empty)
|
||||
if err == nil {
|
||||
t.Fatalf("Should have errored during cache lookup")
|
||||
}
|
||||
|
||||
state.Cache.Flush()
|
||||
|
||||
result, err = state.IDs(ids.Empty)
|
||||
if err == nil {
|
||||
t.Fatalf("Should have errored during parsing")
|
||||
}
|
||||
|
||||
statusResult, err := state.Status(ids.Empty)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
@ -119,12 +125,27 @@ func TestStateIDs(t *testing.T) {
|
|||
t.Fatalf("Should have returned the %s status", choices.Accepted)
|
||||
}
|
||||
|
||||
for _, id := range expected {
|
||||
if err := state.RemoveID(ids.Empty, id); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
result, err = state.IDs(ids.Empty)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if len(result) != 0 {
|
||||
t.Fatalf("Should have returned 0 IDs")
|
||||
}
|
||||
|
||||
if err := state.AddID(ids.Empty, ids.ID{}); err == nil {
|
||||
t.Fatalf("Should have errored during serialization")
|
||||
}
|
||||
|
||||
if _, err := state.IDs(ids.Empty); err == nil {
|
||||
t.Fatalf("Should have errored when reading ids")
|
||||
if err := state.RemoveID(ids.Empty, ids.ID{}); err == nil {
|
||||
t.Fatalf("Should have errored during serialization")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ func (s *chainState) UTXO(id ids.ID) (*UTXO, error) {
|
|||
// Funds returns the mapping from the 32 byte representation of an
|
||||
// address to a list of utxo IDs that reference the address.
|
||||
func (s *chainState) Funds(id ids.ID) ([]ids.ID, error) {
|
||||
return s.IDs(UniqueID(id, s.fundsIDPrefix, s.fundsID))
|
||||
return s.IDs(id)
|
||||
}
|
||||
|
||||
// SpendUTXO consumes the provided platform utxo.
|
||||
|
|
|
@ -16,6 +16,7 @@ import (
|
|||
|
||||
var (
|
||||
errCacheTypeMismatch = errors.New("type returned from cache doesn't match the expected type")
|
||||
errZeroID = errors.New("database key ID value not initialized")
|
||||
)
|
||||
|
||||
// UniqueID returns a unique identifier
|
||||
|
@ -134,12 +135,18 @@ func (s *State) IDs(id ids.ID) ([]ids.ID, error) {
|
|||
|
||||
// AddID saves an ID to the prefixed database
|
||||
func (s *State) AddID(id ids.ID, key ids.ID) error {
|
||||
if key.IsZero() {
|
||||
return errZeroID
|
||||
}
|
||||
db := prefixdb.New(id.Bytes(), s.DB)
|
||||
return db.Put(key.Bytes(), nil)
|
||||
}
|
||||
|
||||
// RemoveID removes an ID from the prefixed database
|
||||
func (s *State) RemoveID(id ids.ID, key ids.ID) error {
|
||||
if key.IsZero() {
|
||||
return errZeroID
|
||||
}
|
||||
db := prefixdb.New(id.Bytes(), s.DB)
|
||||
return db.Delete(key.Bytes())
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue