mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-12-04 19:19:04 +08:00
59 lines
1.7 KiB
Go
59 lines
1.7 KiB
Go
|
package operation
|
||
|
|
||
|
import (
|
||
|
proto "code.google.com/p/goprotobuf/proto"
|
||
|
"encoding/json"
|
||
|
"log"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestSerialDeserial(t *testing.T) {
|
||
|
volumeMessage := &VolumeInformationMessage{
|
||
|
Id: proto.Uint32(12),
|
||
|
Size: proto.Uint64(2341234),
|
||
|
Collection: proto.String("benchmark"),
|
||
|
FileCount: proto.Uint64(2341234),
|
||
|
DeleteCount: proto.Uint64(234),
|
||
|
DeletedByteCount: proto.Uint64(21234),
|
||
|
ReadOnly: proto.Bool(false),
|
||
|
ReplicaPlacement: proto.Uint32(210),
|
||
|
Version: proto.Uint32(2),
|
||
|
}
|
||
|
var volumeMessages []*VolumeInformationMessage
|
||
|
volumeMessages = append(volumeMessages, volumeMessage)
|
||
|
|
||
|
joinMessage := &JoinMessage{
|
||
|
IsInit: proto.Bool(true),
|
||
|
Ip: proto.String("127.0.3.12"),
|
||
|
Port: proto.Uint32(34546),
|
||
|
PublicUrl: proto.String("localhost:2342"),
|
||
|
MaxVolumeCount: proto.Uint32(210),
|
||
|
MaxFileKey: proto.Uint64(324234423),
|
||
|
DataCenter: proto.String("dc1"),
|
||
|
Rack: proto.String("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)
|
||
|
}
|
||
|
}
|