• Håvard Haugen's avatar
    testing/quick: probabilistically generate nil pointers · 7089ea4e
    Håvard Haugen authored
    The documentation for quick.Value says that it "returns an arbitrary
    value of the given type." In spite of this, nil values for pointers were
    never generated, which seems more like an oversight than an intentional
    choice.
    
    The lack of nil values meant that testing recursive type like
    
      type Node struct {
      	Next *Node
      }
    
    with testing/quick would lead to a stack overflow since the data
    structure would never terminate.
    
    This change may break tests that don't check for nil with pointers
    returned from quick.Value. Two such instances were found in the standard
    library, one of which was in the testing/quick package itself.
    
    Fixes #8818.
    
    Change-Id: Id390dcce649d12fbbaa801ce6f58f5defed77e60
    Reviewed-on: https://go-review.googlesource.com/10821Reviewed-by: 's avatarAdam Langley <agl@golang.org>
    Run-TryBot: Adam Langley <agl@golang.org>
    7089ea4e
quick.go 9.54 KB