15615: Retry failed wb1 tests twice before giving up.
authorTom Clegg <tclegg@veritasgenetics.com>
Wed, 11 Sep 2019 20:42:58 +0000 (16:42 -0400)
committerWard Vandewege <wvandewege@veritasgenetics.com>
Fri, 20 Sep 2019 18:55:26 +0000 (14:55 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

apps/workbench/test/test_helper.rb

index 1d26deefa38bbe7c593d07d47dfe0d7d409cf49d..69cf43b1a2fd52c04b89edebbded03d8493b1323 100644 (file)
@@ -348,3 +348,29 @@ end
 
 # Reset fixtures now (i.e., before any tests run).
 ActiveSupport::TestCase.reset_api_fixtures_now
+
+module Minitest
+  class Test
+    def capture_exceptions *args
+      begin
+        n = 0
+        begin
+          yield
+        rescue *PASSTHROUGH_EXCEPTIONS
+          raise
+        rescue Exception => e
+          n += 1
+          raise if n > 2
+          STDERR.puts "Test failed, retrying (##{n})"
+          retry
+        end
+      rescue *PASSTHROUGH_EXCEPTIONS
+        raise
+      rescue Assertion => e
+        self.failures << e
+      rescue Exception => e
+        self.failures << UnexpectedError.new(e)
+      end
+    end
+  end
+end