• 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
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...