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
+}