package mock import ( "context" "testing" "time" "github.com/filecoin-project/specs-actors/actors/abi" ) func TestOpFinish(t *testing.T) { sb := NewMockSectorMgr(2048) sid, pieces, err := sb.StageFakeData(123) if err != nil { t.Fatal(err) } ctx, done := AddOpFinish(context.TODO()) finished := make(chan struct{}) go func() { _, err := sb.SealPreCommit1(ctx, sid, abi.SealRandomness{}, pieces) if err != nil { t.Error(err) return } close(finished) }() select { case <-finished: t.Fatal("should not finish until we tell it to") case <-time.After(time.Second / 2): } done() select { case <-finished: case <-time.After(time.Second / 2): t.Fatal("should finish after we tell it to") } }