X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;ds=sidebyside;f=netstring_test.go;fp=netstring_test.go;h=0000000000000000000000000000000000000000;hb=b8868fafef88a7b8320d6e68a3c4c4697950d1e1;hp=702e79df599c3d6fc35da24b8255cf939a8d1194;hpb=468e7a678129bddbbbda4b6b2c2b8a555fd47468;p=netstring.git diff --git a/netstring_test.go b/netstring_test.go deleted file mode 100644 index 702e79d..0000000 --- a/netstring_test.go +++ /dev/null @@ -1,139 +0,0 @@ -/* -netstring -- netstring format serialization library -Copyright (C) 2015-2020 Sergey Matveev - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, version 3 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -package netstring - -import ( - "bytes" - "testing" - "testing/quick" -) - -func TestTrivial(t *testing.T) { - buf := bytes.NewBuffer(nil) - w := NewWriter(buf) - if n, err := w.Write([]byte{}); err != nil || n != 3 || string(buf.Next(3)) != "0:," { - t.Fail() - } - if n, err := w.Write([]byte("foo")); err != nil || n != 6 { - t.Fail() - } - if n, err := w.Write([]byte("barz")); err != nil || n != 7 { - t.Fail() - } - if string(buf.Bytes()) != "3:foo,4:barz," { - t.Fail() - } - r := NewReader(buf) - if n, err := r.Iter(); err != nil || n != 3 { - t.Fail() - } - if r.Discard() != nil { - t.Fail() - } - if n, err := r.Iter(); err != nil || n != 4 { - t.Fail() - } - m := make([]byte, int(4)) - if r.Read(m) != nil { - t.Fail() - } - if bytes.Compare(m, []byte("barz")) != 0 { - t.Fail() - } -} - -func TestSymmetric(t *testing.T) { - buf := bytes.NewBuffer(nil) - w := NewWriter(buf) - r := NewReader(buf) - f := func(i uint8, data []byte) bool { - var n uint8 - for n = 0; n < i; n++ { - if _, err := w.Write(data); err != nil { - return false - } - } - for n = 0; n < i; n++ { - size, err := r.Iter() - if err != nil || int(size) != len(data) { - return false - } - read := make([]byte, size) - if r.Read(read) != nil { - return false - } - if bytes.Compare(read, data) != 0 { - return false - } - } - return true - } - if err := quick.Check(f, nil); err != nil { - t.Error(err) - } -} - -func TestErrors(t *testing.T) { - b := bytes.NewBufferString("junk") - r := NewReader(b) - if _, err := r.Iter(); err == nil { - t.FailNow() - } - - b = bytes.NewBufferString("1111111111111111111111:") - r = NewReader(b) - if _, err := r.Iter(); err == nil { - t.FailNow() - } - - b = bytes.NewBufferString("6foobar") - r = NewReader(b) - if _, err := r.Iter(); err == nil { - t.FailNow() - } - - data := make([]byte, 1<<10) - - b = bytes.NewBufferString("0:foobar,") - r = NewReader(b) - if _, err := r.Iter(); err != nil { - t.FailNow() - } - if r.Read(data) == nil { - t.FailNow() - } - - b = bytes.NewBufferString("0:foobar") - r = NewReader(b) - if _, err := r.Iter(); err != nil { - t.FailNow() - } - if r.Read(data) == nil { - t.FailNow() - } - - b = bytes.NewBufferString("6:foobar") - r = NewReader(b) - if _, err := r.Iter(); err != nil { - t.FailNow() - } - if r.Read(data) == nil { - t.FailNow() - } - -}