Merge pull request #7688 from hashicorp/fix_7684

stop using goroutines in TestPausedProvisionerProvision_waits
pull/7694/head
Megan Marsh 7 years ago committed by GitHub
commit 584669d682
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -2,6 +2,7 @@ package packer
import (
"context"
"fmt"
"testing"
"time"
)
@ -126,30 +127,26 @@ func TestPausedProvisionerProvision(t *testing.T) {
}
func TestPausedProvisionerProvision_waits(t *testing.T) {
mock := new(MockProvisioner)
prov := &PausedProvisioner{
PauseBefore: 50 * time.Millisecond,
Provisioner: mock,
}
startTime := time.Now()
waitTime := 50 * time.Millisecond
dataCh := make(chan struct{})
mock.ProvFunc = func(context.Context) error {
close(dataCh)
return nil
prov := &PausedProvisioner{
PauseBefore: waitTime,
Provisioner: &MockProvisioner{
ProvFunc: func(context.Context) error {
timeSinceStartTime := time.Since(startTime)
if timeSinceStartTime < waitTime {
return fmt.Errorf("Spent not enough time waiting: %s", timeSinceStartTime)
}
return nil
},
},
}
go prov.Provision(context.Background(), testUi(), new(MockCommunicator))
select {
case <-time.After(10 * time.Millisecond):
case <-dataCh:
t.Fatal("should not be called")
}
err := prov.Provision(context.Background(), testUi(), new(MockCommunicator))
select {
case <-time.After(100 * time.Millisecond):
t.Fatal("never called")
case <-dataCh:
if err != nil {
t.Fatalf("prov failed: %v", err)
}
}

Loading…
Cancel
Save