mirror of
https://github.com/golang/go
synced 2024-11-22 03:34:40 -07:00
test/chan: document tests
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/5677094
This commit is contained in:
parent
13514d4e0b
commit
3fb5f329b9
@ -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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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 @@
|
|||||||
// 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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user