mirror of
https://github.com/taigrr/gopher-os
synced 2025-01-18 04:43:13 -08:00
Summary of changes: - kernel/mem renamed to kernel/mm - consolidated page/frame defs into one file which now lives in the kernel/mm package and is referenced by both pmm and vmm pkgs - consolidated parts of the vmm code (e.g. PDT+PTE) - memcopy/memset helpers moved to the kernel package - physical allocators moved to the kernel/mm/pmm package - break vmm -> pmm pkg dependency by moving AllocFrame() into the mm package.
30 lines
629 B
Go
30 lines
629 B
Go
package vmm
|
|
|
|
import (
|
|
"runtime"
|
|
"testing"
|
|
)
|
|
|
|
func TestEarlyReserveAmd64(t *testing.T) {
|
|
if runtime.GOARCH != "amd64" {
|
|
t.Skip("test requires amd64 runtime; skipping")
|
|
}
|
|
|
|
defer func(origLastUsed uintptr) {
|
|
earlyReserveLastUsed = origLastUsed
|
|
}(earlyReserveLastUsed)
|
|
|
|
earlyReserveLastUsed = 4096
|
|
next, err := EarlyReserveRegion(42)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if exp := uintptr(0); next != exp {
|
|
t.Fatal("expected reservation request to be rounded to nearest page")
|
|
}
|
|
|
|
if _, err = EarlyReserveRegion(1); err != errEarlyReserveNoSpace {
|
|
t.Fatalf("expected to get errEarlyReserveNoSpace; got %v", err)
|
|
}
|
|
}
|