debug: Convert demo into a test.
Change-Id: I266f67b4404ce0d0d7838e3c40f2f2b710d635a1
Reviewed-on: https://go-review.googlesource.com/2688
Reviewed-by: Rob Pike <r@golang.org>
diff --git a/ogle/demo/ogler/main.go b/ogle/demo/ogler/ogler_test.go
similarity index 85%
rename from ogle/demo/ogler/main.go
rename to ogle/demo/ogler/ogler_test.go
index 0edc578..ae726db 100644
--- a/ogle/demo/ogler/main.go
+++ b/ogle/demo/ogler/ogler_test.go
@@ -5,11 +5,14 @@
// Demo program that starts another program and calls Ogle library functions
// to debug it.
-package main
+package ogler
import (
"fmt"
"log"
+ "os"
+ "os/exec"
+ "testing"
"golang.org/x/debug/ogle/program/client"
)
@@ -94,8 +97,32 @@
return j == len(s)
}
-func main() {
- prog, err := client.Run("localhost", "bin/tracee")
+func run(t *testing.T, name string, args ...string) {
+ cmd := exec.Command(name, args...)
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
+ err := cmd.Run()
+ if err != nil {
+ t.Fatal(err)
+ }
+}
+
+const (
+ proxySrc = "golang.org/x/debug/ogle/cmd/ogleproxy"
+ proxyBinary = "./ogleproxy"
+ traceeSrc = "golang.org/x/debug/ogle/demo/tracee"
+ traceeBinary = "./tracee"
+)
+
+func TestBreakAndEval(t *testing.T) {
+ run(t, "go", "build", "-o", proxyBinary, proxySrc)
+ defer os.Remove(proxyBinary)
+
+ run(t, "go", "build", "-o", traceeBinary, traceeSrc)
+ defer os.Remove(traceeBinary)
+
+ client.OgleproxyCmd = proxyBinary
+ prog, err := client.Run("localhost", traceeBinary)
if err != nil {
log.Fatalf("Run: %v", err)
}