octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: cross-building with --enable-64 MinGW: test results


From: Philip Nienhuis
Subject: RE: cross-building with --enable-64 MinGW: test results
Date: Mon, 18 Aug 2014 06:44:19 -0700 (PDT)

John Donoghue-2 wrote
> Message: 1
> Date: Sun, 17 Aug 2014 12:16:58 -0700 (PDT)
> From: Philip Nienhuis <

> address@hidden

> >
> To: 

> octave-maintainers@

> Subject: RE: cross-building with --enable-64: Assembly error
> Message-ID: <

> address@hidden

>>
> Content-Type: text/plain; charset=us-ascii
> -- cut content here --
> 
>> 
>> Try this match to mxe, based upon this patch.
>> http://lists.freedesktop.org/archives/gstreamer-commits/2014-February/
>> 077094.html
>> 
>> fix-libgcrypt.patch (1K)
>> &lt;http://octave.1599824.n4.nabble.com/attachment/4666090/0/fix-libgc
>> rypt.patch&gt;
> 
> Thanks, with that patch libgcrypt (and stable-octave) could be cross-built
> w
> 64-bit indexing.
> Trying it out it turns out to be a real 64-bit program - WinXP 32bit
> complains octave*.exe "is not a valid win32 executable".
> 
> On my win7 64-bit box octave-3.8.2 runs fine, but....
> running __run_test_suite__.m errors out in eig.cc:
> 
> =================================================
> 
> GNU Octave, version 3.8.2
> Copyright (C) 2014 John W. Eaton and others.
> This is free software; see the source code for copying conditions.
> There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or FITNESS
> FOR
> A PARTICULAR PURPOSE.  For details, type 'warranty'.
> 
> Octave was configured for "x86_64-w64-mingw32".
> 
> Additional information about Octave is available at http://www.octave.org.
> 
> Please contribute if you find this software useful.
> For more information, visit http://www.octave.org/get-involved.html
> 
> Read http://www.octave.org/bugs.html to learn how to submit bug reports.
> For information about changes from previous versions, type 'news'.
> 
> octave:1> more off
> octave:2> __run_test_suite__
> 
> Integrated test scripts:
> 
>   liboctave\array\Array.cc-tst ........................... PASS   18/18
> :
> <snip>
> :
>   libinterp\corefcn\eig.cc-tst ...........................subscript
> indices
> must be either positive integers less than 2^63 or logicals octave:3>
> 
> =================================================
> 
> Should I file a bug report for it?
> I tried at random a few other fixed test scripts in
> /share/octave/etc/tests/fixed, but they did run fine. So maybe it is just
> eig.cc that has issues. Is there a way to skip specific tests in
> __run_test_suite__.m?
> <snip>
> ------------------------------
> <John D:>
> Running using the latest mxe as 64 bit __run_test__ I see the same thing
>   libinterp\corefcn\eig.cc-tst ...........................subscript
> indices
> must be either positive i
> ntegers less than 2^63 or logicals

I found some time to delve deeper into it.
Singling out eig.cc-tst, converting it into a function .m file and
commenting/uncommenting all tests one by one by hand, it turns out that
eig.cc itself is numerically OK (pfeww!) but it just cannot handle all input
validation tests.
In eig.cc-tst  I've commented out the 4 offending input validation tests
(i.e., the last 4). With that, eig.cc-tst gets run OK (all eig tests proper
+ the first 2 input validation tests PASS).

Note that it loks like test.m itself seems to error out with the "subscript
indices ..." message - with debug_on_error (1) it says "error in library
function" and gives me a debug prompt.

Anyway with the revised eig.cc-tst I get the following results for
__run_test_suite__.m, below the stats I've copied in the tests that FAIL:

Summary:

  PASS     11521
  FAIL        24
  XFAIL        7
  SKIPPED     48


Excerpt from fntests.log:

===========================================
>>>>> processing
>>>>> D:\Octave\octave-3.8.2\share\octave\3.8.2\etc\tests\libinterp\octave-value\ov-class.cc-tst
  ***** testif HAVE_JAVA
 jobj = javaObject ("java.lang.StringBuffer");
 assert (class (jobj), "java.lang.StringBuffer");
!!!!! test failed
unable to find Java Runtime Environment: software\javasoft\java runtime
environment::Currentversion

===========================================
>>>>> processing
>>>>> D:\Octave\octave-3.8.2\share\octave\3.8.2\etc\tests\libinterp\octave-value\ov-java.cc-tst
  ***** testif HAVE_JAVA
 assert (javaObject ("java.lang.Short", 40000).doubleValue < 0);
!!!!! test failed
unable to find Java Runtime Environment: software\javasoft\java runtime
environment::Currentversion
  ***** testif HAVE_JAVA
 jver = strsplit (javaMethod ('getProperty', 'java.lang.System',
'java.version'), '.');
 assert (isfinite (str2double (jver{1})) && isfinite (str2double
(jver{2})));
!!!!! test failed
unable to find Java Runtime Environment: software\javasoft\java runtime
environment::Currentversion

===========================================
>>>>> processing
>>>>> D:\Octave\octave-3.8.2\share\octave\3.8.2\etc\tests\libinterp\octave-value\ov-typeinfo.cc-tst
  ***** testif HAVE_JAVA
 x = javaObject ("java.lang.StringBuffer");
 assert (typeinfo (x), "octave_java");
!!!!! test failed
unable to find Java Runtime Environment: software\javasoft\java runtime
environment::Currentversion


===========================================
>>>>> processing D:\Octave\octave-3.8.2\share\octave\3.8.2\m\general\chop.m
  ***** assert (chop (e, 3), 2.72)
!!!!! test failed
ASSERT errors for:  assert (chop (e, 3),2.72)

  Location  |  Observed  |  Expected  |  Reason
     ()          2.72         2.72       Abs err 4.4409e-016 exceeds tol 0
  ***** assert (chop (e, 4), 2.718)
!!!!! test failed
ASSERT errors for:  assert (chop (e, 4),2.718)

  Location  |  Observed  |  Expected  |  Reason
     ()         2.718        2.718       Abs err 8.8818e-016 exceeds tol 0
  ***** assert (chop (e, 4, 5), 2.72)
!!!!! test failed
ASSERT errors for:  assert (chop (e, 4, 5),2.72)

  Location  |  Observed  |  Expected  |  Reason
     ()          2.72         2.72       Abs err 4.4409e-016 exceeds tol 0
  ***** assert (chop (e, 4, 7), 2.716)
!!!!! test failed
ASSERT errors for:  assert (chop (e, 4, 7),2.716)

  Location  |  Observed  |  Expected  |  Reason
     ()         2.716        2.716       Abs err 4.4409e-016 exceeds tol 0
  ***** assert (chop (-e, 3), -2.72)
!!!!! test failed
ASSERT errors for:  assert (chop (-e, 3),-2.72)

  Location  |  Observed  |  Expected  |  Reason
     ()         -2.72        -2.72       Abs err 4.4409e-016 exceeds tol 0
  ***** assert (chop (-e, 4), -2.718)
!!!!! test failed
ASSERT errors for:  assert (chop (-e, 4),-2.718)

  Location  |  Observed  |  Expected  |  Reason
     ()         -2.718       -2.718      Abs err 8.8818e-016 exceeds tol 0
  ***** assert (chop (-e, 4, 5), -2.72)
!!!!! test failed
ASSERT errors for:  assert (chop (-e, 4, 5),-2.72)

  Location  |  Observed  |  Expected  |  Reason
     ()         -2.72        -2.72       Abs err 4.4409e-016 exceeds tol 0
  ***** assert (chop (-e, 4, 7), -2.716)
!!!!! test failed
ASSERT errors for:  assert (chop (-e, 4, 7),-2.716)

  Location  |  Observed  |  Expected  |  Reason
     ()         -2.716       -2.716      Abs err 4.4409e-016 exceeds tol 0
  ***** assert (chop (hilb (3), 3), [1,.5,.333;.5,.333,.25;.333,.25,.2])
!!!!! test failed
ASSERT errors for:  assert (chop (hilb (3), 3),[1, .5, .333; .5, .333, .25;
.333, .25, .2])

  Location  |  Observed  |  Expected  |  Reason
   (1,1)          1            1         Abs err 2.2204e-016 exceeds tol 0
   (2,1)         0.5          0.5        Abs err 1.1102e-016 exceeds tol 0
   (3,1)        0.333        0.333       Abs err 5.5511e-017 exceeds tol 0
   (1,2)         0.5          0.5        Abs err 1.1102e-016 exceeds tol 0
   (2,2)        0.333        0.333       Abs err 5.5511e-017 exceeds tol 0
   (3,2)         0.25         0.25       Abs err 5.5511e-017 exceeds tol 0
   (1,3)        0.333        0.333       Abs err 5.5511e-017 exceeds tol 0
   (2,3)         0.25         0.25       Abs err 5.5511e-017 exceeds tol 0
   (3,3)         0.2          0.2        Abs err 2.7756e-017 exceeds tol 0


===========================================
>>>>> processing
>>>>> D:\Octave\octave-3.8.2\share\octave\3.8.2\m\general\fieldnames.m
  ***** testif HAVE_JAVA 
 names = fieldnames ("java.lang.Double");
 search = strfind (names, "java.lang.Double.MAX_VALUE");
 assert (! isempty ([search{:}]));
!!!!! test failed
unable to find Java Runtime Environment: software\javasoft\java runtime
environment::Currentversion

===========================================
>>>>> processing
>>>>> D:\Octave\octave-3.8.2\share\octave\3.8.2\m\general\methods.m
  ***** testif HAVE_JAVA 
 mtds = methods ("java.lang.Double");
 search = strfind (mtds, "java.lang.Double valueOf");
 assert (! isempty ([search{:}]));
!!!!! test failed
unable to find Java Runtime Environment: software\javasoft\java runtime
environment::Currentversion

===========================================
>>>>> processing D:\Octave\octave-3.8.2\share\octave\3.8.2\m\java\usejava.m
  ***** testif HAVE_JAVA
 assert (usejava ("jvm"), true);
!!!!! test failed
ASSERT errors for:  assert (usejava ("jvm"),true)

  Location  |  Observed  |  Expected  |  Reason
     ()           0            1         Abs err 1 exceeds tol 0

===========================================
>>>>> processing
>>>>> D:\Octave\octave-3.8.2\share\octave\3.8.2\m\plot\appearance\axis.m
  ***** test
 hf = figure ("visible", "off");
 unwind_protect
   a = logspace (-5, 1, 10);
   loglog (a, -a);
   axis tight;
   assert (axis (), [1e-5, 10, -10, -1e-5]);
 unwind_protect_cleanup
   close (hf);
 end_unwind_protect
!!!!! test failed
ASSERT errors for:  assert (axis (),[1e-5, 10, -10, -1e-5])

  Location  |  Observed  |  Expected  |  Reason
    (1)         1e-005       1e-005      Abs err 5.0822e-021 exceeds tol 0
    (4)        -1e-005      -1e-005      Abs err 5.0822e-021 exceeds tol 0


===========================================
>>>>> processing
>>>>> D:\Octave\octave-3.8.2\share\octave\3.8.2\m\plot\util\copyobj.m
  ***** testif HAVE_MAGICK
 toolkit = graphics_toolkit ();
 graphics_toolkit ("gnuplot");
 unwind_protect
   h1 = figure ("visible", "off");
   x = 0:0.1:2*pi;
   y1 = sin (x);
   y2 = exp (x - 1);
   ax = plotyy (x,y1, x-1,y2, @plot, @semilogy);
   xlabel ("X");
   ylabel (ax(1), "Axis 1");
   ylabel (ax(2), "Axis 2");
   axes (ax(1));
   text (0.5, 0.5, "Left Axis", ...
         "color", [0 0 1], "horizontalalignment", "center");
   axes (ax(2));
   text (4.5, 80, "Right Axis", ...
         "color", [0 0.5 0], "horizontalalignment", "center");
   s1 = hdl2struct (h1);
   h2 = struct2hdl (s1);
   s2 = hdl2struct (h2);
   png1 = strcat (tmpnam (), ".png");
   png2 = strcat (tmpnam (), ".png");
   unwind_protect
     print (h1, png1);
     [img1, map1, alpha1] = imread (png1);
     print (h2, png2);
     [img2, map2, alpha2] = imread (png2);
   unwind_protect_cleanup
     unlink (png1);
     unlink (png2);
   end_unwind_protect
   assert (img1, img2);
   assert (map1, map2);
   assert (alpha1, alpha2);
 unwind_protect_cleanup
   close (h1);
   close (h2);
   graphics_toolkit (toolkit);
 end_unwind_protect
!!!!! test failed
__ghostscript__.m: ghostscript is required.


===========================================
>>>>> processing
>>>>> D:\Octave\octave-3.8.2\share\octave\3.8.2\m\testfun\assert.m
  ***** test
 x = [-40:0];
 y1 = (10.^x).*(10.^x);
 y2 = 10.^(2*x);
 assert (y1, y2, eps (y1));
 fail ("assert (y1, y2 + eps*1e-70, eps (y1))");
!!!!! test failed
ASSERT errors for:  assert (y1,y2,eps (y1))

  Location  |  Observed  |  Expected  |  Reason
    (11)        1e-060       1e-060      Abs err 4.1454e-076 exceeds tol
1.3818e-076
    (13)        1e-056       1e-056      Abs err 3.3959e-072 exceeds tol
1.132e-072
    (14)        1e-054       1e-054      Abs err 4.3467e-070 exceeds tol
1.4489e-070
    (19)        1e-044       1e-044      Abs err 3.7338e-060 exceeds tol
1.2446e-060
    (22)        1e-038       1e-038      Abs err 2.6101e-054 exceeds tol
1.3051e-054
    (23)        1e-036       1e-036      Abs err 3.341e-052 exceeds tol
1.6705e-052
    (27)        1e-028       1e-028      Abs err 2.2421e-044 exceeds tol
1.121e-044
    (29)        1e-024       1e-024      Abs err 3.6734e-040 exceeds tol
1.8367e-040


===========================================
>>>>> processing ctor-vs-method.tst
  ***** shared d, o
 d = derived ();
 o = other ();

!!!!! test failed
mismatch in number of fields
shared variables   scalar structure containing the fields:
    d = [](0x0)
    o = [](0x0)
  ***** test
 ctrace = {'begin parent/method';
           'begin derived/parent';
           'begin parent/parent';
           'end parent/parent';
           'end derived/parent';
           'end parent/method'};
 __trace__ (); %% clear call trace info
 method (d);
 assert (__trace__ (), ctrace);
!!!!! test failed
'method' undefined near line 10 column 2
shared variables   scalar structure containing the fields:
    d = [](0x0)
    o = [](0x0)
  ***** test
 ctrace = {'begin other/parent';
           'end other/parent'};
 __trace__ (); %% clear call trace info
 parent (o);
 assert (__trace__ (), ctrace);
!!!!! test failed
type mismatch in parent constructor
shared variables   scalar structure containing the fields:
    d = [](0x0)
    o = [](0x0)
  ***** test
 ctrace = {'begin derived/parent';
           'begin parent/parent';
           'end parent/parent';
           'end derived/parent'};
 __trace__ (); %% clear call trace info
 parent (d);
 assert (__trace__ (), ctrace);
!!!!! test failed
type mismatch in parent constructor
shared variables   scalar structure containing the fields:
    d = [](0x0)
    o = [](0x0)


===========================================
>>>>> processing sparse.tst
  ***** testif HAVE_HDF5   # save hdf5
 savefile = tmpnam ();
 as_save = as;
 save ("-hdf5", savefile, "bf", "as_save", "af");
 clear as_save;
 load (savefile, "as_save");
 unlink (savefile);
 assert (as_save, sparse (af));
!!!!! test failed
save: error while writing 'bf' to hdf5 file
  ***** testif HAVE_HDF5   # save hdf5
 savefile = tmpnam ();
 as_save = as;
 save ("-hdf5", savefile, "bf", "as_save", "af");
 clear as_save;
 load (savefile, "as_save");
 unlink (savefile);
 assert (as_save, sparse (af));
!!!!! test failed
save: error while writing 'bf' to hdf5 file


I think that the 6 failing Java tests may be due to my test system having a
32-bit JDK installed. Currently I have no system where I can install a
64-bit JDK next to a 32-bit without risking other SW to malfunction.

Perusing the remaining FAILs I see a lot of tolerance exceeding stuff that
AFAICS isn't extremely harmful, but OK I might be wrong :-)  :
- chop.m
- axis.m
- assert.m  (!)

That leaves:
- fieldnames.m
- ctor-vs-method.tst
- copyobj.m   (Hmmm Indeed I see no "gs.exe" in /bin, in contrast to the
3.9.0+/4.1.0+ binaries I build on a regular basis)


OK that's as far as I could get. Back to work....

Philip



--
View this message in context: 
http://octave.1599824.n4.nabble.com/Re-cross-building-with-enable-64-Assembly-error-tp4666071p4666107.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]