Beispiel #1
0
func RoundTripTest(t *testing.T, codec mc.Codec, o1, o2 interface{}) bool {
	m1, err := mc.Marshal(codec, o1)
	if err != nil {
		t.Error(err)
		return false
	}

	if err := mc.Unmarshal(codec, m1, o2); err != nil {
		t.Log(m1)
		t.Error(err)
		return false
	}

	m2, err := mc.Marshal(codec, o2)
	if err != nil {
		t.Error(err)
		return false
	}

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

	return true
}
Beispiel #2
0
func HeaderTest(t *testing.T, codec mc.Multicodec, o interface{}) bool {
	h := codec.Header()
	if len(h) < 4 {
		t.Error("header should be >4 bytes (varint, /, _, \\n):", h)
		return false
	}

	if h[1] != byte('/') || h[len(h)-1] != byte('\n') {
		t.Error("malformed header (no / or \\n)")
		return false
	}

	m1, err := mc.Marshal(codec, o)
	if err != nil {
		t.Error(err)
		return false
	}

	if !bytes.HasPrefix(m1, h) {
		t.Error("marshalled data does not have multicodec header")
		return false
	}

	return true
}