Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

git master HEAD tests fail on Mageia Linux x86-64 v6 #45

Closed
shlomif opened this issue Jan 24, 2016 · 4 comments
Closed

git master HEAD tests fail on Mageia Linux x86-64 v6 #45

shlomif opened this issue Jan 24, 2016 · 4 comments

Comments

@shlomif
Copy link

shlomif commented Jan 24, 2016

Hi!

I'm using Mageia Linux ( http://www.mageia.org/en/ ) x86-64 v6 and after successfully running "perl Makefile.PL" and "make", then "make test" (from git master commit 0929708 ) failed with the following output:

shlomif@telaviv1:~/Download/unpack/perl/rperl/rperl$ make test
"/usr/bin/perl5.22.1" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *T
est::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00_depend.t .................. ok
t/01_changes.t ................. ok
t/02_inline_c.t ................ ok
t/03_inline_cpp.t .............. ok
t/04_type_scalar.t ............. ok
t/05_type_array.t .............. ok
t/06_type_hash.t ............... ok
t/07_type_gmp.t ................ 41/?
#   Failed test 'main::RPerl__DataType__GMPInteger__MODE_ID() lives'
#   at t/07_type_gmp.t line 104.
# died: Can't use an undefined value as a subroutine reference at t/07_type_gmp.
t line 102.

#   Failed test 'TGIV000 gmp_integer_to_boolean() throws correct exception'
#   at t/07_type_gmp.t line 113.
# expecting: /(EGIV00.*CPPOPS_CPPTYPES)|(Usage.*gmp_integer_to_boolean)/
# found:
# ERROR EGIV00, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer external wrapper value expected but undefined/null value found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV001 gmp_integer_to_boolean(undef) throws correct exception'
#   at t/07_type_gmp.t line 119.
# expecting: /(EGIV00.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV00, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer external wrapper value expected but undefined/null value found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV002 gmp_integer_to_boolean(0) throws correct exception'
#   at t/07_type_gmp.t line 125.
# expecting: /(EGIV01.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV01, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer external wrapper value expected but non-hashref value found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV003 gmp_integer_to_boolean(-23.42) throws correct exception
'
#   at t/07_type_gmp.t line 131.
# expecting: /(EGIV01.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV01, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer external wrapper value expected but non-hashref value found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV004 gmp_integer_to_boolean('howdy') throws correct exceptio
n'
#   at t/07_type_gmp.t line 137.
# expecting: /(EGIV01.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV01, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer external wrapper value expected but non-hashref value found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV005 gmp_integer_to_boolean([]) throws correct exception'
#   at t/07_type_gmp.t line 143.
# expecting: /(EGIV01.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV01, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer external wrapper value expected but non-hashref value found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV006 gmp_integer_to_boolean([21, 12, 23]) throws correct exc
eption'
#   at t/07_type_gmp.t line 149.
# expecting: /(EGIV01.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV01, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer external wrapper value expected but non-hashref value found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV007 gmp_integer_to_boolean({}) throws correct exception'
#   at t/07_type_gmp.t line 155.
# expecting: /(EGIV02.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV02, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer external wrapper value expected but non-object (blessed hashref) v
alue found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV008 gmp_integer_to_boolean({carter => 'chris', duchovny =>
'david', anderson => 'gillian'}) throws correct exception'
#   at t/07_type_gmp.t line 161.
# expecting: /(EGIV02.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV02, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer external wrapper value expected but non-object (blessed hashref) v
alue found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV009 gmp_integer_to_boolean(RPerl::Test::Foo->new()) throws
correct exception'
#   at t/07_type_gmp.t line 167.
# expecting: /(EGIV03.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV03, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer external wrapper value expected but non-Math::BigInt-derived objec
t value found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV010 gmp_integer_to_boolean(Math::BigInt->new()) throws corr
ect exception'
#   at t/07_type_gmp.t line 173.
# expecting: /(EGIV04.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV04, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer external wrapper value expected but non-gmp_integer object value f
ound,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV011 gmp_integer_to_boolean($gmp_integer_no_value) throws co
rrect exception'
#   at t/07_type_gmp.t line 183.
# expecting: /(EGIV05.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV05, MISSING HASH ENTRY, PERLOPS_PERLTYPES:
# gmp_integer internal wrapped object in hash entry expected at key 'value' but
no hash entry exists,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV012 gmp_integer_to_boolean($gmp_integer_undef_value) throws
 correct exception'
#   at t/07_type_gmp.t line 195.
# expecting: /(EGIV07.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV06, MISSING HASH ENTRY, PERLOPS_PERLTYPES:
# gmp_integer internal wrapped object in hash entry expected at key 'value' but
no hash entry defined;
# OR
# ERROR EGIV07, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer internal wrapped value expected but undefined/null value found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV013 gmp_integer_to_boolean($gmp_integer_nonobject_value->{v
alue} = 0) throws correct exception'
#   at t/07_type_gmp.t line 205.
# expecting: /(EGIV08.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV08, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer internal wrapped value expected but non-object (blessed hashref) v
alue found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV014 gmp_integer_to_boolean($gmp_integer_nonobject_value->{v
alue} = 'the truth is out there') throws correct exception'
#   at t/07_type_gmp.t line 215.
# expecting: /(EGIV08.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV08, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer internal wrapped value expected but non-object (blessed hashref) v
alue found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV015 gmp_integer_to_boolean($gmp_integer_nonobject_value->{v
alue} = []) throws correct exception'
#   at t/07_type_gmp.t line 225.
# expecting: /(EGIV08.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV08, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer internal wrapped value expected but non-object (blessed hashref) v
alue found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV016 gmp_integer_to_boolean($gmp_integer_nonobject_value->{v
alue} = {}) throws correct exception'
#   at t/07_type_gmp.t line 235.
# expecting: /(EGIV08.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV08, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer internal wrapped value expected but non-object (blessed hashref) v
alue found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV017 gmp_integer_to_boolean($gmp_integer_object_value) throw
s correct exception'
#   at t/07_type_gmp.t line 245.
# expecting: /(EGIV09.*CPPOPS_CPPTYPES)/
# found:
# ERROR EGIV09, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:
# gmp_integer internal wrapped value expected but non-Math::BigInt::GMP object v
alue found,
# in variable $input_gmp_integer from subroutine gmp_integer_to_boolean(),
# croaking at (eval 436) line 1.

#   Failed test 'TGIV700 gmp_integer__typetest0() returns correct value'
#   at t/07_type_gmp.t line 497.
#          got: '3'
#     expected: '5'
# Looks like you failed 20 tests of 75.
t/07_type_gmp.t ................ Dubious, test returned 20 (wstat 5120, 0x1400)
Failed 20/75 subtests
t/09_interpret_execute.t ....... ok
t/10_precompiled_oo_inherit.t .. ok
t/11_precompiled_sort.t ........ ok
t/12_parse.t ................... ok
t/13_generate.t ................ ok
t/15_compile_sort.t ............ ok

Test Summary Report
-------------------
t/07_type_gmp.t              (Wstat: 5120 Tests: 75 Failed: 20)
  Failed tests:  43-61, 75
  Non-zero exit status: 20
Files=14, Tests=3332, 955 wallclock secs ( 0.64 usr  0.07 sys + 866.06 cusr 81.5
9 csys = 948.36 CPU)
Result: FAIL
Failed 1/14 test programs. 20/3332 subtests failed.
Makefile:6149: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 255
shlomif@telaviv1:~/Download/unpack/perl/rperl/rperl$

Please look into fixing it and let me know if I could provide any assistance.

@shlomif
Copy link
Author

shlomif commented Feb 14, 2016

Hi all,

I filed this bug three weeks ago and it still appears to happen here. Is there any way I can do to speed up fixing it?

@wbraswell
Copy link
Owner

Personally, I only provide tech support for DEB-based operating systems.

Clearly there is some problem with the GMP libraries on your system. I suggest you start by testing libgmp and see if it works in other non-Perl applications, if it does then try your own hand-coded Perl applications using libgmp, if that works then get back to me. If it fails somewhere along the way, then you can try to fix your own operating system.

@shlomif
Copy link
Author

shlomif commented Feb 20, 2016

Hi @wbraswell ,

thanks for your reply and I have some very good news. Following your lead, I set out to investigate why it fails on my Mageia v6 system and evidently worked fine on an Ubuntu 15.10 x86-64 VM. After trying to use a self-built perl, GMP libs, etc. on both systems and getting the same results, I found out that the problem was that I didn't have gmpxx and gmpxx-devel installed on the Mageia system. This was not detected earlier by the RPerl's build system and was only indicated by a warning by in Makefile.PL in _Inline/build/GMPInteger_cpp_pm_53_2166/ after I ran it manually.

After doing "urpmi gmpxx-devel" all tests are successful. As a result, my suggestion is to add a sanity check in the main Makefile.PL that gmpxx is installed.

( It took me half a day to find out, but I guess it was worth it. )

@wbraswell
Copy link
Owner

ISSUE RESOLVED
Install Notes, Add RPM-Based GMP Instructions
8bea961

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants