Commit e753023c authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 2c80ac82
...@@ -259,20 +259,16 @@ func TestPktMarshal(t *testing.T) { ...@@ -259,20 +259,16 @@ func TestPktMarshal(t *testing.T) {
} }
} }
// XXX for _all_ packet types: // For all packet types: same as testPktMarshal but zero-values only
// zero-value -> encodedlen -> [encodedlen]byte -> decode (= ok) + check for overflow // this way we additionally lightly check encode / decode overflow behaviour for all types.
// zero-value.encode([<encodedlen]byte) -> panic
//
// same as testPktMarshal but zero-values of _all_ packet types
// (additional light checks for encode / decode overflow behaviour on all types)
func TestPktMarshalAllOverflowLightly(t *testing.T) { func TestPktMarshalAllOverflowLightly(t *testing.T) {
for _, typ := range pktTypeRegistry { for _, typ := range pktTypeRegistry {
// zero-value for a type // zero-value for a type
pkt := reflect.New(typ).Interface().(NEOCodec) pkt := reflect.New(typ).Interface().(NEOCodec)
l := pkt.NEOEncodedLen() l := pkt.NEOEncodedLen()
zerol := make([]byte, l) zerol := make([]byte, l)
// this will turn nil slice & map into empty. // decoding will turn nil slice & map into empty allocated ones.
// we need it so that reflect.DeepEqual works for pkt encode/decode comparision // we need it so that reflect.DeepEqual works for pkt encode/decode comparison
n, err := pkt.NEODecode(zerol) n, err := pkt.NEODecode(zerol)
if !(n == l && err == nil) { if !(n == l && err == nil) {
t.Errorf("%v: zero-decode unexpected: %v, %v ; want %v, nil", typ, n, err, l) t.Errorf("%v: zero-decode unexpected: %v, %v ; want %v, nil", typ, n, err, l)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment