Signed-off-by: Tom Wilkie <tom.wilkie@gmail.com>
| ... | ... |
@@ -2,6 +2,7 @@ package ioutils |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 | 4 |
"bytes" |
| 5 |
+ "encoding/binary" |
|
| 5 | 6 |
"fmt" |
| 6 | 7 |
"io" |
| 7 | 8 |
"io/ioutil" |
| ... | ... |
@@ -188,3 +189,23 @@ func TestMultiReadSeekerCurAfterSet(t *testing.T) {
|
| 188 | 188 |
t.Fatalf("reader size does not match, got %d, expected %d", size, mid+18)
|
| 189 | 189 |
} |
| 190 | 190 |
} |
| 191 |
+ |
|
| 192 |
+func TestMultiReadSeekerSmallReads(t *testing.T) {
|
|
| 193 |
+ readers := []io.ReadSeeker{}
|
|
| 194 |
+ for i := 0; i < 10; i++ {
|
|
| 195 |
+ integer := make([]byte, 4, 4) |
|
| 196 |
+ binary.BigEndian.PutUint32(integer, uint32(i)) |
|
| 197 |
+ readers = append(readers, bytes.NewReader(integer)) |
|
| 198 |
+ } |
|
| 199 |
+ |
|
| 200 |
+ reader := MultiReadSeeker(readers...) |
|
| 201 |
+ for i := 0; i < 10; i++ {
|
|
| 202 |
+ var integer uint32 |
|
| 203 |
+ if err := binary.Read(reader, binary.BigEndian, &integer); err != nil {
|
|
| 204 |
+ t.Fatalf("Read from NewMultiReadSeeker failed: %v", err)
|
|
| 205 |
+ } |
|
| 206 |
+ if uint32(i) != integer {
|
|
| 207 |
+ t.Fatalf("Read wrong value from NewMultiReadSeeker: %d != %d", i, integer)
|
|
| 208 |
+ } |
|
| 209 |
+ } |
|
| 210 |
+} |