Skip to content

Commit

Permalink
fix: test fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
alanshaw committed Oct 31, 2024
1 parent 08b628a commit d9f8204
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 41 deletions.
6 changes: 4 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ module github.com/storacha/testthenetwork

go 1.23.2

replace github.com/storacha/indexing-service => ../indexing-service

require (
github.com/alanshaw/storetheindex v0.0.0-20241026220359-15f172e24dcc
github.com/ipfs/go-cid v0.4.1
Expand All @@ -17,7 +19,7 @@ require (
github.com/redis/go-redis/v9 v9.6.1
github.com/storacha/go-capabilities v0.0.0-20241030160329-4cf19ffc732d
github.com/storacha/go-ucanto v0.1.1-0.20241028163940-34de8cd912bb
github.com/storacha/indexing-service v0.0.2-0.20241030174421-32b839641a61
github.com/storacha/indexing-service v0.0.2-0.20241031070919-1c8cbe10dd56
github.com/storacha/storage v0.0.1-0.20241030161957-49f15e727c69
github.com/stretchr/testify v1.9.0
)
Expand Down Expand Up @@ -178,7 +180,7 @@ require (
github.com/rogpeppe/go-internal v1.12.0 // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
github.com/storacha/go-metadata v0.0.0-20241021141939-f94d93dcda78 // indirect
github.com/storacha/ipni-publisher v0.0.0-20241029210117-3286a26a47a8 // indirect
github.com/storacha/ipni-publisher v0.0.0-20241030213210-27f9084f36d3 // indirect
github.com/twmb/murmur3 v1.1.6 // indirect
github.com/ucan-wg/go-ucan v0.0.0-20240916120445-37f52863156c // indirect
github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 // indirect
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -810,10 +810,10 @@ github.com/storacha/go-metadata v0.0.0-20241021141939-f94d93dcda78 h1:NAti9hMLMo
github.com/storacha/go-metadata v0.0.0-20241021141939-f94d93dcda78/go.mod h1:DcwwQnyFuTk531cKD9sUkQg/gzpwKaIqH9I7oZYyeRc=
github.com/storacha/go-ucanto v0.1.1-0.20241028163940-34de8cd912bb h1:lFwFtMjgt162ot9pnu230haLjRQ1rqwJOIAyywOqAX8=
github.com/storacha/go-ucanto v0.1.1-0.20241028163940-34de8cd912bb/go.mod h1:7ba9jAgqmwlF/JfyFUQcGV07uiYNlmJNu8qH4hHtrJk=
github.com/storacha/indexing-service v0.0.2-0.20241030174421-32b839641a61 h1:2q65YU17MzFUxYJte9dr9CzPRHcOuQIfrdoJzP10LLs=
github.com/storacha/indexing-service v0.0.2-0.20241030174421-32b839641a61/go.mod h1:6xeVMhWiCJHIpr94RIyObSoTqwillIPG7iFpoALbkCE=
github.com/storacha/ipni-publisher v0.0.0-20241029210117-3286a26a47a8 h1:QnLy9Y1x5NL1b8NFj71i+0bN+alPgjdcR0SMozXNeLU=
github.com/storacha/ipni-publisher v0.0.0-20241029210117-3286a26a47a8/go.mod h1:fEuGSF5WMaOSAyDQCYAvow6Y+YKzpXczEk3A+H+s1fQ=
github.com/storacha/indexing-service v0.0.2-0.20241031070919-1c8cbe10dd56 h1:ipbl3Z6qJm+QtLQ/b77hE64HCfLNsGisoMaTRSXuEN4=
github.com/storacha/indexing-service v0.0.2-0.20241031070919-1c8cbe10dd56/go.mod h1:1k8nkbsEvc7jimFw35GqMhQCO+wGlqAXy2UUBc8Tzmg=
github.com/storacha/ipni-publisher v0.0.0-20241030213210-27f9084f36d3 h1:+et7pAB21A4HwYgjpkWpuanzj4WyN06pa/a0lBZrbfA=
github.com/storacha/ipni-publisher v0.0.0-20241030213210-27f9084f36d3/go.mod h1:oeRwCqtWAhWodWYYVklunZbetcp/CuEn4Q+KL0zOIR0=
github.com/storacha/storage v0.0.1-0.20241030161957-49f15e727c69 h1:DT3x85+JBVRcLfwFDyxYaAy+M3K++a8KC/PJhMUIXg4=
github.com/storacha/storage v0.0.1-0.20241030161957-49f15e727c69/go.mod h1:D3ASxLMIp+fBR9fPHhLKOzm27F51wr9ueQn/BqxGtrA=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
Expand Down
24 changes: 14 additions & 10 deletions helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ func generateIndex(t *testing.T, content ipld.Link, carBytes []byte) (blobindex.
return index, digest, link, bytes
}

func collectIndexes(t *testing.T, result types.QueryResult) []blobindex.ShardedDagIndexView {
func CollectIndexes(t *testing.T, result types.QueryResult) []blobindex.ShardedDagIndexView {
br, err := blockstore.NewBlockReader(blockstore.WithBlocksIterator(result.Blocks()))
require.NoError(t, err)

Expand All @@ -251,7 +251,7 @@ func collectIndexes(t *testing.T, result types.QueryResult) []blobindex.ShardedD
return indexes
}

func collectClaims(t *testing.T, result types.QueryResult) []delegation.Delegation {
func CollectClaims(t *testing.T, result types.QueryResult) []delegation.Delegation {
br, err := blockstore.NewBlockReader(blockstore.WithBlocksIterator(result.Blocks()))
require.NoError(t, err)

Expand All @@ -264,28 +264,28 @@ func collectClaims(t *testing.T, result types.QueryResult) []delegation.Delegati
return claims
}

func requireContainsIndexClaim(t *testing.T, claims []delegation.Delegation, content ipld.Link, index ipld.Link) {
require.True(t, slices.ContainsFunc(claims, func(claim delegation.Delegation) bool {
func ContainsIndexClaim(t *testing.T, claims []delegation.Delegation, content ipld.Link, index ipld.Link) bool {
return slices.ContainsFunc(claims, func(claim delegation.Delegation) bool {
cap := claim.Capabilities()[0]
if cap.Can() != assert.IndexAbility {
return false
}
nb, err := assert.IndexCaveatsReader.Read(cap.Nb())
require.NoError(t, err)
return nb.Content == content && nb.Index == index
}))
})
}

func requireContainsLocationCommitment(t *testing.T, claims []delegation.Delegation, content multihash.Multihash, space did.DID) {
require.True(t, slices.ContainsFunc(claims, func(claim delegation.Delegation) bool {
func ContainsLocationCommitment(t *testing.T, claims []delegation.Delegation, content multihash.Multihash, space did.DID) bool {
return slices.ContainsFunc(claims, func(claim delegation.Delegation) bool {
cap := claim.Capabilities()[0]
if cap.Can() != assert.LocationAbility {
return false
}
nb, err := assert.LocationCaveatsReader.Read(cap.Nb())
require.NoError(t, err)
return bytes.Equal(nb.Content.Hash(), content) && nb.Space == space
}))
})
}

func publishIndexClaim(t *testing.T, indexingClient *client.Client, issuer principal.Signer, proof delegation.Proof, content ipld.Link, index ipld.Link) {
Expand All @@ -298,8 +298,12 @@ func publishIndexClaim(t *testing.T, indexingClient *client.Client, issuer princ
fmt.Println("✔ assert/index success")
}

func queryClaims(t *testing.T, indexingClient *client.Client, digest multihash.Multihash, space did.DID) types.QueryResult {
fmt.Printf("→ performing query for %s\n", digestutil.Format(digest))
func QueryClaims(t *testing.T, indexingClient *client.Client, digest multihash.Multihash, space did.DID) types.QueryResult {
if space == did.Undef {
fmt.Printf("→ performing query for %s\n", digestutil.Format(digest))
} else {
fmt.Printf("→ performing query for %s, filtered by space %s\n", digestutil.Format(digest), space.String())
}
var match types.Match
if space != did.Undef {
match.Subject = append(match.Subject, space)
Expand Down
7 changes: 0 additions & 7 deletions internal/bootstrap/bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,10 @@ import (
"github.com/ipni/go-libipni/maurl"
"github.com/libp2p/go-libp2p"
"github.com/libp2p/go-libp2p/core/crypto"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/storacha/go-ucanto/core/delegation"
"github.com/storacha/go-ucanto/principal"
"github.com/storacha/go-ucanto/ucan"
"github.com/storacha/indexing-service/pkg/construct"

Check failure on line 26 in internal/bootstrap/bootstrap.go

View workflow job for this annotation

GitHub Actions / go-test / ubuntu (go this)

github.com/storacha/[email protected]: replacement directory ../indexing-service does not exist

Check failure on line 26 in internal/bootstrap/bootstrap.go

View workflow job for this annotation

GitHub Actions / go-test / windows (go this)

github.com/storacha/[email protected]: replacement directory ../indexing-service does not exist

Check failure on line 26 in internal/bootstrap/bootstrap.go

View workflow job for this annotation

GitHub Actions / go-check / All

github.com/storacha/[email protected]: replacement directory ../indexing-service does not exist

Check failure on line 26 in internal/bootstrap/bootstrap.go

View workflow job for this annotation

GitHub Actions / go-test / macos (go this)

github.com/storacha/[email protected]: replacement directory ../indexing-service does not exist
"github.com/storacha/indexing-service/pkg/metadata"
idxsrv "github.com/storacha/indexing-service/pkg/server"

Check failure on line 27 in internal/bootstrap/bootstrap.go

View workflow job for this annotation

GitHub Actions / go-test / ubuntu (go this)

github.com/storacha/[email protected]: replacement directory ../indexing-service does not exist

Check failure on line 27 in internal/bootstrap/bootstrap.go

View workflow job for this annotation

GitHub Actions / go-test / windows (go this)

github.com/storacha/[email protected]: replacement directory ../indexing-service does not exist

Check failure on line 27 in internal/bootstrap/bootstrap.go

View workflow job for this annotation

GitHub Actions / go-check / All

github.com/storacha/[email protected]: replacement directory ../indexing-service does not exist

Check failure on line 27 in internal/bootstrap/bootstrap.go

View workflow job for this annotation

GitHub Actions / go-test / macos (go this)

github.com/storacha/[email protected]: replacement directory ../indexing-service does not exist
"github.com/storacha/storage/pkg/server"
"github.com/storacha/storage/pkg/service/storage"
Expand Down Expand Up @@ -104,14 +102,9 @@ func StartIndexingService(
directAnnounceURL url.URL,
noCache bool,
) func() {
fmt.Println(metadata.LocationCommitmentID)
privKey, err := crypto.UnmarshalEd25519PrivateKey(id.Raw())
require.NoError(t, err)

peerID, err := peer.IDFromPrivateKey(privKey)
require.NoError(t, err)
fmt.Printf("Indexing service peer ID: %s\n", peerID.String())

publisherListenURL := testutil.RandomLocalURL(t)
announceAddr, err := maurl.FromURL(&publisherListenURL)
require.NoError(t, err)
Expand Down
38 changes: 20 additions & 18 deletions main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,17 +46,17 @@ func TestTheNetwork(t *testing.T) {

publishIndexClaim(t, indexingClient, aliceID, aliceIndexingProof, root, indexLink)

result := queryClaims(t, indexingClient, rootDigest, did.Undef)
result := QueryClaims(t, indexingClient, rootDigest, did.Undef)
printer.PrintQueryResults(t, result)

indexes := collectIndexes(t, result)
indexes := CollectIndexes(t, result)
require.Len(t, indexes, 1)
require.Equal(t, indexLink, result.Indexes()[0]) // should be the index we generated

claims := collectClaims(t, result)
requireContainsIndexClaim(t, claims, root, indexLink) // find an index claim for our root
requireContainsLocationCommitment(t, claims, indexDigest, space) // find a location commitment for the index
requireContainsLocationCommitment(t, claims, blobDigest, space) // find a location commitment for the shard
claims := CollectClaims(t, result)
require.True(t, ContainsIndexClaim(t, claims, root, indexLink)) // find an index claim for our root
require.True(t, ContainsLocationCommitment(t, claims, indexDigest, space)) // find a location commitment for the index
require.True(t, ContainsLocationCommitment(t, claims, blobDigest, space)) // find a location commitment for the shard
})

t.Run("round trip (no cache)", func(t *testing.T) {
Expand Down Expand Up @@ -91,7 +91,7 @@ func TestTheNetwork(t *testing.T) {

var result types.QueryResult
for i := 0; i < 5; i++ {
result = queryClaims(t, indexingClient, rootDigest, did.Undef)
result = QueryClaims(t, indexingClient, rootDigest, did.Undef)
if len(result.Claims()) > 0 || len(result.Indexes()) > 0 {
break
}
Expand All @@ -101,14 +101,14 @@ func TestTheNetwork(t *testing.T) {
}
printer.PrintQueryResults(t, result)

indexes := collectIndexes(t, result)
indexes := CollectIndexes(t, result)
require.Len(t, indexes, 1)
require.Equal(t, indexLink, result.Indexes()[0]) // should be the index we generated

claims := collectClaims(t, result)
requireContainsIndexClaim(t, claims, root, indexLink) // find an index claim for our root
requireContainsLocationCommitment(t, claims, indexDigest, space) // find a location commitment for the index
requireContainsLocationCommitment(t, claims, blobDigest, space) // find a location commitment for the shard
claims := CollectClaims(t, result)
require.True(t, ContainsIndexClaim(t, claims, root, indexLink)) // find an index claim for our root
require.True(t, ContainsLocationCommitment(t, claims, indexDigest, space)) // find a location commitment for the index
require.True(t, ContainsLocationCommitment(t, claims, blobDigest, space)) // find a location commitment for the shard
})

t.Run("filter by space", func(t *testing.T) {
Expand Down Expand Up @@ -149,16 +149,18 @@ func TestTheNetwork(t *testing.T) {

publishIndexClaim(t, indexingClient, bobID, bobIndexingProof, root, indexLink)

result := queryClaims(t, indexingClient, rootDigest, bobSpace)
result := QueryClaims(t, indexingClient, rootDigest, bobSpace)
printer.PrintQueryResults(t, result)

indexes := collectIndexes(t, result)
indexes := CollectIndexes(t, result)
require.Len(t, indexes, 1)
require.Equal(t, indexLink, result.Indexes()[0]) // should be the index we generated

claims := collectClaims(t, result)
requireContainsIndexClaim(t, claims, root, indexLink) // find an index claim for our root
requireContainsLocationCommitment(t, claims, indexDigest, aliceSpace) // find a location commitment for the index
requireContainsLocationCommitment(t, claims, digest, aliceSpace) // find a location commitment for the shard
claims := CollectClaims(t, result)
require.True(t, ContainsIndexClaim(t, claims, root, indexLink)) // find an index claim for our root
require.True(t, ContainsLocationCommitment(t, claims, indexDigest, bobSpace)) // find a location commitment for the index
require.True(t, ContainsLocationCommitment(t, claims, digest, bobSpace)) // find a location commitment for the shard
require.False(t, ContainsLocationCommitment(t, claims, indexDigest, aliceSpace))
require.False(t, ContainsLocationCommitment(t, claims, digest, aliceSpace))
})
}

0 comments on commit d9f8204

Please sign in to comment.