Commit Graph

46 Commits

Author SHA1 Message Date
Vadim Zeitlin
e70fc11ef1 Replace CppUnit with Catch for unit tests
Drop the legacy CppUnit testing framework used for the unit tests.
Replacing it with Catch has the advantage of not requiring CppUnit
libraries to be installed on the system in order to be able to run
tests (Catch is header-only and a copy of it is now included in the
main repository itself) and, in the future, of being able to write
the tests in a much more natural way.

For now, however, avoid changing the existing tests code as much as
[reasonably] possible to avoid introducing bugs in them and provide
the CppUnit compatibility macros in the new wx/catch_cppunit.h header
which allow to preserve the 99% of the existing code unchanged. Some
of the required changes are:

 - Decompose asserts using "a && b" conditions into multiple asserts
   checking "a" and "b" independently. This would have been better
   even with CppUnit (to know which part of condition exactly failed)
   and is required with Catch.

 - Use extra parentheses around such conditions when they can't be
   easily decomposed in the arrays test, due to the use of macros.
   This is not ideal from the point of view of messages given when
   the tests fail but will do for now.

 - Rewrite asserts using "a || b" as a combination of condition
   checks and assert macros. Again, this is better anyhow, and is
   required with Catch. Incidentally, this allowed to fix a bug in
   the "exec" unit test which didn't leave enough time for the new
   process to be launched before trying to kill it.

 - Remove multiple CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() macros,
   our emulation of this macro can be used only once.

 - Provide string conversions using Catch-specific StringMaker for
   a couple of types.

 - Replace custom wxImage comparison with a Catch-specific matcher
   class.

 - Remove most of test running logic from test.cpp, in particular don't
   parse command line ourselves any longer but use Catch built-in
   command line parser. This is a source of a minor regression:
   previously, both "Foo" and "FooTestCase" could be used as the name of
   the test to run, but now only the latter is accepted.
2017-11-02 01:53:16 +01:00
Vadim Zeitlin
1519042018 Add missing wxOVERRIDE to avoid clang warning to wxAny unit test
Mark ConvertValue() virtual method inherited from the base class as
overridden to avoid clang -Winconsistent-missing-override warning.
2017-10-22 23:39:53 +02:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Vadim Zeitlin
f4b80e5337 Remove MSVC6 support.
Don't support this compiler any more, this allows to get rid of tons of
MSVC6-specific workarounds, in particular we can now use Bind() and natural
template functions calls in the library code.

Also remove MSVC6 project and solution files and don't generate them when
bakefile_gen is ran any more (removing the remaining occurrences of msvc6prj
from the bakefiles results in weird bake-time errors, so it's simpler to just
leave them there).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-15 22:32:17 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
43c42c18d3 Test using wxString::ToCDouble() in wxAny.
Apparently the heap corruption problems in wxOSX/PPC build are due to using
wxString::ToDouble() and not anything done specifically in wxAny at all.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-17 20:00:10 +00:00
Vadim Zeitlin
1422312707 Try using wxString::ToCDouble() instead of ToDouble() in wxAny case.
Apparently enabling the call to ToDouble() in the test is enough to corrupt
the heap in wxOSX PPC build. No idea how can this be possible but try to check
if using ToCDouble() helps...

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-17 11:53:46 +00:00
Vadim Zeitlin
79be3fb48d Re-enable yet another hopefully harmless test in wxAny test case.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:32:50 +00:00
Vadim Zeitlin
3942aa77f5 Re-enable wxAny<double>::GetAs<wxString>() test.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 11:40:08 +00:00
Vadim Zeitlin
d949642d76 Enable wxAny<double>::GetAs<unsigned long>() test.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 01:45:42 +00:00
Vadim Zeitlin
3135098707 Re-enable a single m_anyDoubleDouble1 test in wxAny test case.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-15 21:45:28 +00:00
Vadim Zeitlin
52e4cd7308 Reenable m_anyBool1 tests in wxAny test case too.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-15 20:02:01 +00:00
Vadim Zeitlin
5181927e6b Re-enable conversions of wxAny to boolean tests.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-15 13:05:53 +00:00
Vadim Zeitlin
32abcfc2ae Reenable some wxAny tests back.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73982 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-14 11:07:15 +00:00
Vadim Zeitlin
16983807c5 Disable more wxAny tests again.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73976 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-13 17:09:20 +00:00
Vadim Zeitlin
dddc2bc23c Try to find another wxAny test that results in heap corruption.
Conversion to float is not the only problem...

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73975 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-13 13:25:44 +00:00
Vadim Zeitlin
39489697a3 Disable more tests in wxOSX/PPC build.
Also added a #warning to make it more apparent what we're doing here.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-13 11:05:43 +00:00
Vadim Zeitlin
99119b0e85 Whack-a-mole with wxOSX/PPC unit tests continued.
The problem was not related to float-to-double conversions in wxAny code, try
to narrow it even further.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73973 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-12 23:04:13 +00:00
Vadim Zeitlin
60dbc04c46 Disable double-to-float conversion tests in wxAny code.
This seems to be the reason for the heap corruption in wxOSX PPC builds.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73971 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-12 20:34:46 +00:00
Vadim Zeitlin
a4c7b5e435 Enable another test in wxAnyTestCase under OS X.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-12 19:19:46 +00:00
Vadim Zeitlin
1a9961c430 Enable yet more tests in wxAnyTestCase::GetAs().
This is part of the continuing series of commits to find out what results in
heap corruption in wxOSX PPC builds.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-10 19:21:45 +00:00
Vadim Zeitlin
37dd9a696c Enable a few more tests in wxAnyTestCase::GetAs().
This is part of the continuing series of commits to find out what results in
heap corruption in wxOSX PPC builds.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-10 13:22:08 +00:00
Vadim Zeitlin
784397563c Reduce the number of wxAny tests ran under wxOSX further.
Something in GetAs() test definitely corrupts memory, but what?

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73956 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-09 23:22:06 +00:00
Vadim Zeitlin
1f0b3a2910 Start bisecting GetAs() wxAny test itself.
This is the test that results in memory corruption in wxOSX PPC builds, try
to find out where exactly does this happen.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-09 22:29:13 +00:00
Vadim Zeitlin
ea32fa53af Leave only a single wxAny unit test disabled.
It looks like the culprit is GetAs() test, verify it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-09 19:56:47 +00:00
Vadim Zeitlin
4c45335cd2 Another attempt to isolate memory corrupting wxAny test.
We now know it's either As() or GetAs() (or both).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-08 23:18:12 +00:00
Vadim Zeitlin
506b3c5db4 Continue bisecting tests crash in PPC OS X builds.
Disable more wxAny tests.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73952 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-08 22:01:02 +00:00
Vadim Zeitlin
29bdcf09ce Really disable wxAny tests under wxOSX.
Instead of disabling them everywhere but there.

See r73944.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-08 21:17:00 +00:00
Vadim Zeitlin
62b88de2d2 Disable more wxAny tests under OS X to try to find the buildbot crash.
Disabling wxVariantConversions test was not enough to fix the crash happening
in OS X PPC build slave, so disable a few more of them.

Temporarily do it for any wxOSX build, the run-time check for buildbot will be
restored later when I finally manage to find the problematic test(s?).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73944 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-07 15:10:53 +00:00
Vadim Zeitlin
bc4185a458 Disable wxAny-to-wxVariant conversion test case under OS X.
This is a blind attempt to fix the test crash under PPC OS X.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-06 21:46:55 +00:00
Dimitri Schoolwerth
e3778b4d9c No code changes, fixed some typos.
Changed several occurrences of "it's" where "its" is meant, as well as a few other minor typos.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-30 10:57:04 +00:00
Vadim Zeitlin
486b9734e8 Compilation fix for wxAnyTestCase in ANSI-only build.
Comparison of wxAny with wide strings is not available in this case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-12 22:50:47 +00:00
Jaakko Salli
7c2257892c VC6 Fix: Use wxANY_AS() instead of wxAny::As<>()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 07:08:13 +00:00
Jaakko Salli
8561534085 Added (sanity) checks for the inplace allocation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-19 11:01:22 +00:00
Jaakko Salli
f1156cbb0d Added wxAny::HasSameType()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-18 13:30:47 +00:00
Jaakko Salli
d517b60699 Modify float/double wxAny testing to use CPPUNIT_ASSERT_EQUAL() instead of CPPUNIT_ASSERT_DOUBLES_EQUAL(), so that we know the retrieved values are truly identical.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-06 17:21:50 +00:00
Jaakko Salli
153107b402 Allow wxAny to contain 'const char*' or 'const wchar_t*'. This was previously not possible since these pointers were converted to wxString, as convenient means to work with string literals. Now pointers (to string literals) are stored instead, and As<wxString>(), comparison operators do the type conversion.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64106 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-22 13:51:38 +00:00
Jaakko Salli
49efebe247 Fix VC6 compilation by changing the order of assignment operators in wxAny
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-20 12:55:34 +00:00
Jaakko Salli
fdfd64994c Improve wxAny<->wxVariant conversion 64-bit integer tests
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64049 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-19 14:23:49 +00:00
Jaakko Salli
0aaed451fd Fix wxAny for VC6 by removing 'wxAny& operator=(const wxVariant &variant)' for it. This will break some cases of implicit wxVariant->wxAny conversion (for VC6).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64022 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-18 11:15:26 +00:00
Jaakko Salli
0bf14ab8b1 wxVariant <-> wxAny conversion functionality. Includes implicit construction of wxAny from wxVariant, and vice versa. wxVariant->wxAny conversion is implemented by adding new virtual member function into wxVariantData. wxAny->wxVariant conversion is implemented by associating wxAnyValueTypes with functions that generate wxVariantData instances (using a hash map).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-16 14:33:52 +00:00
Jaakko Salli
7db064f60f Added typeinfo.h which implements wxTypeId, using C++ RTTI if available. wxAny and Unbind<>() code are updated to use it. Added and updated related unit tests.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-19 19:27:24 +00:00
Vadim Zeitlin
97051666f0 Add missing header to fix wxAny test compilation under OS X.
And probably other Unix systems not using PCH.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61980 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-20 12:37:11 +00:00
Vadim Zeitlin
39601a7f74 Set svn properties correctly for the newly added files.
Set svn:keyword and, most importantly, svn:eol-style, to avoid having files
with DOS line endings in svn, for the new files added by r61971.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61973 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-19 15:41:08 +00:00
Jaakko Salli
9ae96ec2bd Fixed wxAny tests for VC6
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61972 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-19 10:13:31 +00:00
Jaakko Salli
178c77606f wxAny initial commit (closes #10932)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61971 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-19 08:51:11 +00:00