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