@cryptotaxi247 / kubo / commits / 370285fcf

remove temp code in Coal test, and make Size not have to flush

Jeromy committed Mar 10, 2015 at 00:27 UTC 370285fcfa3b08be3d7c6ceb5a88401d5dbe8b23
2 files changed +15 -28
unixfs/mod/dagmodifier.go
+5 -5
@@ -137,15 +137,15 @@ func (dm *DagModifier) Write(b []byte) (int, error) {
137 }
138
139 func (dm *DagModifier) Size() (int64, error) {
140 - // TODO: compute size without flushing, should be easy
141 - err := dm.Flush()
140 + pbn, err := ft.FromBytes(dm.curNode.Data)
141 if err != nil {
142 return 0, err
143 }
144
146 - pbn, err := ft.FromBytes(dm.curNode.Data)
147 - if err != nil {
148 - return 0, err
145 + if dm.wrBuf != nil {
146 + if uint64(dm.wrBuf.Len())+dm.writeStart > pbn.GetFilesize() {
147 + return int64(dm.wrBuf.Len()) + int64(dm.writeStart), nil
148 + }
149 }
150
151 return int64(pbn.GetFilesize()), nil
unixfs/mod/dagmodifier_test.go
+10 -23
@@ -177,6 +177,15 @@ func TestMultiWrite(t *testing.T) {
177 if n != 1 {
178 t.Fatal("Somehow wrote the wrong number of bytes! (n != 1)")
179 }
180 +
181 + size, err := dagmod.Size()
182 + if err != nil {
183 + t.Fatal(err)
184 + }
185 +
186 + if size != int64(i+1) {
187 + t.Fatal("Size was reported incorrectly")
188 + }
189 }
190 nd, err := dagmod.GetNode()
191 if err != nil {
@@ -305,6 +314,7 @@ func TestMultiWriteCoal(t *testing.T) {
314 u.NewTimeSeededRand().Read(data)
315
316 for i := 0; i < len(data); i++ {
317 + log.Error(i)
318 n, err := dagmod.WriteAt(data[:i+1], 0)
319 if err != nil {
320 fmt.Println("FAIL AT ", i)
@@ -314,29 +324,6 @@ func TestMultiWriteCoal(t *testing.T) {
324 t.Fatal("Somehow wrote the wrong number of bytes! (n != 1)")
325 }
326
317 - // TEMP
318 - nn, err := dagmod.GetNode()
319 - if err != nil {
320 - t.Fatal(err)
321 - }
322 -
323 - r, err := uio.NewDagReader(ctx, nn, dserv)
324 - if err != nil {
325 - t.Fatal(err)
326 - }
327 -
328 - out, err := ioutil.ReadAll(r)
329 - if err != nil {
330 - t.Fatal(err)
331 - }
332 -
333 - if err := arrComp(out, data[:i+1]); err != nil {
334 - fmt.Println("A ", len(out))
335 - fmt.Println(out)
336 - fmt.Println(data[:i+1])
337 - t.Fatal(err)
338 - }
339 - //
327 }
328 nd, err := dagmod.GetNode()
329 if err != nil {