@Test
  public void storeStartupTests2() throws IOException, StoreException {
    if (!isLogSegmented) {
      verifyStartupFailure(store, StoreErrorCodes.StoreAlreadyStarted);
      return;
    }

    // Test the LogSegment null pointer issue caused by matching index segment file with wrong log segment file due to same prefix
    // copy and generate:
    //    0_49_18_bloom
    //    0_49_18_index
    //    0_49_log_temp
    // Rename 0_0_log and related index bloom to
    //    0_4_log
    //    0_4_18_index
    //    0_4_18_bloom
    // At this moment, we have 0_4_xxx_index and also 0_49_xxx_index
    // But only have 0_4_log. 0_49_log_temp is under compaction.
    Files.copy(Paths.get(tempDir+"/0_0_log"), Paths.get(tempDir+"/0_49_log_temp"));
    Files.move(Paths.get(tempDir+"/0_0_log"), Paths.get(tempDir+"/0_4_log"));

    Files.copy(Paths.get(tempDir+"/0_0_18_index"), Paths.get(tempDir+"/0_49_18_index"));
    Files.move(Paths.get(tempDir+"/0_0_18_index"), Paths.get(tempDir+"/0_4_18_index"));

    Files.copy(Paths.get(tempDir+"/0_0_18_bloom"), Paths.get(tempDir+"/0_49_18_bloom"));
    Files.move(Paths.get(tempDir+"/0_0_18_bloom"), Paths.get(tempDir+"/0_4_18_bloom"));

    reloadStore();
  }
Tests {@link BlobStore#start()} for corner cases and error cases.
Corner cases
1. Creating a directory on first startup
Error cases
1. Start an already started store.
2. Unable to create store directory on first startup.
3. Starting two stores at the same path.
4. Directory not readable.
5. Path is not a directory.
@throws IOException
@throws StoreException
ambry-store/src/test/java/com/github/ambry/store/BlobStoreTest.java