提交 370285fc 作者: Jeromy

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

上级 218cc018
...@@ -137,15 +137,15 @@ func (dm *DagModifier) Write(b []byte) (int, error) { ...@@ -137,15 +137,15 @@ func (dm *DagModifier) Write(b []byte) (int, error) {
} }
func (dm *DagModifier) Size() (int64, error) { func (dm *DagModifier) Size() (int64, error) {
// TODO: compute size without flushing, should be easy pbn, err := ft.FromBytes(dm.curNode.Data)
err := dm.Flush()
if err != nil { if err != nil {
return 0, err return 0, err
} }
pbn, err := ft.FromBytes(dm.curNode.Data) if dm.wrBuf != nil {
if err != nil { if uint64(dm.wrBuf.Len())+dm.writeStart > pbn.GetFilesize() {
return 0, err return int64(dm.wrBuf.Len()) + int64(dm.writeStart), nil
}
} }
return int64(pbn.GetFilesize()), nil return int64(pbn.GetFilesize()), nil
......
...@@ -177,6 +177,15 @@ func TestMultiWrite(t *testing.T) { ...@@ -177,6 +177,15 @@ func TestMultiWrite(t *testing.T) {
if n != 1 { if n != 1 {
t.Fatal("Somehow wrote the wrong number of bytes! (n != 1)") t.Fatal("Somehow wrote the wrong number of bytes! (n != 1)")
} }
size, err := dagmod.Size()
if err != nil {
t.Fatal(err)
}
if size != int64(i+1) {
t.Fatal("Size was reported incorrectly")
}
} }
nd, err := dagmod.GetNode() nd, err := dagmod.GetNode()
if err != nil { if err != nil {
...@@ -305,6 +314,7 @@ func TestMultiWriteCoal(t *testing.T) { ...@@ -305,6 +314,7 @@ func TestMultiWriteCoal(t *testing.T) {
u.NewTimeSeededRand().Read(data) u.NewTimeSeededRand().Read(data)
for i := 0; i < len(data); i++ { for i := 0; i < len(data); i++ {
log.Error(i)
n, err := dagmod.WriteAt(data[:i+1], 0) n, err := dagmod.WriteAt(data[:i+1], 0)
if err != nil { if err != nil {
fmt.Println("FAIL AT ", i) fmt.Println("FAIL AT ", i)
...@@ -314,29 +324,6 @@ func TestMultiWriteCoal(t *testing.T) { ...@@ -314,29 +324,6 @@ func TestMultiWriteCoal(t *testing.T) {
t.Fatal("Somehow wrote the wrong number of bytes! (n != 1)") t.Fatal("Somehow wrote the wrong number of bytes! (n != 1)")
} }
// TEMP
nn, err := dagmod.GetNode()
if err != nil {
t.Fatal(err)
}
r, err := uio.NewDagReader(ctx, nn, dserv)
if err != nil {
t.Fatal(err)
}
out, err := ioutil.ReadAll(r)
if err != nil {
t.Fatal(err)
}
if err := arrComp(out, data[:i+1]); err != nil {
fmt.Println("A ", len(out))
fmt.Println(out)
fmt.Println(data[:i+1])
t.Fatal(err)
}
//
} }
nd, err := dagmod.GetNode() nd, err := dagmod.GetNode()
if err != nil { if err != nil {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论