File: buffer_test.go

package info (click to toggle)
golang-github-cilium-ebpf 0.17.3%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 4,684 kB
  • sloc: ansic: 1,259; makefile: 127; python: 113; awk: 29; sh: 24
file content (28 lines) | stat: -rw-r--r-- 681 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package sysenc_test

import (
	"testing"
	"unsafe"

	"github.com/go-quicktest/qt"

	"github.com/cilium/ebpf/internal/sys"
	"github.com/cilium/ebpf/internal/sysenc"
)

func TestZeroBuffer(t *testing.T) {
	var zero sysenc.Buffer

	qt.Assert(t, qt.Equals(zero.CopyTo(make([]byte, 1)), 0))
	qt.Assert(t, qt.Equals(zero.Pointer(), sys.Pointer{}))
	qt.Assert(t, qt.IsNotNil(zero.Unmarshal(new(uint16))))
}

func TestUnsafeBuffer(t *testing.T) {
	ptr := unsafe.Pointer(new(uint16))
	buf := sysenc.UnsafeBuffer(ptr)

	qt.Assert(t, qt.Equals(buf.CopyTo(make([]byte, 1)), 0))
	qt.Assert(t, qt.Equals(buf.Pointer(), sys.NewPointer(ptr)))
	qt.Assert(t, qt.IsNil(buf.Unmarshal(new(uint16))))
}