public void testTruncatedTranslog() throws Exception {
   try {
     Path translogFile =
         getDataPath("/org/elasticsearch/index/translog/translog-v1-truncated.binary");
     assertThat("test file should exist", Files.exists(translogFile), equalTo(true));
     try (ImmutableTranslogReader reader = openReader(translogFile, 0)) {
       try (final Translog.Snapshot snapshot = reader.newSnapshot()) {
         while (snapshot.next() != null) {}
       }
     }
     fail("should have thrown an exception about the body being truncated");
   } catch (TranslogCorruptedException e) {
     assertThat(
         "translog truncated: " + e.getMessage(),
         e.getMessage().contains("operation size is corrupted must be"),
         equalTo(true));
   }
 }
  public void testCorruptedTranslogs() throws Exception {
    try {
      Path translogFile =
          getDataPath("/org/elasticsearch/index/translog/translog-v1-corrupted-magic.binary");
      assertThat("test file should exist", Files.exists(translogFile), equalTo(true));
      openReader(translogFile, 0);
      fail("should have thrown an exception about the header being corrupt");
    } catch (TranslogCorruptedException e) {
      assertThat(
          "translog corruption from header: " + e.getMessage(),
          e.getMessage()
              .contains("translog looks like version 1 or later, but has corrupted header"),
          equalTo(true));
    }

    try {
      Path translogFile =
          getDataPath("/org/elasticsearch/index/translog/translog-invalid-first-byte.binary");
      assertThat("test file should exist", Files.exists(translogFile), equalTo(true));
      openReader(translogFile, 0);
      fail("should have thrown an exception about the header being corrupt");
    } catch (TranslogCorruptedException e) {
      assertThat(
          "translog corruption from header: " + e.getMessage(),
          e.getMessage()
              .contains("Invalid first byte in translog file, got: 1, expected 0x00 or 0x3f"),
          equalTo(true));
    }

    try {
      Path translogFile =
          getDataPath("/org/elasticsearch/index/translog/translog-v1-corrupted-body.binary");
      assertThat("test file should exist", Files.exists(translogFile), equalTo(true));
      try (ImmutableTranslogReader reader = openReader(translogFile, 0)) {
        try (final Translog.Snapshot snapshot = reader.newSnapshot()) {
          while (snapshot.next() != null) {}
        }
      }
      fail("should have thrown an exception about the body being corrupted");
    } catch (TranslogCorruptedException e) {
      assertThat(
          "translog corruption from body: " + e.getMessage(),
          e.getMessage().contains("translog corruption while reading from stream"),
          equalTo(true));
    }
  }