You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.5 KiB
59 lines
1.5 KiB
package weedpb
|
|
|
|
import (
|
|
"encoding/json"
|
|
"log"
|
|
"testing"
|
|
|
|
"github.com/golang/protobuf/proto"
|
|
)
|
|
|
|
func TestSerialDeserial(t *testing.T) {
|
|
volumeMessage := &VolumeInformationMessage{
|
|
Id: 12,
|
|
Size: 2341234,
|
|
Collection: "benchmark",
|
|
FileCount: 2341234,
|
|
DeleteCount: 234,
|
|
DeletedByteCount: 21234,
|
|
ReadOnly: false,
|
|
ReplicaPlacement: 210,
|
|
Version: 2,
|
|
}
|
|
var volumeMessages []*VolumeInformationMessage
|
|
volumeMessages = append(volumeMessages, volumeMessage)
|
|
|
|
joinMessage := &JoinMessage{
|
|
IsInit: true,
|
|
Ip: "127.0.3.12",
|
|
Port: 34546,
|
|
PublicUrl: "localhost:2342",
|
|
MaxVolumeCount: 210,
|
|
MaxFileKey: 324234423,
|
|
DataCenter: "dc1",
|
|
Rack: "rack2",
|
|
Volumes: volumeMessages,
|
|
}
|
|
|
|
data, err := proto.Marshal(joinMessage)
|
|
if err != nil {
|
|
log.Fatal("marshaling error: ", err)
|
|
}
|
|
newMessage := &JoinMessage{}
|
|
err = proto.Unmarshal(data, newMessage)
|
|
if err != nil {
|
|
log.Fatal("unmarshaling error: ", err)
|
|
}
|
|
log.Println("The pb data size is", len(data))
|
|
|
|
jsonData, jsonError := json.Marshal(joinMessage)
|
|
if jsonError != nil {
|
|
log.Fatal("json marshaling error: ", jsonError)
|
|
}
|
|
log.Println("The json data size is", len(jsonData), string(jsonData))
|
|
|
|
// Now test and newTest contain the same data.
|
|
if joinMessage.PublicUrl != newMessage.PublicUrl {
|
|
log.Fatalf("data mismatch %q != %q", joinMessage.PublicUrl, newMessage.PublicUrl)
|
|
}
|
|
}
|