@Test
public void testExecuteWithRetryFailureTest() throws IOException, InterruptedException {

  try {
    Callables.executeWithRetry(new TimeoutCallable<Integer, IOException>(100) {
      @Override
      public Integer call(final long deadline) throws IOException {
        throw new SocketException("Aaaaaaaaaaa " + System.currentTimeMillis());
      }
    }, 4, 100, IOException.class);
    Assert.fail("Should not get here");
  } catch (IOException | TimeoutException e) {
    Assert.assertTrue("must have supressed exceptions: "
            + com.google.common.base.Throwables.getStackTraceAsString(e),
            Throwables.getSuppressed(e).length >= 1);
  }
}