Skip to content

Commit

Permalink
Merge pull request #1 from Bloxico/repo_test
Browse files Browse the repository at this point in the history
Tests
  • Loading branch information
TheMenko authored Nov 3, 2021
2 parents d9fd1d9 + ad16baf commit f01015b
Show file tree
Hide file tree
Showing 10 changed files with 43 additions and 0 deletions.
2 changes: 2 additions & 0 deletions node/config/def_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ func TestDefaultFullNodeRoundtrip(t *testing.T) {
s = buf.String()
}

//stm: @NODE_CONFIG_003
c2, err := FromReader(strings.NewReader(s), DefaultFullNode())
require.NoError(t, err)

Expand All @@ -45,6 +46,7 @@ func TestDefaultMinerRoundtrip(t *testing.T) {
s = buf.String()
}

//stm: @NODE_CONFIG_004
c2, err := FromReader(strings.NewReader(s), DefaultStorageMiner())
require.NoError(t, err)

Expand Down
3 changes: 3 additions & 0 deletions node/config/load_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//stm: #unit
package config

import (
Expand All @@ -14,13 +15,15 @@ func TestDecodeNothing(t *testing.T) {
assert := assert.New(t)

{
//stm: @NODE_CONFIG_001
cfg, err := FromFile(os.DevNull, DefaultFullNode())
assert.Nil(err, "error should be nil")
assert.Equal(DefaultFullNode(), cfg,
"config from empty file should be the same as default")
}

{
//stm: @NODE_CONFIG_002
cfg, err := FromFile("./does-not-exist.toml", DefaultFullNode())
assert.Nil(err, "error should be nil")
assert.Equal(DefaultFullNode(), cfg,
Expand Down
6 changes: 6 additions & 0 deletions node/impl/client/client_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//stm: #unit
package client

import (
Expand Down Expand Up @@ -44,10 +45,12 @@ func TestImportLocal(t *testing.T) {
b, err := testdata.ReadFile("testdata/payload.txt")
require.NoError(t, err)

//stm: @CLIENT_IMPORT_003
root, err := a.ClientImportLocal(ctx, bytes.NewReader(b))
require.NoError(t, err)
require.NotEqual(t, cid.Undef, root)

//stm: @CLIENT_IMPORT_004
list, err := a.ClientListImports(ctx)
require.NoError(t, err)
require.Len(t, list, 1)
Expand All @@ -68,6 +71,7 @@ func TestImportLocal(t *testing.T) {
// retrieve as UnixFS.
out1 := filepath.Join(dir, "retrieval1.data") // as unixfs
out2 := filepath.Join(dir, "retrieval2.data") // as car
//stm: @CLIENT_IMPORT_005
err = a.ClientRetrieve(ctx, order, &api.FileRef{
Path: out1,
})
Expand All @@ -84,6 +88,7 @@ func TestImportLocal(t *testing.T) {
require.NoError(t, err)

// open the CARv2 being custodied by the import manager
//stm: @CLIENT_IMPORT_006
orig, err := carv2.OpenReader(it.CARPath)
require.NoError(t, err)

Expand All @@ -94,6 +99,7 @@ func TestImportLocal(t *testing.T) {
require.EqualValues(t, 1, exported.Version)
require.EqualValues(t, 2, orig.Version)

//stm: @CLIENT_IMPORT_007
origRoots, err := orig.Roots()
require.NoError(t, err)
require.Len(t, origRoots, 1)
Expand Down
7 changes: 7 additions & 0 deletions node/impl/client/import_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//stm: #unit
package client

import (
Expand Down Expand Up @@ -35,11 +36,13 @@ func TestRoundtripUnixFS_Dense(t *testing.T) {
defer os.Remove(carv2File) //nolint:errcheck

// import a file to a Unixfs DAG using a CARv2 read/write blockstore.
//stm: @CLIENT_IMPORT_001, @CLIENT_BLOCKSTORE_001
bs, err := blockstore.OpenReadWrite(carv2File, nil,
carv2.ZeroLengthSectionAsEOF(true),
blockstore.UseWholeCIDs(true))
require.NoError(t, err)

//stm: @CLIENT_IMPORT_001
root, err := buildUnixFS(ctx, bytes.NewBuffer(inputContents), bs, false)
require.NoError(t, err)
require.NotEqual(t, cid.Undef, root)
Expand Down Expand Up @@ -85,11 +88,13 @@ func TestRoundtripUnixFS_Filestore(t *testing.T) {
dst := newTmpFile(t)
defer os.Remove(dst) //nolint:errcheck

//stm: @CLIENT_FS_001
root, err := a.createUnixFSFilestore(ctx, inputPath, dst)
require.NoError(t, err)
require.NotEqual(t, cid.Undef, root)

// convert the CARv2 to a normal file again and ensure the contents match
//stm: @CLIENT_FS_002
fs, err := stores.ReadOnlyFilestore(dst)
require.NoError(t, err)
defer fs.Close() //nolint:errcheck
Expand All @@ -116,13 +121,15 @@ func TestRoundtripUnixFS_Filestore(t *testing.T) {
}

func newTmpFile(t *testing.T) string {
//stm: @CLIENT_FS_003
f, err := os.CreateTemp("", "")
require.NoError(t, err)
require.NoError(t, f.Close())
return f.Name()
}

func genInputFile(t *testing.T) (filepath string, contents []byte) {
//stm: @CLIENT_FS_004
s := strings.Repeat("abcde", 100)
tmp, err := os.CreateTemp("", "")
require.NoError(t, err)
Expand Down
2 changes: 2 additions & 0 deletions node/impl/full/gas_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//stm: #unit
package full

import (
Expand All @@ -12,6 +13,7 @@ import (
)

func TestMedian(t *testing.T) {
//stm: @REPO_GAS_001
require.Equal(t, types.NewInt(5), medianGasPremium([]GasMeta{
{big.NewInt(5), build.BlockGasTarget},
}, 1))
Expand Down
4 changes: 4 additions & 0 deletions node/repo/fsrepo_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//stm: #unit
package repo

import (
Expand All @@ -12,11 +13,13 @@ func genFsRepo(t *testing.T) (*FsRepo, func()) {
t.Fatal(err)
}

//stm: @REPO_FS_001
repo, err := NewFS(path)
if err != nil {
t.Fatal(err)
}

//stm: @REPO_FS_002
err = repo.Init(FullNode)
if err != ErrRepoExists && err != nil {
t.Fatal(err)
Expand All @@ -29,5 +32,6 @@ func genFsRepo(t *testing.T) (*FsRepo, func()) {
func TestFsBasic(t *testing.T) {
repo, closer := genFsRepo(t)
defer closer()
//stm: @REPO_FS_003
basicTest(t, repo)
}
2 changes: 2 additions & 0 deletions node/repo/memrepo_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//stm: #unit
package repo

import (
Expand All @@ -6,5 +7,6 @@ import (

func TestMemBasic(t *testing.T) {
repo := NewMemory(nil)
//stm: @REPO_MEM_001
basicTest(t, repo)
}
13 changes: 13 additions & 0 deletions node/repo/repo_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//stm: #unit
package repo

import (
Expand All @@ -14,24 +15,28 @@ import (
)

func basicTest(t *testing.T, repo Repo) {
//stm: @REPO_NET_001
apima, err := repo.APIEndpoint()
if assert.Error(t, err) {
assert.Equal(t, ErrNoAPIEndpoint, err)
}
assert.Nil(t, apima, "with no api endpoint, return should be nil")

//stm: @REPO_MUT_001
lrepo, err := repo.Lock(FullNode)
assert.NoError(t, err, "should be able to lock once")
assert.NotNil(t, lrepo, "locked repo shouldn't be nil")

{
//stm: @REPO_MUT_002
lrepo2, err := repo.Lock(FullNode)
if assert.Error(t, err) {
assert.Equal(t, ErrRepoAlreadyLocked, err)
}
assert.Nil(t, lrepo2, "with locked repo errors, nil should be returned")
}

//stm: @REPO_MUT_003
err = lrepo.Close()
assert.NoError(t, err, "should be able to unlock")

Expand All @@ -42,6 +47,7 @@ func basicTest(t *testing.T, repo Repo) {
ma, err := multiaddr.NewMultiaddr("/ip4/127.0.0.1/tcp/43244")
assert.NoError(t, err, "creating multiaddr shouldn't error")

//stm: @REPO_NET_002
err = lrepo.SetAPIEndpoint(ma)
assert.NoError(t, err, "setting multiaddr shouldn't error")

Expand Down Expand Up @@ -69,6 +75,7 @@ func basicTest(t *testing.T, repo Repo) {
err = lrepo.Close()
assert.NoError(t, err, "should be able to close")

//stm: @REPO_NET_003
apima, err = repo.APIEndpoint()

if assert.Error(t, err) {
Expand All @@ -83,22 +90,27 @@ func basicTest(t *testing.T, repo Repo) {
assert.NoError(t, err, "should be able to relock")
assert.NotNil(t, lrepo, "locked repo shouldn't be nil")

//stm: @REPO_KEYSTR_001
kstr, err := lrepo.KeyStore()
assert.NoError(t, err, "should be able to get keystore")
assert.NotNil(t, lrepo, "keystore shouldn't be nil")

//stm: @REPO_KEYSTR_002
list, err := kstr.List()
assert.NoError(t, err, "should be able to list key")
assert.Empty(t, list, "there should be no keys")

//stm: @REPO_KEYSTR_003
err = kstr.Put("k1", k1)
assert.NoError(t, err, "should be able to put k1")

//stm: @REPO_KEYSTR_004
err = kstr.Put("k1", k1)
if assert.Error(t, err, "putting key under the same name should error") {
assert.True(t, xerrors.Is(err, types.ErrKeyExists), "returned error is ErrKeyExists")
}

//stm: @REPO_KEYSTR_005
k1prim, err := kstr.Get("k1")
assert.NoError(t, err, "should be able to get k1")
assert.Equal(t, k1, k1prim, "returned key should be the same")
Expand All @@ -116,6 +128,7 @@ func basicTest(t *testing.T, repo Repo) {
assert.NoError(t, err, "should be able to list keys")
assert.ElementsMatch(t, []string{"k1", "k2"}, list, "returned elements match")

//stm: @REPO_KEYSTR_006
err = kstr.Delete("k2")
assert.NoError(t, err, "should be able to delete key")

Expand Down
2 changes: 2 additions & 0 deletions node/shutdown_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ func TestMonitorShutdown(t *testing.T) {
// Three shutdown handlers.
var wg sync.WaitGroup
wg.Add(3)
//stm: @NODE_SHUTDOWN_001
h := ShutdownHandler{
Component: "handler",
StopFunc: func(_ context.Context) error {
Expand All @@ -23,6 +24,7 @@ func TestMonitorShutdown(t *testing.T) {
},
}

//stm: @NODE_SHUTDOWN_002
finishCh := MonitorShutdown(signalCh, h, h, h)

// Nothing here after 10ms.
Expand Down
2 changes: 2 additions & 0 deletions paychmgr/paych_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//stm: #unit
package paychmgr

import (
Expand Down Expand Up @@ -196,6 +197,7 @@ func TestCheckVoucherValid(t *testing.T) {

for _, tcase := range tcases {
tcase := tcase
//stm: @PAYMENT_CHANNEL_VOUCHER_001, PAYMENT_CHANNEL_VOUCHER_002, PAYMENT_CHANNEL_VOUCHER_003, PAYMENT_CHANNEL_VOUCHER_004
t.Run(tcase.name, func(t *testing.T) {
// Create an actor for the channel with the test case balance
act := &types.Actor{
Expand Down

0 comments on commit f01015b

Please sign in to comment.