add another ipns test to simulate coalesced writes
Jeromy committed
Oct 18, 2014 at 12:07 UTC
ce1f8da04e5ab91dcb5a13163a1dc9d62c5ee7a0
1 file changed
+41
unixfs/io/dagmodifier_test.go
+41
@@ -187,6 +187,47 @@ func TestMultiWrite(t *testing.T) {
187
}
188
}
189
190
+func TestMultiWriteCoal(t *testing.T) {
191
+ dserv := getMockDagServ(t)
192
+ _, n := getNode(t, dserv, 0)
193
+
194
+ dagmod, err := NewDagModifier(n, dserv, &chunk.SizeSplitter{512})
195
+ if err != nil {
196
+ t.Fatal(err)
197
+ }
198
+
199
+ data := make([]byte, 4000)
200
+ u.NewFastRand().Read(data)
201
+
202
+ for i := 0; i < len(data); i++ {
203
+ n, err := dagmod.WriteAt(data[:i+1], 0)
204
+ if err != nil {
205
+ t.Fatal(err)
206
+ }
207
+ if n != i+1 {
208
+ t.Fatal("Somehow wrote the wrong number of bytes! (n != 1)")
209
+ }
210
+ }
211
+ nd, err := dagmod.GetNode()
212
+ if err != nil {
213
+ t.Fatal(err)
214
+ }
215
+
216
+ read, err := NewDagReader(nd, dserv)
217
+ if err != nil {
218
+ t.Fatal(err)
219
+ }
220
+ rbuf, err := ioutil.ReadAll(read)
221
+ if err != nil {
222
+ t.Fatal(err)
223
+ }
224
+
225
+ err = arrComp(rbuf, data)
226
+ if err != nil {
227
+ t.Fatal(err)
228
+ }
229
+}
230
+
231
func arrComp(a, b []byte) error {
232
if len(a) != len(b) {
233
return fmt.Errorf("Arrays differ in length. %d != %d", len(a), len(b))