コード例 #1
0
ファイル: cbor.go プロジェクト: multiformats/go-multicodec
func (c *codec) Decoder(r io.Reader) mc.Decoder {
	return &decoder{
		r:   r,
		mc:  c.mc,
		dec: cbor.NewDecoder(r),
	}
}
コード例 #2
0
func RoundTripTest(t *testing.T, o1, o2 interface{}) bool {
	var buf1 bytes.Buffer
	var buf2 bytes.Buffer
	var buf3 bytes.Buffer
	enc1 := cbor.NewEncoder(&buf1)
	enc2 := cbor.NewEncoder(&buf2)
	dec := cbor.NewDecoder(&buf3)

	if err := enc1.Encode(o1); err != nil {
		t.Error(err)
		return false
	}

	m1 := buf1.Bytes()
	if _, err := buf3.Write(m1); err != nil {
		t.Error(err)
		return false
	}

	if err := dec.Decode(o2); err != nil {
		t.Error(err)
		return false
	}

	if err := enc2.Encode(o2); err != nil {
		t.Error(err)
		return false
	}

	m2 := buf2.Bytes()
	if !bytes.Equal(m1, m2) {
		t.Error("marshalled values not equal")
		t.Log(m1)
		t.Log(m2)
		t.Log(string(m1))
		t.Log(string(m2))
		return false
	}

	return true
}