ipld-eth-server/vendor/github.com/onsi/ginkgo/integration/integration_suite_test.go
2017-10-19 09:22:12 -05:00

92 lines
1.9 KiB
Go

package integration_test
import (
"io"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
"testing"
"time"
)
var tmpDir string
var pathToGinkgo string
func TestIntegration(t *testing.T) {
SetDefaultEventuallyTimeout(15 * time.Second)
RegisterFailHandler(Fail)
RunSpecs(t, "Integration Suite")
}
var _ = SynchronizedBeforeSuite(func() []byte {
pathToGinkgo, err := gexec.Build("github.com/onsi/ginkgo/ginkgo")
Ω(err).ShouldNot(HaveOccurred())
return []byte(pathToGinkgo)
}, func(computedPathToGinkgo []byte) {
pathToGinkgo = string(computedPathToGinkgo)
})
var _ = BeforeEach(func() {
var err error
tmpDir, err = ioutil.TempDir("", "ginkgo-run")
Ω(err).ShouldNot(HaveOccurred())
})
var _ = AfterEach(func() {
err := os.RemoveAll(tmpDir)
Ω(err).ShouldNot(HaveOccurred())
})
var _ = SynchronizedAfterSuite(func() {}, func() {
gexec.CleanupBuildArtifacts()
})
func tmpPath(destination string) string {
return filepath.Join(tmpDir, destination)
}
func copyIn(fixture string, destination string) {
err := os.MkdirAll(destination, 0777)
Ω(err).ShouldNot(HaveOccurred())
filepath.Walk(filepath.Join("_fixtures", fixture), func(path string, info os.FileInfo, err error) error {
if info.IsDir() {
return nil
}
base := filepath.Base(path)
src, err := os.Open(path)
Ω(err).ShouldNot(HaveOccurred())
defer src.Close()
dst, err := os.Create(filepath.Join(destination, base))
Ω(err).ShouldNot(HaveOccurred())
defer dst.Close()
_, err = io.Copy(dst, src)
Ω(err).ShouldNot(HaveOccurred())
return nil
})
}
func ginkgoCommand(dir string, args ...string) *exec.Cmd {
cmd := exec.Command(pathToGinkgo, args...)
cmd.Dir = dir
return cmd
}
func startGinkgo(dir string, args ...string) *gexec.Session {
cmd := ginkgoCommand(dir, args...)
session, err := gexec.Start(cmd, GinkgoWriter, GinkgoWriter)
Ω(err).ShouldNot(HaveOccurred())
return session
}