From aeb9cdfae0878d4954ecc2cdc570168449887463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Fri, 1 Feb 2019 19:48:43 +0100 Subject: [PATCH] coreapi: use chan for returning results in Unixfs.Ls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit License: MIT Signed-off-by: Ɓukasz Magiera This commit was moved from ipfs/interface-go-ipfs-core@93175e9900f58425d3868381c3a8668500ac39a9 This commit was moved from ipfs/boxo@3afaf889d4d49000482655a90591acdd3eb16349 --- core/coreiface/tests/unixfs.go | 18 ++++++++++-------- core/coreiface/unixfs.go | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/core/coreiface/tests/unixfs.go b/core/coreiface/tests/unixfs.go index 5ae273987..68d408e6c 100644 --- a/core/coreiface/tests/unixfs.go +++ b/core/coreiface/tests/unixfs.go @@ -754,18 +754,20 @@ func (tp *provider) TestLs(t *testing.T) { t.Error(err) } - if len(links) != 1 { - t.Fatalf("expected 1 link, got %d", len(links)) + link := <- links + if link.Size != 23 { + t.Fatalf("expected size = 23, got %d", link.Size) } - if links[0].Size != 23 { - t.Fatalf("expected size = 23, got %d", links[0].Size) + if link.Name != "name-of-file" { + t.Fatalf("expected name = name-of-file, got %s", link.Name) } - if links[0].Name != "name-of-file" { - t.Fatalf("expected name = name-of-file, got %s", links[0].Name) + if link.Cid.String() != "QmX3qQVKxDGz3URVC3861Z3CKtQKGBn6ffXRBBWGMFz9Lr" { + t.Fatalf("expected cid = QmX3qQVKxDGz3URVC3861Z3CKtQKGBn6ffXRBBWGMFz9Lr, got %s", link.Cid) } - if links[0].Cid.String() != "QmX3qQVKxDGz3URVC3861Z3CKtQKGBn6ffXRBBWGMFz9Lr" { - t.Fatalf("expected cid = QmX3qQVKxDGz3URVC3861Z3CKtQKGBn6ffXRBBWGMFz9Lr, got %s", links[0].Cid) + if _, ok := <-links; ok { + t.Errorf("didn't expect a second link") } + } func (tp *provider) TestEntriesExpired(t *testing.T) { diff --git a/core/coreiface/unixfs.go b/core/coreiface/unixfs.go index 408280cbc..cdb6a1e0c 100644 --- a/core/coreiface/unixfs.go +++ b/core/coreiface/unixfs.go @@ -31,5 +31,5 @@ type UnixfsAPI interface { Get(context.Context, Path) (files.Node, error) // Ls returns the list of links in a directory - Ls(context.Context, Path) ([]*ipld.Link, error) + Ls(context.Context, Path) (<-chan *ipld.Link, error) }