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 {