[emscripten-releases] Use defer_results to handle test failure

This results in simpler code.

Bug: v8:8921
Change-Id: I37a4fe728aa8e7932e6b4df6c93437026c9f835a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/build/+/1623563
Commit-Queue: Derek Schuff <dschuff@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
diff --git a/scripts/slave/recipes/emscripten_releases.expected/linux_emtest_fail.json b/scripts/slave/recipes/emscripten_releases.expected/linux_emtest_fail.json
index fde0b72..55c23d1 100644
--- a/scripts/slave/recipes/emscripten_releases.expected/linux_emtest_fail.json
+++ b/scripts/slave/recipes/emscripten_releases.expected/linux_emtest_fail.json
@@ -31,7 +31,7 @@
   {
     "failure": {
       "failure": {},
-      "humanReason": "Emscripten tests failed"
+      "humanReason": "1 out of 2 aggregated steps failed: Step('Emscripten testsuite (upstream)') (retcode: 1)"
     },
     "name": "$result"
   }
diff --git a/scripts/slave/recipes/emscripten_releases.py b/scripts/slave/recipes/emscripten_releases.py
index 412e436..450a4a5 100644
--- a/scripts/slave/recipes/emscripten_releases.py
+++ b/scripts/slave/recipes/emscripten_releases.py
@@ -81,15 +81,11 @@
       api.python('Upload archive', waterfall_build,
                  build_only_flags + ['--build-include=archive'])
 
-      for name, flag in (('upstream', 'emtest'), ('asm2wasm', 'emtest-asm')):
-        try:
+      with api.step.defer_results():
+        for name, flag in (('upstream', 'emtest'), ('asm2wasm', 'emtest-asm')):
           api.python('Emscripten testsuite (%s)' % name, waterfall_build,
                      test_only_flags + ['--test-include=%s' % flag])
-        except api.step.StepFailure as e:
-          # Log the failure but continue.
-          exit_status = e.retcode
-  if exit_status != 0:
-    raise api.step.StepFailure('Emscripten tests failed')
+
 
 def GenTests(api):
   def test(name):