1 //
2 // MuleUnit: A minimalistic C++ Unit testing framework based on EasyUnit.
3 //
4 // Copyright (c) 2005-2011 aMule Team ( admin@amule.org / http://www.amule.org )
5 // Copyright (c) 2004-2011 Barthelemy Dagenais ( barthelemy@prologique.com )
6 //
7 // This library is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU Lesser General Public
9 // License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 //
12 // This library is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 // Lesser General Public License for more details.
16 //
17 // You should have received a copy of the GNU Lesser General Public
18 // License along with this library; if not, write to the Free Software
19 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
20 //
21 
22 #include <wx/wx.h>
23 #include "testregistry.h"
24 #include "test.h"
25 #include <common/MuleDebug.h>
26 
27 using namespace muleunit;
28 
GetFullMuleVersion()29 wxString GetFullMuleVersion()
30 {
31 	return wxT("UnitTest");
32 }
33 
34 
35 unsigned s_disableAssertions = 0;
36 
37 
38 class UnitTestApp : public wxAppConsole
39 {
40 public:
OnRun()41 	int OnRun() {
42 		return (TestRegistry::runAndPrint() ? 0 : 1);
43 	}
44 
OnAssertFailure(const wxChar * file,int line,const wxChar *,const wxChar * cond,const wxChar * msg)45 	void OnAssertFailure(const wxChar* file, int line,  const wxChar* /*func*/, const wxChar* cond, const wxChar* msg)
46 	{
47 		if (s_disableAssertions) {
48 			return;
49 		}
50 
51 		wxString desc;
52 		if (cond && msg) {
53 			desc << cond << wxT(" -- ") << msg;
54 		} else if (cond) {
55 			desc << wxT("Assertion: ") << cond;
56 		} else {
57 			desc << msg;
58 		}
59 
60 		throw CAssertFailureException(desc, file, line);
61 	}
62 
63 #ifndef __WXMSW__
OnUnhandledException()64 	void OnUnhandledException() {
65 		::OnUnhandledException();
66 	}
67 #endif
68 
69 };
70 
71 
72 IMPLEMENT_APP_CONSOLE(UnitTestApp);
73