mirror of
				https://github.com/go-delve/delve.git
				synced 2025-10-31 02:36:18 +08:00 
			
		
		
		
	tests: add benchmark for conditional breakpoints
This commit is contained in:
		
							
								
								
									
										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) | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 aarzilli
					aarzilli