blob: 18d773c2cfb9a21201ec3530bdeed8141719834d [file] [log] [blame]
Russ Coxa72f9f42013-02-02 23:17:25 -05001// run
2
3// Copyright 2013 The Go Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7package main
8
9import (
10 "fmt"
11 "os"
12 "testing"
13)
14
15var globl *int
16
17func G() {
18 F()
19}
20
21func F() {
22 var x int
23 globl = &x
24}
25
26func main() {
27 nf := testing.AllocsPerRun(100, F)
28 ng := testing.AllocsPerRun(100, G)
Dmitriy Vyukov1fa70292014-01-24 22:35:11 +040029 if int(nf) > 1 {
Russ Coxa72f9f42013-02-02 23:17:25 -050030 fmt.Printf("AllocsPerRun(100, F) = %v, want 1\n", nf)
31 os.Exit(1)
32 }
Dmitriy Vyukov1fa70292014-01-24 22:35:11 +040033 if int(ng) > 1 {
Russ Coxa72f9f42013-02-02 23:17:25 -050034 fmt.Printf("AllocsPerRun(100, G) = %v, want 1\n", ng)
35 os.Exit(1)
36 }
37}