|Subject:||OLE Exception error 0x800a03ec while make test on Cygwin|
|Date:||Sun, 20 May 2018 09:00:12 +0800|
|From:||"S.J. Luo" <email@example.com>|
Hi, I downloaded the Win32::OLE module from CPAN, fixed stricmp() function problem and successfully compiled it on Cygwin 64bit environment. Then there are some errors occurred on make test: ---------- % make test "/usr/bin/perl.exe" -MExtUtils::Command::MM -e 'cp_nonempty' -- OLE.bs blib/arch/auto/Win32/OLE/OLE.bs 644 PERL_DL_NONLAZY=1 "/usr/bin/perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/1_nls.t ....... ok t/2_variant.t ... ok t/3_ole.t ....... 1/58 OLE exception from "Microsoft Excel": Microsoft Excel cannot open or save any more documents because there is not enough available memory or disk space. • To make more memory available, close workbooks or programs you no longer need. • To free disk space, delete files you no longer need from the disk you are saving to. Win32::OLE(0.1712) error 0x800a03ec in METHOD/PROPERTYGET "Add" at t/3_ole.t line 130. Win32::OLE->QueryObjectType: object is not a Win32::OLE object at t/3_ole.t line 131. Can't call method "Xyzzy" on an undefined value at t/3_ole.t line 151. t/3_ole.t ....... Dubious, test returned 255 (wstat 65280, 0xff00) Failed 55/58 subtests t/4_compat.t .... 1/5 Use of uninitialized value $bk in concatenation (.) or string at t/4_compat.t line 36. Can't use an undefined value as a HASH reference at t/4_compat.t line 41. t/4_compat.t .... Dubious, test returned 255 (wstat 65280, 0xff00) Failed 5/5 subtests t/5_unicode.t ... ok t/6_event.t ..... skipped: D:\cyg_home\user\.cpan\build\Win32-OLE-0.1712-0\test.xls doesn't exist! Please run test 3_ole.t first t/7_overload.t .. skipped: D:\cyg_home\user\.cpan\build\Win32-OLE-0.1712-0\test.xls doesn't exist! Please run test 3_ole.t first ---------- The same problem was reported:To figure out the cause, I've tried an Excel automation program written in C and the same problem occurs. The error would not occur if the C program is compiled by Mingw instead of Cygwin gcc. Therefore there might be some compatibility issue between OLE and Cygwin. I've found there is a document perlcygwin that mentions about environment variable issue on Cygwin which can be solved by calling a platform specific function Cygwin::sync_winenv(). After adding this function call into t/3_ole.t and t/4_compat.t as attached patch file. All test items passed. This shall not be a bug of Win32::OLE. But I think there should be some document addressing it. My system environment is Cygwin 2.10 x86_64 on Win7 SP1 and Excel2010.
Message body is not shown because sender requested not to inline it.