(t *testing.T)
| 23 | } |
| 24 | |
| 25 | func TestMakeCGoSlice(t *testing.T) { |
| 26 | n := MinOffheapSlice * 2 |
| 27 | SetMaxOffheapBytes(int64(n) * 2) |
| 28 | |
| 29 | s1 := MakeSlice(n) |
| 30 | _, ok1 := s1.(*cgoSlice) |
| 31 | assert.Must(ok1 && len(s1.Buffer()) == n) |
| 32 | defer FreeSlice(s1) |
| 33 | |
| 34 | s2 := MakeSlice(n) |
| 35 | _, ok2 := s2.(*cgoSlice) |
| 36 | assert.Must(ok2 && len(s2.Buffer()) == n) |
| 37 | defer FreeSlice(s2) |
| 38 | |
| 39 | assert.Must(OffheapBytes() == int64(n)*2) |
| 40 | |
| 41 | s3 := MakeSlice(n) |
| 42 | _, ok3 := s3.(*goSlice) |
| 43 | assert.Must(ok3 && len(s3.Buffer()) == n) |
| 44 | defer FreeSlice(s3) |
| 45 | |
| 46 | assert.Must(OffheapBytes() == int64(n)*2) |
| 47 | |
| 48 | FreeSlice(s2) |
| 49 | assert.Must(OffheapBytes() == int64(n)) |
| 50 | |
| 51 | s4 := MakeSlice(n) |
| 52 | _, ok4 := s4.(*cgoSlice) |
| 53 | assert.Must(ok4 && len(s4.Buffer()) == n) |
| 54 | defer FreeSlice(s4) |
| 55 | |
| 56 | assert.Must(OffheapBytes() == int64(n)*2) |
| 57 | |
| 58 | s5 := MakeOffheapSlice(n) |
| 59 | assert.Must(s5 != nil && len(s5.Buffer()) == n) |
| 60 | defer FreeSlice(s5) |
| 61 | |
| 62 | assert.Must(OffheapBytes() == int64(n)*3) |
| 63 | |
| 64 | c1 := s5.Slice2(0, 2) |
| 65 | c2 := c1.Slice3(0, 1, 2) |
| 66 | assert.Must(c1.Parent() == s5) |
| 67 | assert.Must(c2.Parent() == s5) |
| 68 | |
| 69 | c1.Buffer()[0] = 'a' |
| 70 | assert.Must(c2.Buffer()[0] == 'a') |
| 71 | |
| 72 | c1.Buffer()[0] = 'b' |
| 73 | assert.Must(c2.Buffer()[0] == 'b') |
| 74 | } |
nothing calls this directly
no test coverage detected