@cryptotaxi247 / kubo / commits / 38177b489

add another test to try and reproduce data loss issue

Jeromy committed Oct 8, 2014 at 22:38 UTC 38177b489d1139a4f7ad7d5694b58584f031d650
1 file changed +41
unixfs/io/dagmodifier_test.go
+41
@@ -146,6 +146,47 @@ func TestDagModifierBasic(t *testing.T) {
146 }
147 }
148
149 +func TestMultiWrite(t *testing.T) {
150 + dserv := getMockDagServ(t)
151 + _, n := getNode(t, dserv, 0)
152 +
153 + dagmod, err := NewDagModifier(n, dserv, &chunk.SizeSplitter{512})
154 + if err != nil {
155 + t.Fatal(err)
156 + }
157 +
158 + data := make([]byte, 4000)
159 + u.NewFastRand().Read(data)
160 +
161 + for i := 0; i < len(data); i++ {
162 + n, err := dagmod.WriteAt(data[i:i+1], uint64(i))
163 + if err != nil {
164 + t.Fatal(err)
165 + }
166 + if n != 1 {
167 + t.Fatal("Somehow wrote the wrong number of bytes! (n != 1)")
168 + }
169 + }
170 + nd, err := dagmod.GetNode()
171 + if err != nil {
172 + t.Fatal(err)
173 + }
174 +
175 + read, err := NewDagReader(nd, dserv)
176 + if err != nil {
177 + t.Fatal(err)
178 + }
179 + rbuf, err := ioutil.ReadAll(read)
180 + if err != nil {
181 + t.Fatal(err)
182 + }
183 +
184 + err = arrComp(rbuf, data)
185 + if err != nil {
186 + t.Fatal(err)
187 + }
188 +}
189 +
190 func arrComp(a, b []byte) error {
191 if len(a) != len(b) {
192 return fmt.Errorf("Arrays differ in length. %d != %d", len(a), len(b))