/usr/share/gocode/src/golang.org/x/exp/mmap/manual_test_program.go is in golang-golang-x-exp-dev 0.0~git20150826.1.eb7c1fa-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | // Copyright 2015 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.
// +build ignore
//
// This build tag means that "go build" does not build this file. Use "go run
// manual_test_program.go" to run it.
//
// You will also need to change "debug = false" to "debug = true" in mmap_*.go.
package main
import (
"log"
"math/rand"
"time"
"golang.org/x/exp/mmap"
)
var garbage []byte
func main() {
const filename = "manual_test_program.go"
for _, explicitClose := range []bool{false, true} {
r, err := mmap.Open(filename)
if err != nil {
log.Fatalf("Open: %v", err)
}
if explicitClose {
r.Close()
} else {
// Leak the *mmap.ReaderAt returned by mmap.Open. The finalizer
// should pick it up, if finalizers run at all.
}
}
println("Finished all explicit Close calls.")
println("Creating and collecting garbage.")
println("Look for two munmap log messages.")
println("Hit Ctrl-C to exit.")
rng := rand.New(rand.NewSource(1))
now := time.Now()
for {
garbage = make([]byte, rng.Intn(1<<20))
if time.Since(now) > 1*time.Second {
now = time.Now()
print(".")
}
}
}
|