@Test
public void testRevertAllSuppressed() throws Throwable {

  CounterTask failLast = new CounterTask("task", ITEM_COUNT, Item::commit);
  assertFailed(builder()
          .suppressExceptions()
          .stopOnFailure()
          .revertWith(reverter)
          .abortWith(aborter)
          .onFailure(failures),
      failLast);
  failLast.assertInvoked("success", ITEM_COUNT);
  int abCount = aborter.getCount();
  int revCount = reverter.getCount();
  assertEquals(ITEM_COUNT, 1 + abCount + revCount);
  // identify which task failed from the set
  int failing = failures.getItem().id;
  // all committed were reverted
  items.stream()
      .filter(i -> i.id != failing)
      .filter(i -> i.committed)
      .forEach(Item::assertReverted);
  items.stream()
      .filter(i -> i.id != failing)
      .filter(i -> !i.committed)
      .forEach(Item::assertAborted);
  // all reverted items are committed
  items.stream().filter(i -> i.reverted)
      .forEach(Item::assertCommitted);
  // only one failure was triggered
  failures.assertInvoked("failure event", 1);
}