bencode/decode_test.go | 14 ++++++++++++++ diff --git a/bencode/decode_test.go b/bencode/decode_test.go index d519b8a6a0bdc24edf2bc77ab66938c7ad708f47..1db0c7e4c85a5cbcc51ad75a7d2400b9515b5900 100644 --- a/bencode/decode_test.go +++ b/bencode/decode_test.go @@ -70,6 +70,20 @@ err = d.Decode(&i) require.Equal(t, io.EOF, err) } +func TestDecoderConsecutiveDicts(t *testing.T) { + bb := bytes.NewBufferString("d4:herp4:derped3:wat1:ke17:oh baby a triple!") + d := NewDecoder(bb) + var m map[string]interface{} + require.NoError(t, d.Decode(&m)) + assert.Len(t, m, 1) + assert.Equal(t, "derp", m["herp"]) + require.NoError(t, d.Decode(&m)) + assert.Equal(t, "k", m["wat"]) + var s string + require.NoError(t, d.Decode(&s)) + assert.Equal(t, "oh baby a triple!", s) +} + func check_error(t *testing.T, err error) { if err != nil { t.Error(err)