Source file test/fixedbugs/issue24419.go

     1  // run
     2  
     3  // Copyright 2018 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  package main
     8  
     9  import (
    10  	"bytes"
    11  	"strings"
    12  )
    13  
    14  func growstack(n int) {
    15  	if n > 0 {
    16  		growstack(n - 1)
    17  	}
    18  }
    19  
    20  func main() {
    21  	c := make(chan struct{})
    22  	go compare(c)
    23  	go equal(c)
    24  	go indexByte(c)
    25  	go indexByteString(c)
    26  	<-c
    27  	<-c
    28  	<-c
    29  	<-c
    30  }
    31  
    32  func compare(c chan struct{}) {
    33  	defer bytes.Compare(nil, nil)
    34  	growstack(10000)
    35  	c <- struct{}{}
    36  }
    37  func equal(c chan struct{}) {
    38  	defer bytes.Equal(nil, nil)
    39  	growstack(10000)
    40  	c <- struct{}{}
    41  }
    42  func indexByte(c chan struct{}) {
    43  	defer bytes.IndexByte(nil, 0)
    44  	growstack(10000)
    45  	c <- struct{}{}
    46  }
    47  func indexByteString(c chan struct{}) {
    48  	defer strings.IndexByte("", 0)
    49  	growstack(10000)
    50  	c <- struct{}{}
    51  }
    52  

View as plain text