Commit 83976e3a authored by Rob Pike's avatar Rob Pike

test: explanatory comments [c-g]*

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5656103
parent c3ef1980
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test variadic functions and calls (dot-dot-dot).
package main package main
func sum(args ...int) int { func sum(args ...int) int {
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Verify that illegal uses of ... are detected.
// Does not compile.
package main package main
import "unsafe" import "unsafe"
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// This file is compiled and then imported by ddd3.go.
package ddd package ddd
func Sum(args ...int) int { func Sum(args ...int) int {
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test that variadic functions work across package boundaries.
package main package main
import "./ddd2" import "./ddd2"
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Correct short declarations and redeclarations. // Test correct short declarations and redeclarations.
package main package main
......
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Incorrect short declarations and redeclarations. // Test that incorrect short declarations and redeclarations are detected.
// Does not compile.
package main package main
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test defer.
package main package main
import "fmt" import "fmt"
......
...@@ -4,11 +4,14 @@ ...@@ -4,11 +4,14 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test that we can defer the predeclared functions print and println.
package main package main
func main() { func main() {
defer println(42, true, false, true, 1.5, "world", (chan int)(nil), []int(nil), (map[string]int)(nil), (func())(nil), byte(255)) defer println(42, true, false, true, 1.5, "world", (chan int)(nil), []int(nil), (map[string]int)(nil), (func())(nil), byte(255))
defer println(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) defer println(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
// defer panic("dead") // Disabled so the test doesn't crash but left here for reference.
// defer panic("dead")
defer print("printing: ") defer print("printing: ")
} }
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// divide corner cases // Test divide corner cases.
package main package main
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test that top-level parenthesized declarations can be empty.
// Compiles but does not run.
package P package P
import ( ) import ( )
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test that the Go environment variables are present and accessible through
// package os and package runtime.
package main package main
import ( import (
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test a source file does not need a final newline.
// Compiles but does not run.
// No newline at the end of this file. // No newline at the end of this file.
package main package main
\ No newline at end of file
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test that a comment ending a source file does not need a final newline.
// Compiles but does not run.
package eof1 package eof1
// No newline at the end of this comment. // No newline at the end of this comment.
\ No newline at end of file
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
package main package main
// check for correct heap-moving of escaped variables. // Test for correct heap-moving of escaped variables.
// it is hard to check for the allocations, but it is easy // It is hard to check for the allocations, but it is easy
// to check that if you call the function twice at the // to check that if you call the function twice at the
// same stack level, the pointers returned should be // same stack level, the pointers returned should be
// different. // different.
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test, using compiler diagnostic flags, that the escape analysis is working.
// Compiles but does not run.
package foo package foo
import ( import (
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test run-time behavior of escape analysis-related optimizations. // Test the run-time behavior of escape analysis-related optimizations.
package main package main
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test floating-point literal syntax.
package main package main
var bad bool var bad bool
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test floating-point comparison involving NaN.
package main package main
import "math" import "math"
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test for loops.
package main package main
func assertequal(is, shouldbe int, msg string) { func assertequal(is, shouldbe int, msg string) {
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test simple functions.
package main package main
......
...@@ -4,11 +4,12 @@ ...@@ -4,11 +4,12 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// does not compile and should not compile // Test that result parameters are in the same scope as regular parameters.
// Does not compile.
package main package main
func f1(a int) (int, float32) { // BUG (not caught by compiler): multiple return values must have names func f1(a int) (int, float32) {
return 7, 7.0 return 7, 7.0
} }
......
// $G $F.go || echo BUG: should compile // compile
// Copyright 2009 The Go Authors. All rights reserved. // Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test function signatures.
// Compiled but not run.
package main package main
type t1 int type t1 int
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Verify that illegal function signatures are detected.
// Does not compile.
package main package main
type t1 int type t1 int
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Verify that it is illegal to take the address of a function.
// Does not compile.
package main package main
var notmain func() var notmain func()
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test functions and goroutines.
package main package main
func caller(f func(int, int) int, a, b int, c chan int) { func caller(f func(int, int) int, a, b int, c chan int) {
......
// compile // run
// Copyright 2011 The Go Authors. All rights reserved. // Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test closures in if conditions.
package main package main
func main() { func main() {
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test evaluation order in if condition.
package main package main
var calledf = false var calledf = false
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test evaluation order.
package main package main
var calledf int var calledf int
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Simple test of the garbage collector.
package main package main
import "runtime" import "runtime"
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// A simple test of the garbage collector.
package main package main
func main() { func main() {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Check that buffered channels are garbage collected properly. // Test that buffered channels are garbage collected properly.
// An interesting case because they have finalizers and used to // An interesting case because they have finalizers and used to
// have self loops that kept them from being collected. // have self loops that kept them from being collected.
// (Cyclic data with finalizers is never finalized, nor collected.) // (Cyclic data with finalizers is never finalized, nor collected.)
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Test that println can be the target of a go statement.
package main package main
import "time" import "time"
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Verify goto semantics.
// Does not compile.
//
// Each test is in a separate function just so that if the // Each test is in a separate function just so that if the
// compiler stops processing after one error, we don't // compiler stops processing after one error, we don't
// lose other ones. // lose other ones.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment