1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-26 15:42:21 +08:00

mfs: add test case for MFS repeated truncation failure

License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
This commit is contained in:
Lucas Molas
2018-07-11 12:36:10 -03:00
parent 65a18ed669
commit 508af1e12c

View File

@ -1136,3 +1136,43 @@ func TestTruncateAtSize(t *testing.T) {
} }
fd.Truncate(4) fd.Truncate(4)
} }
func TestTruncateAndWrite(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
ds, rt := setupRoot(ctx, t)
dir := rt.GetDirectory()
nd := dag.NodeWithData(ft.FilePBData(nil, 0))
fi, err := NewFile("test", nd, dir, ds)
if err != nil {
t.Fatal(err)
}
fd, err := fi.Open(OpenReadWrite, true)
defer fd.Close()
if err != nil {
t.Fatal(err)
}
for i := 0; i < 200; i++ {
err = fd.Truncate(0)
if err != nil {
t.Fatal(err)
}
l, err := fd.Write([]byte("test"))
if err != nil {
t.Fatal(err)
}
if l != len("test") {
t.Fatal("incorrect write length")
}
data, err := ioutil.ReadAll(fd)
if err != nil {
t.Fatal(err)
}
if string(data) != "test" {
t.Errorf("read error at read %d, read: %v", i, data)
}
}
}