blob: 03f0bd5dd080905e57a9bfaf4588d0794b5cc088 [file] [log] [blame] [edit]
// Copyright 2025 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build unix
package scan_test
import (
"internal/runtime/gc"
"syscall"
"testing"
"unsafe"
)
func makeMem(t testing.TB, nPages int) ([]uintptr, func()) {
mem, err := syscall.Mmap(-1, 0, int(gc.PageSize*nPages), syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_PRIVATE|syscall.MAP_ANON)
if err != nil {
t.Fatalf("mmap failed: %s", err)
}
free := func() {
syscall.Munmap(mem)
}
return unsafe.Slice((*uintptr)(unsafe.Pointer(unsafe.SliceData(mem))), len(mem)/8), free
}