Commit Graph

30 Commits

Author SHA1 Message Date
Vadim Zeitlin
8169464516 Suppress harmless MSVC warnings in atomic unit test
The changes of 50bc3ceb04 (Get rid of CppUnit boilerplate in atomic unit
test, 2022-05-11) resulted in warnings about possibly uninitialized
variables in this test, so do initialize them for MSVC even if it isn't
really necessary.
2022-05-23 15:05:47 +01:00
Vadim Zeitlin
cf66ce5f94 Return the new value from wxAtomicInc() too
This is easy to do and can be useful when using an atomic initialization
counter.

The only platform where not returning the new value might be more
efficient than returning it is Solaris which is not really relevant any
more and on all the other platforms the functions we were already using
provided this value already (or almost, in case of using gcc builtins,
when we just have to use a different one).
2022-05-11 00:16:47 +02:00
Vadim Zeitlin
e82290f0da Use wxVector instead of array macro in atomic unit test
No real changes.
2022-05-11 00:08:52 +02:00
Vadim Zeitlin
50bc3ceb04 Get rid of CppUnit boilerplate in atomic unit test
Also use a single test function with different sections instead of using
a helper function with 4 wrappers calling it for simplicity.
2022-05-11 00:08:03 +02:00
Vadim Zeitlin
a2e68f43ea Avoid direct access to an atomic variable in the test
This (correctly) results in a warning about data race from TSAN, so
don't do it and use the return value of wxAtomicDec() instead.
2022-05-10 23:55:25 +02:00
Vadim Zeitlin
44131b044d Use the same number of iterations in atomic unit test
Use reasonably, but not too, big number, so that the test doesn't run
too long, even when TSAN is used.

This also simplifies the code.
2022-05-10 23:54:21 +02:00
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Maarten Bent
7c1ab06ea5 Add more wxOVERRIDE 2018-09-22 14:44:07 +02:00
Maarten Bent
5ea4e639b6 Fix type cast warning in thread test 2018-07-29 16:29:36 +02:00
Maarten Bent
57180d68c8 Add wxOVERRIDE to test files
And cleanup some tailing spaces and tabs.
2018-07-29 12:08:53 +02:00
Vadim Zeitlin
729dd5e693 Work around Catch multi-thread unsafety
Don't use Catch asserts in threads other than main, this doesn't work
reliably.

Switch to using simple wxASSERT() which doesn't give as much information
as Catch asserts when the test fails, but at least allows the tests to
pass when the asserts don't fail.
2017-11-02 01:53:25 +01:00
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
Paul Cornett
fc7f20c419 Fix some memory leaks in the tests 2017-10-01 09:41:49 -07: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
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
a2ae66251c Fix harmless Clang warning about unused class member in a test.
The m_i field is only used in the currently commented out debugging messages,
suppress a warning about it being unused.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-15 01:31:43 +00:00
Vadim Zeitlin
90e95e6117 Rename WXTHREAD_XXX_PRIORITY yo wxPRIORITY_XXX.
This will allow to reuse the same constants for the process priorities in an
upcoming commit.

See #14931.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 02:10:07 +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
Francesco Montorsi
89a76d5d2c make POSIX and Windows implementation of wxThread::Run() coherently assert when trying to Run() a thread twice; add a test for it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65106 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-25 13:55:36 +00:00
Francesco Montorsi
5d029a1d7c fix for non-PCH builds; also use wxMilliSleep instead of wxThread::Sleep since the former is more readable (it's clear that it takes milliseconds).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-11 07:16:58 +00:00
Francesco Montorsi
1f5496a0f5 move code testing wxThread classes from the console sample to a new CppUnit test
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-10 21:48:24 +00:00
Vadim Zeitlin
5811b24f5e Fix harmless warning about a possibly uninitialized variable.
gcc complained about possibly uninitialized variable in QueueTestCase in
optimized build, just initialize it to suppress this warning.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64112 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-22 14:16:26 +00:00
Vadim Zeitlin
8b73c5318c chanegd wxTlsValue to be pointer-like instead of value-like which doesn't work for UDTs; use __thread keyword with mingw32 >= 4.3 too; use library-based thread-specific variables support in wxString cache now that it is fixed to work there; finally added a unit test for TLS stuff
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-29 23:28:42 +00:00
Vadim Zeitlin
c71396b42d suppress warning about casting int to a pointer of greater size
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53956 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-02 20:45:50 +00:00
Vadim Zeitlin
42124e683d define wxHAS_ATOMIC_OPS only if native implementation is available; use fewer loop iterations in the test if it isn't as otherwise the test takes way too long to run
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-02 20:42:23 +00:00
Vadim Zeitlin
5098c258b2 compilation fixes for VC6
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51188 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-13 01:13:03 +00:00
Vadim Zeitlin
6aaee6afdc added wxMessageQueue class for inter-thread communications
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-01 01:35:20 +00:00
Václav Slavík
630dad8cc1 added a test for wxAtomicDec return value
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-10 22:12:39 +00:00
Václav Slavík
cb979a71de PCH-less compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-22 15:18:31 +00:00
Vadim Zeitlin
cde76cf2a9 added wxAtomicInc/Dec() functions (patch 1739486)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47121 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-04 20:54:14 +00:00