diff --git a/fuse/ipns/ipns_test.go b/fuse/ipns/ipns_test.go new file mode 100644 index 0000000000000000000000000000000000000000..4e8d5f439046534daee969b0d17b632c9049cb64 --- /dev/null +++ b/fuse/ipns/ipns_test.go @@ -0,0 +1,62 @@ +package ipns + +import ( + "crypto/rand" + "os" + "testing" + + fstest "github.com/jbenet/go-ipfs/Godeps/_workspace/src/bazil.org/fuse/fs/fstestutil" +) + +func randBytes(size int) []byte { + b := make([]byte, size) + rand.Read(b) + return b +} + +func TestIpnsBasicIO(t *testing.T) { + fs, err := NewIpns(nil, "") + if err != nil { + t.Fatal(err) + } + mnt, err := fstest.MountedT(t, fs) + if err != nil { + t.Fatal(err) + } + + data := randBytes(12345) + fi, err := os.Create(mnt.Dir + "/local/testfile") + if err != nil { + t.Fatal(err) + } + + n, err := fi.Write(data) + if err != nil { + t.Fatal(err) + } + + if n != len(data) { + t.Fatal("Didnt write proper amount!") + } + + fi.Close() + + //TODO: maybe wait for the publish to happen? or not, should test both cases + + fi, err = os.Open(mnt.Dir + "/local/testfile") + if err != nil { + t.Fatal(err) + } + + rbuf := make([]byte, len(data)) + n, err = fi.Read(rbuf) + if err != nil { + t.Fatal(err) + } + + if n != len(rbuf) { + t.Fatal("Failed to read correct amount!") + } + + fi.Close() +}