### Question:
BookkeeperVerifier { public synchronized void run() throws Exception { long start = System.currentTimeMillis(); long testEnd = start + (duration * 1000); long testDrainEnd = testEnd + (drainTimeout * 1000); while (System.currentTimeMillis() < testEnd) { while (startRead() || startWrite()) {} long toWait = testEnd - System.currentTimeMillis(); this.wait(toWait < 0 ? 0 : toWait); printThrowExceptions(); } while ((System.currentTimeMillis() < testDrainEnd) && (outstandingReadCount > 0 || outstandingWriteCount > 0)) { System.out.format("reads: %d, writes: %d%n", outstandingReadCount, outstandingWriteCount); System.out.format("openingLedgers:%n"); for (LedgerInfo li: openingLedgers) { System.out.format( "Ledger %d has reads: %d, writes: %d%n", li.ledgerID, li.readsInProgress, li.writesInProgress.size()); } System.out.format("openLedgers:%n"); for (LedgerInfo li: openLedgers) { System.out.format( "Ledger %d has reads: %d, writes: %d%n", li.ledgerID, li.readsInProgress, li.writesInProgress.size()); } System.out.format("liveLedgers:%n"); for (LedgerInfo li: liveLedgers) { System.out.format( "Ledger %d has reads: %d, writes: %d%n", li.ledgerID, li.readsInProgress, li.writesInProgress.size()); } long toWait = testDrainEnd - System.currentTimeMillis(); this.wait(toWait < 0 ? 0 : toWait); printThrowExceptions(); } if (outstandingReadCount > 0 || outstandingWriteCount > 0) { throw new Exception("Failed to drain ops before timeout%n"); } } BookkeeperVerifier(
            BookkeeperDriver driver,
            int ensembleSize,
            int writeQuorum,
            int ackQuorum,
            int duration,
            int drainTimeout,
            int targetConcurrentLedgers,
            int targetConcurrentWrites,
            int targetWriteGroup,
            int targetReadGroup,
            int targetLedgers,
            long targetLedgerSize,
            int targetEntrySize,
            int targetConcurrentReads,
            double coldToHotRatio); synchronized void run();  }### Answer:
@Test(timeout = 30000) public void testBasic() throws Exception { DirectBookkeeperDriver driver = new DirectBookkeeperDriver(bkc); BookkeeperVerifier verifier = new BookkeeperVerifier( driver, 3, 3, 2, 10, 5, 16, 4, 2, 2, 32, 16 << 10, 4 << 10, 4, 0.5 ); verifier.run(); }