Add some more corner tests for ReaderContains
authorbep <bjorn.erik.pedersen@gmail.com>
Sun, 29 Mar 2015 23:22:08 +0000 (01:22 +0200)
committerbep <bjorn.erik.pedersen@gmail.com>
Sun, 29 Mar 2015 23:22:09 +0000 (01:22 +0200)
helpers/general.go
helpers/general_test.go

index baf957d75a20a6a88a98637f8195bc60f1ce9cc5..14cce5cf075391e62aec0fa2eb47dbc0aa37828e 100644 (file)
@@ -115,7 +115,7 @@ func BytesToReader(in []byte) io.Reader {
 // ReaderContains reports whether subslice is within r.
 func ReaderContains(r io.Reader, subslice []byte) bool {
 
-       if len(subslice) == 0 {
+       if r == nil || len(subslice) == 0 {
                return false
        }
 
index 496439db12d54ca69d6784ecbbca7d6c870d009d..26aba6701d7c595d1f1e237e076ce14a7d048b60 100644 (file)
@@ -86,7 +86,7 @@ var containsBenchTestData = []struct {
        {"abc", []byte("d"), false},
        {containsTestText, []byte("стремился"), true},
        {containsTestText, []byte(containsTestText[10:80]), true},
-       {containsTestText, []byte(containsTestText[100:110]), true},
+       {containsTestText, []byte(containsTestText[100:111]), true},
        {containsTestText, []byte(containsTestText[len(containsTestText)-100 : len(containsTestText)-10]), true},
        {containsTestText, []byte(containsTestText[len(containsTestText)-20:]), true},
        {containsTestText, []byte("notfound"), false},
@@ -98,6 +98,7 @@ var containsAdditionalTestData = []struct {
        v2     []byte
        expect bool
 }{
+       {"", nil, false},
        {"", []byte("a"), false},
        {"a", []byte(""), false},
        {"", []byte(""), false},
@@ -110,6 +111,9 @@ func TestReaderContains(t *testing.T) {
                        t.Errorf("[%d] Got %t but expected %t", i, result, this.expect)
                }
        }
+
+       assert.False(t, ReaderContains(nil, []byte("a")))
+       assert.False(t, ReaderContains(nil, nil))
 }
 
 func BenchmarkReaderContains(b *testing.B) {