forked from cerc-io/ipld-eth-server
60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
package gexec_test
|
|
|
|
import (
|
|
"os"
|
|
|
|
. "github.com/onsi/ginkgo"
|
|
. "github.com/onsi/gomega"
|
|
"github.com/onsi/gomega/gexec"
|
|
)
|
|
|
|
var packagePath = "./_fixture/firefly"
|
|
|
|
var _ = Describe(".Build", func() {
|
|
Context("when there have been previous calls to Build", func() {
|
|
BeforeEach(func() {
|
|
_, err := gexec.Build(packagePath)
|
|
Ω(err).ShouldNot(HaveOccurred())
|
|
})
|
|
|
|
It("compiles the specified package", func() {
|
|
compiledPath, err := gexec.Build(packagePath)
|
|
Ω(err).ShouldNot(HaveOccurred())
|
|
Ω(compiledPath).Should(BeAnExistingFile())
|
|
})
|
|
|
|
Context("and CleanupBuildArtifacts has been called", func() {
|
|
BeforeEach(func() {
|
|
gexec.CleanupBuildArtifacts()
|
|
})
|
|
|
|
It("compiles the specified package", func() {
|
|
var err error
|
|
fireflyPath, err = gexec.Build(packagePath)
|
|
Ω(err).ShouldNot(HaveOccurred())
|
|
Ω(fireflyPath).Should(BeAnExistingFile())
|
|
})
|
|
})
|
|
})
|
|
})
|
|
|
|
var _ = Describe(".BuildWithEnvironment", func() {
|
|
var err error
|
|
env := []string{
|
|
"GOOS=linux",
|
|
"GOARCH=amd64",
|
|
}
|
|
|
|
It("compiles the specified package with the specified env vars", func() {
|
|
compiledPath, err := gexec.BuildWithEnvironment(packagePath, env)
|
|
Ω(err).ShouldNot(HaveOccurred())
|
|
Ω(compiledPath).Should(BeAnExistingFile())
|
|
})
|
|
|
|
It("returns the environment to a good state", func() {
|
|
_, err = gexec.BuildWithEnvironment(packagePath, env)
|
|
Ω(err).ShouldNot(HaveOccurred())
|
|
Ω(os.Environ()).ShouldNot(ContainElement("GOOS=linux"))
|
|
})
|
|
})
|