Compare commits
1 Commits
rehab/upgr
...
new-cid-do
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
373e25552c |
2
.github/workflows/go-check.yml
vendored
2
.github/workflows/go-check.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
||||
echo "RUNGOGENERATE=true" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Install staticcheck
|
||||
run: go install honnef.co/go/tools/cmd/staticcheck@c8caa92bad8c27ae734c6725b8a04932d54a147b # 2021.1.2 (v0.2.2)
|
||||
run: go install honnef.co/go/tools/cmd/staticcheck@df71e5d0e0ed317ebf43e6e59cf919430fa4b8f2 # 2021.1.1 (v0.2.1)
|
||||
- name: Check that go.mod is tidy
|
||||
uses: protocol/multiple-go-modules@v1.2
|
||||
with:
|
||||
|
||||
15
.github/workflows/go-test.yml
vendored
15
.github/workflows/go-test.yml
vendored
@@ -26,24 +26,13 @@ jobs:
|
||||
run: |
|
||||
go version
|
||||
go env
|
||||
- name: Use msys2 on windows
|
||||
if: ${{ matrix.os == 'windows' }}
|
||||
shell: bash
|
||||
# The executable for msys2 is also called bash.cmd
|
||||
# https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md#shells
|
||||
# If we prepend its location to the PATH
|
||||
# subsequent 'shell: bash' steps will use msys2 instead of gitbash
|
||||
run: echo "C:/msys64/usr/bin" >> $GITHUB_PATH
|
||||
- name: Run repo-specific setup
|
||||
uses: ./.github/actions/go-test-setup
|
||||
if: hashFiles('./.github/actions/go-test-setup') != ''
|
||||
- name: Run tests
|
||||
uses: protocol/multiple-go-modules@v1.2
|
||||
with:
|
||||
# Use -coverpkg=./..., so that we include cross-package coverage.
|
||||
# If package ./A imports ./B, and ./A's tests also cover ./B,
|
||||
# this means ./B's coverage will be significantly higher than 0%.
|
||||
run: go test -v -coverprofile=module-coverage.txt -coverpkg=./... ./...
|
||||
run: go test -v -coverprofile module-coverage.txt ./...
|
||||
- name: Run tests (32 bit)
|
||||
if: ${{ matrix.os != 'macos' }} # can't run 32 bit tests on OSX.
|
||||
uses: protocol/multiple-go-modules@v1.2
|
||||
@@ -60,7 +49,7 @@ jobs:
|
||||
shell: bash
|
||||
run: echo "COVERAGES=$(find . -type f -name 'module-coverage.txt' | tr -s '\n' ',' | sed 's/,$//')" >> $GITHUB_ENV
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
|
||||
uses: codecov/codecov-action@51d810878be5422784e86451c0e7c14e5860ec47 # v2.0.2
|
||||
with:
|
||||
files: '${{ env.COVERAGES }}'
|
||||
env_vars: OS=${{ matrix.os }}, GO=${{ matrix.go }}
|
||||
|
||||
11
.github/workflows/release-check.yml
vendored
11
.github/workflows/release-check.yml
vendored
@@ -1,11 +0,0 @@
|
||||
# File managed by web3-bot. DO NOT EDIT.
|
||||
# See https://github.com/protocol/.github/ for details.
|
||||
|
||||
name: Release Checker
|
||||
on:
|
||||
pull_request:
|
||||
paths: [ 'version.json' ]
|
||||
|
||||
jobs:
|
||||
release-check:
|
||||
uses: protocol/.github/.github/workflows/release-check.yml@master
|
||||
11
.github/workflows/releaser.yml
vendored
11
.github/workflows/releaser.yml
vendored
@@ -1,11 +0,0 @@
|
||||
# File managed by web3-bot. DO NOT EDIT.
|
||||
# See https://github.com/protocol/.github/ for details.
|
||||
|
||||
name: Releaser
|
||||
on:
|
||||
push:
|
||||
paths: [ 'version.json' ]
|
||||
|
||||
jobs:
|
||||
releaser:
|
||||
uses: protocol/.github/.github/workflows/releaser.yml@master
|
||||
12
.github/workflows/tagpush.yml
vendored
12
.github/workflows/tagpush.yml
vendored
@@ -1,12 +0,0 @@
|
||||
# File managed by web3-bot. DO NOT EDIT.
|
||||
# See https://github.com/protocol/.github/ for details.
|
||||
|
||||
name: Tag Push Checker
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- v*
|
||||
|
||||
jobs:
|
||||
releaser:
|
||||
uses: protocol/.github/.github/workflows/tagpush.yml@master
|
||||
@@ -1,61 +0,0 @@
|
||||
package cid_test
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"testing"
|
||||
|
||||
"github.com/ipfs/go-cid"
|
||||
"github.com/multiformats/go-multihash"
|
||||
)
|
||||
|
||||
// BenchmarkIdentityCheck benchmarks two ways of checking whether a CIDv1 has multihash.IDENTITY
|
||||
// code:
|
||||
// 1. Cid.Prefix(), and
|
||||
// 2. decoding the Cid.Hash().
|
||||
//
|
||||
// This benchmark illustrates that using Cid.Prefix is more efficient than multihash.Decode.
|
||||
// Users wishing to perform such a check should use Cid.Prefix.
|
||||
//
|
||||
// Consider that `Cid.Prefix` is already efficient enough and introducing a dedicated API for
|
||||
// performing this check will likely result in small gains.
|
||||
func BenchmarkIdentityCheck(b *testing.B) {
|
||||
rng := rand.New(rand.NewSource(1413))
|
||||
|
||||
data := make([]byte, rng.Intn(100)+1024)
|
||||
if _, err := rng.Read(data); err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
mh, err := multihash.Sum(data, multihash.IDENTITY, -1)
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
cv1 := cid.NewCidV1(cid.Raw, mh)
|
||||
|
||||
b.SetBytes(int64(cv1.ByteLen()))
|
||||
b.ReportAllocs()
|
||||
b.ResetTimer()
|
||||
|
||||
b.Run("Prefix", func(b *testing.B) {
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
if cv1.Prefix().MhType != multihash.IDENTITY {
|
||||
b.Fatal("expected IDENTITY CID")
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
b.Run("MultihashDecode", func(b *testing.B) {
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
dmh, err := multihash.Decode(cv1.Hash())
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
if dmh.Code != multihash.IDENTITY {
|
||||
b.Fatal("expected IDENTITY CID")
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
2
go.mod
2
go.mod
@@ -2,7 +2,7 @@ module github.com/ipfs/go-cid
|
||||
|
||||
require (
|
||||
github.com/multiformats/go-multibase v0.0.3
|
||||
github.com/multiformats/go-multihash v0.1.0
|
||||
github.com/multiformats/go-multihash v0.0.15
|
||||
github.com/multiformats/go-varint v0.0.6
|
||||
golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf // indirect
|
||||
)
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"version": "v0.1.0"
|
||||
}
|
||||
Reference in New Issue
Block a user