@cryptotaxi247 / kubo / commits / 0c7ff7b0a

add skeleton for ipns test, to be finished when there is a mock core.IpfsNode

Jeromy committed Oct 4, 2014 at 07:24 UTC 0c7ff7b0a820953f49c076651f7a8b02aaf11cfa
1 file changed +62
fuse/ipns/ipns_test.go new
+62
@@ -0,0 +1,62 @@
1 +package ipns
2 +
3 +import (
4 + "crypto/rand"
5 + "os"
6 + "testing"
7 +
8 + fstest "github.com/jbenet/go-ipfs/Godeps/_workspace/src/bazil.org/fuse/fs/fstestutil"
9 +)
10 +
11 +func randBytes(size int) []byte {
12 + b := make([]byte, size)
13 + rand.Read(b)
14 + return b
15 +}
16 +
17 +func TestIpnsBasicIO(t *testing.T) {
18 + fs, err := NewIpns(nil, "")
19 + if err != nil {
20 + t.Fatal(err)
21 + }
22 + mnt, err := fstest.MountedT(t, fs)
23 + if err != nil {
24 + t.Fatal(err)
25 + }
26 +
27 + data := randBytes(12345)
28 + fi, err := os.Create(mnt.Dir + "/local/testfile")
29 + if err != nil {
30 + t.Fatal(err)
31 + }
32 +
33 + n, err := fi.Write(data)
34 + if err != nil {
35 + t.Fatal(err)
36 + }
37 +
38 + if n != len(data) {
39 + t.Fatal("Didnt write proper amount!")
40 + }
41 +
42 + fi.Close()
43 +
44 + //TODO: maybe wait for the publish to happen? or not, should test both cases
45 +
46 + fi, err = os.Open(mnt.Dir + "/local/testfile")
47 + if err != nil {
48 + t.Fatal(err)
49 + }
50 +
51 + rbuf := make([]byte, len(data))
52 + n, err = fi.Read(rbuf)
53 + if err != nil {
54 + t.Fatal(err)
55 + }
56 +
57 + if n != len(rbuf) {
58 + t.Fatal("Failed to read correct amount!")
59 + }
60 +
61 + fi.Close()
62 +}