lotus/lib/sectorbuilder/sectorbuilder_test.go

58 lines
1.2 KiB
Go
Raw Normal View History

2019-08-14 22:17:27 +00:00
package sectorbuilder_test
import (
"io"
"io/ioutil"
"math/rand"
"testing"
"github.com/ipfs/go-datastore"
"github.com/filecoin-project/lotus/chain/address"
"github.com/filecoin-project/lotus/lib/sectorbuilder"
"github.com/filecoin-project/lotus/storage/sector"
)
func TestSealAndVerify(t *testing.T) {
t.Skip("this is slow")
dir, err := ioutil.TempDir("", "sbtest")
if err != nil {
t.Fatal(err)
}
addr, err := address.NewFromString("t1tct3nfaw2q543xtybxcyw4deyxmfwkjk43u4t5y")
if err != nil {
t.Fatal(err)
}
2019-08-14 22:17:27 +00:00
sb, err := sectorbuilder.New(&sectorbuilder.SectorBuilderConfig{
SectorSize: 1024,
SealedDir: dir,
StagedDir: dir,
MetadataDir: dir,
Miner: addr,
})
if err != nil {
t.Fatal(err)
}
2019-09-23 11:43:32 +00:00
r := io.LimitReader(rand.New(rand.NewSource(42)), 1016)
2019-09-23 11:43:32 +00:00
if _, err := sb.AddPiece("foo", 1016, r); err != nil {
t.Fatal(err)
}
store := sector.NewStore(sb, datastore.NewMapDatastore())
2019-08-14 22:17:27 +00:00
store.Service()
ssinfo := <-store.Incoming()
2019-08-14 22:17:27 +00:00
ok, err := sectorbuilder.VerifySeal(1024, ssinfo.CommR[:], ssinfo.CommD[:], ssinfo.CommRStar[:], addr, ssinfo.SectorID, ssinfo.Proof)
if err != nil {
t.Fatal(err)
}
if !ok {
t.Fatal("proof failed to validate")
}
}