]> Cypherpunks repositories - gostls13.git/commitdiff
bug264: test case for issue 692
authorRobert Griesemer <gri@golang.org>
Thu, 25 Mar 2010 17:01:51 +0000 (10:01 -0700)
committerRobert Griesemer <gri@golang.org>
Thu, 25 Mar 2010 17:01:51 +0000 (10:01 -0700)
R=r
CC=golang-dev
https://golang.org/cl/715042

test/bugs/bug264.go [new file with mode: 0644]
test/golden.out

diff --git a/test/bugs/bug264.go b/test/bugs/bug264.go
new file mode 100644 (file)
index 0000000..110f42e
--- /dev/null
@@ -0,0 +1,49 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2010 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.
+
+// Test case for http://code.google.com/p/go/issues/detail?id=692
+
+package main
+
+import "fmt"
+
+var fooCount = 0
+var barCount = 0
+var balCount = 0
+
+func foo() (int, int) {
+       fooCount++
+       fmt.Println("foo")
+       return 0, 0
+}
+
+func bar() (int, int) {
+       barCount++
+       fmt.Println("bar")
+       return 0, 0
+}
+
+func bal() (int, int) {
+       balCount++
+       fmt.Println("bal")
+       return 0, 0
+}
+
+var a, b = foo() // foo is called once
+var c, _ = bar() // bar is called twice
+var _, _ = bal() // bal is called twice
+
+func main() {
+       if fooCount != 1 {
+               panic("BUG: fooCount != 1")
+       }
+       if barCount != 1 {
+               panic("BUG: barCount != 1")
+       }
+       if balCount != 1 {
+               panic("BUG: balCount != 1")
+       }
+}
index 036519de70968e86370bcf4890efc9a67c12d800..a370e06ba76793c8654050bfd48352a3f9bae0c8 100644 (file)
@@ -182,3 +182,12 @@ panic PC=xxx
 =========== bugs/bug260.go
 FAIL
 BUG: bug260 failed
+
+=========== bugs/bug264.go
+foo
+bar
+bar
+bal
+bal
+BUG: barCount != 1
+panic PC=xxx