From: Leo M. <leo...@us...> - 2004-04-24 13:07:08
|
Update of /cvsroot/ozone/ozone/server/src/test/ozoneDB/core/storage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv725 Added Files: DelayTest.java Log Message: --- NEW FILE: DelayTest.java --- // You can redistribute this software and/or modify it under the terms of // the Ozone Core License version 1 published by ozone-db.org. // // Copyright (C) 2003-@year@, Leo Mekenkamp. All rights reserved. // // $Id: DelayTest.java,v 1.1 2004/04/24 13:06:57 leomekenkamp Exp $ package test.ozoneDB.core.storage; import java.util.HashSet; import java.util.Iterator; import java.util.Properties; import java.util.Random; import junit.textui.TestRunner; import org.ozoneDB.core.storage.*; import test.*; /** * * @author leo */ public class DelayTest extends OzoneTestCase { private Random random = new Random(0); public DelayTest() { super("testDelay"); } private class Item { public Object key; public byte[] filling = new byte[Math.abs(random.nextInt() % 100000)]; Item(Object key) { this.key = key; } public String toString() { return key.toString(); } public void trimmed(Cache removedFrom, Object key) { System.out.println("trimmed at: " + System.currentTimeMillis()); } } public void testSimple() { Properties properties = new Properties(); properties.setProperty(DelayCache.DELAY.getKey(), "500"); DelayCache delay = new DelayCache(properties, ""); Object key = new Integer(0); Item item = new Item(key); delay.put(key, item); assertTrue(delay.get(key) == item); for (long sleepUntil = System.currentTimeMillis() + 100; sleepUntil > System.currentTimeMillis(); ){ try { Thread.sleep(sleepUntil - System.currentTimeMillis()); } catch (InterruptedException ignore) { } } assertTrue(delay.get(key) == item); delay.put(key, item); for (long sleepUntil = System.currentTimeMillis() + 400; sleepUntil > System.currentTimeMillis(); ){ try { Thread.sleep(sleepUntil - System.currentTimeMillis()); } catch (InterruptedException ignore) { } } assertTrue(delay.get(key) == item); for (long sleepUntil = System.currentTimeMillis() + 200; sleepUntil > System.currentTimeMillis(); ){ try { Thread.sleep(sleepUntil - System.currentTimeMillis()); } catch (InterruptedException ignore) { } } assertNull(delay.get(key)); } public static void main(String[] args) { TestRunner testRunner = new TestRunner(); testRunner.run(DelayTest.class); } } |