diff options
author | Rob Pike <r@golang.org> | 2008-07-15 20:52:07 -0700 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2008-07-15 20:52:07 -0700 |
commit | 33101926f9196bcf872ab5560543f30660d17e2d (patch) | |
tree | 79b8077b92aeb361c3e3fff67111ab50192a3d19 /test | |
parent | f550cd67e0de68cc5a4757e05ccaf1498565bec9 (diff) | |
download | go-git-33101926f9196bcf872ab5560543f30660d17e2d.tar.gz |
channel tests with new syntax
SVN=127436
Diffstat (limited to 'test')
-rw-r--r-- | test/chan/fifo.go | 18 | ||||
-rw-r--r-- | test/chan/sieve.go | 72 | ||||
-rw-r--r-- | test/sieve.go | 40 |
3 files changed, 65 insertions, 65 deletions
diff --git a/test/chan/fifo.go b/test/chan/fifo.go index 114e7d0876..6112b3cd6f 100644 --- a/test/chan/fifo.go +++ b/test/chan/fifo.go @@ -13,22 +13,22 @@ const N = 10 func AsynchFifo() { ch := new(chan int, N); for i := 0; i < N; i++ { - >ch = i + ch -< i } for i := 0; i < N; i++ { - if <ch != i { + if <-ch != i { print "bad receive\n"; sys.exit(1); } } } -func Chain(ch *chan< int, val int, in *chan< int, out *chan> int) { - BUG := <in; - if <ch != val { - panic val; +func Chain(ch *chan<- int, val int, in *chan<- int, out *chan-< int) { + <-in; + if <-ch != val { + panic val } - >out = 1; + out -< 1 } // thread together a daisy chain to read the elements in sequence @@ -41,9 +41,9 @@ func SynchFifo() { go Chain(ch, i, in, out); in = out; } - >start = 0; + start -< 0; for i := 0; i < N; i++ { - >ch = i + ch -< i } } diff --git a/test/chan/sieve.go b/test/chan/sieve.go index 8644247e76..c1cf690a26 100644 --- a/test/chan/sieve.go +++ b/test/chan/sieve.go @@ -10,30 +10,30 @@ package main // Send the sequence 2, 3, 4, ... to channel 'ch'. -func Generate(ch *chan> int) { - for i := 2; i<100; i++ { - >ch = i // Send 'i' to channel 'ch'. +func Generate(ch *chan-< int) { + for i := 2; ; i++ { + ch -< i // Send 'i' to channel 'ch'. } } // Copy the values from channel 'in' to channel 'out', // removing those divisible by 'prime'. -func Filter(in *chan< int, out *chan> int, prime int) { +func Filter(in *chan<- int, out *chan-< int, prime int) { for { - i := <in // Receive value of new variable 'i' from 'in'. + i := <-in // Receive value of new variable 'i' from 'in'. if i % prime != 0 { - >out = i // Send 'i' to channel 'out'. + out -< i // Send 'i' to channel 'out'. } } } // The prime sieve: Daisy-chain Filter processes together. -func Sieve(primes *chan> int) { - ch := new(chan int); // Create a new channel. - go Generate(ch); // Start Generate() as a subprocess. +func Sieve() { + ch := new(chan int); // Create a new channel. + go Generate(ch); // Start Generate() as a subprocess. for { - prime := <ch; - >primes = prime; + prime := <-ch; + print prime, "\n"; ch1 := new(chan int); go Filter(ch, ch1, prime); ch = ch1 @@ -43,30 +43,30 @@ func Sieve(primes *chan> int) { func main() { primes := new(chan int); go Sieve(primes); - if <primes != 2 { panic 2 } - if <primes != 3 { panic 3 } - if <primes != 5 { panic 5 } - if <primes != 7 { panic 7 } - if <primes != 11 { panic 11 } - if <primes != 13 { panic 13 } - if <primes != 17 { panic 17 } - if <primes != 19 { panic 19 } - if <primes != 23 { panic 23 } - if <primes != 29 { panic 29 } - if <primes != 31 { panic 31 } - if <primes != 37 { panic 37 } - if <primes != 41 { panic 41 } - if <primes != 43 { panic 43 } - if <primes != 47 { panic 47 } - if <primes != 53 { panic 53 } - if <primes != 59 { panic 59 } - if <primes != 61 { panic 61 } - if <primes != 67 { panic 67 } - if <primes != 71 { panic 71 } - if <primes != 73 { panic 73 } - if <primes != 79 { panic 79 } - if <primes != 83 { panic 83 } - if <primes != 89 { panic 89 } - if <primes != 97 { panic 97 } + if <-primes != 2 { panic 2 } + if <-primes != 3 { panic 3 } + if <-primes != 5 { panic 5 } + if <-primes != 7 { panic 7 } + if <-primes != 11 { panic 11 } + if <-primes != 13 { panic 13 } + if <-primes != 17 { panic 17 } + if <-primes != 19 { panic 19 } + if <-primes != 23 { panic 23 } + if <-primes != 29 { panic 29 } + if <-primes != 31 { panic 31 } + if <-primes != 37 { panic 37 } + if <-primes != 41 { panic 41 } + if <-primes != 43 { panic 43 } + if <-primes != 47 { panic 47 } + if <-primes != 53 { panic 53 } + if <-primes != 59 { panic 59 } + if <-primes != 61 { panic 61 } + if <-primes != 67 { panic 67 } + if <-primes != 71 { panic 71 } + if <-primes != 73 { panic 73 } + if <-primes != 79 { panic 79 } + if <-primes != 83 { panic 83 } + if <-primes != 89 { panic 89 } + if <-primes != 97 { panic 97 } sys.exit(0); } diff --git a/test/sieve.go b/test/sieve.go index 365252260c..c55477caf3 100644 --- a/test/sieve.go +++ b/test/sieve.go @@ -7,34 +7,34 @@ package main // Send the sequence 2, 3, 4, ... to channel 'ch'. -func Generate(ch *chan> int) { - for i := 2; ; i++ { - >ch = i // Send 'i' to channel 'ch'. - } +func Generate(ch *chan-< int) { + for i := 2; ; i++ { + ch -< i // Send 'i' to channel 'ch'. + } } // Copy the values from channel 'in' to channel 'out', // removing those divisible by 'prime'. -func Filter(in *chan< int, out *chan> int, prime int) { - for { - i := <in // Receive value of new variable 'i' from 'in'. - if i % prime != 0 { - >out = i // Send 'i' to channel 'out'. - } - } +func Filter(in *chan<- int, out *chan-< int, prime int) { + for { + i := <-in // Receive value of new variable 'i' from 'in'. + if i % prime != 0 { + out -< i // Send 'i' to channel 'out'. + } + } } // The prime sieve: Daisy-chain Filter processes together. func Sieve() { - ch := new(chan int); // Create a new channel. - go Generate(ch); // Start Generate() as a subprocess. - for { - prime := <ch; - print prime, "\n"; - ch1 := new(chan int); - go Filter(ch, ch1, prime); - ch = ch1 - } + ch := new(chan int); // Create a new channel. + go Generate(ch); // Start Generate() as a subprocess. + for { + prime := <-ch; + print prime, "\n"; + ch1 := new(chan int); + go Filter(ch, ch1, prime); + ch = ch1 + } } func main() { |