Hi,

You need a more recent Strawberry.

5.14.2.1 (November 2011) as included with DWIM Perl contains a gcc tool chain that is not compatible with Wx / wxWidgets 2.9.x builds.

5.14.3 (October 2012) onwards or any 5.16 Strawberry release are compatible.

I'm sure the issue is to do with C++ exception handling in wxWidgets 2.9.x and using SJLJ exceptions.

The gcc in 5.14.2.1 always links the C++ library statically which invariably causes problems with exceptions across dlls.

As gcc on Windows from 4.5.x onwards solves this problem and current Strawberry releases have a compatible gcc (4.6.3), it is not on my list to noodle around with this further.

Regards

Mark

On 21/02/2013 16:44, Smylers wrote:
The Wx module's tests are failing for me with wxWidgets 2.9.4 on Dwim
Perl (which is Strawberry Perl 5.14 bundled with some other stuff) on
Windows 7.

Any suggestions for fixing this (or the next step in debugging it)
gratefully received.

I built and installed wxWidgets 2.9.4 using the Alien::wxWidgets module,
and that all went fine. Then I set WXDIR and WXWIN, and compiling the Wx
module (version 0.9917) appears to go OK. But then some of the tests
fail -- full output pasted at the end. For each failing test program a
Windows error window pops up saying 'perl.exe has stopped working:
Windows is collecting more information about the problem'.

Running prove directly on the first .t file that files _mostly_ gives
this output (along with one of those perl.exe crash windows):

   >C:\Dwimperl\perl\bin\perl C:\Dwimperl\perl\bin\prove.bat -v t\03_event.t
   t\03_event.t ..
   1..17
   ok 1 - event succesfully received
   ok 2 - no object destroyed
   ok 3 - still no object destroyed
   Dubious, test returned 5 (wstat 1280, 0x500)
   Failed 14/17 subtests

   Test Summary Report
   -------------------
   t\03_event.t (Wstat: 1280 Tests: 3 Failed: 0)
     Non-zero exit status: 5
     Parse errors: Bad plan.  You planned 17 tests but ran 3.
   Files=1, Tests=3,  2 wallclock secs ( 0.09 usr +  0.17 sys =  0.27 CPU)
   Result: FAIL

However, on a few attempts it has successfully run all 17 tests and
given a PASS at the end -- even when run consecutively just by pressing
Up then Enter, a FAIL may be followed by a PASS or vice versa.

   >dmake test
   dmake:  Warning: -- Found file corresponding to virtual target 
[cpp\ovl_const.cpp].
   dmake:  Warning: -- Found file corresponding to virtual target 
[cpp\ovl_const.h].
   C:\Dwimperl\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 
'blib\lib', 'blib\arch')" t/*.t
   t/01_load.t ........... ok
   t/02_inheritance.t .... ok
   t/03_event.t .......... Dubious, test returned 5 (wstat 1280, 0x500)
   Failed 14/17 subtests
   t/04_userdata.t ....... ok
   t/05_timer.t .......... ok
   t/06_loadxpm.t ........ ok
   t/07_overload.t ....... ok
   t/08_ovl_func.t ....... Dubious, test returned 5 (wstat 1280, 0x500)
   Failed 230/230 subtests
   t/09_create_delete.t .. Dubious, test returned 5 (wstat 1280, 0x500)
   Failed 8/8 subtests
   t/10_oor.t ............ Dubious, test returned 5 (wstat 1280, 0x500)
   Failed 42/58 subtests
   t/11_twostage.t ....... Dubious, test returned 5 (wstat 1280, 0x500)
   Failed 2/2 subtests
   t/12_pod.t ............ skipped: Author tests
   t/13_nbksizer.t ....... Dubious, test returned 5 (wstat 1280, 0x500)
   All 3 subtests passed
   t/14_eh_die.t ......... Dubious, test returned 5 (wstat 1280, 0x500)
   All 6 subtests passed
   t/15_threads.t ........ ok
   t/16_stream.t ......... Dubious, test returned 5 (wstat 1280, 0x500)
   Failed 8/8 subtests
   t/17_thread_evt.t ..... Dubious, test returned 5 (wstat 1280, 0x500)
   All 2 subtests passed
   t/18_unicode.t ........ Dubious, test returned 5 (wstat 1280, 0x500)
   All 12 subtests passed
           (less 4 skipped subtests: 8 okay)
   t/19_overlay.t ........ Dubious, test returned 5 (wstat 1280, 0x500)
   All 1 subtests passed
   t/20_ctx_threads.t .... skipped: no GraphicsContext
   t/21_locale.t ......... ok
   t/22_interface.t ...... Dubious, test returned 5 (wstat 1280, 0x500)
   All 1 subtests passed
   t/zz_distrib.t ........ skipped: Author tests

Doing exactly the same thing with wxWidgets 2.8.12 works fine, with all
tests passing. (I compiled both versions at once in different
directories, using local::lib to keep them separate, so am reasonably
confident I used the same commands with each.)

I only deviated from Wx's INSTALL.pod in using dmake (which seems to
come with Strawberry Perl) rather than nmake (which doesn't).

Here's the full test output:

   Test Summary Report
   -------------------
   t/03_event.t        (Wstat: 1280 Tests: 3 Failed: 0)
     Non-zero exit status: 5
     Parse errors: Bad plan.  You planned 17 tests but ran 3.
   t/04_userdata.t     (Wstat: 0 Tests: 65 Failed: 0)
     TODO passed:   25, 33, 41, 57
   t/08_ovl_func.t     (Wstat: 1280 Tests: 0 Failed: 0)
     Non-zero exit status: 5
     Parse errors: Bad plan.  You planned 230 tests but ran 0.
   t/09_create_delete.t (Wstat: 1280 Tests: 0 Failed: 0)
     Non-zero exit status: 5
     Parse errors: Bad plan.  You planned 8 tests but ran 0.
   t/10_oor.t          (Wstat: 1280 Tests: 16 Failed: 0)
     Non-zero exit status: 5
     Parse errors: Bad plan.  You planned 58 tests but ran 16.
   t/11_twostage.t     (Wstat: 1280 Tests: 0 Failed: 0)
     Non-zero exit status: 5
     Parse errors: Bad plan.  You planned 2 tests but ran 0.
   t/13_nbksizer.t     (Wstat: 1280 Tests: 3 Failed: 0)
     Non-zero exit status: 5
   t/14_eh_die.t       (Wstat: 1280 Tests: 6 Failed: 0)
     Non-zero exit status: 5
   t/16_stream.t       (Wstat: 1280 Tests: 0 Failed: 0)
     Non-zero exit status: 5
     Parse errors: Bad plan.  You planned 8 tests but ran 0.
   t/17_thread_evt.t   (Wstat: 1280 Tests: 2 Failed: 0)
     Non-zero exit status: 5
   t/18_unicode.t      (Wstat: 1280 Tests: 12 Failed: 0)
     Non-zero exit status: 5
   t/19_overlay.t      (Wstat: 1280 Tests: 1 Failed: 0)
     Non-zero exit status: 5
   t/22_interface.t    (Wstat: 1280 Tests: 1 Failed: 0)
     Non-zero exit status: 5
   Files=23, Tests=467, 39 wallclock secs ( 0.52 usr +  0.36 sys =  0.88 CPU)
   Result: FAIL
   Failed 12/23 test programs. 0/467 subtests failed.
   dmake:  Error code 255, while making 'test_dynamic'

Thanks.

Smylers

Reply via email to