r1738 - in isis-fish/trunk: . src/test/java/fr/ifremer src/test/java/fr/ifremer/isisfish/entity src/test/java/fr/ifremer/isisfish/logging src/test/java/fr/ifremer/isisfish/logging/io src/test/java/fr/ifremer/isisfish/simulator
Author: tchemit Date: 2009-01-13 19:48:00 +0000 (Tue, 13 Jan 2009) New Revision: 1738 Added: isis-fish/trunk/src/test/java/fr/ifremer/TestUtils.java Modified: isis-fish/trunk/pom.xml isis-fish/trunk/src/test/java/fr/ifremer/isisfish/entity/PopulationSeasonInfoTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/SimulationLoggerUtilTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/TestUtil.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/io/LineReaderTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/io/LineReaderUtilTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationHelperTest.java Log: suis pass?\195?\169 dans le coin et j'ai vu que y'avait plus beaucoup de test qui passaient... il faut laisser les tester m?\195?\170me s'il y a des erreurs... Modified: isis-fish/trunk/pom.xml =================================================================== --- isis-fish/trunk/pom.xml 2009-01-13 16:51:24 UTC (rev 1737) +++ isis-fish/trunk/pom.xml 2009-01-13 19:48:00 UTC (rev 1738) @@ -332,12 +332,8 @@ <!--Main class in JAR --> <maven.jar.main.class>fr.ifremer.isisfish.IsisFish</maven.jar.main.class> - <!-- for the moment skip tests --> - <maven.test.skip>true</maven.test.skip> - - <!-- FIXE should at leaste be this !--> <!-- Ignore failure test for now --> - <!--maven.test.testFailureIgnore>true</maven.test.testFailureIgnore--> + <maven.test.testFailureIgnore>true</maven.test.testFailureIgnore> <!-- jnlp --> <keystorepath>../../../CodeLutinKeystore</keystorepath> Added: isis-fish/trunk/src/test/java/fr/ifremer/TestUtils.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/TestUtils.java (rev 0) +++ isis-fish/trunk/src/test/java/fr/ifremer/TestUtils.java 2009-01-13 19:48:00 UTC (rev 1738) @@ -0,0 +1,35 @@ +package fr.ifremer; + +import java.io.File; + +/** + * Une classe pour avoir des choses utiles pour tous les tests d'isis + * + * @author chemit + */ +public abstract class TestUtils { + + static File basedir; + + static File targetdir; + + public static File getBasedir() { + if (basedir == null) { + String base = System.getProperty("basedir"); + if (base == null || base.isEmpty()) { + base = new File("").getAbsolutePath(); + } + basedir = new File(base); + System.out.println("basedir for test " + basedir); + } + return basedir; + } + + public static File getTargetdir() { + if (targetdir == null) { + targetdir = new File(getBasedir(), "target"); + System.out.println("targetdir for test " + targetdir); + } + return targetdir; + } +} Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/entity/PopulationSeasonInfoTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/entity/PopulationSeasonInfoTest.java 2009-01-13 16:51:24 UTC (rev 1737) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/entity/PopulationSeasonInfoTest.java 2009-01-13 19:48:00 UTC (rev 1738) @@ -36,9 +36,12 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.awt.event.WindowEvent; import javax.swing.Box; import javax.swing.JOptionPane; +import javax.swing.JDialog; +import javax.swing.SwingUtilities; import junit.framework.TestCase; @@ -53,8 +56,7 @@ * */ -public class PopulationSeasonInfoTest extends TestCase { - +public class PopulationSeasonInfoTest extends TestCase { public void testToString() { String [] s = new String[]{"toto", "titi", "tutu"}; System.out.println(Arrays.toString(s)); @@ -63,20 +65,20 @@ /* * Test method for 'fr.ifremer.isisfish.entities.PopulationSeasonInfoImpl.getGroupChangeMatrix(Month)' */ - public void testGetGroupChangeMatrix() { + public void testGetGroupChangeMatrix() throws InterruptedException { System.out.println("begin"); int nbrAge = 3; int nbrZone = 2; boolean groupplus = true; List<String> sem = new ArrayList<String>(); - + for (int i=0; i<nbrAge; i++) { for (int j=0; j<nbrZone; j++) { sem.add("g" + i + "/z" + j); - } + } } - + MatrixND mat = MatrixFactory.getInstance().create(new List[]{sem, sem}); for(MatrixIterator mi=mat.iterator(); mi.next();){ int [] dim = mi.getCoordinates(); @@ -91,25 +93,49 @@ // regarde si on est bien dans le dernier block && (nbrAge-1 == i/nbrZone) // regarde si on est bien sur la diagonal - && (i == j)) + && (i == j)) ){ mi.setValue(1); } } - - MatrixPanelEditor panel = new MatrixPanelEditor(false, 800, 300); + + final MatrixPanelEditor panel = new MatrixPanelEditor(false, 800, 300); panel.setMatrix(mat); - JOptionPane.showMessageDialog(null, panel, - _("Spacialized visualisation"), JOptionPane.INFORMATION_MESSAGE); + final JDialog dialog = new JDialog(); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + JOptionPane.showMessageDialog(dialog, panel,_("Spacialized visualisation"), JOptionPane.INFORMATION_MESSAGE); + + } + }); + Thread t = new Thread(new Runnable() { + public void run() { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // do nothing + } + dialog.dispose(); + } + }); + t.start(); + + // it would really be nice to wait the thread, otherwise the test + // means nothing!!! + t.join(); + + + System.out.println("end"); } /** * Converte no spacialized matrix to spacialized matrix */ - public void testSpacializeLengthChangeMatrix() { - - + public void testSpacializeLengthChangeMatrix() throws InterruptedException { + + int nbsecteurs = 2; int nbclasses = 3; @@ -118,15 +144,15 @@ for (MatrixIterator mi=mat.iterator(); mi.next();) { mi.setValue(i++); } - + List<String> sem = new ArrayList<String>(); - + for (i=0; i<nbclasses; i++) { for (int j=0; j<nbsecteurs; j++) { sem.add("g" + i + "/z" + j); - } + } } - + MatrixND bigmat = MatrixFactory.getInstance().create(new List[]{sem, sem}); for(i=0; i<nbclasses; i++){ @@ -141,17 +167,38 @@ panel.setMatrix(mat); MatrixPanelEditor bigpanel = new MatrixPanelEditor(false, 800, 300); bigpanel.setMatrix(bigmat); - - Box box = Box.createVerticalBox(); + + final Box box = Box.createVerticalBox(); box.add(panel); box.add(bigpanel); - - JOptionPane.showMessageDialog(null, box, - _("Spacialized visualisation"), JOptionPane.INFORMATION_MESSAGE); + + final JDialog dialog = new JDialog(); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + JOptionPane.showMessageDialog(dialog, box, _("Spacialized visualisation"), JOptionPane.INFORMATION_MESSAGE); + } + }); + + Thread t = new Thread(new Runnable() { + public void run() { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // do nothing + } + dialog.dispose(); + } + }); + t.start(); + + // it would really be nice to wait the thread, otherwise the test + // means nothing!!! + t.join(); System.out.println("end"); } - + } Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/SimulationLoggerUtilTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/SimulationLoggerUtilTest.java 2009-01-13 16:51:24 UTC (rev 1737) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/SimulationLoggerUtilTest.java 2009-01-13 19:48:00 UTC (rev 1738) @@ -1,6 +1,7 @@ package fr.ifremer.isisfish.logging; +import fr.ifremer.TestUtils; import junit.framework.Assert; import junit.framework.TestCase; import org.apache.commons.logging.Log; @@ -17,7 +18,7 @@ static private final String category = "fr.ifremer.isisfish.logging"; - static private final String appenderId = "myLogger_" + System.currentTimeMillis(); + static private final String appenderId = category+"."+"myLogger_" + System.currentTimeMillis(); static private Log log = LogFactory.getLog(category); @@ -31,9 +32,9 @@ List<String> messagesToWrite = new ArrayList<String>(); List<String> messagesToSkip = new ArrayList<String>(); - logInfo(logInit, "before new config", null,null); - logInfo(logInit2, "before new config", null,null); - logInfo(log, "before new config", null,null); + logInfo(logInit, "before new config", null, null); + logInfo(logInit2, "before new config", null, null); + logInfo(log, "before new config", null, null); String threadName = Thread.currentThread().getName(); @@ -43,7 +44,9 @@ Level hibernateLogLevel = hibernatelog.getLevel(); - String loggerFile = "testLog.log"; + String loggerFile = new File(TestUtils.getTargetdir(), SimulationLoggerUtilTest.class.getSimpleName() + "_" + System.nanoTime() + ".log").getAbsolutePath(); + System.out.println(">>>> loggerFile " + loggerFile); + // todo do a test for addSimulationAppender too! SimulationLoggerUtil.addSimulationAppender( loggerFile, @@ -67,10 +70,10 @@ hibernatelog.fatal(message); messagesToWrite.add(message); - logInfo(logInit, "after new config using old logger", messagesToWrite,messagesToSkip); + logInfo(logInit, "after new config using old logger", messagesToWrite, messagesToSkip); - logInfo(logger, "after new config using new logger", messagesToWrite,messagesToSkip); - logInfo(log, "after new config using new logger", messagesToWrite,messagesToSkip); + logInfo(logger, "after new config using new logger", messagesToWrite, messagesToSkip); + logInfo(log, "after new config using new logger", messagesToWrite, messagesToSkip); final String message0 = "BLOCK LOG must not appear in log file !!! since coming from another thread"; messagesToSkip.add(message0); @@ -111,13 +114,14 @@ log.info("-- nb messages skipped : " + messagesToSkip.size()); log.info("-- nb messages written : " + messagesToWrite.size()); - + System.out.println("test messages to be skipped"); for (String s : messagesToSkip) { - Assert.assertTrue(logFileContent.indexOf(s) == -1); + Assert.assertTrue("should not have write this entry : '" + s + "'", logFileContent.indexOf(s) == -1); } + System.out.println("test messages to be written"); for (String s : messagesToWrite) { - Assert.assertTrue(s, logFileContent.indexOf(s) > -1); + Assert.assertTrue("should have write this entry : '" + s + "'", logFileContent.indexOf(s) > -1); } logFile.delete(); @@ -256,6 +260,7 @@ messagesToWrite.add(message); } } + private void logDebug(Log logger, String prefix, List<String> messagesToWrite) { String message; Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/TestUtil.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/TestUtil.java 2009-01-13 16:51:24 UTC (rev 1737) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/TestUtil.java 2009-01-13 19:48:00 UTC (rev 1738) @@ -10,6 +10,7 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.io.UnsupportedEncodingException; /** * Usefull methods for tests. @@ -17,7 +18,7 @@ * @author chemit */ -public class TestUtil { +public abstract class TestUtil { public static String filename; public static long MEGA_STREAM_SIZE = 6 * 100000; @@ -25,6 +26,19 @@ protected static final Log log = LogFactory.getLog(TestUtil.class); + public static void createMock(File testDir, String filename, int i) throws IOException, InterruptedException { + TestUtil.MEGA_STREAM_SIZE = 6 * i; + TestUtil.filename = new File(testDir, filename).getAbsolutePath(); + File file = new File(testDir, filename); + long t0 = System.nanoTime(); + mockLogFile(); + long t1; + + t1 = System.nanoTime(); + log.info("create [" + TestUtil.MEGA_STREAM_SIZE + "] in " + StringUtil.convertTime(t1 - t0) + " [file: " + file + ", length: " + StringUtil.convertMemory(file.length()) + "]"); + System.gc(); + } + static void pause(long time) throws InterruptedException { Thread.sleep(time); totalPause += time; @@ -59,16 +73,100 @@ } t1 = System.currentTimeMillis(); - log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1-t0) + " | total " + i + " in " + StringUtil.convertTime( t1 - totalPause-t00)); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); //pause(500); t0 = System.currentTimeMillis(); for (i = MAX_0; i < 2 * MAX_0; i++) { + LogRecord record = LogRecord.newInstance(LogLevel.WARN, 0, i + " warn", "jkljfdjkl fdkjlkj lkjdlkfjl dfkljl dflkfdj lfdjlk fjdlkj fdl", "vmfof o rieipk?prj,anklvndfkljn gmlrtsoijrmoig", i, new String[0]); + s.write(record.toString() + '\n'); + } + t1 = System.currentTimeMillis(); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); + //pause(500); + t0 = System.currentTimeMillis(); + for (i = 2 * MAX_0; i < 3 * MAX_0; i++) { + LogRecord record = LogRecord.newInstance(LogLevel.INFO, 0, i + " info", "grlgjlrmgr jglerj mgrjm gre pjkogremoiqp jgpo rejopigjrej,m", "grkgherjfezoprjgbpdofajhlbnb;k nfkfjgmjmsg", i, new String[0]); + s.write(record.toString() + '\n'); + } + t1 = System.currentTimeMillis(); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); + //pause(500); + t0 = System.currentTimeMillis(); + for (i = 3 * MAX_0; i < 4 * MAX_0; i++) { + LogRecord record = LogRecord.newInstance(LogLevel.DEBUG, 0, i + " debug", "grmgjueroijiorehjnjodj j gn mbr,nhltrhjjdo jp joi jreio j", "gezoeteroiyerphehkzb,fgbd bcmsherkgheiusbcjkdvberb ", i, new String[0]); + s.write(record.toString() + '\n'); + s.flush(); + } + t1 = System.currentTimeMillis(); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); + //pause(500); + t0 = System.currentTimeMillis(); + for (i = 4 * MAX_0; i < 5 * MAX_0; i++) { + LogRecord record = LogRecord.newInstance(LogLevel.TRACE, 0, i + " trace", "ffgkdhvlsdknjk eriopgejo ipjiropj i io poi opijgr pe jupoieruj ga geigerihpi oeop erp ", "griofeioteogbbekjbnrjemk prejrlmekhgrehivbn rekhgrhi ", i, new String[0]); + s.write(record.toString() + '\n'); + } + t1 = System.currentTimeMillis(); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); + //pause(500); + t0 = System.currentTimeMillis(); + for (i = 5 * MAX_0; i < 6 * MAX_0; i++) { + LogRecord record = LogRecord.newInstance(LogLevel.TRACE, 0, i + " user", "grekgrhze t e re klgre ge rgre gre gfer g rjyukj yujty reez ze fz", "gekfhezh zhrze hgerhglkrej ljbvkxdfn df,ekgrrnvkmn", i, new String[0]); + s.write(record.toString() + '\n'); + s.flush(); + } + t1 = System.currentTimeMillis(); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); + } catch (OutOfMemoryError e) { + t1 = System.currentTimeMillis(); + log.info("failed after | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); + e.printStackTrace(); + } finally { + if (s != null) { + s.flush(); + s.close(); + } + } + } + + /** + * create a mock of logEvents + * + * @throws java.io.IOException todo + * @throws InterruptedException todo + */ + public static void mockLogFile2() throws IOException, InterruptedException { + File f = new File(filename); + if (f.exists()) { + f.delete(); + } + BufferedWriter s = new BufferedWriter(new FileWriter(f)); + int MAX_0 = (int) (MEGA_STREAM_SIZE / 6); + int i = 0; + long t0, t00; + long t1; + totalPause = 0; + t00 = System.currentTimeMillis(); + t0 = System.currentTimeMillis(); + try { + + for (i = 0; i < MAX_0; i++) { + LogRecord record = LogRecord.newInstance(LogLevel.FATAL, 0, i + "debug ", "ioreiovrio veuio vreupo xz xe opiu tep uxr u ", "xeoiujoiz xpo puoi rui hp", i, new String[0]); + s.write(record.toString() + '\n'); + s.flush(); + } + + t1 = System.currentTimeMillis(); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); + //pause(500); + t0 = System.currentTimeMillis(); + + for (i = MAX_0; i < 2 * MAX_0; i++) { LogRecord record = LogRecord.newInstance(LogLevel.WARN, 0, i + " warn", "jkljfdjkl fdkjlkj lkjdlkfjl dfkljl dflkfdj lfdjlk fjdlkj fdl", "vmfof o rieipk?prj,ùnklvndfkljn gmlrtsoîjrmoig", i, new String[0]); s.write(record.toString() + '\n'); } t1 = System.currentTimeMillis(); - log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1-t0) + " | total " + i + " in " + StringUtil.convertTime( t1 - totalPause-t00)); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); //pause(500); t0 = System.currentTimeMillis(); for (i = 2 * MAX_0; i < 3 * MAX_0; i++) { @@ -76,7 +174,7 @@ s.write(record.toString() + '\n'); } t1 = System.currentTimeMillis(); - log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1-t0) + " | total " + i + " in " + StringUtil.convertTime( t1 - totalPause-t00)); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); //pause(500); t0 = System.currentTimeMillis(); for (i = 3 * MAX_0; i < 4 * MAX_0; i++) { @@ -85,7 +183,7 @@ s.flush(); } t1 = System.currentTimeMillis(); - log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1-t0) + " | total " + i + " in " + StringUtil.convertTime( t1 - totalPause-t00)); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); //pause(500); t0 = System.currentTimeMillis(); for (i = 4 * MAX_0; i < 5 * MAX_0; i++) { @@ -93,7 +191,7 @@ s.write(record.toString() + '\n'); } t1 = System.currentTimeMillis(); - log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1-t0) + " | total " + i + " in " + StringUtil.convertTime( t1 - totalPause-t00)); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); //pause(500); t0 = System.currentTimeMillis(); for (i = 5 * MAX_0; i < 6 * MAX_0; i++) { @@ -102,10 +200,10 @@ s.flush(); } t1 = System.currentTimeMillis(); - log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1-t0) + " | total " + i + " in " + StringUtil.convertTime( t1 - totalPause-t00)); + log.debug("create next [" + MAX_0 + "] in " + StringUtil.convertTime(t1 - t0) + " | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); } catch (OutOfMemoryError e) { t1 = System.currentTimeMillis(); - log.info("failed after | total " + i + " in " + StringUtil.convertTime( t1 - totalPause-t00)); + log.info("failed after | total " + i + " in " + StringUtil.convertTime(t1 - totalPause - t00)); e.printStackTrace(); } finally { if (s != null) { @@ -122,7 +220,7 @@ IsisFish.init(); } catch (Exception e) { throw new RuntimeException(e); - } + } } /** @@ -193,7 +291,7 @@ String fileName, String methodName, int lineNumber, - String[] errors) { + String[] errors) throws UnsupportedEncodingException { return new LogRecord( level == null ? LogLevel.DEBUG.ordinal() : level.ordinal(), timestamp, @@ -211,11 +309,11 @@ String filename, String methodName, int lineNumber, - String[] throwableStrRep) { + String[] throwableStrRep) throws UnsupportedEncodingException { this.level = level; this.timeStamp = timestamp; //this.message = message; - this.message = filename + ":" + lineNumber + " - " + methodName + " - " + message; + this.message = new String((filename + ":" + lineNumber + " - " + methodName + " - " + message).getBytes("utf-8")); //this.filename = filename; //this.methodName = methodName; //this.lineNumber = lineNumber; Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/io/LineReaderTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/io/LineReaderTest.java 2009-01-13 16:51:24 UTC (rev 1737) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/io/LineReaderTest.java 2009-01-13 19:48:00 UTC (rev 1738) @@ -1,5 +1,6 @@ package fr.ifremer.isisfish.logging.io; +import fr.ifremer.TestUtils; import fr.ifremer.isisfish.logging.TestUtil; import junit.framework.TestCase; import org.apache.commons.logging.Log; @@ -20,6 +21,8 @@ protected static final Log log = LogFactory.getLog(LineReaderTest.class); + File testDir; + final static int[] sizes = new int[]{ 10, 50, @@ -38,19 +41,23 @@ protected void setUp() throws Exception { super.setUp(); - new File("bench").mkdirs(); + + testDir = new File(TestUtils.getTargetdir(), "bench_" + System.nanoTime()); + testDir.mkdirs(); + System.out.println("benchdir " + testDir); + } - protected void createMock(int i) throws IOException, InterruptedException { + protected static void createMock(File testDir, int i) throws IOException, InterruptedException { TestUtil.MEGA_STREAM_SIZE = 6 * i; - TestUtil.filename = "bench/" + LineReaderTest.class.getSimpleName() + "_" + 6 * i + ".log"; - File file = new File(TestUtil.filename); + TestUtil.filename = new File(testDir, LineReaderTest.class.getSimpleName() + "_" + 6 * i + ".log").getAbsolutePath(); + File file = new File(testDir, TestUtil.filename); long t0 = System.nanoTime(); TestUtil.mockLogFile(); long t1; t1 = System.nanoTime(); - log.info("create [" + TestUtil.MEGA_STREAM_SIZE + "] in " + StringUtil.convertTime(t1-t0) + " [file: " + file + ", length: " + StringUtil.convertMemory(file.length()) + "]"); + log.info("create [" + TestUtil.MEGA_STREAM_SIZE + "] in " + StringUtil.convertTime(t1 - t0) + " [file: " + file + ", length: " + StringUtil.convertMemory(file.length()) + "]"); System.gc(); } @@ -58,7 +65,7 @@ public void estMakeMock() throws Exception { for (int size : sizes) { - createMock(size); + createMock(testDir, size); } } @@ -110,8 +117,9 @@ private boolean showLog = false; protected LineReader createReader(File f, String ext) throws IOException { - return new LineReader(f, new FileOffsetReader(new File(f,ext))); + return new LineReader(f, new FileOffsetReader(new File(f, ext))); } + protected void scanAllLines(int size) throws IOException { TestUtil.MEGA_STREAM_SIZE = size; TestUtil.filename = "bench/" + LineReaderTest.class.getSimpleName() + "_" + TestUtil.MEGA_STREAM_SIZE + ".log"; @@ -357,7 +365,7 @@ System.out.println(""); System.out.println(""); - LineReader reader2 = new LineReader(reader, new FileOffsetReader(new File(f,"offsets_debug_or_warn"))) { + LineReader reader2 = new LineReader(reader, new FileOffsetReader(new File(f, "offsets_debug_or_warn"))) { public boolean match(String line) { return line.contains("debug") || line.contains("warn"); } @@ -384,7 +392,7 @@ System.out.println(""); System.out.println(""); - LineReader reader3 = new LineReader(reader, new FileOffsetReader(new File(f,"offsets_debug"))) { + LineReader reader3 = new LineReader(reader, new FileOffsetReader(new File(f, "offsets_debug"))) { public boolean match(String line) { return line.contains("debug"); } Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/io/LineReaderUtilTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/io/LineReaderUtilTest.java 2009-01-13 16:51:24 UTC (rev 1737) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/logging/io/LineReaderUtilTest.java 2009-01-13 19:48:00 UTC (rev 1738) @@ -1,7 +1,9 @@ package fr.ifremer.isisfish.logging.io; +import fr.ifremer.TestUtils; import fr.ifremer.isisfish.logging.LogLevel; import fr.ifremer.isisfish.logging.LogLevelUtil; +import fr.ifremer.isisfish.logging.TestUtil; import junit.framework.TestCase; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -18,6 +20,18 @@ protected static final Log log = LogFactory.getLog(LineReaderUtilTest.class); + static File testDir; + + public static File getTestDir() { + if (testDir == null) { + testDir = new File(TestUtils.getTargetdir(), "bench_" + System.nanoTime()); + if (!testDir.mkdirs()) { + throw new IllegalStateException("could not create directory " + testDir); + } + } + return testDir; + } + final static int[] sizes = new int[]{ 10, 50, @@ -37,15 +51,14 @@ protected void setUp() throws Exception { super.setUp(); - new File("bench").mkdirs(); - String filename = "bench/LineReaderTest_30.log"; - f = new File(filename); + System.out.println("benchdir " + getTestDir()); + String filename = "LineReaderTest_30.log"; + f = new File(testDir, filename); + if (!f.exists()) { - new LineReaderTest().createMock(5); + TestUtil.createMock(testDir, filename, 5); } - - } @@ -54,14 +67,14 @@ long nbLines; LineReader reader, reader2; - reader = new LineReader(f, new FileOffsetReader(new File(f, "offsets"))); + reader = new LineReader(f, new FileOffsetReader(new File(f.getParentFile(), "offsets"))); reader.getOffsetReader().deleteOffsetFile(); reader.open(); nbLines = reader.getNbLines(); assertEquals(30, nbLines); log.info("found " + nbLines + " in reader " + reader); - reader2 = new LineReaderUtil.LevelLineReader(reader, new FileOffsetReader(new File(reader.getFile(), "leveloffsets_" + LogLevel.DEBUG.mask())), LogLevel.DEBUG); + reader2 = new LineReaderUtil.LevelLineReader(reader, new FileOffsetReader(new File(reader.getFile().getParentFile(), "leveloffsets_" + LogLevel.DEBUG.mask())), LogLevel.FATAL); reader2.getOffsetReader().deleteOffsetFile(); reader2.open(); nbLines = reader2.getNbLines(); @@ -69,13 +82,21 @@ assertEquals(5, nbLines); reader2.close(); - reader2 = new LineReaderUtil.LevelLineReader(reader, new FileOffsetReader(new File(reader.getFile(), "leveloffsets_" + LogLevel.INFO.mask())), LogLevel.INFO); + reader2 = new LineReaderUtil.LevelLineReader(reader, new FileOffsetReader(new File(reader.getFile().getParentFile(), "leveloffsets_" + LogLevel.DEBUG.mask())), LogLevel.DEBUG); reader2.getOffsetReader().deleteOffsetFile(); reader2.open(); nbLines = reader2.getNbLines(); log.info("found " + nbLines + " in reader " + reader2); assertEquals(5, nbLines); + reader2.close(); + + reader2 = new LineReaderUtil.LevelLineReader(reader, new FileOffsetReader(new File(reader.getFile().getParentFile(), "leveloffsets_" + LogLevel.INFO.mask())), LogLevel.INFO); reader2.getOffsetReader().deleteOffsetFile(); + reader2.open(); + nbLines = reader2.getNbLines(); + log.info("found " + nbLines + " in reader " + reader2); + assertEquals(5, nbLines); + reader2.getOffsetReader().deleteOffsetFile(); reader2.close(); reader.getOffsetReader().deleteOffsetFile(); @@ -84,11 +105,11 @@ public void testLevelsReader() throws Exception { - LineReader reader, reader2,reader3; + LineReader reader, reader2, reader3; int levels; long nbLines; - reader = new LineReader(f, new FileOffsetReader(new File(f, "offsets"))); + reader = new LineReader(f, new FileOffsetReader(new File(f.getParentFile(), "offsets"))); reader.getOffsetReader().deleteOffsetFile(); reader.open(); nbLines = reader.getNbLines(); @@ -96,7 +117,7 @@ log.info("found " + nbLines + " in reader " + reader); levels = LogLevelUtil.createSet(LogLevel.DEBUG, LogLevel.INFO); - reader2 = new LineReaderUtil.LevelsLineReader(reader, new FileOffsetReader(new File(reader.getFile(), "leveloffsets_" + levels)), LogLevel.DEBUG, LogLevel.INFO); + reader2 = new LineReaderUtil.LevelsLineReader(reader, new FileOffsetReader(new File(reader.getFile().getParentFile(), "leveloffsets_" + levels)), LogLevel.DEBUG, LogLevel.INFO); reader2.getOffsetReader().deleteOffsetFile(); reader2.open(); nbLines = reader2.getNbLines(); @@ -106,7 +127,7 @@ reader2.close(); levels = LogLevelUtil.createSet(LogLevel.WARN, LogLevel.INFO); - reader2 = new LineReaderUtil.LevelsLineReader(reader, new FileOffsetReader(new File(reader.getFile(), "leveloffsets_" + levels)), LogLevel.INFO, LogLevel.WARN); + reader2 = new LineReaderUtil.LevelsLineReader(reader, new FileOffsetReader(new File(reader.getFile().getParentFile(), "leveloffsets_" + levels)), LogLevel.INFO, LogLevel.WARN); reader2.getOffsetReader().deleteOffsetFile(); assertTrue(reader2.getOffsetReader().needCreate()); reader2.open(); @@ -114,8 +135,8 @@ log.info("found " + nbLines + " in reader " + reader2); assertEquals(10, nbLines); - levels = LogLevelUtil.createSet( LogLevel.INFO); - reader3 = new LineReaderUtil.LevelsLineReader(reader2, new FileOffsetReader(new File(reader.getFile(), "leveloffsets_" + levels)), LogLevel.INFO); + levels = LogLevelUtil.createSet(LogLevel.INFO); + reader3 = new LineReaderUtil.LevelsLineReader(reader2, new FileOffsetReader(new File(reader.getFile().getParentFile(), "leveloffsets_" + levels)), LogLevel.INFO); reader3.getOffsetReader().deleteOffsetFile(); assertTrue(reader3.getOffsetReader().needCreate()); reader3.open(); @@ -123,11 +144,11 @@ log.info("found " + nbLines + " in reader " + reader3); assertEquals(5, nbLines); - reader2.close(); + reader2.close(); reader3.close(); levels = LogLevelUtil.createSet(LogLevel.INFO, LogLevel.WARN); - reader2 = new LineReaderUtil.LevelsLineReader(reader, new FileOffsetReader(new File(reader.getFile(), "leveloffsets_" + levels)), LogLevel.WARN, LogLevel.INFO); + reader2 = new LineReaderUtil.LevelsLineReader(reader, new FileOffsetReader(new File(reader.getFile().getParentFile(), "leveloffsets_" + levels)), LogLevel.WARN, LogLevel.INFO); assertFalse(reader2.getOffsetReader().needCreate()); reader2.open(); nbLines = reader2.getNbLines(); @@ -137,7 +158,7 @@ reader2.close(); levels = LogLevelUtil.createSet(LogLevel.DEBUG); - reader2 = new LineReaderUtil.LevelsLineReader(reader, new FileOffsetReader(new File(reader.getFile(), "leveloffsets_" + levels)), LogLevel.DEBUG); + reader2 = new LineReaderUtil.LevelsLineReader(reader, new FileOffsetReader(new File(reader.getFile().getParentFile(), "leveloffsets_" + levels)), LogLevel.DEBUG); assertFalse(reader2.getOffsetReader().needCreate()); reader2.open(); nbLines = reader2.getNbLines(); @@ -146,7 +167,7 @@ reader2.close(); levels = LogLevelUtil.createSet(LogLevel.DEBUG, LogLevel.DEBUG); - reader2 = new LineReaderUtil.LevelsLineReader(reader, new FileOffsetReader(new File(reader.getFile(), "leveloffsets_" + levels)), LogLevel.DEBUG, LogLevel.DEBUG); + reader2 = new LineReaderUtil.LevelsLineReader(reader, new FileOffsetReader(new File(reader.getFile().getParentFile(), "leveloffsets_" + levels)), LogLevel.DEBUG, LogLevel.DEBUG); assertFalse(reader2.getOffsetReader().needCreate()); reader2.open(); nbLines = reader2.getNbLines(); @@ -165,7 +186,7 @@ LineReader reader, reader2; long nbLines; - reader = new LineReader(f, new FileOffsetReader(new File(f, "offsets"))); + reader = new LineReader(f, new FileOffsetReader(new File(f.getParentFile(), "offsets"))); reader.getOffsetReader().deleteOffsetFile(); reader.open(); nbLines = reader.getNbLines(); @@ -191,5 +212,5 @@ reader.getOffsetReader().deleteOffsetFile(); reader.close(); } - + } \ No newline at end of file Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationHelperTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationHelperTest.java 2009-01-13 16:51:24 UTC (rev 1737) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationHelperTest.java 2009-01-13 19:48:00 UTC (rev 1738) @@ -31,42 +31,40 @@ package fr.ifremer.isisfish.simulator; -import java.io.File; -import java.util.Enumeration; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.codelutin.math.matrix.DoubleBigVector; -import org.codelutin.math.matrix.MatrixFactory; -import org.codelutin.topia.TopiaContext; - +import fr.ifremer.TestUtils; import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.datastore.ResultStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.entities.Result; import fr.ifremer.isisfish.types.Date; - import junit.framework.TestCase; import junit.framework.TestFailure; import junit.framework.TestResult; import junit.framework.TestSuite; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.codelutin.math.matrix.DoubleBigVector; +import org.codelutin.math.matrix.MatrixFactory; +import org.codelutin.topia.TopiaContext; +import java.io.File; +import java.util.Enumeration; +import java.util.List; -/** - * @author poussin - * - */ +/** @author poussin */ + public class SimulationHelperTest extends TestCase { private static final Log log = LogFactory.getLog(SimulationHelperTest.class); - - final static private String [] SIMULATION_ZIP_FILE = new String[]{ - "src/test/fr/ifremer/isisfish/simulator/SimulationTest.zip", - // put here other zip simulation test - }; - + + final static private String[] SIMULATION_ZIP_FILE = new String[]{ + //TC - 20090113 : remove the asrc to src when the zip file will be in correct db version, otherwise there is a ui asking to migrate + // or just desactivate the migration service ? + "asrc" + File.separator + "test" + File.separator + "java" + File.separator + "fr" + File.separator + "ifremer" + File.separator + "isisfish" + File.separator + "simulator" + File.separator + "SimulationTest.zip", + // put here other zip simulation test + }; + // public void testVerifResult() throws Exception { // try { // IsisConfig.load(); @@ -115,18 +113,19 @@ // } // } -/* -10;20;30;40;50;60;70;80;90; -100;200;300;400;500;600;700;800;900; -1000;2000;3000;4000;5000;6000;7000;8000;9000; -10000;20000;30000;40000;50000;60000;70000;80000;90000; -100000;200000;300000;400000;500000;600000;700000;800000;900000; -1000000;2000000;3000000;4000000;5000000;6000000;7000000;8000000;9000000; -10000000;20000000;30000000;40000000;50000000;60000000;70000000;80000000;90000000; -100000000;200000000;300000000;400000000;500000000;600000000;700000000;800000000;900000000; -1000000000;2000000000;3000000000;4000000000;5000000000;6000000000;7000000000;8000000000;9000000000; -10000000000;20000000000;30000000000;40000000000;50000000000;60000000000;70000000000;80000000000;90000000000; -*/ + /* + 10;20;30;40;50;60;70;80;90; + 100;200;300;400;500;600;700;800;900; + 1000;2000;3000;4000;5000;6000;7000;8000;9000; + 10000;20000;30000;40000;50000;60000;70000;80000;90000; + 100000;200000;300000;400000;500000;600000;700000;800000;900000; + 1000000;2000000;3000000;4000000;5000000;6000000;7000000;8000000;9000000; + 10000000;20000000;30000000;40000000;50000000;60000000;70000000;80000000;90000000; + 100000000;200000000;300000000;400000000;500000000;600000000;700000000;800000000;900000000; + 1000000000;2000000000;3000000000;4000000000;5000000000;6000000000;7000000000;8000000000;9000000000; + 10000000000;20000000000;30000000000;40000000000;50000000000;60000000000;70000000000;80000000000;90000000000; + */ + public void testSimulate() throws Exception { try { // par defaut on utilise des doubles pour les matrices @@ -135,36 +134,36 @@ for (String zipName : SIMULATION_ZIP_FILE) { // recuperation du fichier zip de la simulation de test - File zip = new File(zipName); + File zip = new File(TestUtils.getBasedir(), zipName); // import de cette simulation String name = "simulation-test-" + System.currentTimeMillis(); SimulationStorage simRef = SimulationStorage.importAndRenameZip(zip, name + "-ref"); // import de la simulation avec un autre nom - SimulationStorage sim = SimulationStorage.importAndRenameZip(zip, name); - + SimulationStorage sim = SimulationStorage.importAndRenameZip(zip, name); + try { // suppression des resultats de cette simulation TopiaContext tx = sim.getStorage().beginTransaction(); tx.execute("DELETE from " + Result.class.getName()); tx.commitTransaction(); - + // lancement de la simulation // FIXME a remplacer avec SimulationService // SimulationHelper.simulate(null, sim); - + // verification qu'on retrouve les memes resulats pour les deux simulations ResultStorage resultRef = simRef.getResultStorage(); ResultStorage result = sim.getResultStorage(); - + List<String> resultNames = resultRef.getResultName(); assertEquals(resultNames, result.getResultName()); - + Date lastDate = resultRef.getLastDate(); log.info("Check result ..."); - for (Date date=new Date(0); date.before(lastDate); date=date.next()) { + for (Date date = new Date(0); date.before(lastDate); date = date.next()) { for (String resultName : resultNames) { log.debug("Check result " + date + " " + resultName); assertEquals("Date " + date.getDate() + " result " + resultName, @@ -172,7 +171,7 @@ result.getMatrix(date, resultName)); } } - + } finally { // fermeture des bases simRef.getStorage().closeContext(); @@ -188,22 +187,22 @@ throw eee; } } - + public static void main(String[] args) { TestSuite suite = new TestSuite(SimulationHelperTest.class); TestResult result = new TestResult(); suite.run(result); if (result.wasSuccessful()) { System.out.println("Test Ok"); - } else { + } else { System.out.println("Test Faild"); System.out.println("Failures"); - for (Enumeration e=result.failures(); e.hasMoreElements();) { + for (Enumeration e = result.failures(); e.hasMoreElements();) { System.out.println(e.nextElement().toString()); } System.out.println("Errors"); - for (Enumeration e=result.errors(); e.hasMoreElements();) { - TestFailure eee = (TestFailure)e.nextElement(); + for (Enumeration e = result.errors(); e.hasMoreElements();) { + TestFailure eee = (TestFailure) e.nextElement(); System.out.println(eee.toString()); eee.thrownException().printStackTrace(); }
participants (1)
-
tchemit@users.labs.libre-entreprise.org