S: extract common Ginkgo setup
several test suites had to do the same setup/teardown for the postgres process. this commit adds a helper to configure the Before/AfterSuite for the common case, while adding more fine-grained helpers if you e.g. need a more complicated Before/AfterSuite (since Ginkgo only lets you have one) Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
This commit is contained in:
parent
3dc0c519c4
commit
31bf677cee
|
@ -1,7 +1,6 @@
|
|||
package db_test
|
||||
|
||||
import (
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
|
@ -19,7 +18,6 @@ import (
|
|||
"github.com/concourse/concourse/atc/db/lock"
|
||||
"github.com/concourse/concourse/atc/metric"
|
||||
"github.com/concourse/concourse/atc/postgresrunner"
|
||||
"github.com/tedsuo/ifrit"
|
||||
)
|
||||
|
||||
func TestDB(t *testing.T) {
|
||||
|
@ -29,7 +27,6 @@ func TestDB(t *testing.T) {
|
|||
|
||||
var (
|
||||
postgresRunner postgresrunner.Runner
|
||||
dbProcess ifrit.Process
|
||||
|
||||
dbConn db.Conn
|
||||
fakeSecrets *credsfakes.FakeSecrets
|
||||
|
@ -95,15 +92,7 @@ var (
|
|||
psql = sq.StatementBuilder.PlaceholderFormat(sq.Dollar)
|
||||
)
|
||||
|
||||
var _ = BeforeSuite(func() {
|
||||
postgresRunner = postgresrunner.Runner{
|
||||
Port: 5433 + GinkgoParallelNode(),
|
||||
}
|
||||
|
||||
dbProcess = ifrit.Invoke(postgresRunner)
|
||||
|
||||
postgresRunner.InitializeTestDBTemplate()
|
||||
})
|
||||
var _ = postgresrunner.GinkgoRunner(&postgresRunner)
|
||||
|
||||
var _ = BeforeEach(func() {
|
||||
postgresRunner.CreateTestDBFromTemplate()
|
||||
|
@ -244,8 +233,3 @@ var _ = AfterEach(func() {
|
|||
|
||||
postgresRunner.DropTestDB()
|
||||
})
|
||||
|
||||
var _ = AfterSuite(func() {
|
||||
dbProcess.Signal(os.Interrupt)
|
||||
<-dbProcess.Wait()
|
||||
})
|
||||
|
|
|
@ -1,13 +1,9 @@
|
|||
package lock_test
|
||||
|
||||
import (
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/concourse/concourse/atc/postgresrunner"
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
"github.com/tedsuo/ifrit"
|
||||
|
||||
"testing"
|
||||
)
|
||||
|
@ -18,19 +14,5 @@ func TestLock(t *testing.T) {
|
|||
}
|
||||
|
||||
var postgresRunner postgresrunner.Runner
|
||||
var dbProcess ifrit.Process
|
||||
|
||||
var _ = BeforeSuite(func() {
|
||||
postgresRunner = postgresrunner.Runner{
|
||||
Port: 5433 + GinkgoParallelNode(),
|
||||
}
|
||||
|
||||
dbProcess = ifrit.Invoke(postgresRunner)
|
||||
|
||||
postgresRunner.InitializeTestDBTemplate()
|
||||
})
|
||||
|
||||
var _ = AfterSuite(func() {
|
||||
dbProcess.Signal(os.Interrupt)
|
||||
Eventually(dbProcess.Wait(), 10*time.Second).Should(Receive())
|
||||
})
|
||||
var _ = postgresrunner.GinkgoRunner(&postgresRunner)
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
package migration_test
|
||||
|
||||
import (
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/concourse/concourse/atc/postgresrunner"
|
||||
"github.com/gobuffalo/packr"
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
"github.com/tedsuo/ifrit"
|
||||
|
||||
"testing"
|
||||
)
|
||||
|
@ -19,14 +15,8 @@ func TestMigration(t *testing.T) {
|
|||
}
|
||||
|
||||
var postgresRunner postgresrunner.Runner
|
||||
var dbProcess ifrit.Process
|
||||
|
||||
var _ = BeforeSuite(func() {
|
||||
postgresRunner = postgresrunner.Runner{
|
||||
Port: 5433 + GinkgoParallelNode(),
|
||||
}
|
||||
dbProcess = ifrit.Invoke(postgresRunner)
|
||||
})
|
||||
var _ = postgresrunner.GinkgoRunner(&postgresRunner)
|
||||
|
||||
var _ = BeforeEach(func() {
|
||||
postgresRunner.CreateEmptyTestDB()
|
||||
|
@ -36,9 +26,4 @@ var _ = AfterEach(func() {
|
|||
postgresRunner.DropTestDB()
|
||||
})
|
||||
|
||||
var _ = AfterSuite(func() {
|
||||
dbProcess.Signal(os.Interrupt)
|
||||
Eventually(dbProcess.Wait(), 10*time.Second).Should(Receive())
|
||||
})
|
||||
|
||||
var asset = packr.NewBox("./migrations").MustBytes
|
||||
|
|
|
@ -2,7 +2,6 @@ package gc_test
|
|||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"code.cloudfoundry.org/lager"
|
||||
|
@ -17,7 +16,6 @@ import (
|
|||
"github.com/concourse/concourse/atc/postgresrunner"
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
"github.com/tedsuo/ifrit"
|
||||
|
||||
"testing"
|
||||
)
|
||||
|
@ -35,7 +33,6 @@ var psql = sq.StatementBuilder.PlaceholderFormat(sq.Dollar)
|
|||
|
||||
var (
|
||||
postgresRunner postgresrunner.Runner
|
||||
dbProcess ifrit.Process
|
||||
|
||||
dbConn db.Conn
|
||||
err error
|
||||
|
@ -62,15 +59,7 @@ var (
|
|||
fakeLogFunc = func(logger lager.Logger, id lock.LockID) {}
|
||||
)
|
||||
|
||||
var _ = BeforeSuite(func() {
|
||||
postgresRunner = postgresrunner.Runner{
|
||||
Port: 5433 + GinkgoParallelNode(),
|
||||
}
|
||||
|
||||
dbProcess = ifrit.Invoke(postgresRunner)
|
||||
|
||||
postgresRunner.InitializeTestDBTemplate()
|
||||
})
|
||||
var _ = postgresrunner.GinkgoRunner(&postgresRunner)
|
||||
|
||||
var _ = BeforeEach(func() {
|
||||
postgresRunner.CreateTestDBFromTemplate()
|
||||
|
@ -155,8 +144,3 @@ var _ = AfterEach(func() {
|
|||
Expect(dbConn.Close()).To(Succeed())
|
||||
postgresRunner.DropTestDB()
|
||||
})
|
||||
|
||||
var _ = AfterSuite(func() {
|
||||
dbProcess.Signal(os.Interrupt)
|
||||
Eventually(dbProcess.Wait(), 10*time.Second).Should(Receive())
|
||||
})
|
||||
|
|
|
@ -26,20 +26,11 @@ import (
|
|||
var (
|
||||
cmd *atccmd.RunCommand
|
||||
postgresRunner postgresrunner.Runner
|
||||
dbProcess ifrit.Process
|
||||
atcProcess ifrit.Process
|
||||
atcURL string
|
||||
)
|
||||
|
||||
var _ = BeforeSuite(func() {
|
||||
postgresRunner = postgresrunner.Runner{
|
||||
Port: 5433 + GinkgoParallelNode(),
|
||||
}
|
||||
|
||||
dbProcess = ifrit.Invoke(postgresRunner)
|
||||
|
||||
postgresRunner.InitializeTestDBTemplate()
|
||||
})
|
||||
var _ = postgresrunner.GinkgoRunner(&postgresRunner)
|
||||
|
||||
var _ = BeforeEach(func() {
|
||||
cmd = &atccmd.RunCommand{}
|
||||
|
@ -106,11 +97,6 @@ var _ = AfterEach(func() {
|
|||
postgresRunner.DropTestDB()
|
||||
})
|
||||
|
||||
var _ = AfterSuite(func() {
|
||||
dbProcess.Signal(os.Interrupt)
|
||||
<-dbProcess.Wait()
|
||||
})
|
||||
|
||||
func TestIntegration(t *testing.T) {
|
||||
RegisterFailHandler(Fail)
|
||||
RunSpecs(t, "Integration Suite")
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
package postgresrunner
|
||||
|
||||
import (
|
||||
"os"
|
||||
"time"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
"github.com/tedsuo/ifrit"
|
||||
)
|
||||
|
||||
type none struct{}
|
||||
|
||||
func GinkgoRunner(runner *Runner) none {
|
||||
var dbProcess ifrit.Process
|
||||
|
||||
BeforeSuite(func() {
|
||||
InitializeRunnerForGinkgo(runner, &dbProcess)
|
||||
})
|
||||
|
||||
AfterSuite(func() {
|
||||
dbProcess.Signal(os.Interrupt)
|
||||
Eventually(dbProcess.Wait(), 10*time.Second).Should(Receive())
|
||||
})
|
||||
|
||||
return none{}
|
||||
}
|
||||
|
||||
func InitializeRunnerForGinkgo(runner *Runner, dbProcess *ifrit.Process) {
|
||||
*runner = Runner{
|
||||
Port: 5433 + GinkgoParallelNode(),
|
||||
}
|
||||
*dbProcess = ifrit.Invoke(*runner)
|
||||
runner.InitializeTestDBTemplate()
|
||||
}
|
||||
|
||||
func FinalizeRunnerForGinkgo(runner *Runner, dbProcess *ifrit.Process) {
|
||||
(*dbProcess).Signal(os.Interrupt)
|
||||
Eventually((*dbProcess).Wait(), 10*time.Second).Should(Receive())
|
||||
}
|
|
@ -48,13 +48,7 @@ var _ = BeforeSuite(func() {
|
|||
Expect(err).ToNot(HaveOccurred())
|
||||
}
|
||||
|
||||
postgresRunner = postgresrunner.Runner{
|
||||
Port: 5433 + GinkgoParallelNode(),
|
||||
}
|
||||
|
||||
dbProcess = ifrit.Invoke(postgresRunner)
|
||||
|
||||
postgresRunner.InitializeTestDBTemplate()
|
||||
postgresrunner.InitializeRunnerForGinkgo(&postgresRunner, &dbProcess)
|
||||
})
|
||||
|
||||
var _ = BeforeEach(func() {
|
||||
|
@ -74,8 +68,7 @@ var _ = AfterEach(func() {
|
|||
})
|
||||
|
||||
var _ = AfterSuite(func() {
|
||||
dbProcess.Signal(os.Interrupt)
|
||||
<-dbProcess.Wait()
|
||||
postgresrunner.FinalizeRunnerForGinkgo(&postgresRunner, &dbProcess)
|
||||
|
||||
if exporter != nil {
|
||||
exporter.Flush()
|
||||
|
|
|
@ -38,10 +38,8 @@ var _ = Describe("Web Command", func() {
|
|||
|
||||
BeforeEach(func() {
|
||||
hostKeyFile, hostPubKeyFile, _, _ = generateSSHKeypair()
|
||||
postgresRunner = postgresrunner.Runner{
|
||||
Port: 5433 + GinkgoParallelNode(),
|
||||
}
|
||||
dbProcess = ifrit.Invoke(postgresRunner)
|
||||
postgresrunner.InitializeRunnerForGinkgo(&postgresRunner, &dbProcess)
|
||||
|
||||
postgresRunner.CreateEmptyTestDB()
|
||||
|
||||
concourseCommand = exec.Command(
|
||||
|
@ -82,9 +80,7 @@ var _ = Describe("Web Command", func() {
|
|||
<-concourseProcess.Wait()
|
||||
postgresRunner.DropTestDB()
|
||||
|
||||
dbProcess.Signal(os.Interrupt)
|
||||
err := <-dbProcess.Wait()
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
postgresrunner.FinalizeRunnerForGinkgo(&postgresRunner, &dbProcess)
|
||||
os.Remove(hostKeyFile)
|
||||
os.Remove(hostPubKeyFile)
|
||||
os.Remove(filepath.Dir(hostPubKeyFile))
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
package dexserver_test
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/concourse/concourse/atc/postgresrunner"
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
"github.com/tedsuo/ifrit"
|
||||
|
||||
"testing"
|
||||
)
|
||||
|
@ -17,15 +14,8 @@ func TestDexServer(t *testing.T) {
|
|||
}
|
||||
|
||||
var postgresRunner postgresrunner.Runner
|
||||
var dbProcess ifrit.Process
|
||||
|
||||
var _ = BeforeSuite(func() {
|
||||
postgresRunner = postgresrunner.Runner{
|
||||
Port: 5433 + GinkgoParallelNode(),
|
||||
}
|
||||
dbProcess = ifrit.Invoke(postgresRunner)
|
||||
postgresRunner.InitializeTestDBTemplate()
|
||||
})
|
||||
var _ = postgresrunner.GinkgoRunner(&postgresRunner)
|
||||
|
||||
var _ = BeforeEach(func() {
|
||||
postgresRunner.CreateTestDBFromTemplate()
|
||||
|
@ -34,8 +24,3 @@ var _ = BeforeEach(func() {
|
|||
var _ = AfterEach(func() {
|
||||
postgresRunner.DropTestDB()
|
||||
})
|
||||
|
||||
var _ = AfterSuite(func() {
|
||||
dbProcess.Signal(os.Interrupt)
|
||||
<-dbProcess.Wait()
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue