|
|
|
@ -5,6 +5,8 @@ import ( |
|
|
|
|
"math/big" |
|
|
|
|
"reflect" |
|
|
|
|
"testing" |
|
|
|
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/rlp" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func TestNonInterfaceSlice(t *testing.T) { |
|
|
|
@ -19,13 +21,16 @@ func TestNonInterfaceSlice(t *testing.T) { |
|
|
|
|
|
|
|
|
|
func TestRlpValueEncoding(t *testing.T) { |
|
|
|
|
val := EmptyValue() |
|
|
|
|
val.AppendList().Append(1).Append(2).Append(3) |
|
|
|
|
val.Append("4").AppendList().Append(5) |
|
|
|
|
val.AppendList().Append(byte(1)).Append(byte(2)).Append(byte(3)) |
|
|
|
|
val.Append("4").AppendList().Append(byte(5)) |
|
|
|
|
|
|
|
|
|
res := val.Encode() |
|
|
|
|
res, err := rlp.EncodeToBytes(val) |
|
|
|
|
if err != nil { |
|
|
|
|
t.Fatalf("encode error: %v", err) |
|
|
|
|
} |
|
|
|
|
exp := Encode([]interface{}{[]interface{}{1, 2, 3}, "4", []interface{}{5}}) |
|
|
|
|
if bytes.Compare(res, exp) != 0 { |
|
|
|
|
t.Errorf("expected %q, got %q", res, exp) |
|
|
|
|
t.Errorf("expected %x, got %x", exp, res) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -57,9 +62,7 @@ func TestValueSlice(t *testing.T) { |
|
|
|
|
func TestLargeData(t *testing.T) { |
|
|
|
|
data := make([]byte, 100000) |
|
|
|
|
enc := Encode(data) |
|
|
|
|
value := NewValue(enc) |
|
|
|
|
value.Decode() |
|
|
|
|
|
|
|
|
|
value := NewValueFromBytes(enc) |
|
|
|
|
if value.Len() != len(data) { |
|
|
|
|
t.Error("Expected data to be", len(data), "got", value.Len()) |
|
|
|
|
} |
|
|
|
@ -133,15 +136,16 @@ func TestEncodeDecodeBigInt(t *testing.T) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestEncodeDecodeBytes(t *testing.T) { |
|
|
|
|
b := NewValue([]interface{}{[]byte{1, 2, 3, 4, 5}, byte(6)}) |
|
|
|
|
val := NewValueFromBytes(b.Encode()) |
|
|
|
|
if !b.Cmp(val) { |
|
|
|
|
t.Errorf("Expected %v, got %v", val, b) |
|
|
|
|
bv := NewValue([]interface{}{[]byte{1, 2, 3, 4, 5}, []byte{6}}) |
|
|
|
|
b, _ := rlp.EncodeToBytes(bv) |
|
|
|
|
val := NewValueFromBytes(b) |
|
|
|
|
if !bv.Cmp(val) { |
|
|
|
|
t.Errorf("Expected %#v, got %#v", bv, val) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestEncodeZero(t *testing.T) { |
|
|
|
|
b := NewValue(0).Encode() |
|
|
|
|
b, _ := rlp.EncodeToBytes(NewValue(0)) |
|
|
|
|
exp := []byte{0xc0} |
|
|
|
|
if bytes.Compare(b, exp) == 0 { |
|
|
|
|
t.Error("Expected", exp, "got", b) |
|
|
|
|