tests: add benchmark for conditional breakpoints
This commit is contained in:
parent
279c29a37c
commit
fc3e01bb5b
16
_fixtures/issue1549.go
Normal file
16
_fixtures/issue1549.go
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
sum := int64(0)
|
||||||
|
start := time.Now()
|
||||||
|
for value := int64(0); value < 10000; value++ {
|
||||||
|
sum += value
|
||||||
|
}
|
||||||
|
elapsed := time.Since(start)
|
||||||
|
fmt.Printf("Sum: %d\nTook %s\n", sum, elapsed)
|
||||||
|
}
|
@ -190,7 +190,7 @@ func setFunctionBreakpoint(p *proc.Target, t testing.TB, fname string) *proc.Bre
|
|||||||
return bp
|
return bp
|
||||||
}
|
}
|
||||||
|
|
||||||
func setFileBreakpoint(p *proc.Target, t *testing.T, path string, lineno int) *proc.Breakpoint {
|
func setFileBreakpoint(p *proc.Target, t testing.TB, path string, lineno int) *proc.Breakpoint {
|
||||||
_, f, l, _ := runtime.Caller(1)
|
_, f, l, _ := runtime.Caller(1)
|
||||||
f = filepath.Base(f)
|
f = filepath.Base(f)
|
||||||
|
|
||||||
@ -4557,3 +4557,19 @@ func TestIssue1795(t *testing.T) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BenchmarkConditionalBreakpoints(b *testing.B) {
|
||||||
|
b.N = 1
|
||||||
|
withTestProcess("issue1549", b, func(p *proc.Target, fixture protest.Fixture) {
|
||||||
|
bp := setFileBreakpoint(p, b, fixture.Source, 12)
|
||||||
|
bp.Cond = &ast.BinaryExpr{
|
||||||
|
Op: token.EQL,
|
||||||
|
X: &ast.Ident{Name: "value"},
|
||||||
|
Y: &ast.BasicLit{Kind: token.INT, Value: "-1"},
|
||||||
|
}
|
||||||
|
err := proc.Continue(p)
|
||||||
|
if _, exited := err.(proc.ErrProcessExited); !exited {
|
||||||
|
b.Fatalf("Unexpected error on Continue(): %v", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user