@Test
  public void comprehensiveTest() throws IOException, StoreException {
    Appender[] appenders = {BUFFER_APPENDER, CHANNEL_APPENDER};
    for (Appender appender : appenders) {
      // for single segment log
      setupAndDoComprehensiveTest(LOG_CAPACITY, LOG_CAPACITY, appender);
      setupAndDoComprehensiveTest(LOG_CAPACITY, LOG_CAPACITY + 1, appender);
      // for multiple segment log
      setupAndDoComprehensiveTest(LOG_CAPACITY, SEGMENT_CAPACITY, appender);
    }
  }
Tests almost all the functions and cases of {@link Log}.
</p>
Each individual test has the following variable parameters.
1. The capacity of each segment.
2. The size of the write on the log.
3. The segment that is being marked as active (beginning, middle, end etc).
4. The number of segment files that have been created and already exist in the folder.
5. The type of append operation being used.
@throws IOException
ambry-store/src/test/java/com/github/ambry/store/LogTest.java