File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -256,6 +256,9 @@ def initialize(scenarios:, formatter:)
256256 end
257257
258258 def run
259+ original_append_retries = En57 . configuration . append_retries
260+ En57 . configuration . append_retries = 100
261+
259262 results =
260263 @scenarios . map do |instance_name , mk_scenario |
261264 PgEphemeral . with_server ( instance_name :) do |server |
@@ -283,6 +286,8 @@ def run
283286 end
284287
285288 @formatter . format ( results )
289+ ensure
290+ En57 . configuration . append_retries = original_append_retries
286291 end
287292 end
288293
Original file line number Diff line number Diff line change @@ -122,6 +122,47 @@ def run(measure, retries)
122122 assert_equal ( [ 3 , 3 ] , formatted_results . map ( &:retry_count ) )
123123 end
124124
125+ def test_runner_sets_append_retries_during_benchmark
126+ formatter = Object . new
127+ formatter . define_singleton_method ( :format ) { |_results | "formatted" }
128+ server = Data . define ( :url ) . new ( "postgres://example" )
129+ append_retries = nil
130+ original_append_retries = En57 . configuration . append_retries
131+ En57 . configuration . append_retries = 7
132+ scenario =
133+ Class
134+ . new do
135+ def initialize ( capture )
136+ @capture = capture
137+ end
138+
139+ def name = "scenario"
140+ def runs = 1
141+ def run ( measure , _retries )
142+ @capture . call ( En57 . configuration . append_retries )
143+ measure . call { nil }
144+ end
145+ end
146+ . new ( -> ( value ) { append_retries = value } )
147+
148+ PgEphemeral . stub (
149+ :with_server ,
150+ -> ( instance_name :, &block ) { block . call ( server ) } ,
151+ ) do
152+ Runner . new (
153+ formatter :,
154+ scenarios : {
155+ "instance" => -> ( _database_url , _warmup_runs ) { scenario } ,
156+ } ,
157+ ) . run
158+ end
159+
160+ assert_equal ( 100 , append_retries )
161+ assert_equal ( 7 , En57 . configuration . append_retries )
162+ ensure
163+ En57 . configuration . append_retries = original_append_retries
164+ end
165+
125166 def test_runner_uses_concurrent_array_for_samples
126167 formatter = Object . new
127168 formatted_results = nil
You can’t perform that action at this time.
0 commit comments