github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/scheduler/algorithm/suite_test.go (about) 1 package algorithm_test 2 3 import ( 4 "os" 5 "testing" 6 7 . "github.com/onsi/ginkgo" 8 . "github.com/onsi/gomega" 9 "github.com/tedsuo/ifrit" 10 "go.opentelemetry.io/otel/exporters/trace/jaeger" 11 12 "github.com/pf-qiu/concourse/v6/atc/db" 13 "github.com/pf-qiu/concourse/v6/atc/db/lock" 14 "github.com/pf-qiu/concourse/v6/atc/metric" 15 "github.com/pf-qiu/concourse/v6/atc/postgresrunner" 16 "github.com/pf-qiu/concourse/v6/tracing" 17 ) 18 19 var ( 20 postgresRunner postgresrunner.Runner 21 dbProcess ifrit.Process 22 23 lockFactory lock.LockFactory 24 teamFactory db.TeamFactory 25 26 dbConn db.Conn 27 28 exporter *jaeger.Exporter 29 ) 30 31 func TestAlgorithm(t *testing.T) { 32 RegisterFailHandler(Fail) 33 RunSpecs(t, "Algorithm Suite") 34 } 35 36 var _ = BeforeSuite(func() { 37 jaegerURL := os.Getenv("JAEGER_URL") 38 39 if jaegerURL != "" { 40 c := tracing.Config{ 41 Jaeger: tracing.Jaeger{ 42 Endpoint: jaegerURL + "/api/traces", 43 Service: "algorithm_test", 44 }, 45 } 46 47 err := c.Prepare() 48 Expect(err).ToNot(HaveOccurred()) 49 } 50 51 postgresRunner = postgresrunner.Runner{ 52 Port: 5433 + GinkgoParallelNode(), 53 } 54 55 dbProcess = ifrit.Invoke(postgresRunner) 56 57 postgresRunner.CreateTestDB() 58 }) 59 60 var _ = BeforeEach(func() { 61 postgresRunner.Truncate() 62 63 dbConn = postgresRunner.OpenConn() 64 65 lockFactory = lock.NewLockFactory(postgresRunner.OpenSingleton(), metric.LogLockAcquired, metric.LogLockReleased) 66 teamFactory = db.NewTeamFactory(dbConn, lockFactory) 67 }) 68 69 var _ = AfterEach(func() { 70 err := dbConn.Close() 71 Expect(err).NotTo(HaveOccurred()) 72 }) 73 74 var _ = AfterSuite(func() { 75 dbProcess.Signal(os.Interrupt) 76 <-dbProcess.Wait() 77 78 if exporter != nil { 79 exporter.Flush() 80 } 81 })