From dae5550f88777a49b90c87b6892e6acc3df9f672 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Tue, 2 Feb 2021 08:54:52 -0500 Subject: [PATCH 1/2] RUBY-2484 store failures as entities --- spec/runners/unified/support_operations.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/spec/runners/unified/support_operations.rb b/spec/runners/unified/support_operations.rb index 5f718d6809..41415408a3 100644 --- a/spec/runners/unified/support_operations.rb +++ b/spec/runners/unified/support_operations.rb @@ -161,6 +161,10 @@ def _loop(op) entities.set(:error_list, store_errors, []) end + if store_failures = args.use('storeFailuresAsEntity') + entities.set(:failure_list, store_failures, []) + end + store_iterations = args.use('storeIterationsAsEntity') iterations = 0 @@ -168,6 +172,22 @@ def _loop(op) break if stop? begin execute_operations(ops.map(&:dup)) + rescue Unified::Error::ResultMismatch => e + if store_failures + STDERR.puts "Failure: #{e.class}: #{e}" + entities.get(:failure_list, store_failures) << { + error: "#{e.class}: #{e}", + time: Time.now.to_f, + } + elsif store_errors + STDERR.puts "Failure: #{e.class}: #{e} (reporting as error)" + entities.get(:error_list, store_errors) << { + error: "#{e.class}: #{e}", + time: Time.now.to_f, + } + else + raise + end rescue => e if store_errors STDERR.puts "Error: #{e.class}: #{e}" From a08f6ab9112dc54f80b1af508185a72007a7b9e4 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Tue, 2 Feb 2021 08:57:44 -0500 Subject: [PATCH 2/2] store successes for astrolabe validator --- spec/runners/unified/support_operations.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/spec/runners/unified/support_operations.rb b/spec/runners/unified/support_operations.rb index 41415408a3..293f992948 100644 --- a/spec/runners/unified/support_operations.rb +++ b/spec/runners/unified/support_operations.rb @@ -167,11 +167,16 @@ def _loop(op) store_iterations = args.use('storeIterationsAsEntity') iterations = 0 + store_successes = args.use('storeSuccessesAsEntity') + successes = 0 loop do break if stop? begin - execute_operations(ops.map(&:dup)) + ops.map(&:dup).each do |op| + execute_operation(op) + successes += 1 + end rescue Unified::Error::ResultMismatch => e if store_failures STDERR.puts "Failure: #{e.class}: #{e}" @@ -205,6 +210,9 @@ def _loop(op) if store_iterations entities.set(:iteration_count, store_iterations, iterations) end + if store_successes + entities.set(:success_count, store_successes, successes) + end end end