mirror of
https://github.com/go-delve/delve.git
synced 2025-11-02 21:40:22 +08:00
tests: fix TestBuild on macOS, windows
This commit is contained in:
6
Makefile
6
Makefile
@ -37,10 +37,8 @@ endif
|
|||||||
build: check-cert
|
build: check-cert
|
||||||
go build $(BUILD_FLAGS) github.com/derekparker/delve/cmd/dlv
|
go build $(BUILD_FLAGS) github.com/derekparker/delve/cmd/dlv
|
||||||
ifdef DARWIN
|
ifdef DARWIN
|
||||||
ifneq "$(GOBIN)" ""
|
ifdef CERT
|
||||||
codesign -s "$(CERT)" $(GOBIN)/dlv
|
codesign -s "$(CERT)" ./dlv
|
||||||
else
|
|
||||||
codesign -s "$(CERT)" $(GOPATH)/bin/dlv
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@ -22,25 +22,34 @@ func assertNoError(err error, t testing.TB, s string) {
|
|||||||
|
|
||||||
func TestBuild(t *testing.T) {
|
func TestBuild(t *testing.T) {
|
||||||
const listenAddr = "localhost:40573"
|
const listenAddr = "localhost:40573"
|
||||||
cmd := exec.Command("go", "build", "github.com/derekparker/delve/cmd/dlv")
|
makefilepath := filepath.Join(os.Getenv("GOPATH"), "src", "github.com", "derekparker", "delve", "Makefile")
|
||||||
assertNoError(cmd.Run(), t, "go build")
|
t.Logf("makefile: %q", makefilepath)
|
||||||
|
var err error
|
||||||
|
for _, make := range []string{"make", "mingw32-make"} {
|
||||||
|
err = exec.Command(make, "-f", makefilepath, "build").Run()
|
||||||
|
if err == nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assertNoError(err, t, "make")
|
||||||
wd, _ := os.Getwd()
|
wd, _ := os.Getwd()
|
||||||
dlvbin := filepath.Join(wd, "dlv")
|
dlvbin := filepath.Join(wd, "dlv")
|
||||||
|
|
||||||
defer os.Remove(dlvbin)
|
defer os.Remove(dlvbin)
|
||||||
|
|
||||||
fixtures := protest.FindFixturesDir()
|
fixtures := protest.FindFixturesDir()
|
||||||
|
|
||||||
buildtestdir := filepath.Join(fixtures, "buildtest")
|
buildtestdir := filepath.Join(fixtures, "buildtest")
|
||||||
|
|
||||||
cmd = exec.Command(dlvbin, "debug", "--headless=true", "--listen="+listenAddr, "--api-version=2")
|
cmd := exec.Command(dlvbin, "debug", "--headless=true", "--listen="+listenAddr, "--api-version=2")
|
||||||
cmd.Dir = buildtestdir
|
cmd.Dir = buildtestdir
|
||||||
stdout, err := cmd.StdoutPipe()
|
stdout, err := cmd.StdoutPipe()
|
||||||
assertNoError(err, t, "stdout pipe")
|
assertNoError(err, t, "stdout pipe")
|
||||||
cmd.Start()
|
cmd.Start()
|
||||||
defer func() {
|
defer func() {
|
||||||
cmd.Process.Signal(os.Interrupt)
|
cmd.Process.Signal(os.Interrupt)
|
||||||
cmd.Wait()
|
if runtime.GOOS != "windows" {
|
||||||
|
cmd.Wait()
|
||||||
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
scan := bufio.NewScanner(stdout)
|
scan := bufio.NewScanner(stdout)
|
||||||
|
|||||||
Reference in New Issue
Block a user