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.
		
		
		
		
		
			
		
			
				
					
					
						
							53 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							53 lines
						
					
					
						
							1.1 KiB
						
					
					
				
								package filer
							 | 
						|
								
							 | 
						|
								import (
							 | 
						|
									"testing"
							 | 
						|
									"time"
							 | 
						|
								
							 | 
						|
									"github.com/seaweedfs/seaweedfs/weed/pb/filer_pb"
							 | 
						|
									"github.com/seaweedfs/seaweedfs/weed/util"
							 | 
						|
								
							 | 
						|
									"google.golang.org/protobuf/proto"
							 | 
						|
								)
							 | 
						|
								
							 | 
						|
								func TestProtoMarshal(t *testing.T) {
							 | 
						|
								
							 | 
						|
									oldEntry := &Entry{
							 | 
						|
										FullPath: util.FullPath("/this/path/to"),
							 | 
						|
										Attr: Attr{
							 | 
						|
											Mtime:  time.Now(),
							 | 
						|
											Mode:   0644,
							 | 
						|
											Uid:    1,
							 | 
						|
											Mime:   "text/json",
							 | 
						|
											TtlSec: 25,
							 | 
						|
										},
							 | 
						|
										Chunks: []*filer_pb.FileChunk{
							 | 
						|
											{
							 | 
						|
												FileId:       "234,2423423422",
							 | 
						|
												Offset:       234234,
							 | 
						|
												Size:         234,
							 | 
						|
												ModifiedTsNs: 12312423,
							 | 
						|
												ETag:         "2342342354",
							 | 
						|
												SourceFileId: "23234,2342342342",
							 | 
						|
											},
							 | 
						|
										},
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									notification := &filer_pb.EventNotification{
							 | 
						|
										OldEntry:     oldEntry.ToProtoEntry(),
							 | 
						|
										NewEntry:     nil,
							 | 
						|
										DeleteChunks: true,
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									text, _ := proto.Marshal(notification)
							 | 
						|
								
							 | 
						|
									notification2 := &filer_pb.EventNotification{}
							 | 
						|
									proto.Unmarshal(text, notification2)
							 | 
						|
								
							 | 
						|
									if notification2.OldEntry.GetChunks()[0].SourceFileId != notification.OldEntry.GetChunks()[0].SourceFileId {
							 | 
						|
										t.Fatalf("marshal/unmarshal error: %s", text)
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									println(string(text))
							 | 
						|
								
							 | 
						|
								}
							 |