| Home >> All |
Source code: marauroa/RunTests.java
1 /* $Id: RunTests.java,v 1.30 2003/12/10 16:55:21 arianne_rpg Exp $ */ 2 /*************************************************************************** 3 * (C) Copyright 2003 - Marauroa * 4 *************************************************************************** 5 *************************************************************************** 6 * * 7 * This program is free software; you can redistribute it and/or modify * 8 * it under the terms of the GNU General Public License as published by * 9 * the Free Software Foundation; either version 2 of the License, or * 10 * (at your option) any later version. * 11 * * 12 ***************************************************************************/ 13 package marauroa; 14 import junit.framework.*; 15 import java.util.*; 16 import java.io.*; 17 18 /** 19 * TestSuite that runs all the sample tests 20 */ 21 public class RunTests 22 { 23 private static class Killer extends Thread 24 { 25 private long timeout; 26 private boolean finishRequest; 27 28 public Killer(long timeout) 29 { 30 this.timeout=timeout; 31 finishRequest=false; 32 start(); 33 } 34 35 public void run() 36 { 37 try 38 { 39 while(!finishRequest && timeout>0) 40 { 41 sleep(1000); 42 timeout-=1000; 43 } 44 } 45 catch(Exception e) 46 { 47 } 48 49 if(timeout<0) 50 { 51 System.err.println("ERROR: RunTests killed, please send the log files to:"); 52 System.err.println("http://sourceforge.net/tracker/?func=add&group_id=66537&atid=514826"); 53 System.exit(-1); 54 } 55 } 56 57 public void finish() 58 { 59 finishRequest=true; 60 } 61 } 62 63 public static void main (String[] args) 64 { 65 /** NOTE: On my machine it took 93000 milliseconds. */ 66 final long TIMEOUT_KILL_APPLICATION=180000; 67 68 try 69 { 70 // while(true) 71 // { 72 Killer killer=new Killer(TIMEOUT_KILL_APPLICATION); 73 74 Date start=new Date(); 75 boolean wasSuccessful=true; 76 String timestamp=Long.toString(new Date().getTime()); 77 78 System.err.println("Test will long around 93.0 seconds. Please wait!"); 79 wasSuccessful&=runTest(suiteBase(),timestamp).wasSuccessful(); 80 wasSuccessful&=runTest(suiteNet(),timestamp).wasSuccessful(); 81 wasSuccessful&=runTest(suiteGame(),timestamp).wasSuccessful(); 82 wasSuccessful&=runTest(suiteActive(),timestamp).wasSuccessful(); 83 Date end=new Date(); 84 85 System.err.println("Total time: "+(end.getTime()-start.getTime())); 86 System.err.println("The test ("+timestamp+") has been "+(wasSuccessful?"SUCCESSFULL":"FAILED")); 87 88 if(!wasSuccessful) 89 { 90 System.err.println("ERROR: RunTests failed, please send the log files ("+timestamp+") to:"); 91 System.err.println("http://sourceforge.net/tracker/?func=add&group_id=66537&atid=514826"); 92 } 93 94 killer.finish(); 95 96 // Thread.sleep(2000); 97 // } 98 } 99 catch(Exception e) 100 { 101 } 102 } 103 104 private static TestResult runTest(Test e,String timestamp) throws FileNotFoundException 105 { 106 TestSuite testSuite=(TestSuite)e; 107 108 String filename="output_"+testSuite.getName()+"_"+timestamp+".txt"; 109 110 System.err.println("TestResult::runTest\t>\t"+testSuite.getName()); 111 System.setOut(new PrintStream(new FileOutputStream(filename))); 112 TestResult result=junit.textui.TestRunner.run(e); 113 String testResult=(result.wasSuccessful()?"Correct":"Failed"); 114 System.err.println("TestResult::runTest\t<\t"+testSuite.getName()+"("+testResult+")"); 115 return result; 116 } 117 118 public static Test suite() 119 { 120 TestSuite suite= new TestSuite("All marauroa Tests"); 121 122 suite.addTest(new TestSuite(marauroa.Test_RWLock.class)); 123 suite.addTest(new TestSuite(marauroa.Test_Configuration.class)); 124 125 suite.addTest(new TestSuite(marauroa.net.Test_SerializerByte.class)); 126 suite.addTest(new TestSuite(marauroa.net.Test_SerializerShort.class)); 127 suite.addTest(new TestSuite(marauroa.net.Test_SerializerInt.class)); 128 suite.addTest(new TestSuite(marauroa.net.Test_SerializerByteArray.class)); 129 suite.addTest(new TestSuite(marauroa.net.Test_SerializerString.class)); 130 131 suite.addTest(new TestSuite(marauroa.net.Test_Messages.class)); 132 suite.addTest(new TestSuite(marauroa.net.Test_MessageFactory.class)); 133 134 suite.addTest(new TestSuite(marauroa.game.Test_PlayerDatabase.class)); 135 suite.addTest(new TestSuite(marauroa.game.Test_PlayerEntryContainer.class)); 136 137 suite.addTest(new TestSuite(marauroa.game.Test_Attributes.class)); 138 suite.addTest(new TestSuite(marauroa.game.Test_RPAction.class)); 139 suite.addTest(new TestSuite(marauroa.game.Test_RPZone.class)); 140 suite.addTest(new TestSuite(marauroa.game.Test_RPObject.class)); 141 suite.addTest(new TestSuite(marauroa.game.Test_RPSlot.class)); 142 suite.addTest(new TestSuite(marauroa.game.Test_RPScheduler.class)); 143 144 suite.addTest(new TestSuite(marauroa.game.Test_MarauroaRPZone.class)); 145 146 suite.addTest(new TestSuite(marauroa.net.Test_NetworkServerManager.class)); 147 suite.addTest(new TestSuite(marauroa.game.Test_GameServerManager.class)); 148 suite.addTest(new TestSuite(marauroa.game.Test_RPServerManager.class)); 149 150 return suite; 151 } 152 153 public static Test suiteBase ( ) 154 { 155 TestSuite suite= new TestSuite("Base marauroa Tests"); 156 157 suite.addTest(new TestSuite(marauroa.Test_RWLock.class)); 158 suite.addTest(new TestSuite(marauroa.Test_Configuration.class)); 159 160 return suite; 161 } 162 163 public static Test suiteNet ( ) 164 { 165 TestSuite suite= new TestSuite("Network marauroa Tests"); 166 167 suite.addTest(new TestSuite(marauroa.net.Test_SerializerByte.class)); 168 suite.addTest(new TestSuite(marauroa.net.Test_SerializerShort.class)); 169 suite.addTest(new TestSuite(marauroa.net.Test_SerializerInt.class)); 170 suite.addTest(new TestSuite(marauroa.net.Test_SerializerByteArray.class)); 171 suite.addTest(new TestSuite(marauroa.net.Test_SerializerString.class)); 172 173 suite.addTest(new TestSuite(marauroa.net.Test_Messages.class)); 174 suite.addTest(new TestSuite(marauroa.net.Test_MessageFactory.class)); 175 176 return suite; 177 } 178 179 public static Test suiteGame ( ) 180 { 181 TestSuite suite= new TestSuite("Game marauroa Tests"); 182 183 suite.addTest(new TestSuite(marauroa.game.Test_PlayerDatabase.class)); 184 suite.addTest(new TestSuite(marauroa.game.Test_PlayerEntryContainer.class)); 185 186 suite.addTest(new TestSuite(marauroa.game.Test_Attributes.class)); 187 suite.addTest(new TestSuite(marauroa.game.Test_RPAction.class)); 188 suite.addTest(new TestSuite(marauroa.game.Test_RPZone.class)); 189 suite.addTest(new TestSuite(marauroa.game.Test_RPObject.class)); 190 suite.addTest(new TestSuite(marauroa.game.Test_RPSlot.class)); 191 suite.addTest(new TestSuite(marauroa.game.Test_RPScheduler.class)); 192 193 suite.addTest(new TestSuite(marauroa.game.Test_MarauroaRPZone.class)); 194 195 return suite; 196 } 197 198 public static Test suiteActive ( ) 199 { 200 TestSuite suite= new TestSuite("Active marauroa Tests"); 201 202 suite.addTest(new TestSuite(marauroa.net.Test_NetworkServerManager.class)); 203 suite.addTest(new TestSuite(marauroa.game.Test_GameServerManager.class)); 204 suite.addTest(new TestSuite(marauroa.game.Test_RPServerManager.class)); 205 206 return suite; 207 } 208 } 209