1
2
3
4
5
6
7 package scan_test
8
9 import (
10 "internal/runtime/gc"
11 "syscall"
12 "testing"
13 "unsafe"
14 )
15
16 func makeMem(t testing.TB, nPages int) ([]uintptr, func()) {
17 mem, err := syscall.Mmap(-1, 0, int(gc.PageSize*nPages), syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_PRIVATE|syscall.MAP_ANON)
18 if err != nil {
19 t.Fatalf("mmap failed: %s", err)
20 }
21 free := func() {
22 syscall.Munmap(mem)
23 }
24 return unsafe.Slice((*uintptr)(unsafe.Pointer(unsafe.SliceData(mem))), len(mem)/8), free
25 }
26
View as plain text