*: Closer close and use assertNoError for testcase (#2204)
This commit is contained in:
parent
9b7bc63886
commit
0bbf9e4eaf
@ -13,12 +13,13 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalln(err)
|
log.Fatalln(err)
|
||||||
}
|
}
|
||||||
|
defer reader.Close()
|
||||||
|
|
||||||
scanner := bufio.NewScanner(reader)
|
scanner := bufio.NewScanner(reader)
|
||||||
go func() {
|
go func() {
|
||||||
for scanner.Scan() {
|
for scanner.Scan() {
|
||||||
fmt.Println(scanner.Text())
|
fmt.Println(scanner.Text())
|
||||||
}
|
}
|
||||||
reader.Close()
|
|
||||||
}()
|
}()
|
||||||
cmd.Start()
|
cmd.Start()
|
||||||
cmd.Wait()
|
cmd.Wait()
|
||||||
|
@ -93,7 +93,9 @@ func TestBuild(t *testing.T) {
|
|||||||
cmd.Dir = buildtestdir
|
cmd.Dir = buildtestdir
|
||||||
stderr, err := cmd.StderrPipe()
|
stderr, err := cmd.StderrPipe()
|
||||||
assertNoError(err, t, "stderr pipe")
|
assertNoError(err, t, "stderr pipe")
|
||||||
cmd.Start()
|
defer stderr.Close()
|
||||||
|
|
||||||
|
assertNoError(cmd.Start(), t, "dlv debug")
|
||||||
|
|
||||||
scan := bufio.NewScanner(stderr)
|
scan := bufio.NewScanner(stderr)
|
||||||
// wait for the debugger to start
|
// wait for the debugger to start
|
||||||
@ -134,15 +136,13 @@ func testOutput(t *testing.T, dlvbin, output string, delveCmds []string) (stdout
|
|||||||
cmd := exec.Command(c[0], c[1:]...)
|
cmd := exec.Command(c[0], c[1:]...)
|
||||||
cmd.Dir = buildtestdir
|
cmd.Dir = buildtestdir
|
||||||
stdin, err := cmd.StdinPipe()
|
stdin, err := cmd.StdinPipe()
|
||||||
if err != nil {
|
assertNoError(err, t, "stdin pipe")
|
||||||
t.Fatal(err)
|
defer stdin.Close()
|
||||||
}
|
|
||||||
cmd.Stdout = &stdoutBuf
|
cmd.Stdout = &stdoutBuf
|
||||||
cmd.Stderr = &stderrBuf
|
cmd.Stderr = &stderrBuf
|
||||||
|
|
||||||
if err := cmd.Start(); err != nil {
|
assertNoError(cmd.Start(), t, "dlv debug with output")
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Give delve some time to compile and write the binary.
|
// Give delve some time to compile and write the binary.
|
||||||
foundIt := false
|
foundIt := false
|
||||||
@ -231,9 +231,9 @@ func TestContinue(t *testing.T) {
|
|||||||
cmd.Dir = buildtestdir
|
cmd.Dir = buildtestdir
|
||||||
stdout, err := cmd.StdoutPipe()
|
stdout, err := cmd.StdoutPipe()
|
||||||
assertNoError(err, t, "stderr pipe")
|
assertNoError(err, t, "stderr pipe")
|
||||||
if err := cmd.Start(); err != nil {
|
defer stdout.Close()
|
||||||
t.Fatalf("could not start headless instance: %v", err)
|
|
||||||
}
|
assertNoError(cmd.Start(), t, "start headless instance")
|
||||||
|
|
||||||
scan := bufio.NewScanner(stdout)
|
scan := bufio.NewScanner(stdout)
|
||||||
// wait for the debugger to start
|
// wait for the debugger to start
|
||||||
@ -276,9 +276,9 @@ func TestChildProcessExitWhenNoDebugInfo(t *testing.T) {
|
|||||||
cmd := exec.Command("ps", "-aux")
|
cmd := exec.Command("ps", "-aux")
|
||||||
stdout, err := cmd.StdoutPipe()
|
stdout, err := cmd.StdoutPipe()
|
||||||
assertNoError(err, t, "stderr pipe")
|
assertNoError(err, t, "stderr pipe")
|
||||||
if err := cmd.Start(); err != nil {
|
defer stdout.Close()
|
||||||
t.Fatalf("`ps -aux` failed: %v", err)
|
|
||||||
}
|
assertNoError(cmd.Start(), t, "start `ps -aux`")
|
||||||
|
|
||||||
var foundFlag bool
|
var foundFlag bool
|
||||||
scan := bufio.NewScanner(stdout)
|
scan := bufio.NewScanner(stdout)
|
||||||
@ -570,11 +570,12 @@ func TestDap(t *testing.T) {
|
|||||||
cmd := exec.Command(dlvbin, "dap", "--log-output=dap", "--log", "--listen", listenAddr)
|
cmd := exec.Command(dlvbin, "dap", "--log-output=dap", "--log", "--listen", listenAddr)
|
||||||
stdout, err := cmd.StdoutPipe()
|
stdout, err := cmd.StdoutPipe()
|
||||||
assertNoError(err, t, "stdout pipe")
|
assertNoError(err, t, "stdout pipe")
|
||||||
|
defer stdout.Close()
|
||||||
stderr, err := cmd.StderrPipe()
|
stderr, err := cmd.StderrPipe()
|
||||||
assertNoError(err, t, "stderr pipe")
|
assertNoError(err, t, "stderr pipe")
|
||||||
if err := cmd.Start(); err != nil {
|
defer stderr.Close()
|
||||||
t.Fatalf("could not start dap instance: %v", err)
|
|
||||||
}
|
assertNoError(cmd.Start(), t, "start dap instance")
|
||||||
|
|
||||||
scanOut := bufio.NewScanner(stdout)
|
scanOut := bufio.NewScanner(stdout)
|
||||||
scanErr := bufio.NewScanner(stderr)
|
scanErr := bufio.NewScanner(stderr)
|
||||||
@ -611,18 +612,16 @@ func TestTrace(t *testing.T) {
|
|||||||
fixtures := protest.FindFixturesDir()
|
fixtures := protest.FindFixturesDir()
|
||||||
cmd := exec.Command(dlvbin, "trace", "--output", filepath.Join(tmpdir, "__debug"), filepath.Join(fixtures, "issue573.go"), "foo")
|
cmd := exec.Command(dlvbin, "trace", "--output", filepath.Join(tmpdir, "__debug"), filepath.Join(fixtures, "issue573.go"), "foo")
|
||||||
rdr, err := cmd.StderrPipe()
|
rdr, err := cmd.StderrPipe()
|
||||||
if err != nil {
|
assertNoError(err, t, "stderr pipe")
|
||||||
t.Fatal(err)
|
defer rdr.Close()
|
||||||
}
|
|
||||||
cmd.Dir = filepath.Join(fixtures, "buildtest")
|
cmd.Dir = filepath.Join(fixtures, "buildtest")
|
||||||
err = cmd.Start()
|
|
||||||
if err != nil {
|
assertNoError(cmd.Start(), t, "running trace")
|
||||||
t.Fatalf("error running trace: %v", err)
|
|
||||||
}
|
|
||||||
output, err := ioutil.ReadAll(rdr)
|
output, err := ioutil.ReadAll(rdr)
|
||||||
if err != nil {
|
assertNoError(err, t, "ReadAll")
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if !bytes.Contains(output, expected) {
|
if !bytes.Contains(output, expected) {
|
||||||
t.Fatalf("expected:\n%s\ngot:\n%s", string(expected), string(output))
|
t.Fatalf("expected:\n%s\ngot:\n%s", string(expected), string(output))
|
||||||
}
|
}
|
||||||
@ -646,9 +645,8 @@ func TestTracePid(t *testing.T) {
|
|||||||
// make process run
|
// make process run
|
||||||
fix := protest.BuildFixture("issue2023", 0)
|
fix := protest.BuildFixture("issue2023", 0)
|
||||||
targetCmd := exec.Command(fix.Path)
|
targetCmd := exec.Command(fix.Path)
|
||||||
if err := targetCmd.Start(); err != nil {
|
assertNoError(targetCmd.Start(), t, "execute issue2023")
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if targetCmd.Process == nil || targetCmd.Process.Pid == 0 {
|
if targetCmd.Process == nil || targetCmd.Process.Pid == 0 {
|
||||||
t.Fatal("expected target process runninng")
|
t.Fatal("expected target process runninng")
|
||||||
}
|
}
|
||||||
@ -657,17 +655,14 @@ func TestTracePid(t *testing.T) {
|
|||||||
// dlv attach the process by pid
|
// dlv attach the process by pid
|
||||||
cmd := exec.Command(dlvbin, "trace", "-p", strconv.Itoa(targetCmd.Process.Pid), "main.A")
|
cmd := exec.Command(dlvbin, "trace", "-p", strconv.Itoa(targetCmd.Process.Pid), "main.A")
|
||||||
rdr, err := cmd.StderrPipe()
|
rdr, err := cmd.StderrPipe()
|
||||||
if err != nil {
|
assertNoError(err, t, "stderr pipe")
|
||||||
t.Fatal(err)
|
defer rdr.Close()
|
||||||
}
|
|
||||||
err = cmd.Start()
|
assertNoError(cmd.Start(), t, "running trace")
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("error running trace: %#v", err)
|
|
||||||
}
|
|
||||||
output, err := ioutil.ReadAll(rdr)
|
output, err := ioutil.ReadAll(rdr)
|
||||||
if err != nil {
|
assertNoError(err, t, "ReadAll")
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if !bytes.Contains(output, expected) {
|
if !bytes.Contains(output, expected) {
|
||||||
t.Fatalf("expected:\n%s\ngot:\n%s", string(expected), string(output))
|
t.Fatalf("expected:\n%s\ngot:\n%s", string(expected), string(output))
|
||||||
}
|
}
|
||||||
@ -685,20 +680,18 @@ func TestTraceBreakpointExists(t *testing.T) {
|
|||||||
// TODO: Perhaps we shouldn't be setting these default breakpoints in trace mode, however.
|
// TODO: Perhaps we shouldn't be setting these default breakpoints in trace mode, however.
|
||||||
cmd := exec.Command(dlvbin, "trace", "--output", filepath.Join(tmpdir, "__debug"), filepath.Join(fixtures, "issue573.go"), "runtime.*")
|
cmd := exec.Command(dlvbin, "trace", "--output", filepath.Join(tmpdir, "__debug"), filepath.Join(fixtures, "issue573.go"), "runtime.*")
|
||||||
rdr, err := cmd.StderrPipe()
|
rdr, err := cmd.StderrPipe()
|
||||||
if err != nil {
|
assertNoError(err, t, "stderr pipe")
|
||||||
t.Fatal(err)
|
defer rdr.Close()
|
||||||
}
|
|
||||||
cmd.Dir = filepath.Join(fixtures, "buildtest")
|
cmd.Dir = filepath.Join(fixtures, "buildtest")
|
||||||
err = cmd.Start()
|
|
||||||
if err != nil {
|
assertNoError(cmd.Start(), t, "running trace")
|
||||||
t.Fatalf("error running trace: %v", err)
|
|
||||||
}
|
|
||||||
defer cmd.Wait()
|
defer cmd.Wait()
|
||||||
|
|
||||||
output, err := ioutil.ReadAll(rdr)
|
output, err := ioutil.ReadAll(rdr)
|
||||||
if err != nil {
|
assertNoError(err, t, "ReadAll")
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if bytes.Contains(output, []byte("Breakpoint exists")) {
|
if bytes.Contains(output, []byte("Breakpoint exists")) {
|
||||||
t.Fatal("Breakpoint exists errors should be ignored")
|
t.Fatal("Breakpoint exists errors should be ignored")
|
||||||
}
|
}
|
||||||
@ -711,20 +704,17 @@ func TestTracePrintStack(t *testing.T) {
|
|||||||
fixtures := protest.FindFixturesDir()
|
fixtures := protest.FindFixturesDir()
|
||||||
cmd := exec.Command(dlvbin, "trace", "--output", filepath.Join(tmpdir, "__debug"), "--stack", "2", filepath.Join(fixtures, "issue573.go"), "foo")
|
cmd := exec.Command(dlvbin, "trace", "--output", filepath.Join(tmpdir, "__debug"), "--stack", "2", filepath.Join(fixtures, "issue573.go"), "foo")
|
||||||
rdr, err := cmd.StderrPipe()
|
rdr, err := cmd.StderrPipe()
|
||||||
if err != nil {
|
assertNoError(err, t, "stderr pipe")
|
||||||
t.Fatal(err)
|
defer rdr.Close()
|
||||||
}
|
|
||||||
cmd.Dir = filepath.Join(fixtures, "buildtest")
|
cmd.Dir = filepath.Join(fixtures, "buildtest")
|
||||||
err = cmd.Start()
|
assertNoError(cmd.Start(), t, "running trace")
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("error running trace: %v", err)
|
|
||||||
}
|
|
||||||
defer cmd.Wait()
|
defer cmd.Wait()
|
||||||
|
|
||||||
output, err := ioutil.ReadAll(rdr)
|
output, err := ioutil.ReadAll(rdr)
|
||||||
if err != nil {
|
assertNoError(err, t, "ReadAll")
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if !bytes.Contains(output, []byte("Stack:")) && !bytes.Contains(output, []byte("main.main")) {
|
if !bytes.Contains(output, []byte("Stack:")) && !bytes.Contains(output, []byte("main.main")) {
|
||||||
t.Fatal("stacktrace not printed")
|
t.Fatal("stacktrace not printed")
|
||||||
}
|
}
|
||||||
|
@ -207,8 +207,10 @@ const (
|
|||||||
targetCmd = "target extended-remote "
|
targetCmd = "target extended-remote "
|
||||||
)
|
)
|
||||||
|
|
||||||
func rrStderrParser(stderr io.Reader, initch chan<- rrInit, quiet bool) {
|
func rrStderrParser(stderr io.ReadCloser, initch chan<- rrInit, quiet bool) {
|
||||||
rd := bufio.NewReader(stderr)
|
rd := bufio.NewReader(stderr)
|
||||||
|
defer stderr.Close()
|
||||||
|
|
||||||
for {
|
for {
|
||||||
line, err := rd.ReadString('\n')
|
line, err := rd.ReadString('\n')
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user