github.com/ccccaoqing/test@v0.0.0-20220510085219-3985d23445c0/test/chancap.go (about)

     1  // run
     2  
     3  // Copyright 2009 The Go Authors. All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  // Test the cap predeclared function applied to channels.
     8  
     9  package main
    10  
    11  func main() {
    12  	c := make(chan int, 10)
    13  	if len(c) != 0 || cap(c) != 10 {
    14  		println("chan len/cap ", len(c), cap(c), " want 0 10")
    15  		panic("fail")
    16  	}
    17  
    18  	for i := 0; i < 3; i++ {
    19  		c <- i
    20  	}
    21  	if len(c) != 3 || cap(c) != 10 {
    22  		println("chan len/cap ", len(c), cap(c), " want 3 10")
    23  		panic("fail")
    24  	}
    25  
    26  	c = make(chan int)
    27  	if len(c) != 0 || cap(c) != 0 {
    28  		println("chan len/cap ", len(c), cap(c), " want 0 0")
    29  		panic("fail")
    30  	}
    31  }