mirror of
https://github.com/golang/go.git
synced 2025-05-29 03:11:26 +00:00
bytes: test for page boundary crosses on sep of Index
Improve TestIndexNearPageBoundary to verify needles ending on a page boundary don't cause a segfault. Change-Id: I2edb13db63a71dc9955e266f6b97026ee13bf76e Reviewed-on: https://go-review.googlesource.com/c/go/+/356889 Reviewed-by: Cherry Mui <cherryyz@google.com> Trust: Lynn Boger <laboger@linux.vnet.ibm.com>
This commit is contained in:
parent
62b29b0359
commit
4e7dd9fc08
@ -65,7 +65,11 @@ func TestIndexByteNearPageBoundary(t *testing.T) {
|
||||
|
||||
func TestIndexNearPageBoundary(t *testing.T) {
|
||||
t.Parallel()
|
||||
var q [64]byte
|
||||
q := dangerousSlice(t)
|
||||
if len(q) > 64 {
|
||||
// Only worry about when we're near the end of a page.
|
||||
q = q[len(q)-64:]
|
||||
}
|
||||
b := dangerousSlice(t)
|
||||
if len(b) > 256 {
|
||||
// Only worry about when we're near the end of a page.
|
||||
@ -81,4 +85,16 @@ func TestIndexNearPageBoundary(t *testing.T) {
|
||||
}
|
||||
q[j-1] = 0
|
||||
}
|
||||
|
||||
// Test differing alignments and sizes of q which always end on a page boundary.
|
||||
q[len(q)-1] = 1 // difference is only found on the last byte
|
||||
for j := 0; j < len(q); j++ {
|
||||
for i := range b {
|
||||
idx := Index(b[i:], q[j:])
|
||||
if idx != -1 {
|
||||
t.Fatalf("Index(b[%d:], q[%d:])=%d, want -1\n", i, j, idx)
|
||||
}
|
||||
}
|
||||
}
|
||||
q[len(q)-1] = 0
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user