@cryptotaxi247 / kubo / commits / 7b16a8daa

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 }