(b *testing.B, fname, code string, args []string, expected string, records *storage.Records)
| 85 | } |
| 86 | |
| 87 | func benchVM(b *testing.B, fname, code string, args []string, expected string, records *storage.Records) { |
| 88 | oracle := pb.Oracle{ |
| 89 | Name: fname, |
| 90 | Code: code, |
| 91 | } |
| 92 | compiled, err := compile(&oracle) |
| 93 | if err != nil { |
| 94 | b.Fatal(err) |
| 95 | } |
| 96 | |
| 97 | exp := []byte(nil) |
| 98 | if expected != "" { |
| 99 | exp = []byte(expected) |
| 100 | } |
| 101 | |
| 102 | b.ResetTimer() |
| 103 | for i := 0; i < b.N; i++ { |
| 104 | if ctx, ret, err := compiled.Run(records, args); err != nil { |
| 105 | b.Fatal(err) |
| 106 | } else if ctx.IsError() { |
| 107 | b.Fatal(ctx.Message()) |
| 108 | } else if exp != nil && !bytes.Equal(ret, exp) { |
| 109 | b.Fatalf("expected '%s', got '%s'", expected, ret) |
| 110 | } |
| 111 | } |
| 112 | } |
| 113 | |
| 114 | func BenchmarkRunDummy(b *testing.B) { |
| 115 | benchVM(b, "dummy", dummyFunc, nil, "", nil) |
no test coverage detected