github.com/chrislusf/greenpack@v3.7.1-0.20170911073826-ad5bd10b7c47+incompatible/testdata/omitclue_test.go (about) 1 package testdata 2 3 import ( 4 "bytes" 5 "testing" 6 7 cv "github.com/glycerine/goconvey/convey" 8 "github.com/glycerine/greenpack/msgp" 9 ) 10 11 func Test011OmitClueWorks(t *testing.T) { 12 13 cv.Convey("greenpack -omit-clue leaves off the trailing type and version information from the fieldnames", t, func() { 14 15 v := OmitClueTestStruct{ 16 S: "hello", 17 N: -19, 18 } 19 bts, err := v.MarshalMsg(nil) 20 if err != nil { 21 t.Fatal(err) 22 } 23 24 found0 := bytes.Contains(bts, []byte("S_zid00_str")) 25 found1 := bytes.Contains(bts, []byte("N_zid01_i64")) 26 //fmt.Printf("\n bts = '%x'/'%s'\n", bts, string(bts)) 27 28 cv.So(found0, cv.ShouldBeFalse) 29 cv.So(found1, cv.ShouldBeFalse) 30 31 // verify unmarshal works 32 var v2 OmitClueTestStruct 33 _, err = v2.UnmarshalMsg(bts) 34 if err != nil { 35 t.Fatal(err) 36 } 37 cv.So(v2.N, cv.ShouldEqual, v.N) 38 cv.So(v2.S, cv.ShouldEqual, v.S) 39 40 // verify decode works 41 var v3 OmitClueTestStruct 42 err = msgp.Decode(bytes.NewBuffer(bts), &v3) 43 if err != nil { 44 t.Fatal(err) 45 } 46 47 cv.So(v3.N, cv.ShouldEqual, v.N) 48 cv.So(v3.S, cv.ShouldEqual, v.S) 49 50 // verify encode works the same as Marshal 51 var b4 bytes.Buffer 52 err = msgp.Encode(&b4, v) 53 if err != nil { 54 t.Fatal(err) 55 } 56 cv.So(string(b4.Bytes()), cv.ShouldResemble, string(bts)) 57 }) 58 }