@cryptotaxi247 / kubo / commits / ce1f8da04

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))