Add test for unixfs/format to reach 87% coverage.
License: MIT Signed-off-by: Zander Mackie <zmackie@gmail.com>
Zander Mackie committed
Dec 9, 2016 at 07:28 UTC
7b16a8daa86e28c497f53a65f7d15ad778e8701d
1 file changed
+123
-1
unixfs/format_test.go
+123
-1
@@ -1,6 +1,7 @@
1
package unixfs
2
3
import (
4
+ "bytes"
5
"testing"
6
7
proto "gx/ipfs/QmZ4Qi3GaRbjcx28Sme5eMH7RQjGkt8wHxt2a65oLaeFEV/gogo-protobuf/proto"
@@ -11,9 +12,10 @@ import (
12
func TestFSNode(t *testing.T) {
13
fsn := new(FSNode)
14
fsn.Type = TFile
14
- for i := 0; i < 15; i++ {
15
+ for i := 0; i < 16; i++ {
16
fsn.AddBlockSize(100)
17
}
18
+ fsn.RemoveBlockSize(15)
19
20
fsn.Data = make([]byte, 128)
21
@@ -32,8 +34,128 @@ func TestFSNode(t *testing.T) {
34
if err != nil {
35
t.Fatal(err)
36
}
37
+ nKids := fsn.NumChildren()
38
+ if nKids != 15 {
39
+ t.Fatal("Wrong number of child nodes")
40
+ }
41
42
if ds != (100*15)+128 {
43
t.Fatal("Datasize calculations incorrect!")
44
}
45
+
46
+ nfsn, err := FSNodeFromBytes(b)
47
+ if err != nil {
48
+ t.Fatal(err)
49
+ }
50
+
51
+ if nfsn.FileSize() != (100*15)+128 {
52
+ t.Fatal("fsNode FileSize calculations incorrect")
53
+ }
54
+}
55
+
56
+func TestPBdataTools(t *testing.T) {
57
+ raw := []byte{0x00, 0x01, 0x02, 0x17, 0xA1}
58
+ rawPB := WrapData(raw)
59
+
60
+ pbDataSize, err := DataSize(rawPB)
61
+ if err != nil {
62
+ t.Fatal(err)
63
+ }
64
+
65
+ same := len(raw) == int(pbDataSize)
66
+ if !same {
67
+ t.Fatal("WrapData changes the size of data.")
68
+ }
69
+
70
+ rawPBBytes, err := UnwrapData(rawPB)
71
+ if err != nil {
72
+ t.Fatal(err)
73
+ }
74
+
75
+ same = bytes.Equal(raw, rawPBBytes)
76
+ if !same {
77
+ t.Fatal("Unwrap failed to produce the correct wrapped data.")
78
+ }
79
+
80
+ rawPBdata, err := FromBytes(rawPB)
81
+ if err != nil {
82
+ t.Fatal(err)
83
+ }
84
+
85
+ isRaw := rawPBdata.GetType() == TRaw
86
+ if !isRaw {
87
+ t.Fatal("WrapData does not create pb.Data_Raw!")
88
+ }
89
+
90
+ catFile := []byte("Mr_Meowgie.gif")
91
+ catPBfile := FilePBData(catFile, 17)
92
+ catSize, err := DataSize(catPBfile)
93
+ if catSize != 17 {
94
+ t.Fatal("FilePBData is the wrong size.")
95
+ }
96
+ if err != nil {
97
+ t.Fatal(err)
98
+ }
99
+
100
+ dirPB := FolderPBData()
101
+ dir, err := FromBytes(dirPB)
102
+ isDir := dir.GetType() == TDirectory
103
+ if !isDir {
104
+ t.Fatal("FolderPBData does not create a directory!")
105
+ }
106
+ if err != nil {
107
+ t.Fatal(err)
108
+ }
109
+ _, dirErr := DataSize(dirPB)
110
+ if dirErr == nil {
111
+ t.Fatal("DataSize didn't throw an error when taking the size of a directory.")
112
+ }
113
+
114
+ catSym, err := SymlinkData("/ipfs/adad123123/meowgie.gif")
115
+ if err != nil {
116
+ t.Fatal(err)
117
+ }
118
+
119
+ catSymPB, err := FromBytes(catSym)
120
+ isSym := catSymPB.GetType() == TSymlink
121
+ if !isSym {
122
+ t.Fatal("Failed to make a Symlink.")
123
+ }
124
+ if err != nil {
125
+ t.Fatal(err)
126
+ }
127
+
128
+ _, sizeErr := DataSize(catSym)
129
+ if sizeErr == nil {
130
+ t.Fatal("DataSize didn't throw an error when taking the size of a Symlink.")
131
+ }
132
+
133
+}
134
+
135
+func TestMetedata(t *testing.T) {
136
+ meta := &Metadata{
137
+ MimeType: "audio/aiff",
138
+ Size: 12345,
139
+ }
140
+
141
+ _, err := meta.Bytes()
142
+ if err != nil {
143
+ t.Fatal(err)
144
+ }
145
+
146
+ metaPB, err := BytesForMetadata(meta)
147
+ if err != nil {
148
+ t.Fatal(err)
149
+ }
150
+
151
+ meta, err = MetadataFromBytes(metaPB)
152
+ if err != nil {
153
+ t.Fatal(err)
154
+ }
155
+
156
+ mimeAiff := meta.MimeType == "audio/aiff"
157
+ if !mimeAiff {
158
+ t.Fatal("Metadata does not Marshal and Unmarshal properly!")
159
+ }
160
+
161
}