Source file
test/fixedbugs/issue19201.go
1
2
3
4
5
6
7 package main
8
9 import (
10 "encoding/binary"
11 )
12
13 var (
14 ch1 = make(chan int)
15 ch2 = make(chan int)
16
17 bin = []byte("a\000\000\001")
18 want = binary.BigEndian.Uint32(bin)
19
20 c consumer = noopConsumer{}
21 )
22
23 type msg struct {
24 code uint32
25 }
26
27 type consumer interface {
28 consume(msg)
29 }
30
31 type noopConsumer struct{}
32
33 func (noopConsumer) consume(msg) {}
34
35 func init() {
36 close(ch1)
37 }
38
39 func main() {
40 var m msg
41 m.code = binary.BigEndian.Uint32(bin)
42
43 select {
44 case <-ch1:
45 c.consume(m)
46 if m.code != want {
47
48 panic("BigEndian read failed")
49 }
50 case <-ch2:
51 }
52 }
53
View as plain text