Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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