]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: add mmap test
authorMikio Hara <mikioh.mikioh@gmail.com>
Tue, 25 Feb 2014 14:02:19 +0000 (23:02 +0900)
committerMikio Hara <mikioh.mikioh@gmail.com>
Tue, 25 Feb 2014 14:02:19 +0000 (23:02 +0900)
This CL adds a test that calls Mmap and Munmap through Syscall9
as the canary that detects assembly fragment breakage. For now
there is no package test that uses Syscall9 in the standard
library across all Unix-like systems.

Note that the package runtime owns its assembly fragments, so
this canary never works for runtime breakage.

LGTM=iant, bradfitz
R=iant, minux.ma, bradfitz
CC=golang-codereviews
https://golang.org/cl/61520049

src/pkg/syscall/syscall_unix_test.go

index 0292d3b37f437265f71584378aa40f6042f72641..acc355f0b2457fa2d68d91be82e140f1b6971454 100644 (file)
@@ -77,6 +77,16 @@ func TestFcntlFlock(t *testing.T) {
        }
 }
 
+func TestMmap(t *testing.T) {
+       b, err := syscall.Mmap(-1, 0, syscall.Getpagesize(), syscall.PROT_NONE, syscall.MAP_ANON|syscall.MAP_PRIVATE)
+       if err != nil {
+               t.Fatalf("Mmap: %v", err)
+       }
+       if err := syscall.Munmap(b); err != nil {
+               t.Fatalf("Munmap: %v", err)
+       }
+}
+
 // TestPassFD tests passing a file descriptor over a Unix socket.
 //
 // This test involved both a parent and child process. The parent