protected void startStore(File directory) throws Exception { store = createPListStore(); store.setDirectory(directory); store.start(); plist = store.getPList("main"); }
@Test public void testRemove() throws IOException { doTestRemove(2000); }
@Test public void testRepeatStressWithCache() throws Exception { for (int i=0; i<numRepeats;i++) { do_testConcurrentAddIterateRemove(true); } }
@Before public void setUp() throws Exception { File directory = tempFolder.newFolder(); startStore(directory); }
protected void doTestRemove(final int COUNT) throws IOException { Map<String, ByteSequence> map = new LinkedHashMap<String, ByteSequence>(); for (int i = 0; i < COUNT; i++) { String test = new String("test" + i); ByteSequence bs = new ByteSequence(test.getBytes()); map.put(test, bs); plist.addLast(test, bs); } assertEquals(plist.size(), COUNT); PListEntry entry = getFirst(plist); while (entry != null) { plist.remove(entry.getLocator()); entry = getFirst(plist); } assertEquals(0,plist.size()); }
IOHelper.mkdirs(directory); IOHelper.deleteChildren(directory); store = createConcurrentAddRemovePListStore(); store.setDirectory(directory); store.start();
IOHelper.mkdirs(directory); IOHelper.deleteChildren(directory); store = createConcurrentAddIterateRemovePListStore(enablePageCache); store.setDirectory(directory); store.start();
IOHelper.mkdirs(directory); IOHelper.deleteChildren(directory); store = createConcurrentAddIteratePListStore(); store.setDirectory(directory); store.start();
IOHelper.mkdirs(directory); IOHelper.deleteChildren(directory); store = createConcurrentAddRemoveWithPreloadPListStore(); store.setDirectory(directory); store.start();
@Test public void testConcurrentAddLast() throws Exception { File directory = store.getDirectory(); store.stop(); IOHelper.mkdirs(directory); IOHelper.deleteChildren(directory); store = createPListStore(); store.setDirectory(directory); store.start(); final int numThreads = 20; final int iterations = 1000; executor = Executors.newFixedThreadPool(100); for (int i=0; i<numThreads; i++) { new Job(i, PListTestSupport.TaskType.ADD, iterations).run(); } for (int i=0; i<numThreads; i++) { executor.execute(new Job(i, PListTestSupport.TaskType.ITERATE, iterations)); } for (int i=0; i<100; i++) { executor.execute(new Job(i+20, PListTestSupport.TaskType.ADD, 100)); } executor.shutdown(); boolean finishedInTime = executor.awaitTermination(60*5, TimeUnit.SECONDS); assertTrue("finished ok", finishedInTime); }
@Test public void testDestroy() throws Exception { doTestRemove(1); plist.destroy(); assertEquals(0,plist.size()); }
@Test public void testRepeatStressWithOutCache() throws Exception { for (int i=0; i<numRepeats;i++) { do_testConcurrentAddIterateRemove(false); } }
@Test public void testOverFlow() throws Exception { File directory = store.getDirectory(); store.stop(); IOHelper.mkdirs(directory); IOHelper.deleteChildren(directory); store = createPListStore(); store.setDirectory(directory); store.start(); for (int i=0;i<2000; i++) { new Job(i, PListTestSupport.TaskType.ADD, 5).run(); } // LOG.info("After Load index file: " + store.pageFile.getFile().length()); // LOG.info("After remove index file: " + store.pageFile.getFile().length()); }