pass_chan_int32_roundtrip.go raw
1 package main
2
3 import "moxie"
4
5 // Phase B Test 1: builtin codec round-trip.
6 // Parent sends int32 values on send-channel; child receives, adds 1,
7 // sends back on a return channel; parent asserts each result.
8
9 func echoInc(in chan moxie.Int32, out chan moxie.Int32) {
10 for i := int32(0); i < 4; i++ {
11 v := <-in
12 out <- moxie.Int32(int32(v) + 1)
13 }
14 }
15
16 func main() {
17 in := make(chan moxie.Int32)
18 out := make(chan moxie.Int32)
19 spawn(echoInc, in, out)
20
21 for i := int32(0); i < 4; i++ {
22 in <- moxie.Int32(i * 10)
23 got := <-out
24 want := i*10 + 1
25 if int32(got) != want {
26 println("FAIL:int32-roundtrip", i, int32(got), want)
27 return
28 }
29 }
30 println("PASS:int32-roundtrip")
31 }
32