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