package ipns import ( "crypto/rand" "os" "testing" fstest "github.com/jbenet/go-ipfs/Godeps/_workspace/src/bazil.org/fuse/fs/fstestutil" testutil "github.com/jbenet/go-ipfs/util/testutil" ) func randBytes(size int) []byte { b := make([]byte, size) rand.Read(b) return b } func TestIpnsBasicIO(t *testing.T) { localnode, err := testutil.NewMockNode() if err != nil { t.Fatal(err) } fs, err := NewIpns(localnode, "") 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() }