@cryptotaxi247 / kubo / commits / 65b971698

fix go vet issues in hamt sharding PR

License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>

Jeromy committed Mar 23, 2017 at 17:49 UTC 65b971698954a7a8cd31498d5d22d2bf931fcfff
11 files changed +50 -40
core/commands/files/files.go
+2 -2
@@ -348,7 +348,7 @@ Examples:
348 case *mfs.Directory:
349 if !long {
350 var output []mfs.NodeListing
351 - names, err := fsn.ListNames()
351 + names, err := fsn.ListNames(req.Context())
352 if err != nil {
353 res.SetError(err, cmds.ErrNormal)
354 return
@@ -361,7 +361,7 @@ Examples:
361 }
362 res.SetOutput(&FilesLsOutput{output})
363 } else {
364 - listing, err := fsn.List()
364 + listing, err := fsn.List(req.Context())
365 if err != nil {
366 res.SetError(err, cmds.ErrNormal)
367 return
core/commands/ls.go
+1 -1
@@ -111,7 +111,7 @@ The JSON output contains type information.
111 return
112 }
113
114 - links, err := dir.Links()
114 + links, err := dir.Links(req.Context())
115 if err != nil {
116 res.SetError(err, cmds.ErrNormal)
117 return
core/coreunix/add.go
+2 -2
@@ -197,7 +197,7 @@ func (adder *Adder) Finalize() (node.Node, error) {
197
198 var name string
199 if !adder.Wrap {
200 - children, err := root.(*mfs.Directory).ListNames()
200 + children, err := root.(*mfs.Directory).ListNames(adder.ctx)
201 if err != nil {
202 return nil, err
203 }
@@ -232,7 +232,7 @@ func (adder *Adder) outputDirs(path string, fsn mfs.FSNode) error {
232 case *mfs.File:
233 return nil
234 case *mfs.Directory:
235 - names, err := fsn.ListNames()
235 + names, err := fsn.ListNames(adder.ctx)
236 if err != nil {
237 return err
238 }
fuse/ipns/ipns_unix.go
+1 -1
@@ -324,7 +324,7 @@ func (s *Directory) Lookup(ctx context.Context, name string) (fs.Node, error) {
324 // ReadDirAll reads the link structure as directory entries
325 func (dir *Directory) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) {
326 var entries []fuse.Dirent
327 - listing, err := dir.dir.List()
327 + listing, err := dir.dir.List(ctx)
328 if err != nil {
329 return nil, err
330 }
mfs/dir.go
+5 -5
@@ -217,12 +217,12 @@ type NodeListing struct {
217 Hash string
218 }
219
220 -func (d *Directory) ListNames() ([]string, error) {
220 +func (d *Directory) ListNames(ctx context.Context) ([]string, error) {
221 d.lock.Lock()
222 defer d.lock.Unlock()
223
224 var out []string
225 - err := d.dirbuilder.ForEachLink(func(l *node.Link) error {
225 + err := d.dirbuilder.ForEachLink(ctx, func(l *node.Link) error {
226 out = append(out, l.Name)
227 return nil
228 })
@@ -235,9 +235,9 @@ func (d *Directory) ListNames() ([]string, error) {
235 return out, nil
236 }
237
238 -func (d *Directory) List() ([]NodeListing, error) {
238 +func (d *Directory) List(ctx context.Context) ([]NodeListing, error) {
239 var out []NodeListing
240 - err := d.ForEachEntry(context.TODO(), func(nl NodeListing) error {
240 + err := d.ForEachEntry(ctx, func(nl NodeListing) error {
241 out = append(out, nl)
242 return nil
243 })
@@ -247,7 +247,7 @@ func (d *Directory) List() ([]NodeListing, error) {
247 func (d *Directory) ForEachEntry(ctx context.Context, f func(NodeListing) error) error {
248 d.lock.Lock()
249 defer d.lock.Unlock()
250 - return d.dirbuilder.ForEachLink(func(l *node.Link) error {
250 + return d.dirbuilder.ForEachLink(ctx, func(l *node.Link) error {
251 c, err := d.childUnsync(l.Name)
252 if err != nil {
253 return err
mfs/mfs_test.go
+10 -6
@@ -82,6 +82,9 @@ func mkdirP(t *testing.T, root *Directory, pth string) *Directory {
82 }
83
84 func assertDirAtPath(root *Directory, pth string, children []string) error {
85 + ctx, cancel := context.WithCancel(context.Background())
86 + defer cancel()
87 +
88 fsn, err := DirLookup(root, pth)
89 if err != nil {
90 return err
@@ -92,7 +95,7 @@ func assertDirAtPath(root *Directory, pth string, children []string) error {
95 return fmt.Errorf("%s was not a directory", pth)
96 }
97
95 - listing, err := dir.List()
98 + listing, err := dir.List(ctx)
99 if err != nil {
100 return err
101 }
@@ -496,7 +499,7 @@ func TestMfsFile(t *testing.T) {
499
500 func randomWalk(d *Directory, n int) (*Directory, error) {
501 for i := 0; i < n; i++ {
499 - dirents, err := d.List()
502 + dirents, err := d.List(context.Background())
503 if err != nil {
504 return nil, err
505 }
@@ -585,7 +588,7 @@ func actorRemoveFile(d *Directory) error {
588 return err
589 }
590
588 - ents, err := d.List()
591 + ents, err := d.List(context.Background())
592 if err != nil {
593 return err
594 }
@@ -605,7 +608,7 @@ func randomFile(d *Directory) (*File, error) {
608 return nil, err
609 }
610
608 - ents, err := d.List()
611 + ents, err := d.List(context.Background())
612 if err != nil {
613 return nil, err
614 }
@@ -953,6 +956,7 @@ func TestConcurrentReads(t *testing.T) {
956 }
957 wg.Wait()
958 }
959 +
960 func writeFile(rt *Root, path string, data []byte) error {
961 n, err := Lookup(rt, path)
962 if err != nil {
@@ -975,8 +979,8 @@ func writeFile(rt *Root, path string, data []byte) error {
979 return err
980 }
981
978 - if nw != 10 {
979 - fmt.Errorf("wrote incorrect amount")
982 + if nw != len(data) {
983 + return fmt.Errorf("wrote incorrect amount: %d != 10", nw)
984 }
985
986 return nil
unixfs/hamt/hamt.go
+7 -7
@@ -351,17 +351,17 @@ func (ds *HamtShard) getValue(ctx context.Context, hv *hashBits, key string, cb
351 return os.ErrNotExist
352 }
353
354 -func (ds *HamtShard) EnumLinks() ([]*node.Link, error) {
354 +func (ds *HamtShard) EnumLinks(ctx context.Context) ([]*node.Link, error) {
355 var links []*node.Link
356 - err := ds.ForEachLink(func(l *node.Link) error {
356 + err := ds.ForEachLink(ctx, func(l *node.Link) error {
357 links = append(links, l)
358 return nil
359 })
360 return links, err
361 }
362
363 -func (ds *HamtShard) ForEachLink(f func(*node.Link) error) error {
364 - return ds.walkTrie(func(sv *shardValue) error {
363 +func (ds *HamtShard) ForEachLink(ctx context.Context, f func(*node.Link) error) error {
364 + return ds.walkTrie(ctx, func(sv *shardValue) error {
365 lnk, err := node.MakeLink(sv.val)
366 if err != nil {
367 return err
@@ -373,7 +373,7 @@ func (ds *HamtShard) ForEachLink(f func(*node.Link) error) error {
373 })
374 }
375
376 -func (ds *HamtShard) walkTrie(cb func(*shardValue) error) error {
376 +func (ds *HamtShard) walkTrie(ctx context.Context, cb func(*shardValue) error) error {
377 for i := 0; i < ds.tableSize; i++ {
378 if ds.bitfield.Bit(i) == 0 {
379 continue
@@ -382,7 +382,7 @@ func (ds *HamtShard) walkTrie(cb func(*shardValue) error) error {
382 idx := ds.indexForBitPos(i)
383 // NOTE: an optimized version could simply iterate over each
384 // element in the 'children' array.
385 - c, err := ds.getChild(context.TODO(), idx)
385 + c, err := ds.getChild(ctx, idx)
386 if err != nil {
387 return err
388 }
@@ -395,7 +395,7 @@ func (ds *HamtShard) walkTrie(cb func(*shardValue) error) error {
395 }
396
397 case *HamtShard:
398 - err := c.walkTrie(cb)
398 + err := c.walkTrie(ctx, cb)
399 if err != nil {
400 return err
401 }
unixfs/hamt/hamt_test.go
+10 -7
@@ -72,6 +72,8 @@ func assertLink(s *HamtShard, name string, found bool) error {
72 }
73
74 func assertSerializationWorks(ds dag.DAGService, s *HamtShard) error {
75 + ctx, cancel := context.WithCancel(context.Background())
76 + defer cancel()
77 nd, err := s.Node()
78 if err != nil {
79 return err
@@ -82,12 +84,12 @@ func assertSerializationWorks(ds dag.DAGService, s *HamtShard) error {
84 return err
85 }
86
85 - linksA, err := s.EnumLinks()
87 + linksA, err := s.EnumLinks(ctx)
88 if err != nil {
89 return err
90 }
91
90 - linksB, err := nds.EnumLinks()
92 + linksB, err := nds.EnumLinks(ctx)
93 if err != nil {
94 return err
95 }
@@ -160,7 +162,8 @@ func TestDirBuilding(t *testing.T) {
162 func TestShardReload(t *testing.T) {
163 ds := mdtest.Mock()
164 s, _ := NewHamtShard(ds, 256)
163 - ctx := context.Background()
165 + ctx, cancel := context.WithCancel(context.Background())
166 + defer cancel()
167
168 _, s, err := makeDir(ds, 200)
169 if err != nil {
@@ -177,7 +180,7 @@ func TestShardReload(t *testing.T) {
180 t.Fatal(err)
181 }
182
180 - lnks, err := nds.EnumLinks()
183 + lnks, err := nds.EnumLinks(ctx)
184 if err != nil {
185 t.Fatal(err)
186 }
@@ -270,7 +273,7 @@ func TestSetAfterMarshal(t *testing.T) {
273 }
274 }
275
273 - links, err := nds.EnumLinks()
276 + links, err := nds.EnumLinks(ctx)
277 if err != nil {
278 t.Fatal(err)
279 }
@@ -301,7 +304,7 @@ func TestDuplicateAddShard(t *testing.T) {
304 t.Fatal(err)
305 }
306
304 - lnks, err := dir.EnumLinks()
307 + lnks, err := dir.EnumLinks(ctx)
308 if err != nil {
309 t.Fatal(err)
310 }
@@ -393,7 +396,7 @@ func TestRemoveElemsAfterMarshal(t *testing.T) {
396 }
397 }
398
396 - links, err := nds.EnumLinks()
399 + links, err := nds.EnumLinks(ctx)
400 if err != nil {
401 t.Fatal(err)
402 }
unixfs/io/dagreader_test.go
+4 -1
@@ -169,7 +169,10 @@ func TestMetadataNode(t *testing.T) {
169 ctx, closer := context.WithCancel(context.Background())
170 defer closer()
171
172 - data, err := unixfs.BytesForMetadata(&unixfs.Metadata{"text", 125})
172 + data, err := unixfs.BytesForMetadata(&unixfs.Metadata{
173 + MimeType: "text",
174 + Size: 125,
175 + })
176 if err != nil {
177 t.Fatal(err)
178 }
unixfs/io/dirbuilder.go
+4 -4
@@ -119,7 +119,7 @@ func (d *Directory) switchToSharding(ctx context.Context) error {
119 return nil
120 }
121
122 -func (d *Directory) ForEachLink(f func(*node.Link) error) error {
122 +func (d *Directory) ForEachLink(ctx context.Context, f func(*node.Link) error) error {
123 if d.shard == nil {
124 for _, l := range d.dirnode.Links() {
125 if err := f(l); err != nil {
@@ -129,15 +129,15 @@ func (d *Directory) ForEachLink(f func(*node.Link) error) error {
129 return nil
130 }
131
132 - return d.shard.ForEachLink(f)
132 + return d.shard.ForEachLink(ctx, f)
133 }
134
135 -func (d *Directory) Links() ([]*node.Link, error) {
135 +func (d *Directory) Links(ctx context.Context) ([]*node.Link, error) {
136 if d.shard == nil {
137 return d.dirnode.Links(), nil
138 }
139
140 - return d.shard.EnumLinks()
140 + return d.shard.EnumLinks(ctx)
141 }
142
143 func (d *Directory) Find(ctx context.Context, name string) (node.Node, error) {
unixfs/io/dirbuilder_test.go
+4 -4
@@ -38,7 +38,7 @@ func TestDirectoryGrowth(t *testing.T) {
38 t.Fatal(err)
39 }
40
41 - links, err := dir.Links()
41 + links, err := dir.Links(ctx)
42 if err != nil {
43 t.Fatal(err)
44 }
@@ -86,7 +86,7 @@ func TestDuplicateAddDir(t *testing.T) {
86 t.Fatal(err)
87 }
88
89 - lnks, err := dir.Links()
89 + lnks, err := dir.Links(ctx)
90 if err != nil {
91 t.Fatal(err)
92 }
@@ -121,7 +121,7 @@ func TestDirBuilder(t *testing.T) {
121 t.Fatal(err)
122 }
123
124 - links, err := dir.Links()
124 + links, err := dir.Links(ctx)
125 if err != nil {
126 t.Fatal(err)
127 }
@@ -135,7 +135,7 @@ func TestDirBuilder(t *testing.T) {
135 t.Fatal(err)
136 }
137
138 - links, err = adir.Links()
138 + links, err = adir.Links(ctx)
139 if err != nil {
140 t.Fatal(err)
141 }