Commit 3fb5f329 authored by Rob Pike's avatar Rob Pike

test/chan: document tests

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5677094
parent 13514d4e
...@@ -4,8 +4,9 @@ ...@@ -4,8 +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.
// This test is designed to flush out the case where two cases of a select can // Test the situation in which two cases of a select can
// both end up running. See http://codereview.appspot.com/180068. // both end up running. See http://codereview.appspot.com/180068.
package main package main
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.
// Verify that unbuffered channels act as pure fifos. // Test that unbuffered channels act as pure fifos.
package main package main
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +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.
// make a lot of goroutines, threaded together. // Torture test for goroutines.
// tear them down cleanly. // Make a lot of goroutines, threaded together, and tear them down cleanly.
package main package main
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +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.
// Verify channel operations that test for blocking // Test channel operations that test for blocking.
// Use several sizes and types of operands // Use several sizes and types of operands.
package main package main
......
...@@ -4,6 +4,10 @@ ...@@ -4,6 +4,10 @@
// 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 various correct and incorrect permutations of send-only,
// receive-only, and bidirectional channels.
// Does not compile.
package main package main
var ( var (
......
...@@ -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 concurrency primitives: power series.
// Power series package // Power series package
// A power series is a channel, along which flow rational // A power series is a channel, along which flow rational
// coefficients. A denominator of zero signifies the end. // coefficients. A denominator of zero signifies the end.
......
...@@ -4,15 +4,18 @@ ...@@ -4,15 +4,18 @@
// 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 concurrency primitives: power series.
// Like powser1.go but uses channels of interfaces.
// Has not been cleaned up as much as powser1.go, to keep
// it distinct and therefore a different test.
// Power series package // Power series package
// A power series is a channel, along which flow rational // A power series is a channel, along which flow rational
// coefficients. A denominator of zero signifies the end. // coefficients. A denominator of zero signifies the end.
// Original code in Newsqueak by Doug McIlroy. // Original code in Newsqueak by Doug McIlroy.
// See Squinting at Power Series by Doug McIlroy, // See Squinting at Power Series by Doug McIlroy,
// http://www.cs.bell-labs.com/who/rsc/thread/squint.pdf // http://www.cs.bell-labs.com/who/rsc/thread/squint.pdf
// Like powser1.go but uses channels of interfaces.
// Has not been cleaned up as much as powser1.go, to keep
// it distinct and therefore a different test.
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 simple select.
package main package main
var counter uint var counter uint
......
...@@ -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 selects do not consume undue memory.
package main package main
import "runtime" import "runtime"
......
...@@ -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.
// Tests verifying the semantics of the select statement // Test the semantics of the select statement
// for basic empty/non-empty cases. // for basic empty/non-empty cases.
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 that a select statement proceeds when a value is ready.
package main package main
func f() *int { func f() *int {
......
...@@ -7,7 +7,10 @@ ...@@ -7,7 +7,10 @@
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Generate test of channel operations and simple selects. // Generate test of channel operations and simple selects.
// Only doing one real send or receive at a time, but phrased // The output of this program is compiled and run to do the
// actual test.
// Each test does only one real send or receive at a time, but phrased
// in various ways that the compiler may or may not rewrite // in various ways that the compiler may or may not rewrite
// into simpler expressions. // into simpler expressions.
......
...@@ -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.
// Issue 2075 // Test for select: Issue 2075
// A bug in select corrupts channel queues of failed cases // A bug in select corrupts channel queues of failed cases
// if there are multiple waiters on those channels and the // if there are multiple waiters on those channels and the
// select is the last in the queue. If further waits are made // select is the last in the queue. If further waits are made
......
...@@ -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 concurrency primitives: classical inefficient concurrent prime sieve.
// Generate primes up to 100 using channels, checking the results. // Generate primes up to 100 using channels, checking the results.
// This sieve consists of a linear chain of divisibility filters, // This sieve consists of a linear chain of divisibility filters,
// equivalent to trial-dividing each n by all primes p ≤ n. // equivalent to trial-dividing each n by all primes p ≤ n.
......
...@@ -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 concurrency primitives: prime sieve of Eratosthenes.
// Generate primes up to 100 using channels, checking the results. // Generate primes up to 100 using channels, checking the results.
// This sieve is Eratosthenesque and only considers odd candidates. // This sieve is Eratosthenesque and only considers odd candidates.
// See discussion at <http://blog.onideas.ws/eratosthenes.go>. // See discussion at <http://blog.onideas.ws/eratosthenes.go>.
......
...@@ -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.
// Making channels of a zero-sized type should not panic. // Test making channels of a zero-sized type.
package main package main
......
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