mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-12-23 00:27:55 +08:00
01d70c21f3
commit 32f4b1a13057d56b6de487cdb80ff7c205af01a6
Author: chrislu <chris.lu@gmail.com>
Date: Sun Aug 20 22:52:19 2023 -0700
fix compilation
commit e77ad33b7ca0423138fbae26a4433b60923a9588
Author: chrislu <chris.lu@gmail.com>
Date: Sun Aug 20 22:46:44 2023 -0700
pub
commit f431f30cc7ca277ca299e3cd118c05537fb9f5c3
Author: chrislu <chris.lu@gmail.com>
Date: Sun Aug 20 13:27:39 2023 -0700
fix generic type
commit 4e9dcb18293fd1e3e306e2dceb995dfd67a35e1d
Merge: 30f942580 16e3f2d52
Author: chrislu <chris.lu@gmail.com>
Date: Sun Aug 20 12:47:14 2023 -0700
Merge branch 'master' into pubsub
commit 30f942580ad1bb32ae94aade2e3a21ec3ab63e21
Author: chrislu <chris.lu@gmail.com>
Date: Sun Aug 20 11:10:58 2023 -0700
wip
commit f8b00980bc2f3879bb43decffd9a08d842f196f2
Author: chrislu <chris.lu@gmail.com>
Date: Tue Jul 25 09:14:35 2023 -0700
add design document
commit 08d2bebe42a26ebc39f1542f54d99e73620727dd
Author: chrislu <chris.lu@gmail.com>
Date: Tue Jul 25 09:14:06 2023 -0700
minor
commit bcfa7982b262a40fcdce6fc6613fad2ce07c13da
Author: chrislu <chris.lu@gmail.com>
Date: Tue Jul 25 09:13:49 2023 -0700
rename
61 lines
1.6 KiB
Go
61 lines
1.6 KiB
Go
package segment
|
|
|
|
import (
|
|
flatbuffers "github.com/google/flatbuffers/go"
|
|
"github.com/seaweedfs/seaweedfs/weed/pb/message_fbs"
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestMessageSerde(t *testing.T) {
|
|
b := flatbuffers.NewBuilder(1024)
|
|
|
|
prop := make(map[string][]byte)
|
|
prop["n1"] = []byte("v1")
|
|
prop["n2"] = []byte("v2")
|
|
|
|
bb := NewMessageBatchBuilder(b, 1, 2, 3, 4)
|
|
|
|
bb.AddMessage(5, 6, prop, []byte("the primary key"), []byte("body is here"))
|
|
bb.AddMessage(5, 7, prop, []byte("the primary 2"), []byte("body is 2"))
|
|
|
|
bb.BuildMessageBatch()
|
|
|
|
buf := bb.GetBytes()
|
|
|
|
println("serialized size", len(buf))
|
|
|
|
mb := message_fbs.GetRootAsMessageBatch(buf, 0)
|
|
|
|
assert.Equal(t, int32(1), mb.ProducerId())
|
|
assert.Equal(t, int32(2), mb.ProducerEpoch())
|
|
assert.Equal(t, int32(3), mb.SegmentId())
|
|
assert.Equal(t, int32(4), mb.Flags())
|
|
assert.Equal(t, int64(5), mb.SegmentSeqBase())
|
|
assert.Equal(t, int32(0), mb.SegmentSeqMaxDelta())
|
|
assert.Equal(t, int64(6), mb.TsMsBase())
|
|
assert.Equal(t, int32(1), mb.TsMsMaxDelta())
|
|
|
|
assert.Equal(t, 2, mb.MessagesLength())
|
|
|
|
m := &message_fbs.Message{}
|
|
mb.Messages(m, 0)
|
|
|
|
/*
|
|
// the vector seems not consistent
|
|
nv := &message_fbs.NameValue{}
|
|
m.Properties(nv, 0)
|
|
assert.Equal(t, "n1", string(nv.Name()))
|
|
assert.Equal(t, "v1", string(nv.Value()))
|
|
m.Properties(nv, 1)
|
|
assert.Equal(t, "n2", string(nv.Name()))
|
|
assert.Equal(t, "v2", string(nv.Value()))
|
|
*/
|
|
assert.Equal(t, []byte("the primary key"), m.Key())
|
|
assert.Equal(t, []byte("body is here"), m.Data())
|
|
|
|
assert.Equal(t, int32(0), m.SeqDelta())
|
|
assert.Equal(t, int32(0), m.TsMsDelta())
|
|
|
|
}
|