PATH=/usr/bin:/bin:/data/fly2400/cpanfly-5.24/var/megalib/bin Start 2017-08-01T04:02:29 ActivePerl-2400 CPAN-2.10 Reading '/data/fly2400/cpanfly-5.24/var/cpan/Metadata' Database was generated on Tue, 01 Aug 2017 05:29:02 GMT Fetching with LWP: http://ppm.activestate.com/CPAN/authors/id/P/PL/PLICEASE/FFI-TinyCC-0.26.tar.gz Checksum for /data/fly2400/cpanfly-5.24/var/cpan/sources/authors/id/P/PL/PLICEASE/FFI-TinyCC-0.26.tar.gz ok FFI-TinyCC-0.26/ FFI-TinyCC-0.26/author.yml FFI-TinyCC-0.26/Build.PL FFI-TinyCC-0.26/Changes FFI-TinyCC-0.26/CONTRIBUTING FFI-TinyCC-0.26/cpanfile FFI-TinyCC-0.26/dist.ini FFI-TinyCC-0.26/example/ FFI-TinyCC-0.26/inc/ FFI-TinyCC-0.26/INSTALL FFI-TinyCC-0.26/lib/ FFI-TinyCC-0.26/LICENSE FFI-TinyCC-0.26/MANIFEST FFI-TinyCC-0.26/META.json FFI-TinyCC-0.26/META.yml FFI-TinyCC-0.26/README FFI-TinyCC-0.26/share/ FFI-TinyCC-0.26/t/ FFI-TinyCC-0.26/xt/ FFI-TinyCC-0.26/xt/author/ FFI-TinyCC-0.26/xt/release/ FFI-TinyCC-0.26/xt/release/changes.t FFI-TinyCC-0.26/xt/release/fixme.t FFI-TinyCC-0.26/xt/author/eol.t FFI-TinyCC-0.26/xt/author/no_tabs.t FFI-TinyCC-0.26/xt/author/pod.t FFI-TinyCC-0.26/xt/author/pod_coverage.t FFI-TinyCC-0.26/xt/author/pod_spelling_common.t FFI-TinyCC-0.26/xt/author/pod_spelling_system.t FFI-TinyCC-0.26/xt/author/strict.t FFI-TinyCC-0.26/xt/author/version.t FFI-TinyCC-0.26/t/00_diag.t FFI-TinyCC-0.26/t/01_use.t FFI-TinyCC-0.26/t/add_file_c.t FFI-TinyCC-0.26/t/add_file_dll.t FFI-TinyCC-0.26/t/add_file_obj.t FFI-TinyCC-0.26/t/add_include_path.t FFI-TinyCC-0.26/t/add_library.t FFI-TinyCC-0.26/t/add_library_path.t FFI-TinyCC-0.26/t/add_symbol.t FFI-TinyCC-0.26/t/add_sysinclude_path.t FFI-TinyCC-0.26/t/basic.t FFI-TinyCC-0.26/t/c/ FFI-TinyCC-0.26/t/compile_string.t FFI-TinyCC-0.26/t/define_symbol.t FFI-TinyCC-0.26/t/detect_sysinclude_path.t FFI-TinyCC-0.26/t/error.t FFI-TinyCC-0.26/t/eval.t FFI-TinyCC-0.26/t/eval_scope.t FFI-TinyCC-0.26/t/get_symbol.t FFI-TinyCC-0.26/t/inline.t FFI-TinyCC-0.26/t/inline_scope.t FFI-TinyCC-0.26/t/lib/ FFI-TinyCC-0.26/t/output_file_dll.t FFI-TinyCC-0.26/t/output_file_exe.t FFI-TinyCC-0.26/t/output_file_obj.t FFI-TinyCC-0.26/t/run.t FFI-TinyCC-0.26/t/set_options.t FFI-TinyCC-0.26/t/set_output_type.t FFI-TinyCC-0.26/t/undefine_symbol.t FFI-TinyCC-0.26/t/lib/Test2/ FFI-TinyCC-0.26/t/lib/Test2/Require/ FFI-TinyCC-0.26/t/lib/Test2/Require/Perl510.pm FFI-TinyCC-0.26/t/c/foo.h FFI-TinyCC-0.26/t/c/main.c FFI-TinyCC-0.26/t/c/one.c FFI-TinyCC-0.26/t/c/onetwothree.h FFI-TinyCC-0.26/t/c/return22.c FFI-TinyCC-0.26/t/c/three.c FFI-TinyCC-0.26/t/c/two.c FFI-TinyCC-0.26/share/build.log FFI-TinyCC-0.26/share/README.txt FFI-TinyCC-0.26/lib/FFI/ FFI-TinyCC-0.26/lib/FFI/.TinyCC.devshare FFI-TinyCC-0.26/lib/FFI/TinyCC/ FFI-TinyCC-0.26/lib/FFI/TinyCC.pm FFI-TinyCC-0.26/lib/FFI/TinyCC/Inline.pm FFI-TinyCC-0.26/inc/My/ FFI-TinyCC-0.26/inc/My/DLL.pm FFI-TinyCC-0.26/inc/My/ModuleBuild.pm FFI-TinyCC-0.26/example/callback.pl FFI-TinyCC-0.26/example/ffi_platypus.pl FFI-TinyCC-0.26/example/hello.pl Configuring P/PL/PLICEASE/FFI-TinyCC-0.26.tar.gz with Build.PL >>> /data/fly2400/ap2400-300558/bin/perl-static Build.PL You have a working ${^GLOBAL_PHASE} Checking prerequisites... requires: ! FFI::Platypus is not installed ! FFI::Platypus::Type::StringArray is not installed ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions of the modules indicated above before proceeding with this installation Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'FFI-TinyCC' version '0.26' PLICEASE/FFI-TinyCC-0.26.tar.gz /data/fly2400/ap2400-300558/bin/perl-static Build.PL -- OK Running Build for P/PL/PLICEASE/FFI-TinyCC-0.26.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PLICEASE/FFI-TinyCC-0.26.tar.gz ---- FFI::Platypus [requires] FFI::Platypus::Type::StringArray [requires] Running test for module 'FFI::Platypus' Checksum for /data/fly2400/cpanfly-5.24/var/cpan/sources/authors/id/P/PL/PLICEASE/FFI-Platypus-0.47.tar.gz ok FFI-Platypus-0.47 FFI-Platypus-0.47/README FFI-Platypus-0.47/typemap FFI-Platypus-0.47/SUPPORT FFI-Platypus-0.47/Changes FFI-Platypus-0.47/LICENSE FFI-Platypus-0.47/INSTALL FFI-Platypus-0.47/dist.ini FFI-Platypus-0.47/xs FFI-Platypus-0.47/xs/dl.xs FFI-Platypus-0.47/META.yml FFI-Platypus-0.47/Build.PL FFI-Platypus-0.47/MANIFEST FFI-Platypus-0.47/cpanfile FFI-Platypus-0.47/t FFI-Platypus-0.47/t/basic.t FFI-Platypus-0.47/t/forks.t FFI-Platypus-0.47/xs/ABI.xs FFI-Platypus-0.47/xs/meta.c FFI-Platypus-0.47/xs/API.xs FFI-Platypus-0.47/META.json FFI-Platypus-0.47/author.yml FFI-Platypus-0.47/t/01_use.t FFI-Platypus-0.47/xs/windl.c FFI-Platypus-0.47/xs/names.c FFI-Platypus-0.47/xs/Type.xs FFI-Platypus-0.47/t/00_diag.t FFI-Platypus-0.47/t/threads.t FFI-Platypus-0.47/xs/custom.c FFI-Platypus-0.47/xs/havepm.c FFI-Platypus-0.47/CONTRIBUTING FFI-Platypus-0.47/xs/closure.c FFI-Platypus-0.47/xs/complex.c FFI-Platypus-0.47/xs/Record.xs FFI-Platypus-0.47/inc/My FFI-Platypus-0.47/inc/My/Dev.pm FFI-Platypus-0.47/xs/Declare.xs FFI-Platypus-0.47/t/type_sint8.t FFI-Platypus-0.47/t/type_float.t FFI-Platypus-0.47/t/type_uint8.t FFI-Platypus-0.47/inc/eg FFI-Platypus-0.47/inc/eg/small.c FFI-Platypus-0.47/xs/Function.xs FFI-Platypus-0.47/t/type_opaque.t FFI-Platypus-0.47/t/type_sint32.t FFI-Platypus-0.47/t/closure_die.t FFI-Platypus-0.47/t/type_sint16.t FFI-Platypus-0.47/t/type_uint16.t FFI-Platypus-0.47/t/type_uint32.t FFI-Platypus-0.47/t/type_uint64.t FFI-Platypus-0.47/t/type_record.t FFI-Platypus-0.47/t/type_string.t FFI-Platypus-0.47/t/type_double.t FFI-Platypus-0.47/t/type_sint64.t FFI-Platypus-0.47/inc/My/Probe.pm FFI-Platypus-0.47/inc/probe FFI-Platypus-0.47/inc/probe/abi.c FFI-Platypus-0.47/libtest FFI-Platypus-0.47/libtest/float.c FFI-Platypus-0.47/libtest/align.c FFI-Platypus-0.47/libtest/sint8.c FFI-Platypus-0.47/libtest/color.c FFI-Platypus-0.47/libtest/uint8.c FFI-Platypus-0.47/libtest/basic.c FFI-Platypus-0.47/xt/author FFI-Platypus-0.47/xt/author/eol.t FFI-Platypus-0.47/xt/author/pod.t FFI-Platypus-0.47/share FFI-Platypus-0.47/share/README.txt FFI-Platypus-0.47/examples FFI-Platypus-0.47/examples/char.pl FFI-Platypus-0.47/examples/time.pl FFI-Platypus-0.47/examples/uuid.pl FFI-Platypus-0.47/examples/math.pl FFI-Platypus-0.47/examples/zmq3.pl FFI-Platypus-0.47/examples/pipe.pl FFI-Platypus-0.47/inc/eg/complex.c FFI-Platypus-0.47/libtest/uint64.c FFI-Platypus-0.47/libtest/uint16.c FFI-Platypus-0.47/libtest/sint32.c FFI-Platypus-0.47/libtest/uint32.c FFI-Platypus-0.47/libtest/record.c FFI-Platypus-0.47/libtest/double.c FFI-Platypus-0.47/libtest/sint64.c FFI-Platypus-0.47/libtest/sint16.c FFI-Platypus-0.47/libtest/string.c FFI-Platypus-0.47/include FFI-Platypus-0.47/include/ppport.h FFI-Platypus-0.47/t/closure_reuse.t FFI-Platypus-0.47/t/closure_space.t FFI-Platypus-0.47/examples/bzip2.pl FFI-Platypus-0.47/inc/run FFI-Platypus-0.47/inc/run/readme.pl FFI-Platypus-0.47/inc/run/travis.pl FFI-Platypus-0.47/inc/My/LibTest.pm FFI-Platypus-0.47/include/libtest.h FFI-Platypus-0.47/xs/ClosureData.xs FFI-Platypus-0.47/libtest/closure.c FFI-Platypus-0.47/libtest/memcmp4.c FFI-Platypus-0.47/libtest/pointer.c FFI-Platypus-0.47/examples/closure.c FFI-Platypus-0.47/examples/malloc.pl FFI-Platypus-0.47/examples/string.pl FFI-Platypus-0.47/examples/notify.pl FFI-Platypus-0.47/examples/getpid.pl FFI-Platypus-0.47/inc/template FFI-Platypus-0.47/inc/template/abi.c FFI-Platypus-0.47/inc/My/AutoConf.pm FFI-Platypus-0.47/xs/record_string.c FFI-Platypus-0.47/xs/record_simple.c FFI-Platypus-0.47/xs/record_opaque.c FFI-Platypus-0.47/xt/author/strict.t FFI-Platypus-0.47/xt/release FFI-Platypus-0.47/xt/release/fixme.t FFI-Platypus-0.47/t/type_longdouble.t FFI-Platypus-0.47/examples/time_oo.pl FFI-Platypus-0.47/examples/integer.pl FFI-Platypus-0.47/examples/closure.pl FFI-Platypus-0.47/examples/archive.pl FFI-Platypus-0.47/inc/probe/complex.c FFI-Platypus-0.47/lib/FFI FFI-Platypus-0.47/lib/FFI/Platypus.xs FFI-Platypus-0.47/lib/FFI/Platypus.pm FFI-Platypus-0.47/xt/author/no_tabs.t FFI-Platypus-0.47/xt/author/version.t FFI-Platypus-0.47/t/ffi_platypus_abi.t FFI-Platypus-0.47/t/ffi_platypus_lib.t FFI-Platypus-0.47/t/ffi_platypus_new.t FFI-Platypus-0.47/examples/var_array.c FFI-Platypus-0.47/xs/perl_math_int64.c FFI-Platypus-0.47/libtest/longdouble.c FFI-Platypus-0.47/xt/release/changes.t FFI-Platypus-0.47/t/ffi_platypus_cast.t FFI-Platypus-0.47/t/ffi_platypus_lang.t FFI-Platypus-0.47/t/ffi_platypus_type.t FFI-Platypus-0.47/examples/var_array.pl FFI-Platypus-0.47/inc/My/ShareConfig.pm FFI-Platypus-0.47/inc/My/ModuleBuild.pm FFI-Platypus-0.47/inc/probe/bigendian.c FFI-Platypus-0.47/libtest/align_array.c FFI-Platypus-0.47/libtest/align_fixed.c FFI-Platypus-0.47/t/ffi_platypus_types.t FFI-Platypus-0.47/t/type_complex_float.t FFI-Platypus-0.47/examples/get_uptime.pl FFI-Platypus-0.47/examples/win32_beep.pl FFI-Platypus-0.47/examples/java FFI-Platypus-0.47/examples/java/Makefile FFI-Platypus-0.47/inc/run/travis_cpan.pl FFI-Platypus-0.47/inc/probe/longdouble.c FFI-Platypus-0.47/include/ffi_platypus.h FFI-Platypus-0.47/libtest/align_string.c FFI-Platypus-0.47/t/ffi_platypus_sizeof.t FFI-Platypus-0.47/t/ffi_platypus_record.t FFI-Platypus-0.47/t/type_complex_double.t FFI-Platypus-0.47/t/ffi_platypus_memory.t FFI-Platypus-0.47/t/ffi_platypus_attach.t FFI-Platypus-0.47/t/ffi_platypus_buffer.t FFI-Platypus-0.47/examples/time_record.pl FFI-Platypus-0.47/inc/run/after_build2.pl FFI-Platypus-0.47/inc/run/before_build.pl FFI-Platypus-0.47/inc/probe/bigendian64.c FFI-Platypus-0.47/lib/FFI/Platypus FFI-Platypus-0.47/lib/FFI/Platypus/API.pm FFI-Platypus-0.47/libtest/complex_float.c FFI-Platypus-0.47/t/ffi_platypus_closure.t FFI-Platypus-0.47/t/ffi_platypus_alignof.t FFI-Platypus-0.47/t/ffi_platypus_declare.t FFI-Platypus-0.47/examples/java/example.pl FFI-Platypus-0.47/inc/template/accessor.tt FFI-Platypus-0.47/inc/run/test_examples.pl FFI-Platypus-0.47/libtest/complex_double.c FFI-Platypus-0.47/xt/author/pod_coverage.t FFI-Platypus-0.47/t/ffi_platypus_function.t FFI-Platypus-0.47/t/ffi_platypus_find_lib.t FFI-Platypus-0.47/examples/java/between.cpp FFI-Platypus-0.47/include/perl_math_int64.h FFI-Platypus-0.47/lib/FFI/Platypus/Type.pod FFI-Platypus-0.47/examples/closure-opaque.pl FFI-Platypus-0.47/examples/java/Example.java FFI-Platypus-0.47/lib/FFI/Platypus/Memory.pm FFI-Platypus-0.47/lib/FFI/Platypus/Record.pm FFI-Platypus-0.47/lib/FFI/Platypus/Buffer.pm FFI-Platypus-0.47/lib/FFI/Platypus/Lang FFI-Platypus-0.47/lib/FFI/Platypus/Lang/C.pm FFI-Platypus-0.47/t/ffi_platypus_lang_win32.t FFI-Platypus-0.47/include/ffi_platypus_guts.h FFI-Platypus-0.47/include/ffi_platypus_call.h FFI-Platypus-0.47/lib/FFI/Platypus/Declare.pm FFI-Platypus-0.47/t/ffi_platypus_find_symbol.t FFI-Platypus-0.47/t/ffi_platypus_custom_type.t FFI-Platypus-0.47/t/ffi_platypus_attach_void.t FFI-Platypus-0.47/t/ffi_platypus_declare_abi.t FFI-Platypus-0.47/lib/FFI/Platypus/Lang/ASM.pm FFI-Platypus-0.47/t/ffi_platypus_declare_cast.t FFI-Platypus-0.47/t/ffi_platypus_type_private.t FFI-Platypus-0.47/t/ffi_platypus_declare_lang.t FFI-Platypus-0.47/examples/list_integer_types.pl FFI-Platypus-0.47/lib/FFI/Platypus/Lang/Win32.pm FFI-Platypus-0.47/t/ffi_platypus_memory__strdup.t FFI-Platypus-0.47/t/ffi_platypus_memory__memcpy.t FFI-Platypus-0.47/t/ffi_platypus_declare_sticky.t FFI-Platypus-0.47/t/ffi_platypus_declare_sizeof.t FFI-Platypus-0.47/examples/attach_from_pointer.pl FFI-Platypus-0.47/examples/win32_getSystemTime.pl FFI-Platypus-0.47/lib/FFI/Platypus/ShareConfig.pm FFI-Platypus-0.47/xt/author/pod_spelling_common.t FFI-Platypus-0.47/xt/author/pod_spelling_system.t FFI-Platypus-0.47/t/ffi_platypus_record_tiearray.t FFI-Platypus-0.47/t/ffi_platypus_memory__realloc.t FFI-Platypus-0.47/t/ffi_platypus_closure_private.t FFI-Platypus-0.47/inc/template/accessor_wrapper.tt FFI-Platypus-0.47/t/ffi_platypus_ignore_not_found.t FFI-Platypus-0.47/t/ffi_platypus_function_private.t FFI-Platypus-0.47/inc/run/generate_record_accessor.pl FFI-Platypus-0.47/lib/FFI/Platypus/Record FFI-Platypus-0.47/lib/FFI/Platypus/Record/TieArray.pm FFI-Platypus-0.47/t/ffi_platypus_type_string_pointer.t FFI-Platypus-0.47/lib/FFI/Platypus/Type FFI-Platypus-0.47/lib/FFI/Platypus/Type/StringPointer.pm FFI-Platypus-0.47/t/ffi_platypus_type_pointer_size_buffer.t FFI-Platypus-0.47/lib/FFI/Platypus/Type/PointerSizeBuffer.pm Configuring P/PL/PLICEASE/FFI-Platypus-0.47.tar.gz with Build.PL >>> /data/fly2400/ap2400-300558/bin/perl-static Build.PL CONFIGURE + $args{extra_compiler_flags} = -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include + $args{extra_linker_flags} = -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi Adjusted lddlflags: - $Config{lddlflags} = -shared -O2 -fstack-protector + $Config{lddlflags} = -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -shared -O2 -fstack-protector Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'FFI-Platypus' version '0.47' PLICEASE/FFI-Platypus-0.47.tar.gz /data/fly2400/ap2400-300558/bin/perl-static Build.PL -- OK Running Build for P/PL/PLICEASE/FFI-Platypus-0.47.tar.gz >>> ./Build Checking for cc... gcc Checking for stdlib.h... yes Checking for stdint.h... yes Checking for sys/types.h... yes Checking for sys/stat.h... yes Checking for unistd.h... yes Checking for alloca.h... yes Checking for dlfcn.h... yes Checking for limits.h... yes Checking for stddef.h... yes Checking for wchar.h... yes Checking for signal.h... yes Checking for inttypes.h... yes Checking for windows.h... no Checking for sys/cygwin.h... no Checking for string.h... yes Checking for psapi.h... no Checking for stdio.h... yes Checking for stdbool.h... yes Checking for complex.h... yes Checking for stdlib.h... (cached) yes Checking for stdarg.h... yes Checking for string.h... (cached) yes Checking for float.h... yes Checking for assert.h... yes Checking for ctype.h... yes Checking for errno.h... yes Checking for limits.h... (cached) yes Checking for locale.h... yes Checking for math.h... yes Checking for setjmp.h... yes Checking for signal.h... (cached) yes Checking for stddef.h... (cached) yes Checking for stdio.h... (cached) yes Checking for time.h... yes Checking whether RTLD_LAZY is declared... yes Checking whether alloca is declared... yes Checking for dlopen in -lpthread... no Checking for dlopen in -lnsl... no Checking for dlopen in -ldl... yes Checking for size of char... yes Checking for compute result of (signed(char))... yes Checking for size of signed char... yes Checking for size of unsigned char... yes Checking for size of short... 2 Checking for compute result of (signed(short))... yes Checking for size of signed short... 2 Checking for size of unsigned short... 2 Checking for size of int... 4 Checking for compute result of (signed(int))... yes Checking for size of signed int... 4 Checking for size of unsigned int... 4 Checking for size of long... 8 Checking for compute result of (signed(long))... yes Checking for size of signed long... 8 Checking for size of unsigned long... 8 Checking for size of size_t... 8 Checking for compute result of (signed(size_t))... no Checking for size of float... 4 Checking for size of double... 8 Checking for size of bool... no Checking for size of _Bool... yes Checking for compute result of (signed(_Bool))... no Checking for size of long long... 8 Checking for compute result of (signed(long long))... yes Checking for size of signed long long... 8 Checking for size of unsigned long long... 8 Checking for size of dev_t... 8 Checking for compute result of (signed(dev_t))... no Checking for size of ino_t... 8 Checking for compute result of (signed(ino_t))... no Checking for size of mode_t... 4 Checking for compute result of (signed(mode_t))... no Checking for size of nlink_t... 8 Checking for compute result of (signed(nlink_t))... no Checking for size of uid_t... 4 Checking for compute result of (signed(uid_t))... no Checking for size of gid_t... 4 Checking for compute result of (signed(gid_t))... no Checking for size of off_t... 8 Checking for compute result of (signed(off_t))... no Checking for size of blksize_t... 8 Checking for compute result of (signed(blksize_t))... no Checking for size of blkcnt_t... 8 Checking for compute result of (signed(blkcnt_t))... no Checking for size of time_t... 8 Checking for compute result of (signed(time_t))... no Checking for size of int_least8_t... yes Checking for size of int_least16_t... 2 Checking for size of int_least32_t... 4 Checking for size of int_least64_t... 8 Checking for size of uint_least8_t... yes Checking for size of uint_least16_t... 2 Checking for size of uint_least32_t... 4 Checking for size of uint_least64_t... 8 Checking for size of ptrdiff_t... 8 Checking for compute result of (signed(ptrdiff_t))... no Checking for size of wchar_t... 4 Checking for compute result of (signed(wchar_t))... no Checking for size of wint_t... no Checking for stdlib.h... (cached) yes Checking for stdarg.h... (cached) yes Checking for string.h... (cached) yes Checking for float.h... (cached) yes Checking for assert.h... (cached) yes Checking for ctype.h... (cached) yes Checking for errno.h... (cached) yes Checking for limits.h... (cached) yes Checking for locale.h... (cached) yes Checking for math.h... (cached) yes Checking for setjmp.h... (cached) yes Checking for signal.h... (cached) yes Checking for stddef.h... (cached) yes Checking for stdio.h... (cached) yes Checking for time.h... (cached) yes Checking for sys/types.h... (cached) yes Checking for sys/stat.h... (cached) yes Checking for memory.h... yes Checking for strings.h... yes Checking for inttypes.h... (cached) yes Checking for stdint.h... (cached) yes Checking for unistd.h... (cached) yes Checking for align of void*... 8 Checking for align of float... 4 Checking for align of double... 8 Checking for align of long double... 16 Checking for align of float complex... no Checking for compute result of (__builtin_offsetof(struct align, bfloat_complex))... 4 Checking for align of double complex... no Checking for compute result of (__builtin_offsetof(struct align, bdouble_complex))... 8 Checking for align of int8_t... yes Checking for align of int16_t... 2 Checking for align of int32_t... 4 Checking for align of int64_t... 8 Checking for size of long double... 16 Checking for size of float complex... 8 Checking for size of double complex... 16 Checking for size of complex... 16 gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o inc/probe/abi.o inc/probe/abi.c gcc -fstack-protector -o inc/probe/abi inc/probe/abi.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi inc/probe/abi --test exit = 0 gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o inc/probe/bigendian.o inc/probe/bigendian.c gcc -fstack-protector -o inc/probe/bigendian inc/probe/bigendian.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi inc/probe/bigendian --test exit = 2 gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o inc/probe/bigendian64.o inc/probe/bigendian64.c gcc -fstack-protector -o inc/probe/bigendian64 inc/probe/bigendian64.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi inc/probe/bigendian64 --test exit = 2 gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o inc/probe/complex.o inc/probe/complex.c gcc -fstack-protector -o inc/probe/complex inc/probe/complex.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi inc/probe/complex --test exit = 2 gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o inc/probe/longdouble.o inc/probe/longdouble.c gcc -fstack-protector -o inc/probe/longdouble inc/probe/longdouble.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi inc/probe/longdouble --test exit = 0 probing for ABIs... gcc -E -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include .abi-probe-test/FwEx1tVV6x/ffitest.c gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -DTRY_FFI_ABI=FFI_DEFAULT_ABI -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o .abi-probe-test/FwEx1tVV6x/default_abi.o .abi-probe-test/FwEx1tVV6x/default_abi.c gcc -fstack-protector -o .abi-probe-test/FwEx1tVV6x/default_abi .abi-probe-test/FwEx1tVV6x/default_abi.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -DTRY_FFI_ABI=FFI_FASTCALL -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o .abi-probe-test/FwEx1tVV6x/fastcall.o .abi-probe-test/FwEx1tVV6x/fastcall.c gcc -fstack-protector -o .abi-probe-test/FwEx1tVV6x/fastcall .abi-probe-test/FwEx1tVV6x/fastcall.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -DTRY_FFI_ABI=FFI_PASCAL -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o .abi-probe-test/FwEx1tVV6x/pascal.o .abi-probe-test/FwEx1tVV6x/pascal.c gcc -fstack-protector -o .abi-probe-test/FwEx1tVV6x/pascal .abi-probe-test/FwEx1tVV6x/pascal.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -DTRY_FFI_ABI=FFI_REGISTER -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o .abi-probe-test/FwEx1tVV6x/register.o .abi-probe-test/FwEx1tVV6x/register.c gcc -fstack-protector -o .abi-probe-test/FwEx1tVV6x/register .abi-probe-test/FwEx1tVV6x/register.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -DTRY_FFI_ABI=FFI_STDCALL -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o .abi-probe-test/FwEx1tVV6x/stdcall.o .abi-probe-test/FwEx1tVV6x/stdcall.c gcc -fstack-protector -o .abi-probe-test/FwEx1tVV6x/stdcall .abi-probe-test/FwEx1tVV6x/stdcall.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -DTRY_FFI_ABI=FFI_SYSV -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o .abi-probe-test/FwEx1tVV6x/sysv.o .abi-probe-test/FwEx1tVV6x/sysv.c gcc -fstack-protector -o .abi-probe-test/FwEx1tVV6x/sysv .abi-probe-test/FwEx1tVV6x/sysv.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -DTRY_FFI_ABI=FFI_THISCALL -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o .abi-probe-test/FwEx1tVV6x/thiscall.o .abi-probe-test/FwEx1tVV6x/thiscall.c gcc -fstack-protector -o .abi-probe-test/FwEx1tVV6x/thiscall .abi-probe-test/FwEx1tVV6x/thiscall.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi gcc -Iinclude -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -DTRY_FFI_ABI=FFI_UNIX64 -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o .abi-probe-test/FwEx1tVV6x/unix64.o .abi-probe-test/FwEx1tVV6x/unix64.c gcc -fstack-protector -o .abi-probe-test/FwEx1tVV6x/unix64 .abi-probe-test/FwEx1tVV6x/unix64.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi found abi: default_abi = 2 found abi: fastcall = 4 found abi: pascal = 6 found abi: register = 7 found abi: stdcall = 5 found abi: sysv = 1 found abi: thiscall = 3 found abi: unix64 = 2 Building FFI-Platypus gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o xs/closure.o xs/closure.c gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o xs/complex.o xs/complex.c gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o xs/custom.o xs/custom.c gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o xs/havepm.o xs/havepm.c gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o xs/meta.o xs/meta.c gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o xs/names.o xs/names.c gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o xs/perl_math_int64.o xs/perl_math_int64.c gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o xs/record_opaque.o xs/record_opaque.c gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o xs/record_simple.o xs/record_simple.c gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o xs/record_string.o xs/record_string.c gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o xs/windl.o xs/windl.c gcc -Iinclude -Ixs -I/home/fly2400/ap2400-300558/lib/CORE -DVERSION="0.47" -DXS_VERSION="0.47" -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o lib/FFI/Platypus.o lib/FFI/Platypus.c ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/FFI/Platypus/Platypus.bs') gcc -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -shared -O2 -fstack-protector -o blib/arch/auto/FFI/Platypus/Platypus.so lib/FFI/Platypus.o xs/closure.o xs/complex.o xs/custom.o xs/havepm.o xs/meta.o xs/names.o xs/perl_math_int64.o xs/record_opaque.o xs/record_simple.o xs/record_string.o xs/windl.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi PLICEASE/FFI-Platypus-0.47.tar.gz ./Build -- OK Running Build test >>> ./Build test verbose=1 gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/align.o libtest/align.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/align_array.o libtest/align_array.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/align_fixed.o libtest/align_fixed.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/align_string.o libtest/align_string.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/basic.o libtest/basic.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/closure.o libtest/closure.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/color.o libtest/color.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/complex_double.o libtest/complex_double.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/complex_float.o libtest/complex_float.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/double.o libtest/double.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/float.o libtest/float.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/longdouble.o libtest/longdouble.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/memcmp4.o libtest/memcmp4.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/pointer.o libtest/pointer.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/record.o libtest/record.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/sint16.o libtest/sint16.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/sint32.o libtest/sint32.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/sint64.o libtest/sint64.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/sint8.o libtest/sint8.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/string.o libtest/string.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/uint16.o libtest/uint16.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/uint32.o libtest/uint32.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/uint64.o libtest/uint64.c gcc -I/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/uint8.o libtest/uint8.c gcc -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -shared -O2 -fstack-protector -o /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/libtest/libtest.so libtest/align.o libtest/align_array.o libtest/align_fixed.o libtest/align_string.o libtest/basic.o libtest/closure.o libtest/color.o libtest/complex_double.o libtest/complex_float.o libtest/double.o libtest/float.o libtest/longdouble.o libtest/memcmp4.o libtest/pointer.o libtest/record.o libtest/sint16.o libtest/sint32.o libtest/sint64.o libtest/sint8.o libtest/string.o libtest/uint16.o libtest/uint32.o libtest/uint64.o libtest/uint8.o -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi # # # # ACTIVEPERL_CONFIG_DISABLE=1 # HARNESS_ACTIVE=1 # HARNESS_IS_VERBOSE=1 # HARNESS_VERSION=3.36 # LANG=en_US.UTF-8 # PERL5LIB=/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/blib/lib:/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/blib/arch:inc:/data/fly2400/cpanfly-5.24/var/megalib:/data/fly2400/cpanfly-5.24/var/megalib # PERL5OPT= # PERL5_CPANPLUS_IS_RUNNING=28664 # PERL5_CPAN_IS_RUNNING=28664 # PERL5_CPAN_IS_RUNNING_IN_RECURSION=26228,28664 # PERL_DL_NONLAZY=1 # PERL_MM_USE_DEFAULT=1 # SHELL=/bin/sh # # # # PERL5LIB path # /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/blib/lib # /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N/blib/arch # inc # /data/fly2400/cpanfly-5.24/var/megalib # /data/fly2400/cpanfly-5.24/var/megalib # # # # perl 5.024000 # Alien::Base 0.042 # Alien::FFI 0.16 # Config::AutoConf 0.314 # ExtUtils::CBuilder 0.280225 # FFI::CheckLib 0.15 # File::ShareDir 1.104 # JSON::PP 2.94 # Module::Build 0.4224 # PkgConfig 0.16026 # Test::More 1.302067 # constant 1.33 # # # # Alien::FFI version = 0.16 # Alien::FFI->install_type = share # Alien::FFI->cflags = -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include # Alien::FFI->libs = -L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi # Alien::FFI->dist_dir = /data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI # Alien::FFI->version = 3.2.1 # # # # mb.args.extra_compiler_flags=-I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include # mb.args.extra_linker_flags=-L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -lffi # config.lddlflags=-L/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Alien-FFI/lib/../lib -shared -O2 -fstack-protector # ffi.platypus.memory.strdup_impl=c # # # # Types: # complex_double : complex, double complex # complex_float : float complex # longdouble : long double # sint16 : int16_t, int_least16_t, short, signed short # sint32 : int, int32_t, int_least32_t, signed int # sint64 : int64_t, int_least64_t, long, long long, signed long, signed long long # sint8 : char, int8_t, int_least8_t, signed char # uint16 : uint16_t, uint_least16_t, unsigned short, ushort # uint32 : gid_t, mode_t, uid_t, uint, uint32_t, uint_least32_t, unsigned int, wchar_t # uint64 : blkcnt_t, blksize_t, dev_t, ino_t, nlink_t, off_t, ptrdiff_t, size_t, time_t, uint64_t, uint_least64_t, ulong, unsigned long, unsigned long long # uint8 : bool, uchar, uint8_t, uint_least8_t, unsigned char # # # # ABIs: # default_abi 2 # fastcall 4 # pascal 6 # register 7 # stdcall 5 # sysv 1 # thiscall 3 # unix64 2 # # # # Probes: # longdouble 1 # abi 1 # # # t/00_diag.t ................................ 1..1 ok 1 - okay ok t/01_use.t ................................. ok 1 - use FFI::Platypus; ok 2 - use FFI::Platypus::Declare; ok 3 - use FFI::Platypus::Memory; ok 4 - use FFI::Platypus::Buffer; ok 5 - use FFI::Platypus::API; ok 6 - use FFI::Platypus::Type::PointerSizeBuffer; ok 7 - use FFI::Platypus::Type::StringPointer; ok 8 - use FFI::Platypus::Lang::ASM; ok 9 - use FFI::Platypus::Lang::C; ok 10 - use FFI::Platypus::Lang::Win32; ok 11 - use FFI::Platypus::Record; ok 12 - use FFI::Platypus::Record::TieArray; ok 13 - use FFI::Platypus::ShareConfig; 1..13 ok t/basic.t .................................. 1..1 ok 1 - An object of class 'FFI::Platypus' isa 'FFI::Platypus' ok t/closure_die.t ............................ 1..2 ok 1 ok 2 - does not exit # warning = 'omg i don't want to die! at t/closure_die.t line 10. # ' ok t/closure_reuse.t .......................... 1..2 ok 1 ok 2 ok t/closure_space.t .......................... 1..2 ok 1 - good without space ok 2 - good with space ok t/ffi_platypus_abi.t ....................... 1..10 ok 1 - has a default ABI # Subtest: unix64 ok 1 - string ok 2 - integer 1..2 ok 2 - unix64 # Subtest: pascal ok 1 - string ok 2 - integer 1..2 ok 3 - pascal # Subtest: default_abi ok 1 - string ok 2 - integer 1..2 ok 4 - default_abi # Subtest: stdcall ok 1 - string ok 2 - integer 1..2 ok 5 - stdcall # Subtest: sysv ok 1 - string ok 2 - integer 1..2 ok 6 - sysv # Subtest: thiscall ok 1 - string ok 2 - integer 1..2 ok 7 - thiscall # Subtest: register ok 1 - string ok 2 - integer 1..2 ok 8 - register # Subtest: fastcall ok 1 - string ok 2 - integer 1..2 ok 9 - fastcall # Subtest: bogus ok 1 - string ok 2 - integer 1..2 ok 10 - bogus ok t/ffi_platypus_alignof.t ................... 1..4 # Subtest: ffi types 1..45 ok 1 - alignof sint8 = 1 ok 2 - alignof sint8 [2] = 1 ok 3 - alignof sint8 * = 8 ok 4 - alignof custom_sint8 = 1 ok 5 - alignof uint8 = 1 ok 6 - alignof uint8 [2] = 1 ok 7 - alignof uint8 * = 8 ok 8 - alignof custom_uint8 = 1 ok 9 - alignof sint16 = 2 ok 10 - alignof sint16 [2] = 2 ok 11 - alignof sint16 * = 8 ok 12 - alignof custom_sint16 = 2 ok 13 - alignof uint16 = 2 ok 14 - alignof uint16 [2] = 2 ok 15 - alignof uint16 * = 8 ok 16 - alignof custom_uint16 = 2 ok 17 - alignof sint32 = 4 ok 18 - alignof sint32 [2] = 4 ok 19 - alignof sint32 * = 8 ok 20 - alignof custom_sint32 = 4 ok 21 - alignof uint32 = 4 ok 22 - alignof uint32 [2] = 4 ok 23 - alignof uint32 * = 8 ok 24 - alignof custom_uint32 = 4 ok 25 - alignof sint64 = 8 ok 26 - alignof sint64 [2] = 8 ok 27 - alignof sint64 * = 8 ok 28 - alignof custom_sint64 = 8 ok 29 - alignof uint64 = 8 ok 30 - alignof uint64 [2] = 8 ok 31 - alignof uint64 * = 8 ok 32 - alignof custom_uint64 = 8 ok 33 - alignof float = 4 ok 34 - alignof float [2] = 4 ok 35 - alignof float * = 8 ok 36 - alignof custom_float = 4 ok 37 - alignof double = 8 ok 38 - alignof double [2] = 8 ok 39 - alignof double * = 8 ok 40 - alignof custom_double = 8 ok 41 - alignof opaque = 8 ok 42 - alignof opaque [2] = 8 ok 43 - alignof opaque * = 8 ok 44 - alignof custom_opaque = 8 ok 45 - alignof string = 8 ok 1 - ffi types # Subtest: aliases 1..2 ok 1 - alignof ushort = 2 ok 2 - alignof foo = 2 ok 2 - aliases # Subtest: closure 1..1 ok 1 - sizeof closure_t = 8 ok 3 - closure # Subtest: record 1..1 ok 1 - generic record alignment not supported # cannot determine alignment of record at t/ffi_platypus_alignof.t line 64. ok 4 - record ok t/ffi_platypus_attach.t .................... 1..5 ok 1 - f0(22) = 22 ok 2 - f1(22) = 22 ok 3 - Roger::f1(22) = 22 ok 4 - f0_wrap(22) = 25 ok 5 - f0_wrap(22) = 25 ok t/ffi_platypus_attach_void.t ............... 1..2 ok 1 - $i_ptr = 43 after f2(\$i_ptr) ok 2 - $i_ptr = 44 after f2_implicit(\$i_ptr) ok t/ffi_platypus_buffer.t .................... 1..2 # Subtest: simple 1..3 ok 1 - ptr = 15867904 ok 2 - size = 16 ok 3 - scalar = me grimlock king ok 1 - simple # Subtest: unicode 1..3 ok 1 - ptr = 16012560 ok 2 - size = 12 ok 3 - scalar = привет ok 2 - unicode ok t/ffi_platypus_cast.t ...................... 1..3 # Subtest: cast from string to pointer 1..2 ok 1 - dynamic ok 2 - static ok 1 - cast from string to pointer # Subtest: cast from pointer to string 1..2 ok 1 - dynamic ok 2 - static ok 2 - cast from pointer to string # Subtest: cast closure to opaque 1..4 ok 1 - dynamic ok 2 - dynamic ok 3 - static ok 4 - static ok 3 - cast closure to opaque ok t/ffi_platypus_closure.t ................... 1..6 ok 1 - An object of class 'FFI::Platypus::Closure' isa 'FFI::Platypus::Closure' ok 2 - closure.(1) = 2 ok 3 - An object of class 'FFI::Platypus::Closure' isa 'FFI::Platypus::Closure' ok 4 - closure.(1) = 3 ok 5 - An object of class 'FFI::Platypus::Closure' isa 'FFI::Platypus::Closure' ok 6 - closure.(1) = 3 ok t/ffi_platypus_closure_private.t ........... 1..2 ok 1 - An object of class 'FFI::Platypus::Closure' isa 'FFI::Platypus::Closure' ok 2 - closure.(1) = 2 ok t/ffi_platypus_custom_type.t ............... 1..11 # Subtest: float 1..6 ok 1 - ffi.custom_type 1 # --- # float_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: float # size: 4 # type: custom_perl ok 2 - ffi.custom_type 1 # --- # float_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: float # size: 4 # type: custom_perl ok 3 - ffi.custom_type 1 # --- # float_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: float # size: 4 # type: custom_perl ok 4 - ffi.custom_type 1 # --- # float_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: float # size: 4 # type: custom_perl ok 5 - ffi.custom_type 1 # --- # float_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: float # size: 4 # type: custom_perl ok 6 - ffi.custom_type 1 # --- # float_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: float # size: 4 # type: custom_perl ok 1 - float # Subtest: double 1..6 ok 1 - ffi.custom_type 1 # --- # double_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: double # size: 8 # type: custom_perl ok 2 - ffi.custom_type 1 # --- # double_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: double # size: 8 # type: custom_perl ok 3 - ffi.custom_type 1 # --- # double_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: double # size: 8 # type: custom_perl ok 4 - ffi.custom_type 1 # --- # double_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: double # size: 8 # type: custom_perl ok 5 - ffi.custom_type 1 # --- # double_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: double # size: 8 # type: custom_perl ok 6 - ffi.custom_type 1 # --- # double_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: float # ffi_type: double # size: 8 # type: custom_perl ok 2 - double # Subtest: opaque 1..6 ok 1 - ffi.custom_type 1 # --- # opaque_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: opaque # ffi_type: pointer # size: 8 # type: custom_perl ok 2 - ffi.custom_type 1 # --- # opaque_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: opaque # ffi_type: pointer # size: 8 # type: custom_perl ok 3 - ffi.custom_type 1 # --- # opaque_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: opaque # ffi_type: pointer # size: 8 # type: custom_perl ok 4 - ffi.custom_type 1 # --- # opaque_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: opaque # ffi_type: pointer # size: 8 # type: custom_perl ok 5 - ffi.custom_type 1 # --- # opaque_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: opaque # ffi_type: pointer # size: 8 # type: custom_perl ok 6 - ffi.custom_type 1 # --- # opaque_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: opaque # ffi_type: pointer # size: 8 # type: custom_perl ok 3 - opaque # Subtest: uint8 1..6 ok 1 - ffi.custom_type 1 # --- # uint8_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint8 # sign: 0 # size: 1 # type: custom_perl ok 2 - ffi.custom_type 1 # --- # uint8_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint8 # sign: 0 # size: 1 # type: custom_perl ok 3 - ffi.custom_type 1 # --- # uint8_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint8 # sign: 0 # size: 1 # type: custom_perl ok 4 - ffi.custom_type 1 # --- # uint8_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint8 # sign: 0 # size: 1 # type: custom_perl ok 5 - ffi.custom_type 1 # --- # uint8_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint8 # sign: 0 # size: 1 # type: custom_perl ok 6 - ffi.custom_type 1 # --- # uint8_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint8 # sign: 0 # size: 1 # type: custom_perl ok 4 - uint8 # Subtest: sint8 1..6 ok 1 - ffi.custom_type 1 # --- # sint8_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint8 # sign: 1 # size: 1 # type: custom_perl ok 2 - ffi.custom_type 1 # --- # sint8_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint8 # sign: 1 # size: 1 # type: custom_perl ok 3 - ffi.custom_type 1 # --- # sint8_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint8 # sign: 1 # size: 1 # type: custom_perl ok 4 - ffi.custom_type 1 # --- # sint8_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint8 # sign: 1 # size: 1 # type: custom_perl ok 5 - ffi.custom_type 1 # --- # sint8_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint8 # sign: 1 # size: 1 # type: custom_perl ok 6 - ffi.custom_type 1 # --- # sint8_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint8 # sign: 1 # size: 1 # type: custom_perl ok 5 - sint8 # Subtest: uint16 1..6 ok 1 - ffi.custom_type 1 # --- # uint16_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint16 # sign: 0 # size: 2 # type: custom_perl ok 2 - ffi.custom_type 1 # --- # uint16_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint16 # sign: 0 # size: 2 # type: custom_perl ok 3 - ffi.custom_type 1 # --- # uint16_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint16 # sign: 0 # size: 2 # type: custom_perl ok 4 - ffi.custom_type 1 # --- # uint16_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint16 # sign: 0 # size: 2 # type: custom_perl ok 5 - ffi.custom_type 1 # --- # uint16_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint16 # sign: 0 # size: 2 # type: custom_perl ok 6 - ffi.custom_type 1 # --- # uint16_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint16 # sign: 0 # size: 2 # type: custom_perl ok 6 - uint16 # Subtest: sint16 1..6 ok 1 - ffi.custom_type 1 # --- # sint16_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint16 # sign: 1 # size: 2 # type: custom_perl ok 2 - ffi.custom_type 1 # --- # sint16_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint16 # sign: 1 # size: 2 # type: custom_perl ok 3 - ffi.custom_type 1 # --- # sint16_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint16 # sign: 1 # size: 2 # type: custom_perl ok 4 - ffi.custom_type 1 # --- # sint16_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint16 # sign: 1 # size: 2 # type: custom_perl ok 5 - ffi.custom_type 1 # --- # sint16_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint16 # sign: 1 # size: 2 # type: custom_perl ok 6 - ffi.custom_type 1 # --- # sint16_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint16 # sign: 1 # size: 2 # type: custom_perl ok 7 - sint16 # Subtest: uint32 1..6 ok 1 - ffi.custom_type 1 # --- # uint32_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint32 # sign: 0 # size: 4 # type: custom_perl ok 2 - ffi.custom_type 1 # --- # uint32_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint32 # sign: 0 # size: 4 # type: custom_perl ok 3 - ffi.custom_type 1 # --- # uint32_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint32 # sign: 0 # size: 4 # type: custom_perl ok 4 - ffi.custom_type 1 # --- # uint32_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint32 # sign: 0 # size: 4 # type: custom_perl ok 5 - ffi.custom_type 1 # --- # uint32_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint32 # sign: 0 # size: 4 # type: custom_perl ok 6 - ffi.custom_type 1 # --- # uint32_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint32 # sign: 0 # size: 4 # type: custom_perl ok 8 - uint32 # Subtest: sint32 1..6 ok 1 - ffi.custom_type 1 # --- # sint32_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: custom_perl ok 2 - ffi.custom_type 1 # --- # sint32_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: custom_perl ok 3 - ffi.custom_type 1 # --- # sint32_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: custom_perl ok 4 - ffi.custom_type 1 # --- # sint32_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: custom_perl ok 5 - ffi.custom_type 1 # --- # sint32_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: custom_perl ok 6 - ffi.custom_type 1 # --- # sint32_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: custom_perl ok 9 - sint32 # Subtest: uint64 1..6 ok 1 - ffi.custom_type 1 # --- # uint64_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint64 # sign: 0 # size: 8 # type: custom_perl ok 2 - ffi.custom_type 1 # --- # uint64_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint64 # sign: 0 # size: 8 # type: custom_perl ok 3 - ffi.custom_type 1 # --- # uint64_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint64 # sign: 0 # size: 8 # type: custom_perl ok 4 - ffi.custom_type 1 # --- # uint64_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint64 # sign: 0 # size: 8 # type: custom_perl ok 5 - ffi.custom_type 1 # --- # uint64_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint64 # sign: 0 # size: 8 # type: custom_perl ok 6 - ffi.custom_type 1 # --- # uint64_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: uint64 # sign: 0 # size: 8 # type: custom_perl ok 10 - uint64 # Subtest: sint64 1..6 ok 1 - ffi.custom_type 1 # --- # sint64_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint64 # sign: 1 # size: 8 # type: custom_perl ok 2 - ffi.custom_type 1 # --- # sint64_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint64 # sign: 1 # size: 8 # type: custom_perl ok 3 - ffi.custom_type 1 # --- # sint64_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint64 # sign: 1 # size: 8 # type: custom_perl ok 4 - ffi.custom_type 1 # --- # sint64_1: # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint64 # sign: 1 # size: 8 # type: custom_perl ok 5 - ffi.custom_type 1 # --- # sint64_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint64 # sign: 1 # size: 8 # type: custom_perl ok 6 - ffi.custom_type 1 # --- # sint64_1: # custom_native_to_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_nat: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # custom_perl_to_native_p: !!perl/ref # =: !!perl/code '{ "DUMMY" }' # element_type: int # ffi_type: sint64 # sign: 1 # size: 8 # type: custom_perl ok 11 - sint64 ok t/ffi_platypus_declare.t ................... 1..3 # Subtest: normal 1..4 ok 1 - f0(22) = 22 ok 2 - f1(22) = 22 ok 3 - f0_wrap(22) = 25 ok 4 - f0_wrap2(22) = 25 ok 1 - normal # Subtest: with type aliases 1..1 ok 1 - atoi("42") = 42 ok 2 - with type aliases # Subtest: simple closure test 1..2 ok 1 - An object of class 'FFI::Platypus::Closure' isa 'FFI::Platypus::Closure' ok 2 - closure.(1) = 2 ok 3 - simple closure test ok t/ffi_platypus_declare_abi.t ............... 1..10 ok 1 - has a default ABI # Subtest: stdcall ok 1 - string ok 2 - integer 1..2 ok 2 - stdcall # Subtest: default_abi ok 1 - string ok 2 - integer 1..2 ok 3 - default_abi # Subtest: pascal ok 1 - string ok 2 - integer 1..2 ok 4 - pascal # Subtest: thiscall ok 1 - string ok 2 - integer 1..2 ok 5 - thiscall # Subtest: register ok 1 - string ok 2 - integer 1..2 ok 6 - register # Subtest: fastcall ok 1 - string ok 2 - integer 1..2 ok 7 - fastcall # Subtest: sysv ok 1 - string ok 2 - integer 1..2 ok 8 - sysv # Subtest: unix64 ok 1 - string ok 2 - integer 1..2 ok 9 - unix64 # Subtest: bogus ok 1 - string ok 2 - integer 1..2 ok 10 - bogus ok t/ffi_platypus_declare_cast.t .............. 1..3 # Subtest: cast from string to pointer 1..2 ok 1 - dynamic ok 2 - static ok 1 - cast from string to pointer # Subtest: cast from pointer to string 1..2 ok 1 - dynamic ok 2 - static ok 2 - cast from pointer to string # Subtest: cast closure to opaque 1..2 ok 1 - dynamic ok 2 - static ok 3 - cast closure to opaque ok t/ffi_platypus_declare_lang.t .............. 1..2 # Subtest: C 1..3 ok 1 - int is an okay type ok 2 - foo_t is not an okay type # unknown type: foo_t at t/ffi_platypus_declare_lang.t line 16. ok 3 - sint16 is an okay type ok 1 - C # Subtest: Foo constructor 1..5 ok 1 - int is not an okay type # unknown type: int at t/ffi_platypus_declare_lang.t line 35. ok 2 - foo_t is an okay type ok 3 - sint16 is an okay type ok 4 - sizeof foo_t = 2 ok 5 - sizeof foo_t = 4 ok 2 - Foo constructor ok t/ffi_platypus_declare_sizeof.t ............ 1..2 ok 1 - sizeof uint32 = 4 ok 2 - sizeof uint32[2] = 8 ok t/ffi_platypus_declare_sticky.t ............ 1..1 ok 1 - call_closure(2) = 4 ok t/ffi_platypus_find_lib.t .................. 1..1 ok 1 - found f0 = 140702946187616 ok t/ffi_platypus_find_symbol.t ............... 1..2 # Subtest: external 1..2 ok 1 - ffi.find_symbol(f0) = 140050134546784 ok 2 - ffi.find_symbol(bogus) = undef ok 1 - external # Subtest: internal 1..2 ok 1 - ffi.find_symbol(printf) = 140050150864400 ok 2 - ffi.find_symbol(bogus) = undef ok 2 - internal ok t/ffi_platypus_function.t .................. 1..2 # Subtest: built in type 1..4 ok 1 - ffi.function(f0, [uint8] => uint8) ok 2 - An object of class 'FFI::Platypus::Function' isa 'FFI::Platypus::Function' ok 3 - function.call(22) = 22 ok 4 - function.(22) = 22 ok 1 - built in type # Subtest: custom type 1..4 ok 1 - ffi.function(f0, [my_int_8] => my_int_8) ok 2 - An object of class 'FFI::Platypus::Function' isa 'FFI::Platypus::Function' ok 3 - function.call(22) = 22 ok 4 - function.(22) = 22 ok 2 - custom type ok t/ffi_platypus_function_private.t .......... 1..4 ok 1 - FFI::Platypus::Function->new ok 2 - An object of class 'FFI::Platypus::Function' isa 'FFI::Platypus::Function' ok 3 - function.call(22) = 22 ok 4 - fooble(22) = 22 ok t/ffi_platypus_ignore_not_found.t .......... 1..6 # lib=libtest/libtest.so # Subtest: ignore_not_found=undef 1..4 ok 1 - no exception ok 2 - returned a function # f1 isa FFI::Platypus::Function ok 3 - function exception # exception=unable to find bogus at t/ffi_platypus_ignore_not_found.t line 22. ok 4 - attach exception # exception=unable to find bogus at t/ffi_platypus_ignore_not_found.t line 26. ok 1 - ignore_not_found=undef # Subtest: ignore_not_found=0 1..4 ok 1 - no exception ok 2 - returned a function # f1 isa FFI::Platypus::Function ok 3 - function exception # exception=unable to find bogus at t/ffi_platypus_ignore_not_found.t line 44. ok 4 - attach exception # exception=unable to find bogus at t/ffi_platypus_ignore_not_found.t line 48. ok 2 - ignore_not_found=0 # Subtest: ignore_not_found=0 (constructor) 1..4 ok 1 - no exception ok 2 - returned a function # f1 isa FFI::Platypus::Function ok 3 - function exception # exception=unable to find bogus at t/ffi_platypus_ignore_not_found.t line 64. ok 4 - attach exception # exception=unable to find bogus at t/ffi_platypus_ignore_not_found.t line 68. ok 3 - ignore_not_found=0 (constructor) # Subtest: ignore_not_found=1 1..5 ok 1 - no exception ok 2 - returned a function # f1 isa FFI::Platypus::Function ok 3 - function no exception ok 4 - f2 is undefined ok 5 - attach no exception ok 4 - ignore_not_found=1 # Subtest: ignore_not_found=1 (constructor) 1..5 ok 1 - no exception ok 2 - returned a function # f1 isa FFI::Platypus::Function ok 3 - function no exception ok 4 - f2 is undefined ok 5 - attach no exception ok 5 - ignore_not_found=1 (constructor) # Subtest: ignore_not_found bool context 1..2 ok 1 - f1 exists and resolved to boolean true ok 2 - f2 does not exist and resolved to boolean false ok 6 - ignore_not_found bool context ok t/ffi_platypus_lang.t ...................... 1..5 # Subtest: C 1..4 ok 1 - int is an okay type ok 2 - foo_t is not an okay type # unknown type: foo_t at t/ffi_platypus_lang.t line 17. ok 3 - sint16 is an okay type ok 4 - unable to find unmangled name ok 1 - C # Subtest: ASM 1..4 ok 1 - int is not an okay type # unknown type: int at t/ffi_platypus_lang.t line 33. ok 2 - foo_t is not an okay type # unknown type: foo_t at t/ffi_platypus_lang.t line 36. ok 3 - sint16 is an okay type ok 4 - unable to find unmangled name ok 2 - ASM # Subtest: Foo constructor 1..6 ok 1 - int is not an okay type # unknown type: int at t/ffi_platypus_lang.t line 52. ok 2 - foo_t is an okay type ok 3 - sint16 is an okay type ok 4 - sizeof foo_t = 2 ok 5 - sizeof foo_t = 4 ok 6 ok 3 - Foo constructor # Subtest: Foo attribute 1..6 ok 1 - int is not an okay type # unknown type: int at t/ffi_platypus_lang.t line 74. ok 2 - foo_t is an okay type ok 3 - sint16 is an okay type ok 4 - sizeof foo_t = 2 ok 5 - sizeof foo_t = 4 ok 6 ok 4 - Foo attribute # Subtest: MyLang::Roger ok 1 - int is not an okay type # unknown type: int at t/ffi_platypus_lang.t line 93. ok 2 - sizeof foo_t = 4 1..2 ok 5 - MyLang::Roger ok t/ffi_platypus_lang_win32.t ................ 1..1 # BOOL sint32 # BOOLEAN uint8 # BYTE uint8 # CCHAR sint8 # CHAR sint8 # COLORREF uint32 # DWORD uint32 # DWORD32 uint32 # DWORD64 uint64 # DWORDLONG uint64 # DWORD_PTR uint16 # FLOAT float # HACCEL opaque # HALF_PTR sint16 # HANDLE opaque # HBITMAP opaque # HBRUSH opaque # HCOLORSPACE opaque # HCONV opaque # HCONVLIST opaque # HCURSOR opaque # HDC opaque # HDDEDATA opaque # HDESK opaque # HDROP opaque # HDWP opaque # HENHMETAFILE opaque # HFILE sint32 # HFONT opaque # HGDIOBJ opaque # HGLOBAL opaque # HHOOK opaque # HICON opaque # HINSTANCE opaque # HKEY opaque # HKL opaque # HLOCAL opaque # HMENU opaque # HMETAFILE opaque # HMODULE opaque # HMONITOR opaque # HPALETTE opaque # HPEN opaque # HRESULT sint32 # HRGN opaque # HRSRC opaque # HSZ opaque # HWINSTA opaque # HWND opaque # INT sint32 # INT16 sint16 # INT32 sint32 # INT64 sint64 # INT8 sint8 # INT_PTR sint32 # LANGID uint16 # LCID uint32 # LCTYPE uint32 # LGRPID uint32 # LONG sint32 # LONG32 sint32 # LONG64 sint64 # LONGLONG sint64 # LONG_PTR sint16 # LPCSTR string # LPCVOID opaque # LPVOID opaque # LRESULT sint16 # PSTR string # PVOID opaque # QWORD uint64 # SC_HANDLE opaque # SC_LOCK opaque # SERVICE_STATUS_HANDLE opaque # SHORT sint16 # SIZE_T uint16 # SSIZE_T sint16 # UCHAR uint8 # UHALF_PTR uint16 # UINT16 uint16 # UINT32 uint32 # UINT64 uint64 # UINT8 uint8 # UINT_PTR uint32 # ULONG uint32 # ULONG32 uint32 # ULONG64 uint64 # ULONGLONG uint64 # ULONG_PTR uint16 # USHORT uint16 # USN sint64 # VOID void # WORD uint16 # WPARAM uint32 # blkcnt_t uint64 # blksize_t uint64 # bool uint8 # char sint8 # complex complex_double # dev_t uint64 # double complex complex_double # float complex complex_float # gid_t uint32 # ino_t uint64 # int sint32 # int16_t sint16 # int32_t sint32 # int64_t sint64 # int8_t sint8 # int_least16_t sint16 # int_least32_t sint32 # int_least64_t sint64 # int_least8_t sint8 # long sint64 # long double longdouble # long long sint64 # mode_t uint32 # nlink_t uint64 # off_t uint64 # ptrdiff_t uint64 # short sint16 # signed char sint8 # signed int sint32 # signed long sint64 # signed long long sint64 # signed short sint16 # size_t uint64 # time_t uint64 # uchar uint8 # uid_t uint32 # uint uint32 # uint16_t uint16 # uint32_t uint32 # uint64_t uint64 # uint8_t uint8 # uint_least16_t uint16 # uint_least32_t uint32 # uint_least64_t uint64 # uint_least8_t uint8 # ulong uint64 # unsigned char uint8 # unsigned int uint32 # unsigned long uint64 # unsigned long long uint64 # unsigned short uint16 # ushort uint16 # wchar_t uint32 ok 1 - good ok t/ffi_platypus_lib.t ....................... 1..3 ok 1 - exists libtest/libtest.so ok 2 - ffi.lib (set) ok 3 - ffi.lib (get) ok t/ffi_platypus_memory.t .................... # Subtest: malloc calloc memset free ok 1 - malloc returns 29332448 ok 2 - calloc returns 32752736 ok 3 - string = yyyyxxxx ok 4 - free $ptr1 ok 5 - free $ptr2 1..5 ok 1 - malloc calloc memset free 1..1 ok t/ffi_platypus_memory__memcpy.t ............ ok 1 - initial data copied ok 2 - copy of copy ok 3 - memcpy returns a pointer ok 4 - free $ptr1 ok 5 - free $ptr2 1..5 ok t/ffi_platypus_memory__realloc.t ........... ok 1 - realloc call ptr = 17172208 ok 2 - initial data copied ok 3 - realloc call ptr = 18299536 (2) ok 4 - after realloc data there ok 5 - final free 1..5 ok t/ffi_platypus_memory__strdup.t ............ # strdup implementation = c ok 1 - string = this and ok 2 - free $ptr1 1..2 ok t/ffi_platypus_new.t ....................... 1..3 # Subtest: no arguments 1..2 ok 1 - 'FFI::Platypus.new' isa 'FFI::Platypus' ok 2 - ffi.lib ok 1 - no arguments # Subtest: with single lib 1..2 ok 1 - 'FFI::Platypus.new' isa 'FFI::Platypus' ok 2 - ffi.lib ok 2 - with single lib # Subtest: with multiple lib 1..2 ok 1 - 'FFI::Platypus.new' isa 'FFI::Platypus' ok 2 - ffi.lib ok 3 - with multiple lib ok t/ffi_platypus_record.t .................... 1..8 # Subtest: integer accessor 1..8 ok 1 - An object of class 'Foo1' isa 'Foo1' ok 2 - foo._record_size = 8 ok 3 - foo.first = 1 ok 4 - foo.second = 2 ok 5 - foo.first = 22 ok 6 - foo.second = 42 ok 7 - foo.first = 3 ok 8 - foo.second = 4 ok 1 - integer accessor # Subtest: values match in C 1..4 ok 1 - An object of class 'Color' isa 'Color' ok 2 - color.get_red = 50 ok 3 - color.get_green = 100 ok 4 - color.get_blue = 150 ok 2 - values match in C # Subtest: complex alignment 1..15 ok 1 - An object of class 'Foo2' isa 'Foo2' ok 2 - uint64 = 512 ok 3 - sint64 = -512 ok 4 - uint32 = 1024 ok 5 - sint32 = -1024 ok 6 - uint16 = 2048 ok 7 - sint16 = -2048 ok 8 - uint8 = 48 ok 9 - sint8 = -48 ok 10 - float = 1.5 ok 11 - double = -1.5 ok 12 - get_opaque = 43692736 ok 13 - opaque = 43692736 ok 14 - get_opaque = undef ok 15 - opaque = undef ok 3 - complex alignment # Subtest: same name 1..1 ok 1 - two members of the same name not allowed # accessor/method foo already exists at t/ffi_platypus_record.t line 182. ok 4 - same name # Subtest: array alignment 1..14 ok 1 - An object of class 'Foo4' isa 'Foo4' # Subtest: unsigned 8 integer 1..4 ok 1 - uint8 = 1,2,3 ok 2 - get_uint8 = 1,2,3 ok 3 - uint8(1) = 2 ok 4 - uint8 = 1,20,3 ok 2 - unsigned 8 integer # Subtest: signed 8 integer 1..4 ok 1 - sint8 = -1,2,-3 ok 2 - get_sint8 = -1,2,-3 ok 3 - sint8(2) = -3 ok 4 - sint8 = -1,-20,-3 ok 3 - signed 8 integer # Subtest: unsigned 16 integer 1..4 ok 1 - uint16 = 1,2,3 ok 2 - get_uint16 = 1,2,3 ok 3 - uint16(1) = 2 ok 4 - uint16 = 1,20,3 ok 4 - unsigned 16 integer # Subtest: signed 16 integer 1..4 ok 1 - sint16 = -1,2,-3 ok 2 - get_sint16 = -1,2,-3 ok 3 - sint16(2) = -3 ok 4 - sint16 = -1,-20,-3 ok 5 - signed 16 integer # Subtest: unsigned 32 integer 1..4 ok 1 - uint32 = 1,2,3 ok 2 - get_uint32 = 1,2,3 ok 3 - uint32(1) = 2 ok 4 - uint32 = 1,20,3 ok 6 - unsigned 32 integer # Subtest: signed 32 integer 1..4 ok 1 - sint32 = -1,2,-3 ok 2 - get_sint32 = -1,2,-3 ok 3 - sint32(2) = -3 ok 4 - sint32 = -1,-20,-3 ok 7 - signed 32 integer # Subtest: unsigned 64 integer 1..4 ok 1 - uint64 = 1,2,3 ok 2 - get_uint64 = 1,2,3 ok 3 - uint64(1) = 2 ok 4 - uint64 = 1,20,3 ok 8 - unsigned 64 integer # Subtest: signed 64 integer 1..4 ok 1 - sint64 = -1,2,-3 ok 2 - get_sint64 = -1,2,-3 ok 3 - sint64(2) = -3 ok 4 - sint64 = -1,-20,-3 ok 9 - signed 64 integer # Subtest: float 1..5 ok 1 - float = 1.5,0,-1.5 ok 2 ok 3 ok 4 ok 5 - float = 1.5,20,-1.5 ok 10 - float # Subtest: double 1..5 ok 1 - double = 1.5,0,-1.5 ok 2 ok 3 ok 4 ok 5 - double = 1.5,20,-1.5 ok 11 - double # Subtest: opaque 1..6 ok 1 - opaque = 43777392,undef,43818624 ok 2 - opaque = 43777392,43777392,43818624 ok 3 - opaque = undef,43777392,43818624 ok 4 ok 5 ok 6 ok 12 - opaque ok 13 - align = 8 ok 14 - align is positive ok 5 - array alignment # Subtest: string ro 1..8 ok 1 - An object of class 'Foo5' isa 'Foo5' ok 2 - foo.value = undef ok 3 - foo.get_value = undef ok 4 - foo.value = my value ok 5 - foo.get_value = my value ok 6 - value is ro # member is read only at t/ffi_platypus_record.t line 344. ok 7 - foo.value = undef ok 8 - foo.get_value = undef ok 6 - string ro # Subtest: fixed string 1..6 ok 1 - An object of class 'Foo6' isa 'Foo6' ok 2 - foo.value = "\0\0\0\0\0\0\0\0\0\0" ok 3 - foo.get_value = "" ok 4 - foo.value = "one two th" ok 5 - foo.value = 123456789\0 ok 6 - foo.get_value = 123456789 ok 7 - fixed string # Subtest: string rw 1..7 ok 1 - An object of class 'Foo7' isa 'Foo7' ok 2 - foo.value = hi there ok 3 - foo.get_value = hi there ok 4 - foo.value = undef ok 5 - foo.get_value = undef ok 6 - foo.value = starscream!!! ok 7 - foo.get_value = starscream!!! ok 8 - string rw ok t/ffi_platypus_record_tiearray.t ........... 1..45 ok 1 - An object of class 'Foo' isa 'Foo' ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok 44 ok 45 ok t/ffi_platypus_sizeof.t .................... 1..5 # Subtest: integers 1..8 ok 1 - sizeof uint8 = 1 ok 2 - sizeof uint16 = 2 ok 3 - sizeof uint32 = 4 ok 4 - sizeof uint64 = 8 ok 5 - sizeof sint8 = 1 ok 6 - sizeof sint16 = 2 ok 7 - sizeof sint32 = 4 ok 8 - sizeof sint64 = 8 ok 1 - integers # Subtest: floats 1..2 ok 1 - sizeof float = 4 ok 2 - sizeof double = 8 ok 2 - floats # Subtest: pointers 1..14 ok 1 - sizeof opaque = 8 ok 2 - sizeof uint8* = 8 ok 3 - sizeof uint16* = 8 ok 4 - sizeof uint32* = 8 ok 5 - sizeof uint64* = 8 ok 6 - sizeof sint8* = 8 ok 7 - sizeof sint16* = 8 ok 8 - sizeof sint32* = 8 ok 9 - sizeof sint64* = 8 ok 10 - sizeof float* = 8 ok 11 - sizeof double* = 8 ok 12 - sizeof opaque* = 8 ok 13 - sizeof string = 8 ok 14 - sizeof (int)->int = 8 ok 3 - pointers # Subtest: arrays 1..110 ok 1 - sizeof uint8 [32] = 1 ok 2 - sizeof uint8 [32] = 2 ok 3 - sizeof uint8 [32] = 3 ok 4 - sizeof uint8 [32] = 4 ok 5 - sizeof uint8 [32] = 5 ok 6 - sizeof uint8 [32] = 6 ok 7 - sizeof uint8 [32] = 7 ok 8 - sizeof uint8 [32] = 8 ok 9 - sizeof uint8 [32] = 9 ok 10 - sizeof uint8 [32] = 10 ok 11 - sizeof uint16 [32] = 2 ok 12 - sizeof uint16 [32] = 4 ok 13 - sizeof uint16 [32] = 6 ok 14 - sizeof uint16 [32] = 8 ok 15 - sizeof uint16 [32] = 10 ok 16 - sizeof uint16 [32] = 12 ok 17 - sizeof uint16 [32] = 14 ok 18 - sizeof uint16 [32] = 16 ok 19 - sizeof uint16 [32] = 18 ok 20 - sizeof uint16 [32] = 20 ok 21 - sizeof uint32 [32] = 4 ok 22 - sizeof uint32 [32] = 8 ok 23 - sizeof uint32 [32] = 12 ok 24 - sizeof uint32 [32] = 16 ok 25 - sizeof uint32 [32] = 20 ok 26 - sizeof uint32 [32] = 24 ok 27 - sizeof uint32 [32] = 28 ok 28 - sizeof uint32 [32] = 32 ok 29 - sizeof uint32 [32] = 36 ok 30 - sizeof uint32 [32] = 40 ok 31 - sizeof uint64 [32] = 8 ok 32 - sizeof uint64 [32] = 16 ok 33 - sizeof uint64 [32] = 24 ok 34 - sizeof uint64 [32] = 32 ok 35 - sizeof uint64 [32] = 40 ok 36 - sizeof uint64 [32] = 48 ok 37 - sizeof uint64 [32] = 56 ok 38 - sizeof uint64 [32] = 64 ok 39 - sizeof uint64 [32] = 72 ok 40 - sizeof uint64 [32] = 80 ok 41 - sizeof sint8 [32] = 1 ok 42 - sizeof sint8 [32] = 2 ok 43 - sizeof sint8 [32] = 3 ok 44 - sizeof sint8 [32] = 4 ok 45 - sizeof sint8 [32] = 5 ok 46 - sizeof sint8 [32] = 6 ok 47 - sizeof sint8 [32] = 7 ok 48 - sizeof sint8 [32] = 8 ok 49 - sizeof sint8 [32] = 9 ok 50 - sizeof sint8 [32] = 10 ok 51 - sizeof sint16 [32] = 2 ok 52 - sizeof sint16 [32] = 4 ok 53 - sizeof sint16 [32] = 6 ok 54 - sizeof sint16 [32] = 8 ok 55 - sizeof sint16 [32] = 10 ok 56 - sizeof sint16 [32] = 12 ok 57 - sizeof sint16 [32] = 14 ok 58 - sizeof sint16 [32] = 16 ok 59 - sizeof sint16 [32] = 18 ok 60 - sizeof sint16 [32] = 20 ok 61 - sizeof sint32 [32] = 4 ok 62 - sizeof sint32 [32] = 8 ok 63 - sizeof sint32 [32] = 12 ok 64 - sizeof sint32 [32] = 16 ok 65 - sizeof sint32 [32] = 20 ok 66 - sizeof sint32 [32] = 24 ok 67 - sizeof sint32 [32] = 28 ok 68 - sizeof sint32 [32] = 32 ok 69 - sizeof sint32 [32] = 36 ok 70 - sizeof sint32 [32] = 40 ok 71 - sizeof sint64 [32] = 8 ok 72 - sizeof sint64 [32] = 16 ok 73 - sizeof sint64 [32] = 24 ok 74 - sizeof sint64 [32] = 32 ok 75 - sizeof sint64 [32] = 40 ok 76 - sizeof sint64 [32] = 48 ok 77 - sizeof sint64 [32] = 56 ok 78 - sizeof sint64 [32] = 64 ok 79 - sizeof sint64 [32] = 72 ok 80 - sizeof sint64 [32] = 80 ok 81 - sizeof float [32] = 4 ok 82 - sizeof float [32] = 8 ok 83 - sizeof float [32] = 12 ok 84 - sizeof float [32] = 16 ok 85 - sizeof float [32] = 20 ok 86 - sizeof float [32] = 24 ok 87 - sizeof float [32] = 28 ok 88 - sizeof float [32] = 32 ok 89 - sizeof float [32] = 36 ok 90 - sizeof float [32] = 40 ok 91 - sizeof double [32] = 8 ok 92 - sizeof double [32] = 16 ok 93 - sizeof double [32] = 24 ok 94 - sizeof double [32] = 32 ok 95 - sizeof double [32] = 40 ok 96 - sizeof double [32] = 48 ok 97 - sizeof double [32] = 56 ok 98 - sizeof double [32] = 64 ok 99 - sizeof double [32] = 72 ok 100 - sizeof double [32] = 80 ok 101 - sizeof opaque [32] = 8 ok 102 - sizeof opaque [32] = 16 ok 103 - sizeof opaque [32] = 24 ok 104 - sizeof opaque [32] = 32 ok 105 - sizeof opaque [32] = 40 ok 106 - sizeof opaque [32] = 48 ok 107 - sizeof opaque [32] = 56 ok 108 - sizeof opaque [32] = 64 ok 109 - sizeof opaque [32] = 72 ok 110 - sizeof opaque [32] = 80 ok 4 - arrays # Subtest: custom_type ok 1 - sizeof my_uint8 = 1 ok 2 - sizeof my_uint16 = 2 ok 3 - sizeof my_uint32 = 4 ok 4 - sizeof my_uint64 = 8 ok 5 - sizeof my_sint8 = 1 ok 6 - sizeof my_sint16 = 2 ok 7 - sizeof my_sint32 = 4 ok 8 - sizeof my_sint64 = 8 ok 9 - sizeof my_float = 4 ok 10 - sizeof my_double = 8 ok 11 - sizeof my_opaque = 8 1..11 ok 5 - custom_type ok t/ffi_platypus_type.t ...................... 1..8 # Subtest: simple type 1..2 ok 1 - ffi.type(sint8) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 1 - simple type # Subtest: aliased type 1..4 ok 1 - ffi.type(sint8 => my_integer_8) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 4 - ffi.types returns my_integer_8 ok 2 - aliased type # Subtest: ffi basic types 1..13 # Subtest: sint8 1..3 ok 1 - ffi.type(sint8) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 1 # element_type: int # ffi_type: sint8 # sign: 1 # size: 1 # type: scalar ok 3 - size = 1 ok 1 - sint8 # Subtest: uint8 1..3 ok 1 - ffi.type(uint8) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 1 # element_type: int # ffi_type: uint8 # sign: 0 # size: 1 # type: scalar ok 3 - size = 1 ok 2 - uint8 # Subtest: sint16 1..3 ok 1 - ffi.type(sint16) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 2 # element_type: int # ffi_type: sint16 # sign: 1 # size: 2 # type: scalar ok 3 - size = 2 ok 3 - sint16 # Subtest: uint16 1..3 ok 1 - ffi.type(uint16) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 2 # element_type: int # ffi_type: uint16 # sign: 0 # size: 2 # type: scalar ok 3 - size = 2 ok 4 - uint16 # Subtest: sint32 1..3 ok 1 - ffi.type(sint32) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 4 # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: scalar ok 3 - size = 4 ok 5 - sint32 # Subtest: uint32 1..3 ok 1 - ffi.type(uint32) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 4 # element_type: int # ffi_type: uint32 # sign: 0 # size: 4 # type: scalar ok 3 - size = 4 ok 6 - uint32 # Subtest: sint64 1..3 ok 1 - ffi.type(sint64) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 8 # element_type: int # ffi_type: sint64 # sign: 1 # size: 8 # type: scalar ok 3 - size = 8 ok 7 - sint64 # Subtest: uint64 1..3 ok 1 - ffi.type(uint64) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 8 # element_type: int # ffi_type: uint64 # sign: 0 # size: 8 # type: scalar ok 3 - size = 8 ok 8 - uint64 # Subtest: float 1..3 ok 1 - ffi.type(float) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 4 # element_type: float # ffi_type: float # size: 4 # type: scalar ok 3 - size = 4 ok 9 - float # Subtest: double 1..3 ok 1 - ffi.type(double) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 8 # element_type: float # ffi_type: double # size: 8 # type: scalar ok 3 - size = 8 ok 10 - double # Subtest: opaque 1..3 ok 1 - ffi.type(opaque) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 8 # element_type: opaque # ffi_type: pointer # size: 8 # type: scalar ok 3 - size = 8 ok 11 - opaque # Subtest: string 1..3 ok 1 - ffi.type(string) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # access: ro # element_size: 8 # element_type: opaque # ffi_type: pointer # fixed_size: 0 # size: 8 # type: string ok 3 - size = 8 ok 12 - string # Subtest: longdouble 1..3 ok 1 - ffi.type(longdouble) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 16 # element_type: float # exotic: 1 # ffi_type: longdouble # size: 16 # type: scalar ok 3 - size = 16 ok 13 - longdouble ok 3 - ffi basic types # Subtest: ffi pointer types 1..13 # Subtest: sint8 * 1..3 ok 1 - ffi.type(sint8 *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 1 # element_type: int # ffi_type: sint8 # sign: 1 # size: 8 # type: pointer ok 3 - size = 8 ok 1 - sint8 * # Subtest: uint8 * 1..3 ok 1 - ffi.type(uint8 *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 1 # element_type: int # ffi_type: uint8 # sign: 0 # size: 8 # type: pointer ok 3 - size = 8 ok 2 - uint8 * # Subtest: sint16 * 1..3 ok 1 - ffi.type(sint16 *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 2 # element_type: int # ffi_type: sint16 # sign: 1 # size: 8 # type: pointer ok 3 - size = 8 ok 3 - sint16 * # Subtest: uint16 * 1..3 ok 1 - ffi.type(uint16 *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 2 # element_type: int # ffi_type: uint16 # sign: 0 # size: 8 # type: pointer ok 3 - size = 8 ok 4 - uint16 * # Subtest: sint32 * 1..3 ok 1 - ffi.type(sint32 *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 4 # element_type: int # ffi_type: sint32 # sign: 1 # size: 8 # type: pointer ok 3 - size = 8 ok 5 - sint32 * # Subtest: uint32 * 1..3 ok 1 - ffi.type(uint32 *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 4 # element_type: int # ffi_type: uint32 # sign: 0 # size: 8 # type: pointer ok 3 - size = 8 ok 6 - uint32 * # Subtest: sint64 * 1..3 ok 1 - ffi.type(sint64 *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 8 # element_type: int # ffi_type: sint64 # sign: 1 # size: 8 # type: pointer ok 3 - size = 8 ok 7 - sint64 * # Subtest: uint64 * 1..3 ok 1 - ffi.type(uint64 *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 8 # element_type: int # ffi_type: uint64 # sign: 0 # size: 8 # type: pointer ok 3 - size = 8 ok 8 - uint64 * # Subtest: float * 1..3 ok 1 - ffi.type(float *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 4 # element_type: float # ffi_type: float # size: 8 # type: pointer ok 3 - size = 8 ok 9 - float * # Subtest: double * 1..3 ok 1 - ffi.type(double *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 8 # element_type: float # ffi_type: double # size: 8 # type: pointer ok 3 - size = 8 ok 10 - double * # Subtest: opaque * 1..3 ok 1 - ffi.type(opaque *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 8 # element_type: opaque # ffi_type: pointer # size: 8 # type: pointer ok 3 - size = 8 ok 11 - opaque * # Subtest: string * 1..0 # SKIP ME GRIMLOCK SAY STRING CAN NO BE POINTER ok 12 # skip ME GRIMLOCK SAY STRING CAN NO BE POINTER # Subtest: longdouble * 1..3 ok 1 - ffi.type(longdouble *) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_size: 16 # element_type: float # ffi_type: longdouble # size: 8 # type: pointer ok 3 - size = 8 ok 13 - longdouble * ok 4 - ffi pointer types # Subtest: ffi array types 1..13 # Subtest: sint8 [5] 1..4 ok 1 - ffi.type(sint8 [5]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 5 # element_size: 1 # element_type: int # ffi_type: sint8 # sign: 1 # size: 5 # type: array ok 3 - size = 5 ok 4 - size = 5 ok 1 - sint8 [5] # Subtest: uint8 [7] 1..4 ok 1 - ffi.type(uint8 [7]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 7 # element_size: 1 # element_type: int # ffi_type: uint8 # sign: 0 # size: 7 # type: array ok 3 - size = 7 ok 4 - size = 7 ok 2 - uint8 [7] # Subtest: sint16 [9] 1..4 ok 1 - ffi.type(sint16 [9]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 9 # element_size: 2 # element_type: int # ffi_type: sint16 # sign: 1 # size: 18 # type: array ok 3 - size = 18 ok 4 - size = 9 ok 3 - sint16 [9] # Subtest: uint16 [11] 1..4 ok 1 - ffi.type(uint16 [11]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 11 # element_size: 2 # element_type: int # ffi_type: uint16 # sign: 0 # size: 22 # type: array ok 3 - size = 22 ok 4 - size = 11 ok 4 - uint16 [11] # Subtest: sint32 [13] 1..4 ok 1 - ffi.type(sint32 [13]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 13 # element_size: 4 # element_type: int # ffi_type: sint32 # sign: 1 # size: 52 # type: array ok 3 - size = 52 ok 4 - size = 13 ok 5 - sint32 [13] # Subtest: uint32 [15] 1..4 ok 1 - ffi.type(uint32 [15]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 15 # element_size: 4 # element_type: int # ffi_type: uint32 # sign: 0 # size: 60 # type: array ok 3 - size = 60 ok 4 - size = 15 ok 6 - uint32 [15] # Subtest: sint64 [17] 1..4 ok 1 - ffi.type(sint64 [17]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 17 # element_size: 8 # element_type: int # ffi_type: sint64 # sign: 1 # size: 136 # type: array ok 3 - size = 136 ok 4 - size = 17 ok 7 - sint64 [17] # Subtest: uint64 [19] 1..4 ok 1 - ffi.type(uint64 [19]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 19 # element_size: 8 # element_type: int # ffi_type: uint64 # sign: 0 # size: 152 # type: array ok 3 - size = 152 ok 4 - size = 19 ok 8 - uint64 [19] # Subtest: float [21] 1..4 ok 1 - ffi.type(float [21]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 21 # element_size: 4 # element_type: float # ffi_type: float # size: 84 # type: array ok 3 - size = 84 ok 4 - size = 21 ok 9 - float [21] # Subtest: double [23] 1..4 ok 1 - ffi.type(double [23]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 23 # element_size: 8 # element_type: float # ffi_type: double # size: 184 # type: array ok 3 - size = 184 ok 4 - size = 23 ok 10 - double [23] # Subtest: opaque [25] 1..4 ok 1 - ffi.type(opaque [25]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 25 # element_size: 8 # element_type: opaque # ffi_type: pointer # size: 200 # type: array ok 3 - size = 200 ok 4 - size = 25 ok 11 - opaque [25] # Subtest: string [27] 1..0 # SKIP ME GRIMLOCK SAY STRING CAN NO BE ARRAY ok 12 # skip ME GRIMLOCK SAY STRING CAN NO BE ARRAY # Subtest: longdouble [29] 1..4 ok 1 - ffi.type(longdouble [29]) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' # --- # element_count: 29 # element_size: 16 # element_type: float # ffi_type: longdouble # size: 464 # type: array ok 3 - size = 464 ok 4 - size = 29 ok 13 - longdouble [29] ok 5 - ffi array types # Subtest: closure types 1..6 ok 1 - (int)->int is a legal closure type # --- # element_size: 8 # element_type: opaque # ffi_type: pointer # signature: # - # - element_size: 4 # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: scalar # - element_size: 4 # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: scalar # size: 8 # type: closure ok 2 # skip arrays not currently supported as closure argument types ok 3 - inline closure illegal ok 4 - argument type closure illegal ok 5 - return type closure illegal ok 6 - a more complicated closure # --- # element_size: 8 # element_type: opaque # ffi_type: pointer # signature: # - # - element_size: 4 # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: scalar # - element_size: 4 # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: scalar # - element_size: 4 # element_type: int # ffi_type: sint32 # sign: 1 # size: 4 # type: scalar # - element_size: 1 # element_type: int # ffi_type: sint8 # sign: 1 # size: 1 # type: scalar # - access: ro # element_size: 8 # element_type: opaque # ffi_type: pointer # fixed_size: 0 # size: 8 # type: string # - element_size: 8 # element_type: opaque # ffi_type: pointer # size: 8 # type: scalar # - element_size: 1 # element_type: void # ffi_type: void # size: 1 # type: scalar # size: 8 # type: closure ok 6 - closure types # Subtest: record 1..4 # --- # element_type: opaque # ffi_type: pointer # ref: 0 # size: 1 # type: record # --- # element_type: opaque # ffi_type: pointer # ref: 0 # size: 32 # type: record ok 1 - sizeof my_record_1 = 1 ok 2 - sizeof my_record_32 = 32 # --- # element_type: opaque # ffi_type: pointer # ref: 1 # size: 22 # type: record # --- # element_type: opaque # ffi_type: pointer # ref: 1 # size: 44 # type: record ok 3 - sizeof my_record_22 = 22 ok 4 - sizeof my_record_44 = 44 ok 7 - record # Subtest: string # Subtest: string 1..3 ok 1 - sizeof string = 8 ok 2 - not fixed size ok 3 - access = ro # --- # access: ro # element_size: 8 # element_type: opaque # ffi_type: pointer # fixed_size: 0 # size: 8 # type: string ok 1 - string # Subtest: string_rw 1..3 ok 1 - sizeof string_rw = 8 ok 2 - not fixed size ok 3 - access = rw # --- # access: rw # element_size: 8 # element_type: opaque # ffi_type: pointer # fixed_size: 0 # size: 8 # type: string ok 2 - string_rw # Subtest: string_ro 1..3 ok 1 - sizeof string_ro = 8 ok 2 - not fixed size ok 3 - access = ro # --- # access: ro # element_size: 8 # element_type: opaque # ffi_type: pointer # fixed_size: 0 # size: 8 # type: string ok 3 - string_ro # Subtest: string rw 1..3 ok 1 - sizeof string rw = 8 ok 2 - not fixed size ok 3 - access = rw # --- # access: rw # element_size: 8 # element_type: opaque # ffi_type: pointer # fixed_size: 0 # size: 8 # type: string ok 4 - string rw # Subtest: string ro 1..3 ok 1 - sizeof string ro = 8 ok 2 - not fixed size ok 3 - access = ro # --- # access: ro # element_size: 8 # element_type: opaque # ffi_type: pointer # fixed_size: 0 # size: 8 # type: string ok 5 - string ro # Subtest: string (10) ok 1 - sizeof string (10) = 10 ok 2 - fixed size ok 3 - access = rw # --- # access: rw # element_size: 8 # element_type: opaque # ffi_type: pointer # fixed_size: 1 # size: 10 # type: string 1..3 ok 6 - string (10) # Subtest: string(10) ok 1 - sizeof string(10) = 10 ok 2 - fixed size ok 3 - access = rw # --- # access: rw # element_size: 8 # element_type: opaque # ffi_type: pointer # fixed_size: 1 # size: 10 # type: string 1..3 ok 7 - string(10) 1..7 ok 8 - string ok t/ffi_platypus_type_pointer_size_buffer.t .. 1..5 ok 1 ok 2 ok 3 ok 4 ok 5 ok t/ffi_platypus_type_private.t .............. 1..15 # Subtest: void 1..3 ok 1 - type = FFI::Platypus::Type->new(void) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = void ok 1 - void # Subtest: uint8 1..3 ok 1 - type = FFI::Platypus::Type->new(uint8) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = uint8 ok 2 - uint8 # Subtest: sint8 1..3 ok 1 - type = FFI::Platypus::Type->new(sint8) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = sint8 ok 3 - sint8 # Subtest: uint16 1..3 ok 1 - type = FFI::Platypus::Type->new(uint16) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = uint16 ok 4 - uint16 # Subtest: sint16 1..3 ok 1 - type = FFI::Platypus::Type->new(sint16) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = sint16 ok 5 - sint16 # Subtest: uint32 1..3 ok 1 - type = FFI::Platypus::Type->new(uint32) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = uint32 ok 6 - uint32 # Subtest: sint32 1..3 ok 1 - type = FFI::Platypus::Type->new(sint32) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = sint32 ok 7 - sint32 # Subtest: uint64 1..3 ok 1 - type = FFI::Platypus::Type->new(uint64) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = uint64 ok 8 - uint64 # Subtest: sint64 1..3 ok 1 - type = FFI::Platypus::Type->new(sint64) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = sint64 ok 9 - sint64 # Subtest: float 1..3 ok 1 - type = FFI::Platypus::Type->new(float) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = float ok 10 - float # Subtest: double 1..3 ok 1 - type = FFI::Platypus::Type->new(double) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = double ok 11 - double # Subtest: longdouble 1..3 ok 1 - type = FFI::Platypus::Type->new(longdouble) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = longdouble ok 12 - longdouble # Subtest: opaque 1..3 ok 1 - type = FFI::Platypus::Type->new(opaque) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = pointer ok 13 - opaque # Subtest: pointer 1..3 ok 1 - type = FFI::Platypus::Type->new(pointer) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = pointer ok 14 - pointer # Subtest: string 1..3 ok 1 - type = FFI::Platypus::Type->new(string) ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type' ok 3 - type.meta.ffi_type = pointer ok 15 - string ok t/ffi_platypus_type_string_pointer.t ....... 1..3 # Subtest: arg pass in 1..3 ok 1 - not null ok 2 - \undef is null ok 3 - undef is null ok 1 - arg pass in # Subtest: arg pass out 1..2 ok 1 - not null string = hi there ok 2 - not null string = and another ok 2 - arg pass out # Subtest: return value 1..3 ok 1 - not null string = once more onto ok 2 - \null ok 3 - null ok 3 - return value ok t/ffi_platypus_types.t ..................... 1..1 # Subtest: class or instance method 1..1 ok 1 - class and instance methods are identical # type: blkcnt_t # type: blksize_t # type: bool # type: char # type: dev_t # type: double # type: float # type: gid_t # type: ino_t # type: int # type: int16_t # type: int32_t # type: int64_t # type: int8_t # type: int_least16_t # type: int_least32_t # type: int_least64_t # type: int_least8_t # type: long # type: long double # type: long long # type: longdouble # type: mode_t # type: nlink_t # type: off_t # type: opaque # type: pointer # type: ptrdiff_t # type: short # type: signed char # type: signed int # type: signed long # type: signed long long # type: signed short # type: sint16 # type: sint32 # type: sint64 # type: sint8 # type: size_t # type: string # type: time_t # type: uchar # type: uid_t # type: uint # type: uint16 # type: uint16_t # type: uint32 # type: uint32_t # type: uint64 # type: uint64_t # type: uint8 # type: uint8_t # type: uint_least16_t # type: uint_least32_t # type: uint_least64_t # type: uint_least8_t # type: ulong # type: unsigned char # type: unsigned int # type: unsigned long # type: unsigned long long # type: unsigned short # type: ushort # type: void # type: wchar_t ok 1 - class or instance method ok Can't locate object method "tid" via package "threads" at /data/fly2400/cpanfly-5.24/var/megalib/Test2/Util.pm line 126. BEGIN failed--compilation aborted at t/forks.t line 4. Undefined subroutine &threads::_END called at (eval 6) line 1. END failed--call queue aborted at t/forks.t line 4. Can't locate object method "tid" via package "threads" at /data/fly2400/cpanfly-5.24/var/megalib/Test2/Util.pm line 126. END failed--call queue aborted at t/forks.t line 4. (in cleanup) Can't locate object method "tid" via package "threads" at /data/fly2400/cpanfly-5.24/var/megalib/Test2/Util.pm line 126 during global destruction. t/forks.t .................................. Dubious, test returned 22 (wstat 5632, 0x1600) No subtests run t/threads.t ................................ 1..2 ok 1 - works in a thread ok 2 - works in main thread ok t/type_complex_double.t .................... skipped: test requires support for double complex t/type_complex_float.t ..................... skipped: test requires support for float complex t/type_double.t ............................ 1..19 ok 1 - add(1.5,2.5) = 4 ok 2 - add() = 0.0 ok 3 - inc(\$i,4.25) = \7.75 ok 4 - i=3.5+4.25 ok 5 - inc(\3,4) = \7 ok 6 - sum([1..10]) = 55 ok 7 - sum2([1..10],10) = 55 ok 8 - array increment ok 9 - null() == undef ok 10 - is_null(undef) == 1 ok 11 - is_null() == 1 ok 12 - is_null(22) == 0 ok 13 - static_array = [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5] ok 14 - null2() == undef ok 15 - call_closure(2.5) = 4.75 ok 16 - call_closure(2.5) = 0 # Subtest: custom type input 1..2 ok 1 ok 2 - custom_add(1.25,2.5) = 4 ok 17 - custom type input # Subtest: custom type output 1..2 ok 1 ok 2 - custom_add2(1,1) = 2.25 ok 18 - custom type output ok 19 - closure_pointer_is_null() = 1 ok t/type_float.t ............................. 1..19 ok 1 - add(1.5,2.5) = 4 ok 2 - add() = 0.0 ok 3 - inc(\$i,4.25) = \7.75 ok 4 - i=3.5+4.25 ok 5 - inc(\3,4) = \7 ok 6 - sum([1..10]) = 55 ok 7 - sum2([1..10],10) = 55 ok 8 - array increment ok 9 - null() == undef ok 10 - is_null(undef) == 1 ok 11 - is_null() == 1 ok 12 - is_null(22) == 0 ok 13 - static_array = [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5] ok 14 - null2() == undef ok 15 - call_closure(2.5) = 4.75 ok 16 - call_closure(2.5) = 0 # Subtest: custom type input 1..2 ok 1 ok 2 - custom_add(1.25,2.5) = 4 ok 17 - custom type input # Subtest: custom type output 1..2 ok 1 ok 2 - custom_add2(1,1) = 2.25 ok 18 - custom type output ok 19 - closure_pointer_is_null() = 1 ok t/type_longdouble.t ........................ 1..2 # Subtest: with Math::LongDouble 1..0 # SKIP test requires Math::LongDouble ok 1 # skip test requires Math::LongDouble # Subtest: without Math::LongDouble 1..5 # Subtest: scalar 1..1 ok 1 - add(1.5,2.5) = 4 ok 1 - scalar # Subtest: pointer 1..5 ok 1 ok 2 ok 3 ok 4 ok 5 ok 2 - pointer # Subtest: array fixed 1..4 ok 1 # [1,2,3] ok 2 ok 3 ok 4 ok 3 - array fixed # Subtest: array var 1..4 ok 1 # [1,2,3] ok 2 ok 3 ok 4 ok 4 - array var # Subtest: array return 1..3 # [1,2,3] ok 1 ok 2 ok 3 ok 5 - array return ok 2 - without Math::LongDouble ok t/type_opaque.t ............................ ok 1 - null = undef ok 2 - is_null(undef) == 1 ok 3 - is_null() == 1 ok 4 - is_null($ptr) = 0 ok 5 - setp(9897088); getp() = 9897088 ok 6 - get($tmp); tmp = 9897088 ok 7 - get(\$tmp); \$tmp = undef ok 8 - aa_in([one two three]) ok 9 - aa_null_in([undef,undef,undef]) ok 10 - aa_out() ok 11 - aa_null_out() ok 12 - ra_out() ok 13 - ra_null_out ok 14 - pp2p(\undef) = undef ok 15 - pp2p(\9808592) = 9808592 ok 16 - p2pp(undef) = \undef ok 17 - pp2p(9808592) = \9808592 ok 18 - call_closure(undef) = undef ok 19 - save = undef ok 20 - call_closure(\18171904) = 18171904 ok 21 - save = 18171904 # Subtest: custom type input ok 1 ok 2 1..2 ok 22 - custom type input # Subtest: custom type output ok 1 ok 2 1..2 ok 23 - custom type output 1..23 ok t/type_record.t ............................ 1..2 # record size = 20 # Subtest: not a reference 1..2 # Subtest: in 1..3 # packed size = 20 ok 1 - get_value($packed) = 42 ok 2 - get_name($packed) = hi there ok 3 - is_null(undef) ok 1 - in # Subtest: out 1..3 # packed size = 20 ok 1 - get_value($packed) = 47 ok 2 - get_value($packed) = platypus ok 3 - null() = undef ok 2 - out ok 1 - not a reference # Subtest: is a reference 1..2 # Subtest: in 1..3 # packed size = 20 ok 1 - get_value(\$packed) = 42 ok 2 - get_name(\$packed) = hi there ok 3 - is_null(\undef) ok 1 - in # Subtest: out 1..5 # packed size = 31 ok 1 - An object of class 'My::FooRecord' isa 'My::FooRecord' ok 2 - packed.my_method = starscream ok 3 - get_value($packed) = 47 ok 4 - get_value($packed) = platypus ok 5 - null() = \undef ok 2 - out ok 2 - is a reference ok t/type_sint16.t ............................ 1..19 ok 1 - add(-1,2) = 1 ok 2 - add() = 0 ok 3 - inc(\$i,4) = \1 ok 4 - i=1 ok 5 - inc(\-3,4) = \1 ok 6 - sum([-5..4]) = -5 ok 7 - sum([-5..4],10) = -5 ok 8 - array increment ok 9 - null() == undef ok 10 - is_null(undef) == 1 ok 11 - is_null() == 1 ok 12 - is_null(22) == 0 ok 13 - static_array = [-1,2,-3,4,-5,6,-7,8,-9,10] ok 14 - null2() == undef ok 15 - call_closure(-2) = -4 ok 16 - call_closure(2) = 0 # Subtest: custom type input 1..2 ok 1 ok 2 - custom_add(-2,-1) = -5 ok 17 - custom type input # Subtest: custom type output 1..2 ok 1 ok 2 - custom_add2(-2,-1) = -6 ok 18 - custom type output ok 19 - closure_pointer_is_null() = 1 ok t/type_sint32.t ............................ 1..19 ok 1 - add(-1,2) = 1 ok 2 - add() = 0 ok 3 - inc(\$i,4) = \1 ok 4 - i=1 ok 5 - inc(\-3,4) = \1 ok 6 - sum([-5..4]) = -5 ok 7 - sum([-5..4],10) = -5 ok 8 - array increment ok 9 - null() == undef ok 10 - is_null(undef) == 1 ok 11 - is_null() == 1 ok 12 - is_null(22) == 0 ok 13 - static_array = [-1,2,-3,4,-5,6,-7,8,-9,10] ok 14 - null2() == undef ok 15 - call_closure(-2) = -4 ok 16 - call_closure(2) = 0 # Subtest: custom type input 1..2 ok 1 ok 2 - custom_add(-2,-1) = -5 ok 17 - custom type input # Subtest: custom type output 1..2 ok 1 ok 2 - custom_add2(-2,-1) = -6 ok 18 - custom type output ok 19 - closure_pointer_is_null() = 1 ok t/type_sint64.t ............................ 1..19 ok 1 - add(-1,2) = 1 ok 2 - add() = 0 ok 3 - inc(\$i,4) = \1 ok 4 - i=1 ok 5 - inc(\-3,4) = \1 ok 6 - sum([-5..4]) = -5 ok 7 - sum([-5..4],10) = -5 ok 8 - array increment ok 9 - null() == undef ok 10 - is_null(undef) == 1 ok 11 - is_null() == 1 ok 12 - is_null(22) == 0 ok 13 - static_array = [-1,2,-3,4,-5,6,-7,8,-9,10] ok 14 - null2() == undef ok 15 - call_closure(-2) = -4 ok 16 - call_closure(2) = 0 # Subtest: custom type input 1..2 ok 1 ok 2 - custom_add(-2,-1) = -5 ok 17 - custom type input # Subtest: custom type output 1..2 ok 1 ok 2 - custom_add2(-2,-1) = -6 ok 18 - custom type output ok 19 - closure_pointer_is_null() = 1 ok t/type_sint8.t ............................. 1..19 ok 1 - add(-1,2) = 1 ok 2 - add() = 0 ok 3 - inc(\$i,4) = \1 ok 4 - i=1 ok 5 - inc(\-3,4) = \1 ok 6 - sum([-5..4]) = -5 ok 7 - sum([-5..4],10) = -5 ok 8 - array increment ok 9 - null() == undef ok 10 - is_null(undef) == 1 ok 11 - is_null() == 1 ok 12 - is_null(22) == 0 ok 13 - static_array = [-1,2,-3,4,-5,6,-7,8,-9,10] ok 14 - null2() == undef ok 15 - call_closure(-2) = -4 ok 16 - call_closure(2) = 0 # Subtest: custom type input 1..2 ok 1 ok 2 - custom_add(-2,-1) = -5 ok 17 - custom type input # Subtest: custom type output 1..2 ok 1 ok 2 - custom_add2(-2,-1) = -6 ok 18 - custom type output ok 19 - closure_pointer_is_null() = 1 ok t/type_string.t ............................ 1..17 ok 1 - string_matches_foobarbaz(foobarbaz) = true ok 2 - string_matches_foobarbaz(foobarbaz) = false ok 3 - string_return_foobarbaz() = foobarbaz ok 4 - null() = undef ok 5 - is_null(undef) = 1 ok 6 - is_null() = 1 ok 7 - is_null("foo") = 0 ok 8 - $save = hey there ok 9 - $save = undef ok 10 - fixed_input_test(foobarbaz\0) ok 11 - fixed_input_is_null(undef) ok 12 - string_fixed_text(0) = zero ok 13 - string_fixed_text(1) = one ok 14 - string_fixed_text(2) = two ok 15 - string_fixed_text(3) = three ok 16 - fixed_output_null() ok 17 - save=zero ok t/type_uint16.t ............................ 1..20 ok 1 - add(1,2) = 3 ok 2 - add() = 0 ok 3 - inc(\$i,4) = \7 ok 4 - i=3+4 ok 5 - inc(\3,4) = \7 ok 6 - sum([1..10]) = 55 ok 7 - sum2([1..10],10) = 55 ok 8 - array increment ok 9 - null() == undef ok 10 - is_null(undef) == 1 ok 11 - is_null() == 1 ok 12 - is_null(22) == 0 ok 13 - static_array = [1,4,6,8,10,12,14,16,18,20] ok 14 - null2() == undef ok 15 - call_closure(2) = 4 ok 16 - call_closure(2) = 0 # Subtest: custom type input 1..2 ok 1 ok 2 - custom_add(2,1) = 5 ok 17 - custom type input # Subtest: custom type output 1..2 ok 1 ok 2 - custom_add2(1,1) = 4 ok 18 - custom type output # Subtest: custom type post 1..2 ok 1 ok 2 - custom_add3(1,2) = 3 ok 19 - custom type post ok 20 - closure_pointer_is_null() = 1 ok t/type_uint32.t ............................ 1..20 ok 1 - add(1,2) = 3 ok 2 - add() = 0 ok 3 - inc(\$i,4) = \7 ok 4 - i=3+4 ok 5 - inc(\3,4) = \7 ok 6 - sum([1..10]) = 55 ok 7 - sum2([1..10],10) = 55 ok 8 - array increment ok 9 - null() == undef ok 10 - is_null(undef) == 1 ok 11 - is_null() == 1 ok 12 - is_null(22) == 0 ok 13 - static_array = [1,4,6,8,10,12,14,16,18,20] ok 14 - null2() == undef ok 15 - call_closure(2) = 4 ok 16 - call_closure(2) = 0 # Subtest: custom type input 1..2 ok 1 ok 2 - custom_add(2,1) = 5 ok 17 - custom type input # Subtest: custom type output 1..2 ok 1 ok 2 - custom_add2(1,1) = 4 ok 18 - custom type output # Subtest: custom type post 1..2 ok 1 ok 2 - custom_add3(1,2) = 3 ok 19 - custom type post ok 20 - closure_pointer_is_null() = 1 ok t/type_uint64.t ............................ 1..20 ok 1 - add(1,2) = 3 ok 2 - add() = 0 ok 3 - inc(\$i,4) = \7 ok 4 - i=3+4 ok 5 - inc(\3,4) = \7 ok 6 - sum([1..10]) = 55 ok 7 - sum2([1..10],10) = 55 ok 8 - array increment ok 9 - null() == undef ok 10 - is_null(undef) == 1 ok 11 - is_null() == 1 ok 12 - is_null(22) == 0 ok 13 - static_array = [1,4,6,8,10,12,14,16,18,20] ok 14 - null2() == undef ok 15 - call_closure(2) = 4 ok 16 - call_closure(2) = 0 # Subtest: custom type input 1..2 ok 1 ok 2 - custom_add(2,1) = 5 ok 17 - custom type input # Subtest: custom type output 1..2 ok 1 ok 2 - custom_add2(1,1) = 4 ok 18 - custom type output # Subtest: custom type post 1..2 ok 1 ok 2 - custom_add3(1,2) = 3 ok 19 - custom type post ok 20 - closure_pointer_is_null() = 1 ok t/type_uint8.t ............................. 1..20 ok 1 - add(1,2) = 3 ok 2 - add() = 0 ok 3 - inc(\$i,4) = \7 ok 4 - i=3+4 ok 5 - inc(\3,4) = \7 ok 6 - sum([1..10]) = 55 ok 7 - sum2([1..10],10) = 55 ok 8 - array increment ok 9 - null() == undef ok 10 - is_null(undef) == 1 ok 11 - is_null() == 1 ok 12 - is_null(22) == 0 ok 13 - static_array = [1,4,6,8,10,12,14,16,18,20] ok 14 - null2() == undef ok 15 - call_closure(2) = 4 ok 16 - call_closure(2) = 0 # Subtest: custom type input 1..2 ok 1 ok 2 - custom_add(2,1) = 5 ok 17 - custom type input # Subtest: custom type output 1..2 ok 1 ok 2 - custom_add2(1,1) = 4 ok 18 - custom type output # Subtest: custom type post 1..2 ok 1 ok 2 - custom_add3(1,2) = 3 ok 19 - custom type post ok 20 - closure_pointer_is_null() = 1 ok Test Summary Report ------------------- t/forks.t (Wstat: 5632 Tests: 0 Failed: 0) Non-zero exit status: 22 Parse errors: No plan found in TAP output Files=60, Tests=457, 33 wallclock secs ( 0.34 usr 0.16 sys + 28.85 cusr 2.55 csys = 31.90 CPU) Result: FAIL Failed 1/60 test programs. 0/457 subtests failed. PLICEASE/FFI-Platypus-0.47.tar.gz ./Build test verbose=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports PLICEASE/FFI-Platypus-0.47.tar.gz Running test for module 'FFI::Platypus::Type::StringArray' Checksum for /data/fly2400/cpanfly-5.24/var/cpan/sources/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz ok FFI-Platypus-Type-StringArray-0.01/ FFI-Platypus-Type-StringArray-0.01/lib/ FFI-Platypus-Type-StringArray-0.01/lib/FFI/ FFI-Platypus-Type-StringArray-0.01/lib/FFI/Platypus/ FFI-Platypus-Type-StringArray-0.01/lib/FFI/Platypus/Type/ FFI-Platypus-Type-StringArray-0.01/lib/FFI/Platypus/Type/StringArray.pm FFI-Platypus-Type-StringArray-0.01/xt/ FFI-Platypus-Type-StringArray-0.01/xt/release/ FFI-Platypus-Type-StringArray-0.01/xt/release/pod_spelling_system.t FFI-Platypus-Type-StringArray-0.01/xt/release/pod_spelling_common.t FFI-Platypus-Type-StringArray-0.01/xt/release/build_environment.t FFI-Platypus-Type-StringArray-0.01/xt/release/pod_coverage.t FFI-Platypus-Type-StringArray-0.01/xt/release/unused_vars.t FFI-Platypus-Type-StringArray-0.01/xt/release/release.yml FFI-Platypus-Type-StringArray-0.01/xt/release/version.t FFI-Platypus-Type-StringArray-0.01/xt/release/no_tabs.t FFI-Platypus-Type-StringArray-0.01/xt/release/changes.t FFI-Platypus-Type-StringArray-0.01/xt/release/strict.t FFI-Platypus-Type-StringArray-0.01/xt/release/fixme.t FFI-Platypus-Type-StringArray-0.01/xt/release/pod.t FFI-Platypus-Type-StringArray-0.01/xt/release/eol.t FFI-Platypus-Type-StringArray-0.01/libtest/ FFI-Platypus-Type-StringArray-0.01/libtest/sa.c FFI-Platypus-Type-StringArray-0.01/t/ FFI-Platypus-Type-StringArray-0.01/t/variable_length.t FFI-Platypus-Type-StringArray-0.01/t/fixed_length.t FFI-Platypus-Type-StringArray-0.01/t/00_diag.txt FFI-Platypus-Type-StringArray-0.01/t/00_diag.t FFI-Platypus-Type-StringArray-0.01/t/01_use.t FFI-Platypus-Type-StringArray-0.01/META.json FFI-Platypus-Type-StringArray-0.01/cpanfile FFI-Platypus-Type-StringArray-0.01/MANIFEST FFI-Platypus-Type-StringArray-0.01/Build.PL FFI-Platypus-Type-StringArray-0.01/META.yml FFI-Platypus-Type-StringArray-0.01/dist.ini FFI-Platypus-Type-StringArray-0.01/INSTALL FFI-Platypus-Type-StringArray-0.01/LICENSE FFI-Platypus-Type-StringArray-0.01/Changes FFI-Platypus-Type-StringArray-0.01/README Configuring P/PL/PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz with Build.PL >>> /data/fly2400/ap2400-300558/bin/perl-static Build.PL Checking prerequisites... requires: ! FFI::Platypus is not installed ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions of the modules indicated above before proceeding with this installation Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'FFI-Platypus-Type-StringArray' version '0.01' PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz /data/fly2400/ap2400-300558/bin/perl-static Build.PL -- OK Running Build for P/PL/PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz ---- FFI::Platypus [requires] Running test for module 'FFI::Platypus' PLICEASE/FFI-Platypus-0.47.tar.gz Has already been unwrapped into directory /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-0.47-gepb6N PLICEASE/FFI-Platypus-0.47.tar.gz Has already been prepared PLICEASE/FFI-Platypus-0.47.tar.gz Has already been made PLICEASE/FFI-Platypus-0.47.tar.gz Won't repeat unsuccessful test during this command PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz Has already been unwrapped into directory /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-Type-StringArray-0.01-zVP5ct PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz Has already been prepared Running Build for P/PL/PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz Warning: Prerequisite 'FFI::Platypus => 0.15' for 'PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz' failed when processing 'PLICEASE/FFI-Platypus-0.47.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited. >>> ./Build Building FFI-Platypus-Type-StringArray PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz ./Build -- OK Running Build test >>> ./Build test verbose=1 gcc -Ilibtest -I/data/fly2400/cpanfly-5.24/var/megalib/auto/share/dist/Module-Build-FFI/include -I/home/fly2400/ap2400-300558/lib/CORE -fPIC -c -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o libtest/sa.o libtest/sa.c gcc -shared -O2 -fstack-protector -o libtest/libtest.so libtest/sa.o # # # # ACTIVEPERL_CONFIG_DISABLE=1 # HARNESS_ACTIVE=1 # HARNESS_IS_VERBOSE=1 # HARNESS_VERSION=3.36 # LANG=en_US.UTF-8 # PERL5LIB=/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-Type-StringArray-0.01-zVP5ct/blib/lib:/data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-Type-StringArray-0.01-zVP5ct/blib/arch:inc:/data/fly2400/cpanfly-5.24/var/megalib:/data/fly2400/cpanfly-5.24/var/megalib # PERL5OPT= # PERL5_CPANPLUS_IS_RUNNING=28664 # PERL5_CPAN_IS_RUNNING=28664 # PERL5_CPAN_IS_RUNNING_IN_RECURSION=26228,28664 # PERL_DL_NONLAZY=1 # PERL_MM_USE_DEFAULT=1 # SHELL=/bin/sh # # # # PERL5LIB path # /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-Type-StringArray-0.01-zVP5ct/blib/lib # /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-Type-StringArray-0.01-zVP5ct/blib/arch # inc # /data/fly2400/cpanfly-5.24/var/megalib # /data/fly2400/cpanfly-5.24/var/megalib # # # # perl v5.24.0 # FFI::CheckLib 0.15 # FFI::Platypus - # Module::Build 0.4224 # Module::Build::FFI 0.47 # Test::More 1.302067 # # # t/00_diag.t .......... 1..1 ok 1 - okay ok t/01_use.t ........... 1..1 ok 1 - use FFI::Platypus::Type::StringArray; ok Can't locate FFI/Platypus/Declare.pm in @INC (you may need to install the FFI::Platypus::Declare module) (@INC contains: /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-Type-StringArray-0.01-zVP5ct/blib/lib /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-Type-StringArray-0.01-zVP5ct/blib/arch inc /data/fly2400/cpanfly-5.24/var/megalib /data/fly2400/cpanfly-5.24/var/megalib /home/fly2400/ap2400-300558/site/lib /home/fly2400/ap2400-300558/lib .) at t/fixed_length.t line 8. BEGIN failed--compilation aborted at t/fixed_length.t line 8. t/fixed_length.t ..... Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate FFI/Platypus/Declare.pm in @INC (you may need to install the FFI::Platypus::Declare module) (@INC contains: /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-Type-StringArray-0.01-zVP5ct/blib/lib /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-Platypus-Type-StringArray-0.01-zVP5ct/blib/arch inc /data/fly2400/cpanfly-5.24/var/megalib /data/fly2400/cpanfly-5.24/var/megalib /home/fly2400/ap2400-300558/site/lib /home/fly2400/ap2400-300558/lib .) at t/variable_length.t line 7. BEGIN failed--compilation aborted at t/variable_length.t line 7. t/variable_length.t .. Dubious, test returned 2 (wstat 512, 0x200) No subtests run Test Summary Report ------------------- t/fixed_length.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/variable_length.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output Files=4, Tests=2, 0 wallclock secs ( 0.01 usr 0.03 sys + 0.38 cusr 0.10 csys = 0.52 CPU) Result: FAIL Failed 2/4 test programs. 0/2 subtests failed. PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz one dependency not OK (FFI::Platypus); additionally test harness failed ./Build test verbose=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz PLICEASE/FFI-TinyCC-0.26.tar.gz Has already been unwrapped into directory /data/fly2400/cpanfly-5.24/var/tmp/cpan_build/FFI-TinyCC-0.26-7zZ1QK PLICEASE/FFI-TinyCC-0.26.tar.gz Has already been prepared Running Build for P/PL/PLICEASE/FFI-TinyCC-0.26.tar.gz Warning: Prerequisite 'FFI::Platypus::Type::StringArray => 0.01' for 'PLICEASE/FFI-TinyCC-0.26.tar.gz' failed when processing 'PLICEASE/FFI-Platypus-Type-StringArray-0.01.tar.gz' with 'make_test => NO one dependency not OK (FFI::Platypus); additionally test harness failed'. Continuing, but chances to succeed are limited. Warning: Prerequisite 'FFI::Platypus => 0.15' for 'PLICEASE/FFI-TinyCC-0.26.tar.gz' failed when processing 'PLICEASE/FFI-Platypus-0.47.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited. >>> ./Build unable to find libtcc.a at inc/My/DLL.pm line 82. PLICEASE/FFI-TinyCC-0.26.tar.gz ./Build -- NOT OK VmSize: 348944 kB Finished 2017-08-01T04:03:46