Raspbian Package Auto-Building

Build log for libffi-platypus-perl (1.32-1) on armhf

libffi-platypus-perl1.32-1armhf → 2020-09-27 05:15:29

sbuild (Debian sbuild) 0.71.0 (24 Aug 2016) on bm-wb-03

+==============================================================================+
| libffi-platypus-perl 1.32-1 (armhf)          Sun, 27 Sep 2020 05:06:36 +0000 |
+==============================================================================+

Package: libffi-platypus-perl
Version: 1.32-1
Source Version: 1.32-1
Distribution: bullseye-staging
Machine Architecture: armhf
Host Architecture: armhf
Build Architecture: armhf

I: NOTICE: Log filtering will replace 'var/lib/schroot/mount/bullseye-staging-armhf-sbuild-e82adc7a-9468-46ae-9840-2e63586fa6d2' with '<<CHROOT>>'

+------------------------------------------------------------------------------+
| Update chroot                                                                |
+------------------------------------------------------------------------------+

Get:1 http://172.17.0.1/private bullseye-staging InRelease [11.3 kB]
Get:2 http://172.17.0.1/private bullseye-staging/main Sources [11.6 MB]
Get:3 http://172.17.0.1/private bullseye-staging/main armhf Packages [12.7 MB]
Fetched 24.3 MB in 24s (1020 kB/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges

+------------------------------------------------------------------------------+
| Fetch source files                                                           |
+------------------------------------------------------------------------------+


Check APT
---------

Checking available source versions...

Download source files with APT
------------------------------

Reading package lists...
NOTICE: 'libffi-platypus-perl' packaging is maintained in the 'Git' version control system at:
https://salsa.debian.org/perl-team/modules/packages/libffi-platypus-perl.git
Please use:
git clone https://salsa.debian.org/perl-team/modules/packages/libffi-platypus-perl.git
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 351 kB of source archives.
Get:1 http://172.17.0.1/private bullseye-staging/main libffi-platypus-perl 1.32-1 (dsc) [2631 B]
Get:2 http://172.17.0.1/private bullseye-staging/main libffi-platypus-perl 1.32-1 (tar) [344 kB]
Get:3 http://172.17.0.1/private bullseye-staging/main libffi-platypus-perl 1.32-1 (diff) [4260 B]
Fetched 351 kB in 0s (2394 kB/s)
Download complete and in download only mode
I: NOTICE: Log filtering will replace 'build/libffi-platypus-perl-KcChaa/libffi-platypus-perl-1.32' with '<<PKGBUILDDIR>>'
I: NOTICE: Log filtering will replace 'build/libffi-platypus-perl-KcChaa' with '<<BUILDDIR>>'

+------------------------------------------------------------------------------+
| Install build-essential                                                      |
+------------------------------------------------------------------------------+


Setup apt archive
-----------------

Merged Build-Depends: build-essential, fakeroot
Filtered Build-Depends: build-essential, fakeroot
dpkg-deb: building package 'sbuild-build-depends-core-dummy' in '/<<BUILDDIR>>/resolver-zLU8JV/apt_archive/sbuild-build-depends-core-dummy.deb'.
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning:   sbuild-build-depends-core-dummy
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
gpg: keybox '/<<BUILDDIR>>/resolver-zLU8JV/gpg/pubring.kbx' created
gpg: /<<BUILDDIR>>/resolver-zLU8JV/gpg/trustdb.gpg: trustdb created
gpg: key 35506D9A48F77B2E: public key "Sbuild Signer (Sbuild Build Dependency Archive Key) <buildd-tools-devel@lists.alioth.debian.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: key 35506D9A48F77B2E: "Sbuild Signer (Sbuild Build Dependency Archive Key) <buildd-tools-devel@lists.alioth.debian.org>" not changed
gpg: key 35506D9A48F77B2E: secret key imported
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg:       secret keys read: 1
gpg:   secret keys imported: 1
gpg: using "Sbuild Signer" as default secret key for signing
Ign:1 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ Release [957 B]
Get:3 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ Sources [349 B]
Get:5 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ Packages [433 B]
Fetched 2109 B in 1s (2582 B/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges
Reading package lists...

Install core build dependencies (apt-based resolver)
----------------------------------------------------

Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
  bsdextrautils netbase sensible-utils
Use 'apt autoremove' to remove them.
The following NEW packages will be installed:
  sbuild-build-depends-core-dummy
0 upgraded, 1 newly installed, 0 to remove and 34 not upgraded.
Need to get 852 B of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ sbuild-build-depends-core-dummy 0.invalid.0 [852 B]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 852 B in 0s (22.6 kB/s)
Selecting previously unselected package sbuild-build-depends-core-dummy.
(Reading database ... 12514 files and directories currently installed.)
Preparing to unpack .../sbuild-build-depends-core-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-core-dummy (0.invalid.0) ...
Setting up sbuild-build-depends-core-dummy (0.invalid.0) ...
W: No sandbox user '_apt' on the system, can not drop privileges

+------------------------------------------------------------------------------+
| Check architectures                                                          |
+------------------------------------------------------------------------------+

Arch check ok (armhf included in any)

+------------------------------------------------------------------------------+
| Install package build dependencies                                           |
+------------------------------------------------------------------------------+


Setup apt archive
-----------------

Merged Build-Depends: debhelper-compat (= 13), libcapture-tiny-perl, libextutils-parsexs-perl (>= 3.300000), libffi-checklib-perl, libffi-dev, libscalar-list-utils-perl (>= 1:1.45), perl-xs-dev, perl (>= 5.25.2), pkg-config | libpkgconfig-perl
Filtered Build-Depends: debhelper-compat (= 13), libcapture-tiny-perl, libextutils-parsexs-perl (>= 3.300000), libffi-checklib-perl, libffi-dev, libscalar-list-utils-perl (>= 1:1.45), perl-xs-dev, perl (>= 5.25.2), pkg-config
dpkg-deb: building package 'sbuild-build-depends-libffi-platypus-perl-dummy' in '/<<BUILDDIR>>/resolver-zLU8JV/apt_archive/sbuild-build-depends-libffi-platypus-perl-dummy.deb'.
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning:   sbuild-build-depends-core-dummy sbuild-build-depends-libffi-platypus-perl-dummy
dpkg-scanpackages: info: Wrote 2 entries to output Packages file.
gpg: using "Sbuild Signer" as default secret key for signing
Ign:1 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ Release [963 B]
Get:3 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ Sources [615 B]
Get:5 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ Packages [677 B]
Fetched 2625 B in 1s (3291 B/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges
Reading package lists...

Install libffi-platypus-perl build dependencies (apt-based resolver)
--------------------------------------------------------------------

Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following package was automatically installed and is no longer required:
  netbase
Use 'apt autoremove' to remove it.
The following additional packages will be installed:
  autoconf automake autopoint autotools-dev debhelper dh-autoreconf
  dh-strip-nondeterminism dwz file gettext gettext-base groff-base
  intltool-debian libarchive-zip-perl libcapture-tiny-perl libcroco3
  libdebhelper-perl libelf1 libffi-checklib-perl libffi-dev
  libfile-stripnondeterminism-perl libglib2.0-0 libicu67 libmagic-mgc
  libmagic1 libperl-dev libpipeline1 libsigsegv2 libsub-override-perl libtool
  libuchardet0 libxml2 m4 man-db pkg-config po-debconf
Suggested packages:
  autoconf-archive gnu-standards autoconf-doc dh-make gettext-doc
  libasprintf-dev libgettextpo-dev groff libtool-doc gfortran
  | fortran95-compiler gcj-jdk m4-doc apparmor less www-browser
  libmail-box-perl
Recommended packages:
  curl | wget | lynx libarchive-cpio-perl libglib2.0-data shared-mime-info
  xdg-user-dirs libltdl-dev libmail-sendmail-perl
The following NEW packages will be installed:
  autoconf automake autopoint autotools-dev debhelper dh-autoreconf
  dh-strip-nondeterminism dwz file gettext gettext-base groff-base
  intltool-debian libarchive-zip-perl libcapture-tiny-perl libcroco3
  libdebhelper-perl libelf1 libffi-checklib-perl libffi-dev
  libfile-stripnondeterminism-perl libglib2.0-0 libicu67 libmagic-mgc
  libmagic1 libperl-dev libpipeline1 libsigsegv2 libsub-override-perl libtool
  libuchardet0 libxml2 m4 man-db pkg-config po-debconf
  sbuild-build-depends-libffi-platypus-perl-dummy
0 upgraded, 37 newly installed, 0 to remove and 34 not upgraded.
Need to get 19.5 MB of archives.
After this operation, 72.4 MB of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-zLU8JV/apt_archive ./ sbuild-build-depends-libffi-platypus-perl-dummy 0.invalid.0 [960 B]
Get:2 http://172.17.0.1/private bullseye-staging/main armhf libuchardet0 armhf 0.0.7-1 [65.0 kB]
Get:3 http://172.17.0.1/private bullseye-staging/main armhf groff-base armhf 1.22.4-5 [783 kB]
Get:4 http://172.17.0.1/private bullseye-staging/main armhf libpipeline1 armhf 1.5.3-1 [29.9 kB]
Get:5 http://172.17.0.1/private bullseye-staging/main armhf man-db armhf 2.9.3-2 [1269 kB]
Get:6 http://172.17.0.1/private bullseye-staging/main armhf libmagic-mgc armhf 1:5.38-5 [262 kB]
Get:7 http://172.17.0.1/private bullseye-staging/main armhf libmagic1 armhf 1:5.38-5 [113 kB]
Get:8 http://172.17.0.1/private bullseye-staging/main armhf file armhf 1:5.38-5 [67.0 kB]
Get:9 http://172.17.0.1/private bullseye-staging/main armhf gettext-base armhf 0.19.8.1-10 [117 kB]
Get:10 http://172.17.0.1/private bullseye-staging/main armhf libsigsegv2 armhf 2.12-2 [32.3 kB]
Get:11 http://172.17.0.1/private bullseye-staging/main armhf m4 armhf 1.4.18-4 [185 kB]
Get:12 http://172.17.0.1/private bullseye-staging/main armhf autoconf all 2.69-11.1 [341 kB]
Get:13 http://172.17.0.1/private bullseye-staging/main armhf autotools-dev all 20180224.1 [77.0 kB]
Get:14 http://172.17.0.1/private bullseye-staging/main armhf automake all 1:1.16.2-4 [801 kB]
Get:15 http://172.17.0.1/private bullseye-staging/main armhf autopoint all 0.19.8.1-10 [435 kB]
Get:16 http://172.17.0.1/private bullseye-staging/main armhf libtool all 2.4.6-14 [513 kB]
Get:17 http://172.17.0.1/private bullseye-staging/main armhf dh-autoreconf all 19 [16.9 kB]
Get:18 http://172.17.0.1/private bullseye-staging/main armhf libdebhelper-perl all 13.2.1 [188 kB]
Get:19 http://172.17.0.1/private bullseye-staging/main armhf libarchive-zip-perl all 1.68-1 [104 kB]
Get:20 http://172.17.0.1/private bullseye-staging/main armhf libsub-override-perl all 0.09-2 [10.2 kB]
Get:21 http://172.17.0.1/private bullseye-staging/main armhf libfile-stripnondeterminism-perl all 1.9.0-1 [25.5 kB]
Get:22 http://172.17.0.1/private bullseye-staging/main armhf dh-strip-nondeterminism all 1.9.0-1 [15.2 kB]
Get:23 http://172.17.0.1/private bullseye-staging/main armhf libelf1 armhf 0.181-1 [161 kB]
Get:24 http://172.17.0.1/private bullseye-staging/main armhf dwz armhf 0.13-5 [142 kB]
Get:25 http://172.17.0.1/private bullseye-staging/main armhf libglib2.0-0 armhf 2.66.0-2 [1173 kB]
Get:26 http://172.17.0.1/private bullseye-staging/main armhf libicu67 armhf 67.1-4 [8289 kB]
Get:27 http://172.17.0.1/private bullseye-staging/main armhf libxml2 armhf 2.9.10+dfsg-6 [578 kB]
Get:28 http://172.17.0.1/private bullseye-staging/main armhf libcroco3 armhf 0.6.13-1 [133 kB]
Get:29 http://172.17.0.1/private bullseye-staging/main armhf gettext armhf 0.19.8.1-10 [1219 kB]
Get:30 http://172.17.0.1/private bullseye-staging/main armhf intltool-debian all 0.35.0+20060710.5 [26.8 kB]
Get:31 http://172.17.0.1/private bullseye-staging/main armhf po-debconf all 1.0.21 [248 kB]
Get:32 http://172.17.0.1/private bullseye-staging/main armhf debhelper all 13.2.1 [1007 kB]
Get:33 http://172.17.0.1/private bullseye-staging/main armhf libcapture-tiny-perl all 0.48-1 [26.0 kB]
Get:34 http://172.17.0.1/private bullseye-staging/main armhf libffi-checklib-perl all 0.27-1 [15.9 kB]
Get:35 http://172.17.0.1/private bullseye-staging/main armhf libffi-dev armhf 3.3-4 [57.9 kB]
Get:36 http://172.17.0.1/private bullseye-staging/main armhf libperl-dev armhf 5.30.3-4 [900 kB]
Get:37 http://172.17.0.1/private bullseye-staging/main armhf pkg-config armhf 0.29.2-1 [61.5 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 19.5 MB in 2s (10.2 MB/s)
Selecting previously unselected package libuchardet0:armhf.
(Reading database ... 12514 files and directories currently installed.)
Preparing to unpack .../00-libuchardet0_0.0.7-1_armhf.deb ...
Unpacking libuchardet0:armhf (0.0.7-1) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../01-groff-base_1.22.4-5_armhf.deb ...
Unpacking groff-base (1.22.4-5) ...
Selecting previously unselected package libpipeline1:armhf.
Preparing to unpack .../02-libpipeline1_1.5.3-1_armhf.deb ...
Unpacking libpipeline1:armhf (1.5.3-1) ...
Selecting previously unselected package man-db.
Preparing to unpack .../03-man-db_2.9.3-2_armhf.deb ...
Unpacking man-db (2.9.3-2) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../04-libmagic-mgc_1%3a5.38-5_armhf.deb ...
Unpacking libmagic-mgc (1:5.38-5) ...
Selecting previously unselected package libmagic1:armhf.
Preparing to unpack .../05-libmagic1_1%3a5.38-5_armhf.deb ...
Unpacking libmagic1:armhf (1:5.38-5) ...
Selecting previously unselected package file.
Preparing to unpack .../06-file_1%3a5.38-5_armhf.deb ...
Unpacking file (1:5.38-5) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../07-gettext-base_0.19.8.1-10_armhf.deb ...
Unpacking gettext-base (0.19.8.1-10) ...
Selecting previously unselected package libsigsegv2:armhf.
Preparing to unpack .../08-libsigsegv2_2.12-2_armhf.deb ...
Unpacking libsigsegv2:armhf (2.12-2) ...
Selecting previously unselected package m4.
Preparing to unpack .../09-m4_1.4.18-4_armhf.deb ...
Unpacking m4 (1.4.18-4) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../10-autoconf_2.69-11.1_all.deb ...
Unpacking autoconf (2.69-11.1) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../11-autotools-dev_20180224.1_all.deb ...
Unpacking autotools-dev (20180224.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../12-automake_1%3a1.16.2-4_all.deb ...
Unpacking automake (1:1.16.2-4) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../13-autopoint_0.19.8.1-10_all.deb ...
Unpacking autopoint (0.19.8.1-10) ...
Selecting previously unselected package libtool.
Preparing to unpack .../14-libtool_2.4.6-14_all.deb ...
Unpacking libtool (2.4.6-14) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../15-dh-autoreconf_19_all.deb ...
Unpacking dh-autoreconf (19) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../16-libdebhelper-perl_13.2.1_all.deb ...
Unpacking libdebhelper-perl (13.2.1) ...
Selecting previously unselected package libarchive-zip-perl.
Preparing to unpack .../17-libarchive-zip-perl_1.68-1_all.deb ...
Unpacking libarchive-zip-perl (1.68-1) ...
Selecting previously unselected package libsub-override-perl.
Preparing to unpack .../18-libsub-override-perl_0.09-2_all.deb ...
Unpacking libsub-override-perl (0.09-2) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../19-libfile-stripnondeterminism-perl_1.9.0-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.9.0-1) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../20-dh-strip-nondeterminism_1.9.0-1_all.deb ...
Unpacking dh-strip-nondeterminism (1.9.0-1) ...
Selecting previously unselected package libelf1:armhf.
Preparing to unpack .../21-libelf1_0.181-1_armhf.deb ...
Unpacking libelf1:armhf (0.181-1) ...
Selecting previously unselected package dwz.
Preparing to unpack .../22-dwz_0.13-5_armhf.deb ...
Unpacking dwz (0.13-5) ...
Selecting previously unselected package libglib2.0-0:armhf.
Preparing to unpack .../23-libglib2.0-0_2.66.0-2_armhf.deb ...
Unpacking libglib2.0-0:armhf (2.66.0-2) ...
Selecting previously unselected package libicu67:armhf.
Preparing to unpack .../24-libicu67_67.1-4_armhf.deb ...
Unpacking libicu67:armhf (67.1-4) ...
Selecting previously unselected package libxml2:armhf.
Preparing to unpack .../25-libxml2_2.9.10+dfsg-6_armhf.deb ...
Unpacking libxml2:armhf (2.9.10+dfsg-6) ...
Selecting previously unselected package libcroco3:armhf.
Preparing to unpack .../26-libcroco3_0.6.13-1_armhf.deb ...
Unpacking libcroco3:armhf (0.6.13-1) ...
Selecting previously unselected package gettext.
Preparing to unpack .../27-gettext_0.19.8.1-10_armhf.deb ...
Unpacking gettext (0.19.8.1-10) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../28-intltool-debian_0.35.0+20060710.5_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.5) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../29-po-debconf_1.0.21_all.deb ...
Unpacking po-debconf (1.0.21) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../30-debhelper_13.2.1_all.deb ...
Unpacking debhelper (13.2.1) ...
Selecting previously unselected package libcapture-tiny-perl.
Preparing to unpack .../31-libcapture-tiny-perl_0.48-1_all.deb ...
Unpacking libcapture-tiny-perl (0.48-1) ...
Selecting previously unselected package libffi-checklib-perl.
Preparing to unpack .../32-libffi-checklib-perl_0.27-1_all.deb ...
Unpacking libffi-checklib-perl (0.27-1) ...
Selecting previously unselected package libffi-dev:armhf.
Preparing to unpack .../33-libffi-dev_3.3-4_armhf.deb ...
Unpacking libffi-dev:armhf (3.3-4) ...
Selecting previously unselected package libperl-dev:armhf.
Preparing to unpack .../34-libperl-dev_5.30.3-4_armhf.deb ...
Unpacking libperl-dev:armhf (5.30.3-4) ...
Selecting previously unselected package pkg-config.
Preparing to unpack .../35-pkg-config_0.29.2-1_armhf.deb ...
Unpacking pkg-config (0.29.2-1) ...
Selecting previously unselected package sbuild-build-depends-libffi-platypus-perl-dummy.
Preparing to unpack .../36-sbuild-build-depends-libffi-platypus-perl-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-libffi-platypus-perl-dummy (0.invalid.0) ...
Setting up libpipeline1:armhf (1.5.3-1) ...
Setting up libicu67:armhf (67.1-4) ...
Setting up libmagic-mgc (1:5.38-5) ...
Setting up libarchive-zip-perl (1.68-1) ...
Setting up libglib2.0-0:armhf (2.66.0-2) ...
No schema files found: doing nothing.
Setting up libdebhelper-perl (13.2.1) ...
Setting up libmagic1:armhf (1:5.38-5) ...
Setting up gettext-base (0.19.8.1-10) ...
Setting up libperl-dev:armhf (5.30.3-4) ...
Setting up file (1:5.38-5) ...
Setting up libffi-dev:armhf (3.3-4) ...
Setting up autotools-dev (20180224.1) ...
Setting up libffi-checklib-perl (0.27-1) ...
Setting up libsigsegv2:armhf (2.12-2) ...
Setting up autopoint (0.19.8.1-10) ...
Setting up pkg-config (0.29.2-1) ...
Setting up libcapture-tiny-perl (0.48-1) ...
Setting up libuchardet0:armhf (0.0.7-1) ...
Setting up libsub-override-perl (0.09-2) ...
Setting up libelf1:armhf (0.181-1) ...
Setting up libxml2:armhf (2.9.10+dfsg-6) ...
Setting up libfile-stripnondeterminism-perl (1.9.0-1) ...
Setting up libtool (2.4.6-14) ...
Setting up m4 (1.4.18-4) ...
Setting up libcroco3:armhf (0.6.13-1) ...
Setting up autoconf (2.69-11.1) ...
Setting up dh-strip-nondeterminism (1.9.0-1) ...
Setting up dwz (0.13-5) ...
Setting up groff-base (1.22.4-5) ...
Setting up automake (1:1.16.2-4) ...
update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode
Setting up gettext (0.19.8.1-10) ...
Setting up man-db (2.9.3-2) ...
Not building database; man-db/auto-update is not 'true'.
Setting up intltool-debian (0.35.0+20060710.5) ...
Setting up po-debconf (1.0.21) ...
Setting up dh-autoreconf (19) ...
Setting up debhelper (13.2.1) ...
Setting up sbuild-build-depends-libffi-platypus-perl-dummy (0.invalid.0) ...
Processing triggers for libc-bin (2.31-3+rpi1) ...
W: No sandbox user '_apt' on the system, can not drop privileges

+------------------------------------------------------------------------------+
| Build environment                                                            |
+------------------------------------------------------------------------------+

Kernel: Linux 4.9.0-0.bpo.2-armmp armhf (armv7l)
Toolchain package versions: binutils_2.35-2+rpi1 dpkg-dev_1.20.5+rpi1 g++-10_10.2.0-5+rpi1 gcc-10_10.2.0-5+rpi1 libc6-dev_2.31-3+rpi1 libstdc++-10-dev_10.2.0-5+rpi1 libstdc++6_10.2.0-5+rpi1 linux-libc-dev_5.7.10-1+rpi1
Package versions: adduser_3.118 apt_2.1.10 aptitude_0.8.13-2 aptitude-common_0.8.13-2 autoconf_2.69-11.1 automake_1:1.16.2-4 autopoint_0.19.8.1-10 autotools-dev_20180224.1 base-files_11+rpi1 base-passwd_3.5.47 bash_5.0-7 binutils_2.35-2+rpi1 binutils-arm-linux-gnueabihf_2.35-2+rpi1 binutils-common_2.35-2+rpi1 bsdextrautils_2.36-3 bsdutils_1:2.36-3 build-essential_12.8 bzip2_1.0.8-4 coreutils_8.30-3 cpp_4:10.1.0-1+rpi1 cpp-10_10.2.0-5+rpi1 dash_0.5.10.2-7 debconf_1.5.74 debhelper_13.2.1 debianutils_4.9.1 dh-autoreconf_19 dh-strip-nondeterminism_1.9.0-1 diffutils_1:3.7-3 dirmngr_2.2.20-1 dpkg_1.20.5+rpi1 dpkg-dev_1.20.5+rpi1 dwz_0.13-5 e2fsprogs_1.45.6-1 fakeroot_1.24-1 fdisk_2.36-3 file_1:5.38-5 findutils_4.7.0-1 g++_4:10.1.0-1+rpi1 g++-10_10.2.0-5+rpi1 gcc_4:10.1.0-1+rpi1 gcc-10_10.2.0-5+rpi1 gcc-10-base_10.2.0-5+rpi1 gcc-6-base_6.5.0-1+rpi3 gcc-7-base_7.5.0-6+rpi1+b1 gcc-8-base_8.4.0-4+rpi1+b1 gettext_0.19.8.1-10 gettext-base_0.19.8.1-10 gnupg_2.2.20-1 gnupg-l10n_2.2.20-1 gnupg-utils_2.2.20-1 gpg_2.2.20-1 gpg-agent_2.2.20-1 gpg-wks-client_2.2.20-1 gpg-wks-server_2.2.20-1 gpgconf_2.2.20-1 gpgsm_2.2.20-1 gpgv_2.2.20-1 grep_3.4-1 groff-base_1.22.4-5 gzip_1.10-2 hostname_3.23 init-system-helpers_1.58 intltool-debian_0.35.0+20060710.5 libacl1_2.2.53-8 libapt-pkg6.0_2.1.10 libarchive-zip-perl_1.68-1 libasan6_10.2.0-5+rpi1 libassuan0_2.5.3-7.1 libatomic1_10.2.0-5+rpi1 libattr1_1:2.4.48-5 libaudit-common_1:2.8.5-3 libaudit1_1:2.8.5-3 libbinutils_2.35-2+rpi1 libblkid1_2.36-3 libboost-iostreams1.71.0_1.71.0-6+b1 libbz2-1.0_1.0.8-4 libc-bin_2.31-3+rpi1 libc-dev-bin_2.31-3+rpi1 libc6_2.31-3+rpi1 libc6-dev_2.31-3+rpi1 libcap-ng0_0.7.9-2.2 libcapture-tiny-perl_0.48-1 libcc1-0_10.2.0-5+rpi1 libcom-err2_1.45.6-1 libcroco3_0.6.13-1 libcrypt-dev_1:4.4.17-1 libcrypt1_1:4.4.17-1 libctf-nobfd0_2.35-2+rpi1 libctf0_2.35-2+rpi1 libcwidget4_0.5.18-5 libdb5.3_5.3.28+dfsg1-0.6 libdebconfclient0_0.253 libdebhelper-perl_13.2.1 libdpkg-perl_1.20.5+rpi1 libelf1_0.181-1 libext2fs2_1.45.6-1 libfakeroot_1.24-1 libfdisk1_2.36-3 libffi-checklib-perl_0.27-1 libffi-dev_3.3-4 libffi7_3.3-4 libfile-stripnondeterminism-perl_1.9.0-1 libgcc-10-dev_10.2.0-5+rpi1 libgcc-s1_10.2.0-5+rpi1 libgcrypt20_1.8.6-2 libgdbm-compat4_1.18.1-5.1 libgdbm6_1.18.1-5.1 libglib2.0-0_2.66.0-2 libgmp10_2:6.2.0+dfsg-6 libgnutls30_3.6.14-2+b1 libgomp1_10.2.0-5+rpi1 libgpg-error0_1.38-2 libhogweed6_3.6-2 libicu67_67.1-4 libidn2-0_2.3.0-1 libisl22_0.22.1-1 libksba8_1.4.0-2 libldap-2.4-2_2.4.51+dfsg-1 libldap-common_2.4.51+dfsg-1 liblocale-gettext-perl_1.07-4 liblz4-1_1.9.2-2 liblzma5_5.2.4-1 libmagic-mgc_1:5.38-5 libmagic1_1:5.38-5 libmount1_2.36-3 libmpc3_1.2.0~rc1-1 libmpfr6_4.1.0-3 libncursesw6_6.2-1 libnettle8_3.6-2 libnpth0_1.6-2 libp11-kit0_0.23.21-2 libpam-modules_1.3.1-5 libpam-modules-bin_1.3.1-5 libpam-runtime_1.3.1-5 libpam0g_1.3.1-5 libpcre2-8-0_10.34-7 libpcre3_2:8.39-13 libperl-dev_5.30.3-4 libperl5.30_5.30.3-4 libpipeline1_1.5.3-1 libreadline8_8.0-4 libsasl2-2_2.1.27+dfsg-2 libsasl2-modules-db_2.1.27+dfsg-2 libseccomp2_2.4.3-1+rpi1 libselinux1_3.1-2 libsemanage-common_3.1-1 libsemanage1_3.1-1 libsepol1_3.1-1 libsigc++-2.0-0v5_2.10.2-1 libsigsegv2_2.12-2 libsmartcols1_2.36-3 libsqlite3-0_3.33.0-1 libss2_1.45.6-1 libstdc++-10-dev_10.2.0-5+rpi1 libstdc++6_10.2.0-5+rpi1 libsub-override-perl_0.09-2 libsystemd0_246.2-1+rpi1 libtasn1-6_4.16.0-2 libtext-charwidth-perl_0.04-10 libtext-iconv-perl_1.7-7 libtinfo6_6.2-1 libtool_2.4.6-14 libubsan1_10.2.0-5+rpi1 libuchardet0_0.0.7-1 libudev1_246.2-1+rpi1 libunistring2_0.9.10-4 libuuid1_2.36-3 libxapian30_1.4.17-1 libxml2_2.9.10+dfsg-6 libzstd1_1.4.5+dfsg-4+rpi1 linux-libc-dev_5.7.10-1+rpi1 login_1:4.8.1-1 logsave_1.45.6-1 lsb-base_11.1.0+rpi1 m4_1.4.18-4 make_4.3-4 man-db_2.9.3-2 mawk_1.3.4.20200120-2 mount_2.36-3 ncurses-base_6.2-1 ncurses-bin_6.2-1 netbase_6.1 passwd_1:4.8.1-1 patch_2.7.6-6 perl_5.30.3-4 perl-base_5.30.3-4 perl-modules-5.30_5.30.3-4 pinentry-curses_1.1.0-4 pkg-config_0.29.2-1 po-debconf_1.0.21 raspbian-archive-keyring_20120528.2 readline-common_8.0-4 sbuild-build-depends-core-dummy_0.invalid.0 sbuild-build-depends-libffi-platypus-perl-dummy_0.invalid.0 sed_4.7-1 sensible-utils_0.0.12+nmu1 sysvinit-utils_2.96-4 tar_1.30+dfsg-7 tzdata_2020a-1 util-linux_2.36-3 xz-utils_5.2.4-1 zlib1g_1:1.2.11.dfsg-2

+------------------------------------------------------------------------------+
| Build                                                                        |
+------------------------------------------------------------------------------+


Unpack source
-------------

gpgv: unknown type of key resource 'trustedkeys.kbx'
gpgv: keyblock resource '/tmp/dpkg-verify-sig.CIvWsaWl/trustedkeys.kbx': General error
gpgv: Signature made Fri Sep 25 13:02:34 2020 UTC
gpgv:                using RSA key D1E1316E93A760A8104D85FABB3A68018649AA06
gpgv: Can't check signature: No public key
dpkg-source: warning: failed to verify signature on ./libffi-platypus-perl_1.32-1.dsc
dpkg-source: info: extracting libffi-platypus-perl in /<<PKGBUILDDIR>>
dpkg-source: info: unpacking libffi-platypus-perl_1.32.orig.tar.gz
dpkg-source: info: unpacking libffi-platypus-perl_1.32-1.debian.tar.xz

Check disc space
----------------

Sufficient free space for build

User Environment
----------------

APT_CONFIG=/var/lib/sbuild/apt.conf
DEB_BUILD_OPTIONS=parallel=4
HOME=/sbuild-nonexistent
LC_ALL=POSIX
LOGNAME=buildd
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
SCHROOT_ALIAS_NAME=bullseye-staging-armhf-sbuild
SCHROOT_CHROOT_NAME=bullseye-staging-armhf-sbuild
SCHROOT_COMMAND=env
SCHROOT_GID=109
SCHROOT_GROUP=buildd
SCHROOT_SESSION_ID=bullseye-staging-armhf-sbuild-e82adc7a-9468-46ae-9840-2e63586fa6d2
SCHROOT_UID=104
SCHROOT_USER=buildd
SHELL=/bin/sh
TERM=linux
USER=buildd

dpkg-buildpackage
-----------------

dpkg-buildpackage: info: source package libffi-platypus-perl
dpkg-buildpackage: info: source version 1.32-1
dpkg-buildpackage: info: source distribution unstable
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture armhf
 debian/rules clean
dh clean
   dh_clean
 debian/rules binary-arch
dh binary-arch
   dh_update_autotools_config -a
   dh_autoreconf -a
   dh_auto_configure -a
	perl Makefile.PL INSTALLDIRS=vendor "OPTIMIZE=-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2" "LD=arm-linux-gnueabihf-gcc -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now"
using system libffi via pkg-config
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for FFI::Platypus
Writing MYMETA.yml and MYMETA.json
   debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_build -- V=1
	make -j4 V=1
make[2]: Entering directory '/<<PKGBUILDDIR>>'
Running Mkbootstrap for lib/FFI/Platypus ()
"/usr/bin/perl" "/usr/share/perl/5.30/ExtUtils/xsubpp"  -typemap '/usr/share/perl/5.30/ExtUtils/typemap'  lib/FFI/Platypus.xs > lib/FFI/Platypus.xsc
chmod 644 "lib/FFI/Platypus.bs"
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- lib/FFI/Platypus.bs blib/arch/auto/FFI/Platypus/Platypus.bs 644
cp lib/FFI/Build/Platform.pm blib/lib/FFI/Build/Platform.pm
cp lib/FFI/Platypus/Lang/ASM.pm blib/lib/FFI/Platypus/Lang/ASM.pm
cp lib/FFI/Probe/Runner/Result.pm blib/lib/FFI/Probe/Runner/Result.pm
cp lib/FFI/Build/File/C.pm blib/lib/FFI/Build/File/C.pm
cp lib/FFI/Build/File/CXX.pm blib/lib/FFI/Build/File/CXX.pm
cp lib/FFI/Platypus/Declare.pm blib/lib/FFI/Platypus/Declare.pm
cp lib/FFI/Build.pm blib/lib/FFI/Build.pm
cp lib/FFI/Platypus/API.pm blib/lib/FFI/Platypus/API.pm
cp lib/FFI/Platypus/Closure.pm blib/lib/FFI/Platypus/Closure.pm
cp lib/FFI/Platypus/Type/StringArray.pm blib/lib/FFI/Platypus/Type/StringArray.pm
cp lib/FFI/Probe/Runner/Builder.pm blib/lib/FFI/Probe/Runner/Builder.pm
cp lib/FFI/Platypus.pm blib/lib/FFI/Platypus.pm
cp lib/FFI/Platypus/TypeParser/Version1.pm blib/lib/FFI/Platypus/TypeParser/Version1.pm
cp lib/FFI/Platypus/TypeParser.pm blib/lib/FFI/Platypus/TypeParser.pm
cp lib/FFI/Platypus/Record.pm blib/lib/FFI/Platypus/Record.pm
cp lib/FFI/Platypus/Bundle.pm blib/lib/FFI/Platypus/Bundle.pm
cp lib/FFI/Platypus/Record/TieArray.pm blib/lib/FFI/Platypus/Record/TieArray.pm
cp lib/FFI/Platypus/DL.pm blib/lib/FFI/Platypus/DL.pm
cp lib/FFI/Platypus/Type/PointerSizeBuffer.pm blib/lib/FFI/Platypus/Type/PointerSizeBuffer.pm
cp lib/FFI/Build/File/Base.pm blib/lib/FFI/Build/File/Base.pm
cp lib/FFI/Platypus/Buffer.pm blib/lib/FFI/Platypus/Buffer.pm
cp lib/FFI/Platypus/Function.pm blib/lib/FFI/Platypus/Function.pm
cp lib/FFI/Platypus/Constant.pm blib/lib/FFI/Platypus/Constant.pm
cp lib/FFI/Probe/Runner.pm blib/lib/FFI/Probe/Runner.pm
cp lib/FFI/Platypus/Record/Meta.pm blib/lib/FFI/Platypus/Record/Meta.pm
cp lib/FFI/Platypus/Lang.pm blib/lib/FFI/Platypus/Lang.pm
cp lib/FFI/Platypus/Internal.pm blib/lib/FFI/Platypus/Internal.pm
cp lib/FFI/Platypus/Memory.pm blib/lib/FFI/Platypus/Memory.pm
cp lib/FFI/Platypus/TypeParser/Version0.pm blib/lib/FFI/Platypus/TypeParser/Version0.pm
cp lib/FFI/Build/File/Object.pm blib/lib/FFI/Build/File/Object.pm
cp lib/FFI/Platypus/Type.pm blib/lib/FFI/Platypus/Type.pm
cp lib/FFI/Platypus/ShareConfig.pm blib/lib/FFI/Platypus/ShareConfig.pm
cp lib/FFI/Platypus/Legacy.pm blib/lib/FFI/Platypus/Legacy.pm
cp lib/FFI/Platypus/Lang/Win32.pm blib/lib/FFI/Platypus/Lang/Win32.pm
cp lib/FFI/Platypus/Lang/C.pm blib/lib/FFI/Platypus/Lang/C.pm
cp lib/FFI/Build/MM.pm blib/lib/FFI/Build/MM.pm
cp lib/FFI/Build/File/Library.pm blib/lib/FFI/Build/File/Library.pm
cp lib/FFI/Platypus/Type/StringPointer.pm blib/lib/FFI/Platypus/Type/StringPointer.pm
cp lib/FFI/Probe.pm blib/lib/FFI/Probe.pm
cp lib/FFI/typemap blib/lib/FFI/typemap
cp lib/FFI/Temp.pm blib/lib/FFI/Temp.pm
mv lib/FFI/Platypus.xsc lib/FFI/Platypus.c
+arm-linux-gnueabihf-gcc -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c -o blib/lib/auto/share/dist/FFI-Platypus/probe/src/dlrun.o blib/lib/auto/share/dist/FFI-Platypus/probe/src/dlrun.c
+arm-linux-gnueabihf-gcc -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -fstack-protector-strong -L/usr/local/lib -o blib/lib/auto/share/dist/FFI-Platypus/probe/bin/dlrun blib/lib/auto/share/dist/FFI-Platypus/probe/src/dlrun.o -ldl
+blib/lib/auto/share/dist/FFI-Platypus/probe/bin/dlrun verify self
dlrun verify self ok
+pkg-config --cflags libffi
+pkg-config --libs libffi
[out]
-lffi
PR header."stdlib.h"=1
PR header."stdint.h"=1
PR header."sys/types.h"=1
PR header."sys/stat.h"=1
PR header."unistd.h"=1
PR header."alloca.h"=1
PR header."dlfcn.h"=1
PR header."limits.h"=1
PR header."stddef.h"=1
PR header."wchar.h"=1
PR header."signal.h"=1
PR header."inttypes.h"=1
PR header."windows.h"=0
PR header."sys/cygwin.h"=0
PR header."string.h"=1
PR header."psapi.h"=0
PR header."stdio.h"=1
PR header."stdbool.h"=1
PR header."complex.h"=1
PR type.char.align=1
PR type.char.sign=unsigned
PR type.char.size=1
PR type.signed char.align=1
PR type.signed char.sign=signed
PR type.signed char.size=1
PR type.unsigned char.align=1
PR type.unsigned char.sign=unsigned
PR type.unsigned char.size=1
PR type.short.align=2
PR type.short.sign=signed
PR type.short.size=2
PR type.signed short.align=2
PR type.signed short.sign=signed
PR type.signed short.size=2
PR type.unsigned short.align=2
PR type.unsigned short.sign=unsigned
PR type.unsigned short.size=2
PR type.int.align=4
PR type.int.sign=signed
PR type.int.size=4
PR type.signed int.align=4
PR type.signed int.sign=signed
PR type.signed int.size=4
PR type.unsigned int.align=4
PR type.unsigned int.sign=unsigned
PR type.unsigned int.size=4
PR type.long.align=4
PR type.long.sign=signed
PR type.long.size=4
PR type.signed long.align=4
PR type.signed long.sign=signed
PR type.signed long.size=4
PR type.unsigned long.align=4
PR type.unsigned long.sign=unsigned
PR type.unsigned long.size=4
PR type.uint8_t.align=1
PR type.uint8_t.sign=unsigned
PR type.uint8_t.size=1
PR type.int8_t.align=1
PR type.int8_t.sign=signed
PR type.int8_t.size=1
PR type.uint16_t.align=2
PR type.uint16_t.sign=unsigned
PR type.uint16_t.size=2
PR type.int16_t.align=2
PR type.int16_t.sign=signed
PR type.int16_t.size=2
PR type.uint32_t.align=4
PR type.uint32_t.sign=unsigned
PR type.uint32_t.size=4
PR type.int32_t.align=4
PR type.int32_t.sign=signed
PR type.int32_t.size=4
PR type.uint64_t.align=8
PR type.uint64_t.sign=unsigned
PR type.uint64_t.size=8
PR type.int64_t.align=8
PR type.int64_t.sign=signed
PR type.int64_t.size=8
PR type.size_t.align=4
PR type.size_t.sign=unsigned
PR type.size_t.size=4
PR type.ssize_t.align=4
PR type.ssize_t.sign=signed
PR type.ssize_t.size=4
PR type.float.align=4
PR type.float.size=4
PR type.double.align=8
PR type.double.size=8
PR type.long double.align=8
PR type.long double.size=8
PR type.float complex.align=4
PR type.float complex.size=8
PR type.double complex.align=8
PR type.double complex.size=16
PR type.long double complex.align=8
PR type.long double complex.size=16
PR type.bool.align=1
PR type.bool.sign=unsigned
PR type.bool.size=1
PR type._Bool.align=1
PR type._Bool.sign=unsigned
PR type._Bool.size=1
PR type.pointer.align=4
PR type.pointer.size=4
PR type.uintptr_t.align=4
PR type.uintptr_t.sign=unsigned
PR type.uintptr_t.size=4
PR type.intptr_t.align=4
PR type.intptr_t.sign=signed
PR type.intptr_t.size=4
PR type.enum.align=4
PR type.enum.sign=unsigned
PR type.enum.size=4
PR type.senum.align=4
PR type.senum.sign=signed
PR type.senum.size=4
PR type.long long.align=8
PR type.long long.sign=signed
PR type.long long.size=8
PR type.signed long long.align=8
PR type.signed long long.sign=signed
PR type.signed long long.size=8
PR type.unsigned long long.align=8
PR type.unsigned long long.sign=unsigned
PR type.unsigned long long.size=8
PR type.dev_t.align=8
PR type.dev_t.sign=unsigned
PR type.dev_t.size=8
PR type.ino_t.align=8
PR type.ino_t.sign=unsigned
PR type.ino_t.size=8
PR type.mode_t.align=4
PR type.mode_t.sign=unsigned
PR type.mode_t.size=4
PR type.nlink_t.align=4
PR type.nlink_t.sign=unsigned
PR type.nlink_t.size=4
PR type.uid_t.align=4
PR type.uid_t.sign=unsigned
PR type.uid_t.size=4
PR type.gid_t.align=4
PR type.gid_t.sign=unsigned
PR type.gid_t.size=4
PR type.off_t.align=8
PR type.off_t.sign=signed
PR type.off_t.size=8
PR type.blksize_t.align=4
PR type.blksize_t.sign=signed
PR type.blksize_t.size=4
PR type.blkcnt_t.align=8
PR type.blkcnt_t.sign=signed
PR type.blkcnt_t.size=8
PR type.time_t.align=4
PR type.time_t.sign=signed
PR type.time_t.size=4
PR type.ptrdiff_t.align=4
PR type.ptrdiff_t.sign=signed
PR type.ptrdiff_t.size=4
PR type.wchar_t.align=4
PR type.wchar_t.sign=unsigned
PR type.wchar_t.size=4
PR type.wint_t.align=4
PR type.wint_t.sign=unsigned
PR type.wint_t.size=4
PR probe.abi=1
PR probe.alloca=1
PR probe.complex=1
PR probe.longdouble=0
PR probe.recordvalue=1
PR probe.variadic=1
PR abi.sysv=1
PR abi.vfp=2
PR abi.default_abi=2
PR abi.vfp=2
"/usr/bin/perl" "/usr/share/perl/5.30/ExtUtils/xsubpp"  -typemap '/usr/share/perl/5.30/ExtUtils/typemap' lib/FFI/Platypus.xs > lib/FFI/Platypus.xsc
arm-linux-gnueabihf-gcc -c  -Iinclude -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   xs/cast.c -o xs/cast.o
arm-linux-gnueabihf-gcc -c  -Iinclude -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   xs/closure.c -o xs/closure.o
arm-linux-gnueabihf-gcc -c  -Iinclude -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   xs/complex.c -o xs/complex.o
arm-linux-gnueabihf-gcc -c  -Iinclude -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   xs/custom.c -o xs/custom.o
mv lib/FFI/Platypus.xsc lib/FFI/Platypus.c
arm-linux-gnueabihf-gcc -c  -Iinclude \
-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 \
  -DVERSION=\"1.32\" \
-DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   lib/FFI/Platypus.c -o lib/FFI/Platypus.o
arm-linux-gnueabihf-gcc -c  -Iinclude -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   xs/meta.c -o xs/meta.o
arm-linux-gnueabihf-gcc -c  -Iinclude -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   xs/names.c -o xs/names.o
arm-linux-gnueabihf-gcc -c  -Iinclude -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   xs/perl_math_int64.c -o xs/perl_math_int64.o
arm-linux-gnueabihf-gcc -c  -Iinclude -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   xs/record_opaque.c -o xs/record_opaque.o
arm-linux-gnueabihf-gcc -c  -Iinclude -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   xs/record_simple.c -o xs/record_simple.o
arm-linux-gnueabihf-gcc -c  -Iinclude -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   xs/record_string.c -o xs/record_string.o
arm-linux-gnueabihf-gcc -c  -Iinclude -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.30/CORE"   xs/windl.c -o xs/windl.o
rm -f blib/arch/auto/FFI/Platypus/Platypus.so
arm-linux-gnueabihf-gcc -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now  -shared -L/usr/local/lib -fstack-protector-strong  lib/FFI/Platypus.o xs/cast.o xs/closure.o xs/complex.o xs/custom.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  -o blib/arch/auto/FFI/Platypus/Platypus.so  \
   -lffi   \
  
chmod 755 blib/arch/auto/FFI/Platypus/Platypus.so
+pkg-config --cflags libffi
+pkg-config --libs libffi
[out]
-lffi
+arm-linux-gnueabihf-gcc -Iblib/lib/auto/share/dist/FFI-Platypus/include -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c ffi/constant.c -o ffi/_build/constant.c.o
+arm-linux-gnueabihf-gcc -Iblib/lib/auto/share/dist/FFI-Platypus/include -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c ffi/memory.c -o ffi/_build/memory.c.o
+arm-linux-gnueabihf-gcc -Iblib/lib/auto/share/dist/FFI-Platypus/include -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c ffi/record_meta.c -o ffi/_build/record_meta.c.o
+arm-linux-gnueabihf-gcc -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -shared -L/usr/local/lib -fstack-protector-strong ffi/_build/constant.c.o ffi/_build/memory.c.o ffi/_build/record_meta.c.o -lffi -o blib/lib/auto/share/dist/FFI-Platypus/lib/libplfill.so
Manifying 33 pod documents
Manifying 7 pod documents
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_auto_test -a
	make -j4 test TEST_VERBOSE=1
make[1]: Entering directory '/<<PKGBUILDDIR>>'
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- lib/FFI/Platypus.bs blib/arch/auto/FFI/Platypus/Platypus.bs 644
CC t/ffi/align.c
CC t/ffi/align_array.c
CC t/ffi/align_fixed.c
CC t/ffi/align_string.c
CC t/ffi/basic.c
CC t/ffi/closure.c
CC t/ffi/color.c
CC t/ffi/complex_double.c
CC t/ffi/complex_float.c
CC t/ffi/double.c
CC t/ffi/float.c
CC t/ffi/gh117.c
CC t/ffi/gh174.c
CC t/ffi/longdouble.c
CC t/ffi/memcmp4.c
CC t/ffi/meta.c
CC t/ffi/pointer.c
CC t/ffi/record.c
CC t/ffi/sint16.c
CC t/ffi/sint32.c
CC t/ffi/sint64.c
CC t/ffi/sint8.c
CC t/ffi/string.c
CC t/ffi/string_array.c
CC t/ffi/uint16.c
CC t/ffi/uint32.c
CC t/ffi/uint64.c
CC t/ffi/uint8.c
CC t/ffi/variadic.c
LD t/ffi/libtest.so
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t
# 
# 
# 
# HARNESS_ACTIVE=1
# HARNESS_IS_VERBOSE=1
# HARNESS_VERSION=3.42
# LC_ALL=POSIX
# PERL5LIB=/<<PKGBUILDDIR>>/blib/lib:/<<PKGBUILDDIR>>/blib/arch
# PERL_DL_NONLAZY=1
# PERL_USE_UNSAFE_INC=1
# SHELL=/bin/sh
# 
# 
# 
# PERL5LIB path
# /<<PKGBUILDDIR>>/blib/lib
# /<<PKGBUILDDIR>>/blib/arch
# 
# 
# 
# perl                5.030003 linux arm-linux-gnueabihf-thread-multi-64int
# Alien::Base         -
# Capture::Tiny       0.48
# Devel::Hide         -
# ExtUtils::CBuilder  0.280231
# ExtUtils::MakeMaker 7.34
# ExtUtils::ParseXS   3.40
# FFI::CheckLib       0.27
# IPC::Cmd            1.02
# JSON::PP            4.02
# List::Util          1.5
# Math::LongDouble    -
# PkgConfig           -
# Test::More          1.302162
# constant            1.33
# forks               -
# 
# 
# 
# mode : system
# Alien::FFI::pkgconfig->VERSION      = undef
# Alien::FFI::pkgconfig->install_type = system
# Alien::FFI::pkgconfig->cflags       = 
# Alien::FFI::pkgconfig->libs         = -lffi
# Alien::FFI::pkgconfig->version      = 3.3
# 
# 
# 
# ffi.platypus.memory.strdup_impl =libc
# ffi.platypus.memory.strndup_impl=libc
# 
# 
# 
# Types:
#   double   : double, float complex, long double
#   float    : float
#   longdouble : double complex, long double complex
#   sint16   : int16_t, short, signed short
#   sint32   : blksize_t, int, int32_t, intptr_t, long, ptrdiff_t, senum, signed int, signed long, ssize_t, time_t
#   sint64   : blkcnt_t, int64_t, long long, off_t, signed long long
#   sint8    : int8_t, signed char
#   uint16   : uint16_t, unsigned short, ushort
#   uint32   : enum, gid_t, mode_t, nlink_t, size_t, uid_t, uint, uint32_t, uintptr_t, ulong, unsigned int, unsigned long, wchar_t, wint_t
#   uint64   : dev_t, ino_t, uint64_t, unsigned long long
#   uint8    : bool, char, uchar, uint8_t, unsigned char
# 
# 
# 
# ABIs:
#   default_abi          2
#   sysv                 1
#   vfp                  2
# 
# 
# 
# Probes:
#   complex              1
#   abi                  1
#   bigendian64          0
#   recordvalue          1
#   variadic             1
#   bigendian            0
#   alloca               1
# 
# 
# 
# CPU Info:
#   model name	: ARMv7 Processor rev 10 (v7l)
# 
# 
# 
# [PLATFORM]
# osname            : linux
# cc                : arm-linux-gnueabihf-gcc
# cxx               : arm-linux-gnueabihf-g++
# for               : ---
# ld                : arm-linux-gnueabihf-gcc
# ccflags           : -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include
# ldflags           : -shared -L/usr/local/lib -fstack-protector-strong
# object suffix     : .o
# library prefix    : lib
# library suffix    : .so
# cc mm works       : -MM
# 
# 
# 
t/00_diag.t .............................. 
1..1
ok 1 - okay
ok
t/01_use.t ............................... 
ok 1 - require FFI::Build;
ok 2 - require FFI::Build::File::Base;
ok 3 - require FFI::Build::File::C;
ok 4 - require FFI::Build::File::CXX;
ok 5 - require FFI::Build::File::Library;
ok 6 - require FFI::Build::File::Object;
ok 7 - require FFI::Build::MM;
ok 8 - require FFI::Build::Platform;
ok 9 - require FFI::Platypus;
ok 10 - require FFI::Platypus::API;
ok 11 - require FFI::Platypus::Buffer;
ok 12 - require FFI::Platypus::Bundle;
ok 13 - require FFI::Platypus::Closure;
ok 14 - require FFI::Platypus::Constant;
ok 15 - require FFI::Platypus::DL;
ok 16 - require FFI::Platypus::Declare;
ok 17 - require FFI::Platypus::Function;
ok 18 - require FFI::Platypus::Internal;
ok 19 - require FFI::Platypus::Lang;
ok 20 - require FFI::Platypus::Lang::ASM;
ok 21 - require FFI::Platypus::Lang::C;
ok 22 - require FFI::Platypus::Lang::Win32;
ok 23 - require FFI::Platypus::Legacy;
ok 24 - require FFI::Platypus::Memory;
ok 25 - require FFI::Platypus::Record;
ok 26 - require FFI::Platypus::Record::Meta;
ok 27 - require FFI::Platypus::Record::TieArray;
ok 28 - require FFI::Platypus::ShareConfig;
ok 29 - require FFI::Platypus::Type;
ok 30 - require FFI::Platypus::Type::PointerSizeBuffer;
ok 31 - require FFI::Platypus::Type::StringArray;
ok 32 - require FFI::Platypus::Type::StringPointer;
ok 33 - require FFI::Platypus::TypeParser;
ok 34 - require FFI::Platypus::TypeParser::Version0;
ok 35 - require FFI::Platypus::TypeParser::Version1;
ok 36 - require FFI::Probe;
ok 37 - require FFI::Probe::Runner;
ok 38 - require FFI::Probe::Runner::Builder;
ok 39 - require FFI::Probe::Runner::Result;
ok 40 - require FFI::Temp;
ok 41 - test for FFI::Build
ok 42 - test for FFI::Build::File::Base
ok 43 - test for FFI::Build::File::C
ok 44 - test for FFI::Build::File::CXX
ok 45 - test for FFI::Build::File::Library
ok 46 - test for FFI::Build::File::Object
ok 47 - test for FFI::Build::MM
ok 48 - test for FFI::Build::Platform
ok 49 - test for FFI::Platypus
ok 50 - test for FFI::Platypus::API
ok 51 - test for FFI::Platypus::Buffer
ok 52 - test for FFI::Platypus::Bundle
ok 53 - test for FFI::Platypus::Closure
ok 54 - test for FFI::Platypus::Constant
ok 55 - test for FFI::Platypus::DL
ok 56 - test for FFI::Platypus::Declare
ok 57 - test for FFI::Platypus::Function
ok 58 - test for FFI::Platypus::Internal
ok 59 - test for FFI::Platypus::Lang
ok 60 - test for FFI::Platypus::Lang::ASM
ok 61 - test for FFI::Platypus::Lang::C
ok 62 - test for FFI::Platypus::Lang::Win32
ok 63 - test for FFI::Platypus::Legacy
ok 64 - test for FFI::Platypus::Memory
ok 65 - test for FFI::Platypus::Record
ok 66 - test for FFI::Platypus::Record::Meta
ok 67 - test for FFI::Platypus::Record::TieArray
ok 68 - test for FFI::Platypus::ShareConfig
ok 69 - test for FFI::Platypus::Type
ok 70 - test for FFI::Platypus::Type::PointerSizeBuffer
ok 71 - test for FFI::Platypus::Type::StringArray
ok 72 - test for FFI::Platypus::Type::StringPointer
ok 73 - test for FFI::Platypus::TypeParser
ok 74 - test for FFI::Platypus::TypeParser::Version0
ok 75 - test for FFI::Platypus::TypeParser::Version1
ok 76 - test for FFI::Probe
ok 77 - test for FFI::Probe::Runner
ok 78 - test for FFI::Probe::Runner::Builder
ok 79 - test for FFI::Probe::Runner::Result
ok 80 - test for FFI::Temp
1..80
ok
t/ffi_build.t ............................ 
# Subtest: basic
    ok 1 - An object of class 'FFI::Build' isa 'FFI::Build'
    ok 2 - foo is somewhere in the native name for the lib
    # lib.file.path = ./libfoo.so
    ok 3 - dir is a dir
    ok 4 - An object of class 'FFI::Build::Platform' isa 'FFI::Build::Platform'
    ok 5 - An object of class 'FFI::Build::File::C' isa 'FFI::Build::File::C'
    1..5
ok 1 - basic
# Subtest: file classes
    ok 1 - at least one
    # class = FFI::Build::File::C
    # class = FFI::Build::File::CXX
    # class = FFI::Build::File::Library
    # class = FFI::Build::File::Object
    # class = FFI::Build::File::Foo1
    # class = FFI::Build::File::Foo2
    1..1
ok 2 - file classes
# Subtest: build
    # Subtest: name
        # corpus/ffi_build/project1/foo1.c
        # corpus/ffi_build/project1/foo2.c
        ok 1 - no error
        # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c corpus/ffi_build/project1/foo1.c -o corpus/ffi_build/project1/tmpbuild.tmpbuild.31121.1601183601/foo1.c.o
        # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c corpus/ffi_build/project1/foo2.c -o corpus/ffi_build/project1/tmpbuild.tmpbuild.31121.1601183601/foo2.c.o
        # +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong corpus/ffi_build/project1/tmpbuild.tmpbuild.31121.1601183601/foo1.c.o corpus/ffi_build/project1/tmpbuild.tmpbuild.31121.1601183601/foo2.c.o -o /<<PKGBUILDDIR>>/.tmp/M4rH4UXsfs/libfoo.so
        ok 2
        ok 3
        1..3
    ok 1 - name
    # Subtest: object
        # corpus/ffi_build/project1/foo1.c
        # corpus/ffi_build/project1/foo2.c
        ok 1 - no error
        # +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong corpus/ffi_build/project1/_build/foo1.c.o corpus/ffi_build/project1/_build/foo2.c.o -o /<<PKGBUILDDIR>>/.tmp/unvpHhQgZe/libfoo.so
        ok 2
        ok 3
        1..3
    ok 2 - object
    # Subtest: array
        # corpus/ffi_build/project1/foo1.c
        # corpus/ffi_build/project1/foo2.c
        ok 1 - no error
        # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c corpus/ffi_build/project1/foo1.c -o corpus/ffi_build/project1/tmpbuild.tmpbuild.31121.1601183602/foo1.c.o
        # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c corpus/ffi_build/project1/foo2.c -o corpus/ffi_build/project1/tmpbuild.tmpbuild.31121.1601183602/foo2.c.o
        # +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong corpus/ffi_build/project1/tmpbuild.tmpbuild.31121.1601183602/foo1.c.o corpus/ffi_build/project1/tmpbuild.tmpbuild.31121.1601183602/foo2.c.o -o /<<PKGBUILDDIR>>/.tmp/AWwJDe0YiD/libfoo.so
        ok 2
        ok 3
        1..3
    ok 3 - array
    1..3
ok 3 - build
# Subtest: build c++
    # corpus/ffi_build/project-cxx/foo1.cxx
    # corpus/ffi_build/project-cxx/foo2.cpp
    ok 1 - no error
    # +arm-linux-gnueabihf-g++ -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c corpus/ffi_build/project-cxx/foo1.cxx -o corpus/ffi_build/project-cxx/tmpbuild.31121.1601183604/foo1.o
    # +arm-linux-gnueabihf-g++ -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c corpus/ffi_build/project-cxx/foo2.cpp -o corpus/ffi_build/project-cxx/tmpbuild.31121.1601183604/foo2.o
    # +arm-linux-gnueabihf-g++ -shared -L/usr/local/lib -fstack-protector-strong corpus/ffi_build/project-cxx/tmpbuild.31121.1601183604/foo1.o corpus/ffi_build/project-cxx/tmpbuild.31121.1601183604/foo2.o -o /<<PKGBUILDDIR>>/.tmp/tmpbuild.mQDWvy/libfoo.so
    ok 2 - foo1 found
    ok 3 - foo2 found
    ok 4
    ok 5
    1..5
ok 4 - build c++
# Subtest: alien
    1..0 # SKIP Test requires Acme::Alien::DontPanic 1.03
ok 5 # skip Test requires Acme::Alien::DontPanic 1.03
1..5
ok
t/ffi_build_file_base.t .................. 
# Subtest: basic
    # Subtest: basic usage
        ok 1
        # error = content is required at t/ffi_build_file_base.t line 18.
        1..1
    ok 1 - basic usage
    # Subtest: array filename
        ok 1 - An object of class 'FFI::Build::File::Foo' isa 'FFI::Build::File::Base'
        ok 2 - An object of class 'FFI::Build::File::Foo' isa 'FFI::Build::File::Foo'
        ok 3 - stringifies to path
        ok 4
        ok 5 - is_temp
        ok 6 - basename
        ok 7 - dirname
        # dirname = corpus/ffi_build_file_base
        ok 8 - No forward slashes!
        ok 9 - native name
        # native = corpus/ffi_build_file_base/basic.foo
        1..9
    ok 2 - array filename
    # Subtest: string filename
        ok 1 - An object of class 'FFI::Build::File::Foo' isa 'FFI::Build::File::Base'
        ok 2 - An object of class 'FFI::Build::File::Foo' isa 'FFI::Build::File::Foo'
        ok 3
        ok 4 - is_temp
        ok 5 - No forward slashes!
        1..5
    ok 3 - string filename
    # Subtest: string ref
        ok 1 - An object of class 'FFI::Build::File::Foo' isa 'FFI::Build::File::Base'
        ok 2 - An object of class 'FFI::Build::File::Foo' isa 'FFI::Build::File::Foo'
        ok 3 - has the correct extension
        ok 4 - is_temp
        ok 5
        # path: /<<PKGBUILDDIR>>/.tmp/ffi_build_wlDKlx.foo
        ok 6 - No forward slashes!
        ok 7 - file exists
        ok 8 - file is removed after destroy
        1..8
    ok 4 - string ref
    # Subtest: string ref keep
        ok 1
        ok 2 - file exists
        ok 3 - No forward slashes!
        ok 4 - file exists after undef
        1..4
    ok 5 - string ref keep
    1..5
ok 1 - basic
1..1
ok
t/ffi_build_file_c.t ..................... 
# Subtest: basic
    ok 1 - An object of class 'FFI::Build::File::C' isa 'FFI::Build::File::C'
    ok 2 - An object of class 'FFI::Build::File::C' isa 'FFI::Build::File::Base'
    ok 3
    ok 4
    1..4
ok 1 - basic
# Subtest: compile
    ok 1 - An object of class 'FFI::Build::File::Object' isa 'FFI::Build::File::Object'
    ok 2
    1..2
ok 2 - compile
# Subtest: headers
    ok 1 - no die
    ok 2 - dep is a file: corpus/ffi_build_file_c/foo2.c
    ok 3 - dep is a file: corpus/ffi_build_file_c/include/myfoo.h
    1..3
ok 3 - headers
1..3
ok
t/ffi_build_file_cxx.t ................... 
# Subtest: basic
    ok 1 - An object of class 'FFI::Build::File::CXX' isa 'FFI::Build::File::CXX'
    ok 2 - An object of class 'FFI::Build::File::CXX' isa 'FFI::Build::File::C'
    ok 3 - An object of class 'FFI::Build::File::CXX' isa 'FFI::Build::File::Base'
    ok 4
    ok 5
    1..5
ok 1 - basic
# Subtest: compile
    ok 1 - An object of class 'FFI::Build::File::Object' isa 'FFI::Build::File::Object'
    ok 2
    1..2
ok 2 - compile
# Subtest: headers
    ok 1 - no die
    ok 2 - dep is afile: corpus/ffi_build_file_cxx/foo2.cpp
    ok 3 - dep is afile: corpus/ffi_build_file_cxx/include/myfoo.h
    1..3
ok 3 - headers
1..3
ok
t/ffi_build_file_library.t ............... 
# Subtest: basic
    ok 1
    ok 2
    # path = corpus/basic.so
    1..2
ok 1 - basic
1..1
ok
t/ffi_build_file_object.t ................ 
# Subtest: basic
    ok 1
    ok 2
    # path = corpus/basic.o
    1..2
ok 1 - basic
1..1
ok
t/ffi_build_mm.t ......................... 
# Subtest: basic
    ok 1 - An object of class 'FFI::Build::MM' isa 'FFI::Build::MM'
    ok 2
    ok 3
    ok 4
    # Subtest: build with fbx file
        ok 1 - An object of class 'FFI::Build' isa 'FFI::Build'
        ok 2
        1..2
    ok 5 - build with fbx file
    # Subtest: build with fbx file with errors
        ok 1 - caught compile error in fbx file
        1..1
    ok 6 - build with fbx file with errors
    # Subtest: build with default
        ok 1 - An object of class 'FFI::Build' isa 'FFI::Build'
        ok 2
        1..2
    ok 7 - build with default
    ok 8
    # [postamble]
    # .PHONY: fbx_build ffi fbx_test ffi-test fbx_clean ffi-clean
    # 
    # realclean :: fbx_clean
    # 
    # fbx_clean ffi-clean:
    # 	$(FULLPERL) -MFFI::Build::MM=cmd -e fbx_clean
    # 
    # pure_all :: fbx_build
    # 
    # fbx_build ffi:
    # 	$(FULLPERL) -MFFI::Build::MM=cmd -e fbx_build
    # 
    # subdirs-test_dynamic subdirs-test_static subdirs-test :: fbx_test
    # 
    # fbx_test ffi-test:
    # 	$(FULLPERL) -MFFI::Build::MM=cmd -e fbx_test
    # 
    # 
    ok 9
    ok 10
    1..10
ok 1 - basic
# Subtest: with a build!
    # Subtest: namespace is clean
        ok 1 - fbx_build not imported yet
        ok 2 - fbx_test not imported yet
        ok 3 - fbx_clean not imported yet
        1..3
    ok 1 - namespace is clean
    # Subtest: do not save on request
        ok 1
        1..1
    ok 2 - do not save on request
    # Subtest: perl Makefile.PL
        ok 1
        1..1
    ok 3 - perl Makefile.PL
    # Subtest: import
        ok 1 - fbx_build not imported yet
        ok 2 - fbx_test not imported yet
        ok 3 - fbx_clean not imported yet
        1..3
    ok 4 - import
    # Subtest: make
        # CC ffi/x.c
        # CC ffi/y.c
        # CC ffi/z.c
        # LD blib/lib/auto/share/dist/Crock-O-Stimpy/lib/libCrock-O-Stimpy.so
        ok 1
        ok 2
        # lib=blib/lib/auto/share/dist/Crock-O-Stimpy/lib/libCrock-O-Stimpy.so
        ok 3
        1..3
    ok 5 - make
    # Subtest: make test
        # CC t/ffi/a.c
        # CC t/ffi/b.c
        # CC t/ffi/c.c
        # LD t/ffi/_build/libtest.so
        ok 1
        1..1
    ok 6 - make test
    # Subtest: make clean
        ok 1
        1..1
    ok 7 - make clean
    1..7
ok 2 - with a build!
# Subtest: alien
    1..0 # SKIP todo
ok 3 # skip todo
1..3
ok
t/ffi_build_platform.t ................... 
# Subtest: basic
    ok 1 - An object of class 'FFI::Build::Platform' isa 'FFI::Build::Platform'
    # osname            : linux
    # cc                : arm-linux-gnueabihf-gcc
    # cxx               : arm-linux-gnueabihf-g++
    # for               : ---
    # ld                : arm-linux-gnueabihf-gcc
    # ccflags           : -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include
    # ldflags           : -shared -L/usr/local/lib -fstack-protector-strong
    # object suffix     : .o
    # library prefix    : lib
    # library suffix    : .so
    # cc mm works       : -MM
    1..1
ok 1 - basic
# Subtest: cc mm works
    # CC (checkfor -MM)
    ok 1
    # cc_mm_works = -MM
    1..1
ok 2 - cc mm works
1..2
ok
t/ffi_platypus.t ......................... 
# Subtest: constructor
    # Subtest: basic
        ok 1 - An object of class 'FFI::Platypus' isa 'FFI::Platypus'
        1..1
    ok 1 - basic
    # Subtest: no arguments
        ok 1 - 'FFI::Platypus.new' isa 'FFI::Platypus'
        ok 2 - ffi.lib
        1..2
    ok 2 - no arguments
    # Subtest: with single lib
        ok 1 - 'FFI::Platypus.new' isa 'FFI::Platypus'
        ok 2 - ffi.lib
        1..2
    ok 3 - with single lib
    # Subtest: with multiple lib
        ok 1 - 'FFI::Platypus.new' isa 'FFI::Platypus'
        ok 2 - ffi.lib
        1..2
    ok 4 - with multiple lib
    1..4
ok 1 - constructor
# Subtest: abi
    ok 1 - has a default ABI
    # Subtest: default_abi
        ok 1 - string
        ok 2 - integer
        1..2
    ok 2 - default_abi
    # Subtest: vfp
        ok 1 - string
        ok 2 - integer
        1..2
    ok 3 - vfp
    # Subtest: sysv
        ok 1 - string
        ok 2 - integer
        1..2
    ok 4 - sysv
    # Subtest: bogus
        ok 1 - string
        ok 2 - integer
        1..2
    ok 5 - bogus
    1..5
ok 2 - abi
# Subtest: alignof
    # Subtest: ffi types
        ok 1 - alignof sint8 = 1
        ok 2
        ok 3 - alignof sint8 [2] = 1
        ok 4 - alignof sint8 * = 4
        ok 5 - alignof custom_sint8 = 1
        ok 6 - alignof uint8 = 1
        ok 7
        ok 8 - alignof uint8 [2] = 1
        ok 9 - alignof uint8 * = 4
        ok 10 - alignof custom_uint8 = 1
        ok 11 - alignof sint16 = 2
        ok 12
        ok 13 - alignof sint16 [2] = 2
        ok 14 - alignof sint16 * = 4
        ok 15 - alignof custom_sint16 = 2
        ok 16 - alignof uint16 = 2
        ok 17
        ok 18 - alignof uint16 [2] = 2
        ok 19 - alignof uint16 * = 4
        ok 20 - alignof custom_uint16 = 2
        ok 21 - alignof sint32 = 4
        ok 22
        ok 23 - alignof sint32 [2] = 4
        ok 24 - alignof sint32 * = 4
        ok 25 - alignof custom_sint32 = 4
        ok 26 - alignof uint32 = 4
        ok 27
        ok 28 - alignof uint32 [2] = 4
        ok 29 - alignof uint32 * = 4
        ok 30 - alignof custom_uint32 = 4
        ok 31 - alignof sint64 = 8
        ok 32
        ok 33 - alignof sint64 [2] = 8
        ok 34 - alignof sint64 * = 4
        ok 35 - alignof custom_sint64 = 8
        ok 36 - alignof uint64 = 8
        ok 37
        ok 38 - alignof uint64 [2] = 8
        ok 39 - alignof uint64 * = 4
        ok 40 - alignof custom_uint64 = 8
        ok 41 - alignof float = 4
        ok 42
        ok 43 - alignof float [2] = 4
        ok 44 - alignof float * = 4
        ok 45 - alignof custom_float = 4
        ok 46 - alignof double = 8
        ok 47
        ok 48 - alignof double [2] = 8
        ok 49 - alignof double * = 4
        ok 50 - alignof custom_double = 8
        ok 51 - alignof opaque = 4
        ok 52
        ok 53 - alignof opaque [2] = 4
        ok 54 - alignof opaque * = 4
        ok 55 - alignof custom_opaque = 4
        ok 56 - alignof string = 4
        ok 57
        1..57
    ok 1 - ffi types
    # Subtest: aliases
        ok 1 - alignof ushort = 2
        ok 2 - alignof foo = 2
        1..2
    ok 2 - aliases
    # Subtest: closure
        ok 1 - sizeof closure_t = 4
        1..1
    ok 3 - closure
    # Subtest: record
        ok 1
        # {'ffi_type' => 'pointer','ref' => 0,'size' => 22,'type' => 'record','type_code' => 2307}
        1..1
    ok 4 - record
    1..4
ok 3 - alignof
# Subtest: custom type
    # Subtest: float
        ok 1 - ffi.custom_type 1
        # {'float_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'float','size' => 4,'type' => 'custom_perl','type_code' => 12355}}
        ok 2 - ffi.custom_type 1
        # {'float_1' => {'custom_native_to_p' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'float','size' => 4,'type' => 'custom_perl','type_code' => 12355}}
        ok 3 - ffi.custom_type 1
        # {'float_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'float','size' => 4,'type' => 'custom_perl','type_code' => 12355}}
        ok 4 - ffi.custom_type 1
        # {'float_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'float','size' => 4,'type' => 'custom_perl','type_code' => 12355}}
        ok 5 - ffi.custom_type 1
        # {'float_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'float','size' => 4,'type' => 'custom_perl','type_code' => 12355}}
        ok 6 - ffi.custom_type 1
        # {'float_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'float','size' => 4,'type' => 'custom_perl','type_code' => 12355}}
        1..6
    ok 1 - float
    # Subtest: double
        ok 1 - ffi.custom_type 1
        # {'double_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'double','size' => 8,'type' => 'custom_perl','type_code' => 12356}}
        ok 2 - ffi.custom_type 1
        # {'double_1' => {'custom_native_to_p' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'double','size' => 8,'type' => 'custom_perl','type_code' => 12356}}
        ok 3 - ffi.custom_type 1
        # {'double_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'double','size' => 8,'type' => 'custom_perl','type_code' => 12356}}
        ok 4 - ffi.custom_type 1
        # {'double_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'double','size' => 8,'type' => 'custom_perl','type_code' => 12356}}
        ok 5 - ffi.custom_type 1
        # {'double_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'double','size' => 8,'type' => 'custom_perl','type_code' => 12356}}
        ok 6 - ffi.custom_type 1
        # {'double_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'float','ffi_type' => 'double','size' => 8,'type' => 'custom_perl','type_code' => 12356}}
        1..6
    ok 2 - double
    # Subtest: opaque
        ok 1 - ffi.custom_type 1
        # {'opaque_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'opaque','ffi_type' => 'pointer','size' => 4,'type' => 'custom_perl','type_code' => 12547}}
        ok 2 - ffi.custom_type 1
        # {'opaque_1' => {'custom_native_to_p' => \sub { "DUMMY" },'element_type' => 'opaque','ffi_type' => 'pointer','size' => 4,'type' => 'custom_perl','type_code' => 12547}}
        ok 3 - ffi.custom_type 1
        # {'opaque_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'opaque','ffi_type' => 'pointer','size' => 4,'type' => 'custom_perl','type_code' => 12547}}
        ok 4 - ffi.custom_type 1
        # {'opaque_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'opaque','ffi_type' => 'pointer','size' => 4,'type' => 'custom_perl','type_code' => 12547}}
        ok 5 - ffi.custom_type 1
        # {'opaque_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'opaque','ffi_type' => 'pointer','size' => 4,'type' => 'custom_perl','type_code' => 12547}}
        ok 6 - ffi.custom_type 1
        # {'opaque_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'opaque','ffi_type' => 'pointer','size' => 4,'type' => 'custom_perl','type_code' => 12547}}
        1..6
    ok 3 - opaque
    # Subtest: uint8
        ok 1 - ffi.custom_type 1
        # {'uint8_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 1,'type' => 'custom_perl','type_code' => 12321}}
        ok 2 - ffi.custom_type 1
        # {'uint8_1' => {'custom_native_to_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 1,'type' => 'custom_perl','type_code' => 12321}}
        ok 3 - ffi.custom_type 1
        # {'uint8_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 1,'type' => 'custom_perl','type_code' => 12321}}
        ok 4 - ffi.custom_type 1
        # {'uint8_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 1,'type' => 'custom_perl','type_code' => 12321}}
        ok 5 - ffi.custom_type 1
        # {'uint8_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 1,'type' => 'custom_perl','type_code' => 12321}}
        ok 6 - ffi.custom_type 1
        # {'uint8_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 1,'type' => 'custom_perl','type_code' => 12321}}
        1..6
    ok 4 - uint8
    # Subtest: sint8
        ok 1 - ffi.custom_type 1
        # {'sint8_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint8','sign' => 1,'size' => 1,'type' => 'custom_perl','type_code' => 12305}}
        ok 2 - ffi.custom_type 1
        # {'sint8_1' => {'custom_native_to_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint8','sign' => 1,'size' => 1,'type' => 'custom_perl','type_code' => 12305}}
        ok 3 - ffi.custom_type 1
        # {'sint8_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint8','sign' => 1,'size' => 1,'type' => 'custom_perl','type_code' => 12305}}
        ok 4 - ffi.custom_type 1
        # {'sint8_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint8','sign' => 1,'size' => 1,'type' => 'custom_perl','type_code' => 12305}}
        ok 5 - ffi.custom_type 1
        # {'sint8_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint8','sign' => 1,'size' => 1,'type' => 'custom_perl','type_code' => 12305}}
        ok 6 - ffi.custom_type 1
        # {'sint8_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint8','sign' => 1,'size' => 1,'type' => 'custom_perl','type_code' => 12305}}
        1..6
    ok 5 - sint8
    # Subtest: uint16
        ok 1 - ffi.custom_type 1
        # {'uint16_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint16','sign' => 0,'size' => 2,'type' => 'custom_perl','type_code' => 12322}}
        ok 2 - ffi.custom_type 1
        # {'uint16_1' => {'custom_native_to_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint16','sign' => 0,'size' => 2,'type' => 'custom_perl','type_code' => 12322}}
        ok 3 - ffi.custom_type 1
        # {'uint16_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint16','sign' => 0,'size' => 2,'type' => 'custom_perl','type_code' => 12322}}
        ok 4 - ffi.custom_type 1
        # {'uint16_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint16','sign' => 0,'size' => 2,'type' => 'custom_perl','type_code' => 12322}}
        ok 5 - ffi.custom_type 1
        # {'uint16_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint16','sign' => 0,'size' => 2,'type' => 'custom_perl','type_code' => 12322}}
        ok 6 - ffi.custom_type 1
        # {'uint16_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint16','sign' => 0,'size' => 2,'type' => 'custom_perl','type_code' => 12322}}
        1..6
    ok 6 - uint16
    # Subtest: sint16
        ok 1 - ffi.custom_type 1
        # {'sint16_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint16','sign' => 1,'size' => 2,'type' => 'custom_perl','type_code' => 12306}}
        ok 2 - ffi.custom_type 1
        # {'sint16_1' => {'custom_native_to_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint16','sign' => 1,'size' => 2,'type' => 'custom_perl','type_code' => 12306}}
        ok 3 - ffi.custom_type 1
        # {'sint16_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint16','sign' => 1,'size' => 2,'type' => 'custom_perl','type_code' => 12306}}
        ok 4 - ffi.custom_type 1
        # {'sint16_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint16','sign' => 1,'size' => 2,'type' => 'custom_perl','type_code' => 12306}}
        ok 5 - ffi.custom_type 1
        # {'sint16_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint16','sign' => 1,'size' => 2,'type' => 'custom_perl','type_code' => 12306}}
        ok 6 - ffi.custom_type 1
        # {'sint16_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint16','sign' => 1,'size' => 2,'type' => 'custom_perl','type_code' => 12306}}
        1..6
    ok 7 - sint16
    # Subtest: uint32
        ok 1 - ffi.custom_type 1
        # {'uint32_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint32','sign' => 0,'size' => 4,'type' => 'custom_perl','type_code' => 12323}}
        ok 2 - ffi.custom_type 1
        # {'uint32_1' => {'custom_native_to_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint32','sign' => 0,'size' => 4,'type' => 'custom_perl','type_code' => 12323}}
        ok 3 - ffi.custom_type 1
        # {'uint32_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint32','sign' => 0,'size' => 4,'type' => 'custom_perl','type_code' => 12323}}
        ok 4 - ffi.custom_type 1
        # {'uint32_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint32','sign' => 0,'size' => 4,'type' => 'custom_perl','type_code' => 12323}}
        ok 5 - ffi.custom_type 1
        # {'uint32_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint32','sign' => 0,'size' => 4,'type' => 'custom_perl','type_code' => 12323}}
        ok 6 - ffi.custom_type 1
        # {'uint32_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint32','sign' => 0,'size' => 4,'type' => 'custom_perl','type_code' => 12323}}
        1..6
    ok 8 - uint32
    # Subtest: sint32
        ok 1 - ffi.custom_type 1
        # {'sint32_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'custom_perl','type_code' => 12307}}
        ok 2 - ffi.custom_type 1
        # {'sint32_1' => {'custom_native_to_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'custom_perl','type_code' => 12307}}
        ok 3 - ffi.custom_type 1
        # {'sint32_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'custom_perl','type_code' => 12307}}
        ok 4 - ffi.custom_type 1
        # {'sint32_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'custom_perl','type_code' => 12307}}
        ok 5 - ffi.custom_type 1
        # {'sint32_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'custom_perl','type_code' => 12307}}
        ok 6 - ffi.custom_type 1
        # {'sint32_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'custom_perl','type_code' => 12307}}
        1..6
    ok 9 - sint32
    # Subtest: uint64
        ok 1 - ffi.custom_type 1
        # {'uint64_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint64','sign' => 0,'size' => 8,'type' => 'custom_perl','type_code' => 12324}}
        ok 2 - ffi.custom_type 1
        # {'uint64_1' => {'custom_native_to_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint64','sign' => 0,'size' => 8,'type' => 'custom_perl','type_code' => 12324}}
        ok 3 - ffi.custom_type 1
        # {'uint64_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint64','sign' => 0,'size' => 8,'type' => 'custom_perl','type_code' => 12324}}
        ok 4 - ffi.custom_type 1
        # {'uint64_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint64','sign' => 0,'size' => 8,'type' => 'custom_perl','type_code' => 12324}}
        ok 5 - ffi.custom_type 1
        # {'uint64_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint64','sign' => 0,'size' => 8,'type' => 'custom_perl','type_code' => 12324}}
        ok 6 - ffi.custom_type 1
        # {'uint64_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'uint64','sign' => 0,'size' => 8,'type' => 'custom_perl','type_code' => 12324}}
        1..6
    ok 10 - uint64
    # Subtest: sint64
        ok 1 - ffi.custom_type 1
        # {'sint64_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint64','sign' => 1,'size' => 8,'type' => 'custom_perl','type_code' => 12308}}
        ok 2 - ffi.custom_type 1
        # {'sint64_1' => {'custom_native_to_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint64','sign' => 1,'size' => 8,'type' => 'custom_perl','type_code' => 12308}}
        ok 3 - ffi.custom_type 1
        # {'sint64_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint64','sign' => 1,'size' => 8,'type' => 'custom_perl','type_code' => 12308}}
        ok 4 - ffi.custom_type 1
        # {'sint64_1' => {'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint64','sign' => 1,'size' => 8,'type' => 'custom_perl','type_code' => 12308}}
        ok 5 - ffi.custom_type 1
        # {'sint64_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint64','sign' => 1,'size' => 8,'type' => 'custom_perl','type_code' => 12308}}
        ok 6 - ffi.custom_type 1
        # {'sint64_1' => {'custom_native_to_p' => \sub { "DUMMY" },'custom_perl_to_nat' => \sub { "DUMMY" },'custom_perl_to_native_p' => \sub { "DUMMY" },'element_type' => 'int','ffi_type' => 'sint64','sign' => 1,'size' => 8,'type' => 'custom_perl','type_code' => 12308}}
        1..6
    ok 11 - sint64
    1..11
ok 4 - custom type
# Subtest: find lib
    # Subtest: find_lib
        ok 1 - found f0 = 3066255692
        1..1
    ok 1 - find_lib
    # Subtest: external
        ok 1 - ffi.find_symbol(f0) = 3066255692
        ok 2 - ffi.find_symbol(bogus) = undef
        1..2
    ok 2 - external
    # Subtest: internal
        ok 1 - ffi.find_symbol(printf) = 3068079012
        ok 2 - ffi.find_symbol(bogus) = undef
        1..2
    ok 3 - internal
    1..3
ok 5 - find lib
# Subtest: find symbol
    # Subtest: external
        ok 1 - ffi.find_symbol(f0) = 3066255692
        ok 2 - ffi.find_symbol(bogus) = undef
        1..2
    ok 1 - external
    # Subtest: internal
        ok 1 - ffi.find_symbol(printf) = 3068079012
        ok 2 - ffi.find_symbol(bogus) = undef
        1..2
    ok 2 - internal
    1..2
ok 6 - find symbol
# Subtest: lib
    # Subtest: basic
        ok 1 - exists t/ffi/libtest.so
        ok 2 - ffi.lib (set)
        ok 3 - ffi.lib (get)
        1..3
    ok 1 - basic
    # Subtest: undef
        # Subtest: baseline
            ok 1
            1..1
        ok 1 - baseline
        # Subtest: lib => [undef]
            ok 1
            1..1
        ok 2 - lib => [undef]
        # Subtest: lib => undef
            ok 1
            1..1
        ok 3 - lib => undef
        1..3
    ok 2 - undef
    # Subtest: coderef
        ok 1 - exists t/ffi/libtest.so
        ok 2 - ffi.lib (set)
        ok 3 - ffi.lib (get)
        1..3
    ok 3 - coderef
    1..3
ok 7 - lib
# Subtest: sizeof
    # Subtest: integers
        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
        1..8
    ok 1 - integers
    # Subtest: class methods
        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
        1..8
    ok 2 - class methods
    # Subtest: floats
        ok 1 - sizeof float = 4
        ok 2 - sizeof double = 8
        1..2
    ok 3 - floats
    # Subtest: pointers
        ok 1 - sizeof opaque = 4
        ok 2 - sizeof uint8* = 4
        ok 3 - sizeof uint16* = 4
        ok 4 - sizeof uint32* = 4
        ok 5 - sizeof uint64* = 4
        ok 6 - sizeof sint8* = 4
        ok 7 - sizeof sint16* = 4
        ok 8 - sizeof sint32* = 4
        ok 9 - sizeof sint64* = 4
        ok 10 - sizeof float* = 4
        ok 11 - sizeof double* = 4
        ok 12 - sizeof opaque* = 4
        ok 13 - sizeof string = 4
        ok 14 - sizeof (int)->int = 4
        1..14
    ok 4 - pointers
    # Subtest: arrays
        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] = 4
        ok 102 - sizeof opaque [32] = 8
        ok 103 - sizeof opaque [32] = 12
        ok 104 - sizeof opaque [32] = 16
        ok 105 - sizeof opaque [32] = 20
        ok 106 - sizeof opaque [32] = 24
        ok 107 - sizeof opaque [32] = 28
        ok 108 - sizeof opaque [32] = 32
        ok 109 - sizeof opaque [32] = 36
        ok 110 - sizeof opaque [32] = 40
        1..110
    ok 5 - 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 = 4
        1..11
    ok 6 - custom_type
    1..6
ok 8 - sizeof
# Subtest: type
    # Subtest: simple type
        ok 1 - ffi.type(sint8)
        1..1
    ok 1 - simple type
    # Subtest: aliased type
        ok 1 - ffi.type(sint8 => my_integer_8)
        ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 3 - ffi.types returns my_integer_8
        1..3
    ok 2 - aliased type
    # Subtest: ffi basic types
        # Subtest: sint8
            ok 1 - ffi.type(sint8)
            # {'element_size' => 1,'element_type' => 'int','ffi_type' => 'sint8','sign' => 1,'size' => 1,'type' => 'scalar','type_code' => 17}
            # 0
            ok 2 - size = 1
            1..2
        ok 1 - sint8
        # Subtest: uint8
            ok 1 - ffi.type(uint8)
            # {'element_size' => 1,'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 1,'type' => 'scalar','type_code' => 33}
            # 0
            ok 2 - size = 1
            1..2
        ok 2 - uint8
        # Subtest: sint16
            ok 1 - ffi.type(sint16)
            # {'element_size' => 2,'element_type' => 'int','ffi_type' => 'sint16','sign' => 1,'size' => 2,'type' => 'scalar','type_code' => 18}
            # 0
            ok 2 - size = 2
            1..2
        ok 3 - sint16
        # Subtest: uint16
            ok 1 - ffi.type(uint16)
            # {'element_size' => 2,'element_type' => 'int','ffi_type' => 'uint16','sign' => 0,'size' => 2,'type' => 'scalar','type_code' => 34}
            # 0
            ok 2 - size = 2
            1..2
        ok 4 - uint16
        # Subtest: sint32
            ok 1 - ffi.type(sint32)
            # {'element_size' => 4,'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'scalar','type_code' => 19}
            # 0
            ok 2 - size = 4
            1..2
        ok 5 - sint32
        # Subtest: uint32
            ok 1 - ffi.type(uint32)
            # {'element_size' => 4,'element_type' => 'int','ffi_type' => 'uint32','sign' => 0,'size' => 4,'type' => 'scalar','type_code' => 35}
            # 0
            ok 2 - size = 4
            1..2
        ok 6 - uint32
        # Subtest: sint64
            ok 1 - ffi.type(sint64)
            # {'element_size' => 8,'element_type' => 'int','ffi_type' => 'sint64','sign' => 1,'size' => 8,'type' => 'scalar','type_code' => 20}
            # 0
            ok 2 - size = 8
            1..2
        ok 7 - sint64
        # Subtest: uint64
            ok 1 - ffi.type(uint64)
            # {'element_size' => 8,'element_type' => 'int','ffi_type' => 'uint64','sign' => 0,'size' => 8,'type' => 'scalar','type_code' => 36}
            # 0
            ok 2 - size = 8
            1..2
        ok 8 - uint64
        # Subtest: float
            ok 1 - ffi.type(float)
            # {'element_size' => 4,'element_type' => 'float','ffi_type' => 'float','size' => 4,'type' => 'scalar','type_code' => 67}
            # 0
            ok 2 - size = 4
            1..2
        ok 9 - float
        # Subtest: double
            ok 1 - ffi.type(double)
            # {'element_size' => 8,'element_type' => 'float','ffi_type' => 'double','size' => 8,'type' => 'scalar','type_code' => 68}
            # 0
            ok 2 - size = 8
            1..2
        ok 10 - double
        # Subtest: opaque
            ok 1 - ffi.type(opaque)
            # {'element_size' => 4,'element_type' => 'opaque','ffi_type' => 'pointer','size' => 4,'type' => 'scalar','type_code' => 259}
            # 0
            ok 2 - size = 4
            1..2
        ok 11 - opaque
        # Subtest: string
            ok 1 - ffi.type(string)
            # {'access' => 'ro','element_size' => 4,'ffi_type' => 'pointer','size' => 4,'type' => 'string','type_code' => 771}
            # 0
            ok 2 - size = 4
            1..2
        ok 12 - string
        # Subtest: complex_float
            ok 1 - ffi.type(complex_float)
            # {'element_size' => 8,'element_type' => 'float','ffi_type' => 'complex_float','size' => 8,'type' => 'scalar','type_code' => 132}
            # 0
            ok 2 - size = 8
            1..2
        ok 13 - complex_float
        # Subtest: complex_double
            ok 1 - ffi.type(complex_double)
            # {'element_size' => 16,'element_type' => 'float','ffi_type' => 'complex_double','size' => 16,'type' => 'scalar','type_code' => 133}
            # 0
            ok 2 - size = 16
            1..2
        ok 14 - complex_double
        1..14
    ok 3 - ffi basic types
    # Subtest: ffi pointer types
        # Subtest: sint8 *
            ok 1 - ffi.type(sint8 *)
            # {'element_size' => 1,'element_type' => 'int','ffi_type' => 'sint8','sign' => 1,'size' => 4,'type' => 'pointer','type_code' => 4113}
            # 0
            ok 2 - size = 4
            1..2
        ok 1 - sint8 *
        # Subtest: uint8 *
            ok 1 - ffi.type(uint8 *)
            # {'element_size' => 1,'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 4,'type' => 'pointer','type_code' => 4129}
            # 0
            ok 2 - size = 4
            1..2
        ok 2 - uint8 *
        # Subtest: sint16 *
            ok 1 - ffi.type(sint16 *)
            # {'element_size' => 2,'element_type' => 'int','ffi_type' => 'sint16','sign' => 1,'size' => 4,'type' => 'pointer','type_code' => 4114}
            # 0
            ok 2 - size = 4
            1..2
        ok 3 - sint16 *
        # Subtest: uint16 *
            ok 1 - ffi.type(uint16 *)
            # {'element_size' => 2,'element_type' => 'int','ffi_type' => 'uint16','sign' => 0,'size' => 4,'type' => 'pointer','type_code' => 4130}
            # 0
            ok 2 - size = 4
            1..2
        ok 4 - uint16 *
        # Subtest: sint32 *
            ok 1 - ffi.type(sint32 *)
            # {'element_size' => 4,'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'pointer','type_code' => 4115}
            # 0
            ok 2 - size = 4
            1..2
        ok 5 - sint32 *
        # Subtest: uint32 *
            ok 1 - ffi.type(uint32 *)
            # {'element_size' => 4,'element_type' => 'int','ffi_type' => 'uint32','sign' => 0,'size' => 4,'type' => 'pointer','type_code' => 4131}
            # 0
            ok 2 - size = 4
            1..2
        ok 6 - uint32 *
        # Subtest: sint64 *
            ok 1 - ffi.type(sint64 *)
            # {'element_size' => 8,'element_type' => 'int','ffi_type' => 'sint64','sign' => 1,'size' => 4,'type' => 'pointer','type_code' => 4116}
            # 0
            ok 2 - size = 4
            1..2
        ok 7 - sint64 *
        # Subtest: uint64 *
            ok 1 - ffi.type(uint64 *)
            # {'element_size' => 8,'element_type' => 'int','ffi_type' => 'uint64','sign' => 0,'size' => 4,'type' => 'pointer','type_code' => 4132}
            # 0
            ok 2 - size = 4
            1..2
        ok 8 - uint64 *
        # Subtest: float *
            ok 1 - ffi.type(float *)
            # {'element_size' => 4,'element_type' => 'float','ffi_type' => 'float','size' => 4,'type' => 'pointer','type_code' => 4163}
            # 0
            ok 2 - size = 4
            1..2
        ok 9 - float *
        # Subtest: double *
            ok 1 - ffi.type(double *)
            # {'element_size' => 8,'element_type' => 'float','ffi_type' => 'double','size' => 4,'type' => 'pointer','type_code' => 4164}
            # 0
            ok 2 - size = 4
            1..2
        ok 10 - double *
        # Subtest: opaque *
            ok 1 - ffi.type(opaque *)
            # {'element_size' => 4,'element_type' => 'opaque','ffi_type' => 'pointer','size' => 4,'type' => 'pointer','type_code' => 4355}
            # 0
            ok 2 - size = 4
            1..2
        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: complex_float *
            ok 1 - ffi.type(complex_float *)
            # {'element_size' => 8,'element_type' => 'float','ffi_type' => 'complex_float','size' => 4,'type' => 'pointer','type_code' => 4228}
            # 0
            ok 2 - size = 4
            1..2
        ok 13 - complex_float *
        # Subtest: complex_double *
            ok 1 - ffi.type(complex_double *)
            # {'element_size' => 16,'element_type' => 'float','ffi_type' => 'complex_double','size' => 4,'type' => 'pointer','type_code' => 4229}
            # 0
            ok 2 - size = 4
            1..2
        ok 14 - complex_double *
        1..14
    ok 4 - ffi pointer types
    # Subtest: ffi array types
        # Subtest: sint8 [5]
            ok 1 - ffi.type(sint8 [5])
            # {'element_count' => 5,'element_size' => 1,'element_type' => 'int','ffi_type' => 'sint8','sign' => 1,'size' => 5,'type' => 'array','type_code' => 8209}
            # 0
            ok 2 - size = 5
            ok 3 - size = 5
            1..3
        ok 1 - sint8 [5]
        # Subtest: uint8 [7]
            ok 1 - ffi.type(uint8 [7])
            # {'element_count' => 7,'element_size' => 1,'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 7,'type' => 'array','type_code' => 8225}
            # 0
            ok 2 - size = 7
            ok 3 - size = 7
            1..3
        ok 2 - uint8 [7]
        # Subtest: sint16 [9]
            ok 1 - ffi.type(sint16 [9])
            # {'element_count' => 9,'element_size' => 2,'element_type' => 'int','ffi_type' => 'sint16','sign' => 1,'size' => 18,'type' => 'array','type_code' => 8210}
            # 0
            ok 2 - size = 18
            ok 3 - size = 9
            1..3
        ok 3 - sint16 [9]
        # Subtest: uint16 [11]
            ok 1 - ffi.type(uint16 [11])
            # {'element_count' => 11,'element_size' => 2,'element_type' => 'int','ffi_type' => 'uint16','sign' => 0,'size' => 22,'type' => 'array','type_code' => 8226}
            # 0
            ok 2 - size = 22
            ok 3 - size = 11
            1..3
        ok 4 - uint16 [11]
        # Subtest: sint32 [13]
            ok 1 - ffi.type(sint32 [13])
            # {'element_count' => 13,'element_size' => 4,'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 52,'type' => 'array','type_code' => 8211}
            # 0
            ok 2 - size = 52
            ok 3 - size = 13
            1..3
        ok 5 - sint32 [13]
        # Subtest: uint32 [15]
            ok 1 - ffi.type(uint32 [15])
            # {'element_count' => 15,'element_size' => 4,'element_type' => 'int','ffi_type' => 'uint32','sign' => 0,'size' => 60,'type' => 'array','type_code' => 8227}
            # 0
            ok 2 - size = 60
            ok 3 - size = 15
            1..3
        ok 6 - uint32 [15]
        # Subtest: sint64 [17]
            ok 1 - ffi.type(sint64 [17])
            # {'element_count' => 17,'element_size' => 8,'element_type' => 'int','ffi_type' => 'sint64','sign' => 1,'size' => 136,'type' => 'array','type_code' => 8212}
            # 0
            ok 2 - size = 136
            ok 3 - size = 17
            1..3
        ok 7 - sint64 [17]
        # Subtest: uint64 [19]
            ok 1 - ffi.type(uint64 [19])
            # {'element_count' => 19,'element_size' => 8,'element_type' => 'int','ffi_type' => 'uint64','sign' => 0,'size' => 152,'type' => 'array','type_code' => 8228}
            # 0
            ok 2 - size = 152
            ok 3 - size = 19
            1..3
        ok 8 - uint64 [19]
        # Subtest: float [21]
            ok 1 - ffi.type(float [21])
            # {'element_count' => 21,'element_size' => 4,'element_type' => 'float','ffi_type' => 'float','size' => 84,'type' => 'array','type_code' => 8259}
            # 0
            ok 2 - size = 84
            ok 3 - size = 21
            1..3
        ok 9 - float [21]
        # Subtest: double [23]
            ok 1 - ffi.type(double [23])
            # {'element_count' => 23,'element_size' => 8,'element_type' => 'float','ffi_type' => 'double','size' => 184,'type' => 'array','type_code' => 8260}
            # 0
            ok 2 - size = 184
            ok 3 - size = 23
            1..3
        ok 10 - double [23]
        # Subtest: opaque [25]
            ok 1 - ffi.type(opaque [25])
            # {'element_count' => 25,'element_size' => 4,'element_type' => 'opaque','ffi_type' => 'pointer','size' => 100,'type' => 'array','type_code' => 8451}
            # 0
            ok 2 - size = 100
            ok 3 - size = 25
            1..3
        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: complex_float [29]
            ok 1 - ffi.type(complex_float [29])
            # {'element_count' => 29,'element_size' => 8,'element_type' => 'float','ffi_type' => 'complex_float','size' => 232,'type' => 'array','type_code' => 8324}
            # 0
            ok 2 - size = 232
            ok 3 - size = 29
            1..3
        ok 13 - complex_float [29]
        # Subtest: complex_double [31]
            ok 1 - ffi.type(complex_double [31])
            # {'element_count' => 31,'element_size' => 16,'element_type' => 'float','ffi_type' => 'complex_double','size' => 496,'type' => 'array','type_code' => 8325}
            # 0
            ok 2 - size = 496
            ok 3 - size = 31
            1..3
        ok 14 - complex_double [31]
        1..14
    ok 5 - ffi array types
    # Subtest: closure types
        ok 1 - (int)->int is a legal closure type
        # {'element_size' => 4,'ffi_type' => 'pointer','signature' => [[{'element_size' => 4,'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'scalar','type_code' => 19}],{'element_size' => 4,'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'scalar','type_code' => 19}],'size' => 4,'type' => 'closure','type_code' => 1283}
        # 0
        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' => 4,'ffi_type' => 'pointer','signature' => [[{'element_size' => 4,'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'scalar','type_code' => 19},{'element_size' => 4,'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'scalar','type_code' => 19},{'element_size' => 4,'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'scalar','type_code' => 19},{'element_size' => 1,'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 1,'type' => 'scalar','type_code' => 33},{'access' => 'ro','element_size' => 4,'ffi_type' => 'pointer','size' => 4,'type' => 'string','type_code' => 771},{'element_size' => 4,'element_type' => 'opaque','ffi_type' => 'pointer','size' => 4,'type' => 'scalar','type_code' => 259}],{'element_size' => 0,'element_type' => 'void','ffi_type' => 'void','size' => 0,'type' => 'scalar','type_code' => 8}],'size' => 4,'type' => 'closure','type_code' => 1283}
        # 0
        1..6
    ok 6 - closure types
    # Subtest: record
        # {'ffi_type' => 'pointer','ref' => 0,'size' => 1,'type' => 'record','type_code' => 2307}
        # 0
        # {'ffi_type' => 'pointer','ref' => 0,'size' => 32,'type' => 'record','type_code' => 2307}
        # 0
        ok 1 - sizeof my_record_1 = 1
        ok 2 - sizeof my_record_32 = 32
        # {'class' => 'My::Record22','ffi_type' => 'pointer','ref' => 1,'size' => 22,'type' => 'record','type_code' => 2307}
        # 0
        # {'class' => 'My::Record44','ffi_type' => 'pointer','ref' => 1,'size' => 44,'type' => 'record','type_code' => 2307}
        # 0
        ok 3 - sizeof my_record_22 = 22
        ok 4 - sizeof my_record_44 = 44
        1..4
    ok 7 - record
    # Subtest: string
        # Subtest: string
            ok 1 - sizeof string = 4
            ok 2 - access = ro
            # {'access' => 'ro','element_size' => 4,'ffi_type' => 'pointer','size' => 4,'type' => 'string','type_code' => 771}
            # 0
            1..2
        ok 1 - string
        # Subtest: string_rw
            ok 1 - sizeof string_rw = 4
            ok 2 - access = rw
            # {'access' => 'rw','element_size' => 4,'ffi_type' => 'pointer','size' => 4,'type' => 'string','type_code' => 771}
            # 0
            1..2
        ok 2 - string_rw
        # Subtest: string_ro
            ok 1 - sizeof string_ro = 4
            ok 2 - access = ro
            # {'access' => 'ro','element_size' => 4,'ffi_type' => 'pointer','size' => 4,'type' => 'string','type_code' => 771}
            # 0
            1..2
        ok 3 - string_ro
        # Subtest: string rw
            ok 1 - sizeof string rw = 4
            ok 2 - access = rw
            # {'access' => 'rw','element_size' => 4,'ffi_type' => 'pointer','size' => 4,'type' => 'string','type_code' => 771}
            # 0
            1..2
        ok 4 - string rw
        # Subtest: string ro
            ok 1 - sizeof string ro = 4
            ok 2 - access = ro
            # {'access' => 'ro','element_size' => 4,'ffi_type' => 'pointer','size' => 4,'type' => 'string','type_code' => 771}
            # 0
            1..2
        ok 5 - string ro
        # Subtest: string (10)
            ok 1 - is actually a record type
            ok 2 - sizeof string (10) = 10
            # {'ffi_type' => 'pointer','ref' => 0,'size' => 10,'type' => 'record','type_code' => 2307}
            # 0
            1..2
        ok 6 - string (10)
        # Subtest: string(10)
            ok 1 - is actually a record type
            ok 2 - sizeof string(10) = 10
            # {'ffi_type' => 'pointer','ref' => 0,'size' => 10,'type' => 'record','type_code' => 2307}
            # 0
            1..2
        ok 7 - string(10)
        1..7
    ok 8 - string
    # Subtest: private
        # Subtest: void
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(void)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = void
            1..3
        ok 1 - void
        # Subtest: uint8
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(uint8)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = uint8
            1..3
        ok 2 - uint8
        # Subtest: sint8
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(sint8)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = sint8
            1..3
        ok 3 - sint8
        # Subtest: uint16
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(uint16)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = uint16
            1..3
        ok 4 - uint16
        # Subtest: sint16
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(sint16)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = sint16
            1..3
        ok 5 - sint16
        # Subtest: uint32
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(uint32)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = uint32
            1..3
        ok 6 - uint32
        # Subtest: sint32
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(sint32)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = sint32
            1..3
        ok 7 - sint32
        # Subtest: uint64
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(uint64)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = uint64
            1..3
        ok 8 - uint64
        # Subtest: sint64
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(sint64)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = sint64
            1..3
        ok 9 - sint64
        # Subtest: float
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(float)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = float
            1..3
        ok 10 - float
        # Subtest: double
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(double)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = double
            1..3
        ok 11 - double
        # Subtest: longdouble
            1..0 # SKIP test requires longdouble support
        ok 12 # skip test requires longdouble support
        # Subtest: opaque
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(opaque)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = pointer
            1..3
        ok 13 - opaque
        # Subtest: pointer
            1..0 # SKIP test requires longdouble support
        ok 14 # skip test requires longdouble support
        # Subtest: string
            ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(string)
            ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
            ok 3 - type.meta.ffi_type = pointer
            1..3
        ok 15 - string
        1..15
    ok 9 - private
    1..9
ok 9 - type
# Subtest: class or instance method
    ok 1 - class and instance methods are identical
    # type: blkcnt_t
    # type: blksize_t
    # type: bool
    # type: char
    # type: complex_double
    # type: complex_float
    # type: dev_t
    # type: double
    # type: enum
    # type: float
    # type: float complex
    # type: gid_t
    # type: ino_t
    # type: int
    # type: int16_t
    # type: int32_t
    # type: int64_t
    # type: int8_t
    # type: intptr_t
    # type: long
    # type: long double
    # type: long long
    # type: mode_t
    # type: nlink_t
    # type: off_t
    # type: opaque
    # type: pointer
    # type: ptrdiff_t
    # type: senum
    # 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: ssize_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: uintptr_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
    # type: wint_t
    1..1
ok 10 - class or instance method
# Subtest: cast
    # Subtest: cast from string to pointer
        ok 1 - dynamic
        ok 2 - static
        1..2
    ok 1 - cast from string to pointer
    # Subtest: cast from pointer to string
        ok 1 - dynamic
        ok 2 - static
        1..2
    ok 2 - cast from pointer to string
    # Subtest: cast closure to opaque
        ok 1 - dynamic
        ok 2 - dynamic
        ok 3 - static
        ok 4 - static
        1..4
    ok 3 - cast closure to opaque
    # Subtest: attach cast with wrapper
        ok 1
        ok 2
        1..2
    ok 4 - attach cast with wrapper
    1..4
ok 11 - cast
# Subtest: ignore_not_found
    # Subtest: ignore_not_found=undef
        ok 1 - no exception
        ok 2 - returned a function
        # f1 isa FFI::Platypus::Function::Function
        ok 3 - function exception
        # exception=unable to find bogus at t/ffi_platypus.t line 634.
        ok 4 - attach exception
        # exception=unable to find bogus at t/ffi_platypus.t line 638.
        1..4
    ok 1 - ignore_not_found=undef
    # Subtest: ignore_not_found=0
        ok 1 - no exception
        ok 2 - returned a function
        # f1 isa FFI::Platypus::Function::Function
        ok 3 - function exception
        # exception=unable to find bogus at t/ffi_platypus.t line 653.
        ok 4 - attach exception
        # exception=unable to find bogus at t/ffi_platypus.t line 657.
        1..4
    ok 2 - ignore_not_found=0
    # Subtest: ignore_not_found=0 (constructor)
        ok 1 - no exception
        ok 2 - returned a function
        # f1 isa FFI::Platypus::Function::Function
        ok 3 - function exception
        # exception=unable to find bogus at t/ffi_platypus.t line 670.
        ok 4 - attach exception
        # exception=unable to find bogus at t/ffi_platypus.t line 674.
        1..4
    ok 3 - ignore_not_found=0 (constructor)
    # Subtest: ignore_not_found=1
        ok 1 - no exception
        ok 2 - returned a function
        # f1 isa FFI::Platypus::Function::Function
        ok 3 - function no exception
        ok 4 - f2 is undefined
        ok 5 - attach no exception
        1..5
    ok 4 - ignore_not_found=1
    # Subtest: ignore_not_found=1 (constructor)
        ok 1 - no exception
        ok 2 - returned a function
        # f1 isa FFI::Platypus::Function::Function
        ok 3 - function no exception
        ok 4 - f2 is undefined
        ok 5 - attach no exception
        1..5
    ok 5 - ignore_not_found=1 (constructor)
    # Subtest: ignore_not_found bool context
        ok 1 - f1 exists and resolved to boolean true
        ok 2 - f2 does not exist and resolved to boolean false
        1..2
    ok 6 - ignore_not_found bool context
    1..6
ok 12 - ignore_not_found
# Subtest: attach basic
    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
    1..5
ok 13 - attach basic
# Subtest: attach void
    ok 1 - $i_ptr = 43 after f2(\$i_ptr)
    ok 2 - $i_ptr = 44 after f2_implicit(\$i_ptr)
    1..2
ok 14 - attach void
# Subtest: customer mangler
    ok 1
    1..1
ok 15 - customer mangler
# Subtest: ->package is only allowed for api = 0
    # Subtest: api = 0
        ok 1
        1..1
    ok 1 - api = 0
    # Subtest: api = 1
        ok 1
        1..1
    ok 2 - api = 1
    1..2
ok 16 - ->package is only allowed for api = 0
# Subtest: warning defaults
    # Subtest: api = 0
        ok 1
        ok 2
        1..2
    ok 1 - api = 0
    # Subtest: api = 1
        # [warning]
        # warning: error loading corpus/bogus.so: corpus/bogus.so: cannot open shared object file: No such file or directory at /<<PKGBUILDDIR>>/blib/lib/FFI/Platypus.pm line 494.
        ok 1
        ok 2
        1..2
    ok 2 - api = 1
    1..2
ok 17 - warning defaults
# Subtest: language plugin api version
    # Subtest: api = 0
        ok 1
        1..1
    ok 1 - api = 0
    # Subtest: api = 1
        ok 1
        1..1
    ok 2 - api = 1
    1..2
ok 18 - language plugin api version
# Subtest: language load_custom_types hook
    ok 1
    ok 2 - An object of class 'FFI::Platypus' isa 'FFI::Platypus'
    1..2
ok 19 - language load_custom_types hook
# Subtest: api attribute
    ok 1 - default is zero
    ok 2 - explicit zero
    ok 3 - explicit one
    1..3
ok 20 - api attribute
# Subtest: kindof
    ok 1 - void
    ok 2 - scalar
    ok 3 - pointer
    ok 4 - array (fixed)
    ok 5 - array (var)
    ok 6 - string
    1..6
ok 21 - kindof
# Subtest: countof
    ok 1 - void
    ok 2 - scalar
    ok 3 - pointer
    ok 4 - array (fixed)
    ok 5 - array (var)
    ok 6 - string
    1..6
ok 22 - countof
# Subtest: def
    # Subtest: needs to be a real type
        ok 1
        1..1
    ok 1 - needs to be a real type
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    ok 9
    ok 10
    1..10
ok 23 - def
# Subtest: unitof
    ok 1 - void
    ok 2 - scalar
    ok 3 - pointer
    ok 4 - array (fixed)
    ok 5 - array (var)
    ok 6 - string
    1..6
ok 24 - unitof
1..24
ok
t/ffi_platypus_api.t ..................... 
# Subtest: basic
    ok 1
    1..1
ok 1 - basic
1..1
ok
t/ffi_platypus_buffer.t .................. 
# Subtest: simple
    ok 1 - ptr = 32528120
    ok 2 - scalar to pointer matches
    ok 3 - size = 16
    ok 4 - scalar = me grimlock king
    1..4
ok 1 - simple
# Subtest: unicode
    ok 1 - ptr = 32215736
    ok 2 - size = 12
    ok 3 - scalar = привет
    1..3
ok 2 - unicode
# Subtest: grow
    ok 1 - B::PV returns consistent string length
    ok 2 - initial buffer size is smaler than required
    # Subtest: default options
        ok 1 - buffer grew as expected
        ok 2 - original contents cleared
        ok 3 - string length == requested buffer length
        1..3
    ok 3 - default options
    # Subtest: clear
        # Subtest: on
            ok 1 - buffer grew as expected
            ok 2 - buffer contents cleared
            1..2
        ok 1 - on
        # Subtest: off
            ok 1 - buffer grew as expected
            ok 2 - buffer contents not cleared
            1..2
        ok 2 - off
        1..2
    ok 4 - clear
    # Subtest: set_length
        # Subtest: on
            ok 1 - buffer grew as expected
            ok 2 - buffer length set
            1..2
        ok 1 - on
        # Subtest: off
            ok 1 - buffer grew as expected
            ok 2 - buffer length not cleared
            1..2
        ok 2 - off
        1..2
    ok 5 - set_length
    # Subtest: bad option
        ok 1 - croaked
        1..1
    ok 6 - bad option
    # Subtest: fail on reference
        ok 1 - croaked
        1..1
    ok 7 - fail on reference
    # Subtest: $str = undef
        ok 1 - buffer grew as expected
        1..1
    ok 8 - $str = undef
    # Subtest: undef
        ok 1 - croaked
        1..1
    ok 9 - undef
    1..9
ok 3 - grow
# Subtest: set_used_length
    # Subtest: length < max
        ok 1 - requested length
        ok 2 - requested string
        1..2
    ok 1 - length < max
    # Subtest: length == max
        ok 1 - requested length
        1..1
    ok 2 - length == max
    # Subtest: length > max
        ok 1 - maxed out length
        1..1
    ok 3 - length > max
    # Subtest: fail on reference
        ok 1 - croaked
        1..1
    ok 4 - fail on reference
    # Subtest: $str = undef
        not ok 1 - no added length
        #   Failed test 'no added length'
        #   at t/ffi_platypus_buffer.t line 158.
        #          got: '10'
        #     expected: '0'
        ok 2 - maxed out length
        1..2
        # Looks like you failed 1 test of 2.
    not ok 5 - $str = undef # TODO is set_used_length undef behavior correct?
    #   Failed (TODO) test '$str = undef'
    #   at t/ffi_platypus_buffer.t line 160.
    # Subtest: undef
        ok 1 - croaked
        1..1
    ok 6 - undef
    1..6
ok 4 - set_used_length
# Subtest: hardwire
    # Subtest: ascii
        ok 1
        ok 2
        ok 3
        ok 4
        ok 5
        1..5
    ok 1 - ascii
    # Subtest: unicode
        ok 1
        ok 2
        ok 3
        ok 4
        ok 5
        1..5
    ok 2 - unicode
    # Subtest: strlen
        ok 1
        ok 2
        ok 3
        1..3
    ok 3 - strlen
    1..3
ok 5 - hardwire
1..5
ok
t/ffi_platypus_bundle.t .................. 
# Subtest: from installed
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/QGwlTFK29d/lib/Foo/Bar1.pm]
    #     package Foo::Bar1;
    #     use strict;
    #     use warnings;
    #     use FFI::Platypus;
    #     my $ffi = FFI::Platypus->new( api => 1, lang => 'ASM' );
    #     $ffi->bundle;
    #     $ffi->attach("bar1" => [] => 'sint32');
    #     1;
    # spew(end)
    # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c /<<PKGBUILDDIR>>/.tmp/ffi_build_GUKWS3.c -o /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_GUKWS3.c.o
    # +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_GUKWS3.c.o -o /<<PKGBUILDDIR>>/.tmp/QGwlTFK29d/lib/auto/share/dist/Foo-Bar1/libbar1.so
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/QGwlTFK29d/lib/auto/Foo/Bar1/Bar1.txt]
    # FFI::Build@auto/share/dist/Foo-Bar1/libbar1.so
    # spew(end)
    ok 1
    ok 2
    ok 3
    ok 4
    1..4
ok 1 - from installed
# Subtest: from blib
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/VPTxndNF1O/lib/Foo/Bar2.pm]
    #     package Foo::Bar2;
    #     use strict;
    #     use warnings;
    #     use FFI::Platypus;
    #     my $ffi = FFI::Platypus->new( api => 1, lang => 'ASM' );
    #     $ffi->bundle;
    #     $ffi->attach("bar2" => [] => 'sint32');
    #     1;
    # spew(end)
    # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c /<<PKGBUILDDIR>>/.tmp/ffi_build_sQzulr.c -o /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_sQzulr.c.o
    # +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_sQzulr.c.o -o /<<PKGBUILDDIR>>/.tmp/VPTxndNF1O/lib/auto/share/dist/Foo-Bar2/libbar2.so
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/VPTxndNF1O/arch/auto/Foo/Bar2/Bar2.txt]
    # FFI::Build@auto/share/dist/Foo-Bar2/libbar2.so
    # spew(end)
    ok 1
    ok 2
    1..2
ok 2 - from blib
# Subtest: not loaded yet
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/8eSa9juITu/lib/Foo/Bar3.pm]
    #     package Foo::Bar3;
    #     die;
    #     1;
    # spew(end)
    # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c /<<PKGBUILDDIR>>/.tmp/ffi_build_Hevxm1.c -o /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_Hevxm1.c.o
    # +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_Hevxm1.c.o -o /<<PKGBUILDDIR>>/.tmp/8eSa9juITu/lib/auto/share/dist/Foo-Bar3/libbar3.so
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/8eSa9juITu/lib/auto/Foo/Bar3/Bar3.txt]
    # FFI::Build@auto/share/dist/Foo-Bar3/libbar3.so
    # spew(end)
    ok 1
    1..1
ok 3 - not loaded yet
# Subtest: with a ffi dir
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/flEFUnd2r5/lib/Foo/Bar4.pm]
    #     package Foo::Bar4;
    #     use strict;
    #     use warnings;
    #     use FFI::Platypus;
    #     my $ffi = FFI::Platypus->new( api => 1, lang => 'ASM' );
    #     $ffi->bundle;
    #     $ffi->attach("bar4" => [] => 'sint32');
    #     1;
    # spew(end)
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/flEFUnd2r5/ffi/foo.c]
    # int bar4(void) { return 45; }
    # spew(end)
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/flEFUnd2r5/ffi/foo.fbx]
    # use strict;
    # use warnings;
    # our $DIR;
    # { export => ['bar4'], source => ["$DIR/*.c"] };
    # spew(end)
    ok 1
    ok 2
    1..2
ok 4 - with a ffi dir
# Subtest: entry points
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/r2_dszzOjl/lib/Foo/Bar5.pm]
    #     package Foo::Bar5;
    #     use strict;
    #     use warnings;
    #     use FFI::Platypus;
    #     our $ffi = FFI::Platypus->new( api => 1, lang => 'ASM' );
    #     $ffi->bundle([$ffi->cast('(string)->void' => 'opaque', $main::log_closure)]);
    #     1;
    # spew(end)
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/r2_dszzOjl/ffi/foo.c]
    # #include <ffi_platypus_bundle.h>
    # #include <stdio.h>
    # 
    # typedef void (*log_t)(const char *);
    # log_t logit;
    # char buffer[1024];
    # 
    # void
    # ffi_pl_bundle_init(const char *package, int c, void **args)
    # {
    #   int i;
    #   logit = (log_t) args[0];
    #   logit("ffi_pl_bundle_init (enter)");
    #   sprintf(buffer, "package = %s", package);
    #   logit(buffer);
    #   sprintf(buffer, "c = %d", c);
    #   logit(buffer);
    #   for(i=0; args[i] != NULL; i++)
    #   {
    #     sprintf(buffer, "args[%d] = %d", i, args[i]);
    #     logit(buffer);
    #   }
    #   logit("ffi_pl_bundle_init (leave)");
    # }
    # 
    # void
    # ffi_pl_bundle_fini(const char *package)
    # {
    #   logit("ffi_pl_bundle_fini (enter)");
    #   sprintf(buffer, "package = %s", package);
    #   logit(buffer);
    #   logit("ffi_pl_bundle_fini (leave)");
    # }
    # 
    # spew(end)
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/r2_dszzOjl/ffi/foo.fbx]
    # use strict;
    # use warnings;
    # our $DIR;
    # { export => ['ffi_pl_bundle_init','ffi_pl_bundle_fini'], source => ["$DIR/*.c"] };
    # spew(end)
    ok 1
    # log:ffi_pl_bundle_init (enter)
    # log:package = Foo::Bar5
    # log:c = 1
    # log:args[0] = -1225433080
    # log:ffi_pl_bundle_init (leave)
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    # log:ffi_pl_bundle_fini (enter)
    # log:package = Foo::Bar5
    # log:ffi_pl_bundle_fini (leave)
    ok 9
    1..9
ok 5 - entry points
1..5
ok
t/ffi_platypus_closure.t ................. 
# Subtest: basic
    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 - closure.call(1) = 3
    ok 6 - An object of class 'FFI::Platypus::Closure' isa 'FFI::Platypus::Closure'
    ok 7 - closure.(1) = 3
    ok 8 - closure.call(1) = 3
    1..8
ok 1 - basic
# Subtest: sticky
    ok 1 - An object of class 'FFI::Platypus::Closure' isa 'FFI::Platypus::Closure'
    # _svrefcnt = 1
    ok 2 - called $closure->sticky
    ok 3
    ok 4 - called $closure->sticky
    ok 5
    ok 6 - called $closure->unstick
    ok 7
    1..7
ok 2 - sticky
# Subtest: private
    ok 1 - An object of class 'FFI::Platypus::Closure' isa 'FFI::Platypus::Closure'
    ok 2 - closure.(1) = 2
    1..2
ok 3 - private
# Subtest: space
    ok 1 - good without space
    ok 2 - good with space
    1..2
ok 4 - space
# Subtest: die
    ok 1
    ok 2 - does not exit
    # warning = 'omg i don't want to die! at t/ffi_platypus_closure.t line 72.
    # '
    1..2
ok 5 - die
# Subtest: reuse
    ok 1
    ok 2
    1..2
ok 6 - reuse
# Subtest: immediate
    ok 1
    1..1
ok 7 - immediate
# Subtest: closure passing into a closure
    ok 1
    # error = Only native types and strings are supported as closure argument types (19) at /<<PKGBUILDDIR>>/blib/lib/FFI/Platypus/TypeParser/Version0.pm line 68.
    ok 2
    # error = Only native types are supported as closure return types (1283) at /<<PKGBUILDDIR>>/blib/lib/FFI/Platypus/TypeParser/Version0.pm line 68.
    1..2
ok 8 - closure passing into a closure
1..8
ok
t/ffi_platypus_constant.t ................ 
# Subtest: very very basic...
    ok 1 - An object of class 'FFI::Platypus::Constant' isa 'FFI::Platypus::Constant'
    ok 2
    1..2
ok 1 - very very basic...
# Subtest: create constants
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/ha1i9zxxww/lib/Foo/Bar1.pm]
    #     package Foo::Bar1;
    #     use strict;
    #     use warnings;
    #     use FFI::Platypus;
    #     my $ffi = FFI::Platypus->new( api => 1, lang => 'ASM' );
    #     $ffi->bundle;
    #     1;
    # spew(end)
    # spew(start)[/<<PKGBUILDDIR>>/.tmp/ha1i9zxxww/ffi/bar1.c]
    # #include <ffi_platypus_bundle.h>
    #     void ffi_pl_bundle_constant(const char *package, ffi_platypus_constant_t *b)
    #     {
    #       b->set_str("FOO1", "VAL1");
    #       b->set_str("Foo::Bar1::Baz::FOO2", "VAL2");
    #       b->set_sint("FOO3", -42);
    #       b->set_uint("FOO4", 512);
    #       b->set_double("FOO5", 2.5);
    #       b->set_str("FOO6", package);
    #     }
    # spew(end)
    ok 1
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    1..7
ok 2 - create constants
1..2
ok
t/ffi_platypus_declare.t ................. 
# Subtest: normal
    ok 1 - f0(22) = 22
    ok 2 - f1(22) = 22
    ok 3 - f0_wrap(22) = 25
    ok 4 - f0_wrap2(22) = 25
    1..4
ok 1 - normal
# Subtest: prototype
    ok 1 - no compile error
    ok 2 - f(22) = 22
    1..2
ok 2 - prototype
# Subtest: with type aliases
    ok 1 - atoi("42") = 42
    1..1
ok 3 - with type aliases
# Subtest: simple closure test
    ok 1 - An object of class 'FFI::Platypus::Closure' isa 'FFI::Platypus::Closure'
    ok 2 - closure.(1) = 2
    1..2
ok 4 - simple closure test
# Subtest: abis
    ok 1 - has a default ABI
    # Subtest: vfp
        ok 1 - string
        ok 2 - integer
        1..2
    ok 2 - vfp
    # Subtest: default_abi
        ok 1 - string
        ok 2 - integer
        1..2
    ok 3 - default_abi
    # Subtest: sysv
        ok 1 - string
        ok 2 - integer
        1..2
    ok 4 - sysv
    # Subtest: bogus
        ok 1 - string
        ok 2 - integer
        1..2
    ok 5 - bogus
    1..5
ok 5 - abis
# Subtest: lang
    # Subtest: C
        ok 1 - int is an okay type
        ok 2 - foo_t is not an okay type
        # unknown ffi/platypus type foo_t at t/ffi_platypus_declare.t line 120.
        ok 3 - sint16 is an okay type
        1..3
    ok 1 - C
    # Subtest: Foo constructor
        ok 1 - int is not an okay type
        # unknown ffi/platypus type int at t/ffi_platypus_declare.t line 149.
        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
        1..5
    ok 2 - Foo constructor
    1..2
ok 6 - lang
# Subtest: sizeof
    ok 1 - sizeof uint32 = 4
    ok 2 - sizeof uint32[2] = 8
    1..2
ok 7 - sizeof
# Subtest: sticky
    ok 1 - call_closure(2) = 4
    1..1
ok 8 - sticky
# Subtest: cast
    # Subtest: cast from string to pointer
        ok 1 - dynamic
        ok 2 - static
        1..2
    ok 1 - cast from string to pointer
    # Subtest: cast from pointer to string
        ok 1 - dynamic
        ok 2 - static
        1..2
    ok 2 - cast from pointer to string
    # Subtest: cast closure to opaque
        ok 1 - dynamic
        ok 2 - static
        1..2
    ok 3 - cast closure to opaque
    1..3
ok 9 - cast
1..9
ok
t/ffi_platypus_dl.t ...................... 
# Subtest: flags
    ok 1 - RTLD_PLATYPUS_DEFAULT is defined
    # RTLD_LOCAL                0000 0
    # RTLD_LAZY                 0001 1
    # RTLD_PLATYPUS_DEFAULT     0001 1
    # RTLD_NOW                  0002 2
    # RTLD_NOLOAD               0004 4
    # RTLD_DEEPBIND             0008 8
    # RTLD_GLOBAL               0100 256
    # RTLD_NODELETE             1000 4096
    1..1
ok 1 - flags
# Subtest: dlopen
    # Subtest: bad library
        ok 1 - Returns undef on fail
        # dlerror = t/ffi/libbogus.so: cannot open shared object file: No such file or directory
        1..1
    ok 1 - bad library
    # Subtest: good library
        ok 1 - Returns handle on good
        # h = 23691984
        1..1
    ok 2 - good library
    1..2
ok 2 - dlopen
# Subtest: dlsym
    # Subtest: good symbol
        ok 1 - returns an address
        # address = 3065465164
        1..1
    ok 1 - good symbol
    # Subtest: bad symbol
        ok 1 - bad symbol returns undef
        # dlerror = t/ffi/libtest.so: undefined symbol: bogus
        1..1
    ok 2 - bad symbol
    1..2
ok 3 - dlsym
1..3
ok
t/ffi_platypus_function.t ................ 
# Subtest: built in type
    ok 1 - ffi.function(f0, [uint8] => uint8)
    ok 2 - An object of class 'FFI::Platypus::Function::Function' isa 'FFI::Platypus::Function'
    ok 3 - An object of class 'FFI::Platypus::Function::Function' isa 'FFI::Platypus::Function::Function'
    ok 4 - function.call(22) = 22
    ok 5 - function.(22) = 22
    1..5
ok 1 - built in type
# Subtest: custom type
    ok 1 - ffi.function(f0, [my_int_8] => my_int_8)
    ok 2 - An object of class 'FFI::Platypus::Function::Function' isa 'FFI::Platypus::Function'
    ok 3 - An object of class 'FFI::Platypus::Function::Function' isa 'FFI::Platypus::Function::Function'
    ok 4 - function.call(22) = 22
    ok 5 - function.(22) = 22
    1..5
ok 2 - custom type
# Subtest: private
    ok 1 - FFI::Platypus::Function->new
    ok 2 - An object of class 'FFI::Platypus::Function::Function' isa 'FFI::Platypus::Function'
    ok 3 - An object of class 'FFI::Platypus::Function::Function' isa 'FFI::Platypus::Function::Function'
    ok 4 - function.call(22) = 22
    ok 5 - fooble(22) = 22
    1..5
ok 3 - private
# Subtest: meta
    # Subtest: unattached
        ok 1
        ok 2
        1..2
    ok 1 - unattached
    # Subtest: attached
        ok 1
        ok 2
        1..2
    ok 2 - attached
    1..2
ok 4 - meta
# Subtest: sub_ref
    ok 1 - calls okay
    ok 2 - it is a code reference
    1..2
ok 5 - sub_ref
# Subtest: prototype
    # Subtest: one
        ok 1
        ok 2
        1..2
    ok 1 - one
    # Subtest: two
        ok 1
        ok 2
        1..2
    ok 2 - two
    1..2
ok 6 - prototype
# Subtest: variadic
    # Subtest: unattached
        ok 1 - sans wrapper
        ok 2 - with wrapper
        ok 3 - sans wrapper
        ok 4 - with wrapper
        ok 5 - sans wrapper
        ok 6 - with wrapper
        ok 7 - sans wrapper
        ok 8 - with wrapper
        ok 9 - sans wrapper
        ok 10 - with wrapper
        ok 11 - sans wrapper
        ok 12 - with wrapper
        ok 13 - sans wrapper
        ok 14 - with wrapper
        1..14
    ok 1 - unattached
    # Subtest: attached
        ok 1 - sans wrapper
        ok 2 - with wrapper
        ok 3 - sans wrapper
        ok 4 - with wrapper
        ok 5 - sans wrapper
        ok 6 - with wrapper
        ok 7 - sans wrapper
        ok 8 - with wrapper
        ok 9 - sans wrapper
        ok 10 - with wrapper
        ok 11 - sans wrapper
        ok 12 - with wrapper
        ok 13 - sans wrapper
        ok 14 - with wrapper
        1..14
    ok 2 - attached
    # Subtest: examples
        ok 1
        ok 2
        ok 3
        1..3
    ok 3 - examples
    1..3
ok 7 - variadic
# Subtest: void as arg should fail is arg count > 1
    ok 1
    1..1
ok 8 - void as arg should fail is arg count > 1
# Subtest: single void arg treated as no args
    ok 1
    1..1
ok 9 - single void arg treated as no args
1..9
ok
t/ffi_platypus_function_wrapper.t ........ 
# Subtest: built in type
    ok 1 - ffi.function(f0, [uint8] => uint8)
    ok 2 - An object of class 'FFI::Platypus::Function::Wrapper' isa 'FFI::Platypus::Function'
    ok 3 - An object of class 'FFI::Platypus::Function::Wrapper' isa 'FFI::Platypus::Function::Wrapper'
    ok 4 - function.call(22) = 44
    ok 5 - function.(22) = 44
    ok 6 - baboon(11) = 22
    1..6
ok 1 - built in type
# Subtest: sub_ref
    ok 1 - calls okay
    ok 2 - it is a code reference
    1..2
ok 2 - sub_ref
# Subtest: prototype
    # Subtest: one
        ok 1
        ok 2
        1..2
    ok 1 - one
    # Subtest: two
        ok 1
        ok 2
        1..2
    ok 2 - two
    1..2
ok 3 - prototype
1..3
ok
t/ffi_platypus_internal.t ................ 
# Subtest: basic
    # alpha order:
    ok 1 - FFI_PL_BASE_CLOSURE            0x0400
    ok 2 - FFI_PL_BASE_COMPLEX            0x0080
    ok 3 - FFI_PL_BASE_FLOAT              0x0040
    ok 4 - FFI_PL_BASE_MASK               0x0ff8
    ok 5 - FFI_PL_BASE_OPAQUE             0x0100
    ok 6 - FFI_PL_BASE_RECORD             0x0800
    ok 7 - FFI_PL_BASE_SINT               0x0010
    ok 8 - FFI_PL_BASE_STRING             0x0200
    ok 9 - FFI_PL_BASE_UINT               0x0020
    ok 10 - FFI_PL_BASE_VOID               0x0008
    ok 11 - FFI_PL_SHAPE_ARRAY             0x2000
    ok 12 - FFI_PL_SHAPE_CUSTOM_MASK       0xf000
    ok 13 - FFI_PL_SHAPE_CUSTOM_PERL       0x3000
    ok 14 - FFI_PL_SHAPE_OBJECT            0x4000
    ok 15 - FFI_PL_SHAPE_POINTER           0x1000
    ok 16 - FFI_PL_SHAPE_SCALAR            0x0000
    ok 17 - FFI_PL_SIZE_0                  0x0000
    ok 18 - FFI_PL_SIZE_128                0x0005
    ok 19 - FFI_PL_SIZE_16                 0x0002
    ok 20 - FFI_PL_SIZE_256                0x0006
    ok 21 - FFI_PL_SIZE_32                 0x0003
    ok 22 - FFI_PL_SIZE_512                0x0007
    ok 23 - FFI_PL_SIZE_64                 0x0004
    ok 24 - FFI_PL_SIZE_8                  0x0001
    ok 25 - FFI_PL_SIZE_MASK               0x0007
    ok 26 - FFI_PL_SIZE_PTR                0x0003
    ok 27 - FFI_PL_TYPE_CLOSURE            0x0503
    ok 28 - FFI_PL_TYPE_COMPLEX_DOUBLE     0x0085
    ok 29 - FFI_PL_TYPE_COMPLEX_FLOAT      0x0084
    ok 30 - FFI_PL_TYPE_DOUBLE             0x0044
    ok 31 - FFI_PL_TYPE_FLOAT              0x0043
    ok 32 - FFI_PL_TYPE_LONG_DOUBLE        0x0045
    ok 33 - FFI_PL_TYPE_OPAQUE             0x0103
    ok 34 - FFI_PL_TYPE_RECORD             0x0903
    ok 35 - FFI_PL_TYPE_RECORD_VALUE       0x0800
    ok 36 - FFI_PL_TYPE_SINT16             0x0012
    ok 37 - FFI_PL_TYPE_SINT32             0x0013
    ok 38 - FFI_PL_TYPE_SINT64             0x0014
    ok 39 - FFI_PL_TYPE_SINT8              0x0011
    ok 40 - FFI_PL_TYPE_STRING             0x0303
    ok 41 - FFI_PL_TYPE_UINT16             0x0022
    ok 42 - FFI_PL_TYPE_UINT32             0x0023
    ok 43 - FFI_PL_TYPE_UINT64             0x0024
    ok 44 - FFI_PL_TYPE_UINT8              0x0021
    ok 45 - FFI_PL_TYPE_VOID               0x0008
    # value order:
    ok 46 - FFI_PL_SHAPE_SCALAR            0x0000
    ok 47 - FFI_PL_SIZE_0                  0x0000
    ok 48 - FFI_PL_SIZE_8                  0x0001
    ok 49 - FFI_PL_SIZE_16                 0x0002
    ok 50 - FFI_PL_SIZE_PTR                0x0003
    ok 51 - FFI_PL_SIZE_32                 0x0003
    ok 52 - FFI_PL_SIZE_64                 0x0004
    ok 53 - FFI_PL_SIZE_128                0x0005
    ok 54 - FFI_PL_SIZE_256                0x0006
    ok 55 - FFI_PL_SIZE_512                0x0007
    ok 56 - FFI_PL_SIZE_MASK               0x0007
    ok 57 - FFI_PL_BASE_VOID               0x0008
    ok 58 - FFI_PL_TYPE_VOID               0x0008
    ok 59 - FFI_PL_BASE_SINT               0x0010
    ok 60 - FFI_PL_TYPE_SINT8              0x0011
    ok 61 - FFI_PL_TYPE_SINT16             0x0012
    ok 62 - FFI_PL_TYPE_SINT32             0x0013
    ok 63 - FFI_PL_TYPE_SINT64             0x0014
    ok 64 - FFI_PL_BASE_UINT               0x0020
    ok 65 - FFI_PL_TYPE_UINT8              0x0021
    ok 66 - FFI_PL_TYPE_UINT16             0x0022
    ok 67 - FFI_PL_TYPE_UINT32             0x0023
    ok 68 - FFI_PL_TYPE_UINT64             0x0024
    ok 69 - FFI_PL_BASE_FLOAT              0x0040
    ok 70 - FFI_PL_TYPE_FLOAT              0x0043
    ok 71 - FFI_PL_TYPE_DOUBLE             0x0044
    ok 72 - FFI_PL_TYPE_LONG_DOUBLE        0x0045
    ok 73 - FFI_PL_BASE_COMPLEX            0x0080
    ok 74 - FFI_PL_TYPE_COMPLEX_FLOAT      0x0084
    ok 75 - FFI_PL_TYPE_COMPLEX_DOUBLE     0x0085
    ok 76 - FFI_PL_BASE_OPAQUE             0x0100
    ok 77 - FFI_PL_TYPE_OPAQUE             0x0103
    ok 78 - FFI_PL_BASE_STRING             0x0200
    ok 79 - FFI_PL_TYPE_STRING             0x0303
    ok 80 - FFI_PL_BASE_CLOSURE            0x0400
    ok 81 - FFI_PL_TYPE_CLOSURE            0x0503
    ok 82 - FFI_PL_BASE_RECORD             0x0800
    ok 83 - FFI_PL_TYPE_RECORD_VALUE       0x0800
    ok 84 - FFI_PL_TYPE_RECORD             0x0903
    ok 85 - FFI_PL_BASE_MASK               0x0ff8
    ok 86 - FFI_PL_SHAPE_POINTER           0x1000
    ok 87 - FFI_PL_SHAPE_ARRAY             0x2000
    ok 88 - FFI_PL_SHAPE_CUSTOM_PERL       0x3000
    ok 89 - FFI_PL_SHAPE_OBJECT            0x4000
    ok 90 - FFI_PL_SHAPE_CUSTOM_MASK       0xf000
    1..90
ok 1 - basic
1..1
ok
t/ffi_platypus_lang.t .................... 
# Subtest: Foo constructor
    ok 1 - int is not an okay type
    # unknown ffi/platypus type int at t/ffi_platypus_lang.t line 14.
    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
    1..6
ok 1 - Foo constructor
# Subtest: Foo attribute
    ok 1 - int is not an okay type
    # unknown ffi/platypus type int at t/ffi_platypus_lang.t line 33.
    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
    1..6
ok 2 - Foo attribute
# Subtest: MyLang::Roger
    ok 1 - int is not an okay type
    # unknown ffi/platypus type int at t/ffi_platypus_lang.t line 51.
    ok 2 - sizeof foo_t = 4
    1..2
ok 3 - MyLang::Roger
1..3
ok
t/ffi_platypus_lang_asm.t ................ 
# Subtest: ASM
    ok 1 - int is not an okay type
    # unknown ffi/platypus type int at t/ffi_platypus_lang_asm.t line 13.
    ok 2 - foo_t is not an okay type
    # unknown ffi/platypus type foo_t at t/ffi_platypus_lang_asm.t line 16.
    ok 3 - sint16 is an okay type
    ok 4 - unable to find unmangled name
    1..4
ok 1 - ASM
1..1
ok
t/ffi_platypus_lang_c.t .................. 
# Subtest: C
    ok 1 - int is an okay type
    ok 2 - foo_t is not an okay type
    # unknown ffi/platypus type foo_t at t/ffi_platypus_lang_c.t line 15.
    ok 3 - sint16 is an okay type
    ok 4 - unable to find unmangled name
    1..4
ok 1 - C
1..1
ok
t/ffi_platypus_lang_win32.t .............. 
# BOOL                           sint32
# BOOLEAN                        uint8
# BYTE                           uint8
# CCHAR                          uint8
# CHAR                           uint8
# 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                       sint64
# blksize_t                      sint32
# bool                           uint8
# char                           uint8
# dev_t                          uint64
# double                         double
# double complex                 longdouble
# enum                           uint32
# float                          float
# float complex                  double
# gid_t                          uint32
# ino_t                          uint64
# int                            sint32
# int16_t                        sint16
# int32_t                        sint32
# int64_t                        sint64
# int8_t                         sint8
# intptr_t                       sint32
# long                           sint32
# long double                    double
# long double complex            longdouble
# long long                      sint64
# mode_t                         uint32
# nlink_t                        uint32
# off_t                          sint64
# ptrdiff_t                      sint32
# senum                          sint32
# short                          sint16
# signed char                    sint8
# signed int                     sint32
# signed long                    sint32
# signed long long               sint64
# signed short                   sint16
# size_t                         uint32
# ssize_t                        sint32
# time_t                         sint32
# uchar                          uint8
# uid_t                          uint32
# uint                           uint32
# uint16_t                       uint16
# uint32_t                       uint32
# uint64_t                       uint64
# uint8_t                        uint8
# uintptr_t                      uint32
# ulong                          uint32
# unsigned char                  uint8
# unsigned int                   uint32
# unsigned long                  uint32
# unsigned long long             uint64
# unsigned short                 uint16
# ushort                         uint16
# wchar_t                        uint32
# wint_t                         uint32
ok 1 - good
1..1
ok
t/ffi_platypus_legacy.t .................. 
# Subtest: only load as needed
    ok 1
    ok 2
    1..2
ok 1 - only load as needed
1..1
ok
t/ffi_platypus_memory.t .................. 
# lib=undef
# lib=/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/lib/libplfill.so
# Subtest: malloc calloc memset free
    ok 1 - malloc returns 18966216
    ok 2 - calloc returns 18966152
    ok 3 - string = yyyyxxxx
    ok 4 - free $ptr1
    ok 5 - free $ptr2
    1..5
ok 1 - malloc calloc memset free
# Subtest: memcpy
    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 2 - memcpy
# Subtest: realloc
    ok 1 - realloc call ptr = 18964072
    ok 2 - initial data copied
    ok 3 - realloc call ptr = 19057928 (2)
    ok 4 - after realloc data there
    ok 5 - final free
    1..5
ok 3 - realloc
# Subtest: strdup
    # strdup implementation = libc
    ok 1 - string = this and
    ok 2 - free $ptr1
    1..2
ok 4 - strdup
# Subtest: strndup
    # strndup implementation = libc
    # Subtest: full string
        ok 1
        1..1
    ok 1 - full string
    # Subtest: partial string
        ok 1
        1..1
    ok 2 - partial string
    1..2
ok 5 - strndup
# Subtest: strcpy
    ok 1 - pointer cast back to string matches
    1..1
ok 6 - strcpy
1..6
ok
t/ffi_platypus_record.t .................. 
# Subtest: integer accessor
    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
    # {'class' => 'Foo1','ffi_type' => 'pointer','ref' => 1,'size' => 8,'type' => 'record','type_code' => 2307}
    # {'ffi_type' => 'pointer','ref' => 0,'size' => 8,'type' => 'record','type_code' => 2307}
    1..8
ok 1 - integer accessor
# Subtest: values match in C
    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
    1..4
ok 2 - values match in C
# Subtest: complex alignment
    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 = 15618032
    ok 13 - opaque = 15618032
    ok 14 - get_opaque = undef
    ok 15 - opaque = undef
    1..15
ok 3 - complex alignment
# Subtest: same name
    ok 1 - two members of the same name not allowed
    # accessor/method foo already exists at t/ffi_platypus_record.t line 188.
    1..1
ok 4 - same name
# Subtest: array alignment
    ok 1 - An object of class 'Foo4' isa 'Foo4'
    # Subtest: unsigned 8 integer
        ok 1 - uint8 = 1,2,3
        ok 2 - get_uint8 = 1,2,3
        ok 3 - uint8(1) = 2
        ok 4 - uint8 = 1,20,3
        1..4
    ok 2 - unsigned 8 integer
    # Subtest: signed 8 integer
        ok 1 - sint8 = -1,2,-3
        ok 2 - get_sint8 = -1,2,-3
        ok 3 - sint8(2) = -3
        ok 4 - sint8 = -1,-20,-3
        1..4
    ok 3 - signed 8 integer
    # Subtest: unsigned 16 integer
        ok 1 - uint16 = 1,2,3
        ok 2 - get_uint16 = 1,2,3
        ok 3 - uint16(1) = 2
        ok 4 - uint16 = 1,20,3
        1..4
    ok 4 - unsigned 16 integer
    # Subtest: signed 16 integer
        ok 1 - sint16 = -1,2,-3
        ok 2 - get_sint16 = -1,2,-3
        ok 3 - sint16(2) = -3
        ok 4 - sint16 = -1,-20,-3
        1..4
    ok 5 - signed 16 integer
    # Subtest: unsigned 32 integer
        ok 1 - uint32 = 1,2,3
        ok 2 - get_uint32 = 1,2,3
        ok 3 - uint32(1) = 2
        ok 4 - uint32 = 1,20,3
        1..4
    ok 6 - unsigned 32 integer
    # Subtest: signed 32 integer
        ok 1 - sint32 = -1,2,-3
        ok 2 - get_sint32 = -1,2,-3
        ok 3 - sint32(2) = -3
        ok 4 - sint32 = -1,-20,-3
        1..4
    ok 7 - signed 32 integer
    # Subtest: unsigned 64 integer
        ok 1 - uint64 = 1,2,3
        ok 2 - get_uint64 = 1,2,3
        ok 3 - uint64(1) = 2
        ok 4 - uint64 = 1,20,3
        1..4
    ok 8 - unsigned 64 integer
    # Subtest: signed 64 integer
        ok 1 - sint64 = -1,2,-3
        ok 2 - get_sint64 = -1,2,-3
        ok 3 - sint64(2) = -3
        ok 4 - sint64 = -1,-20,-3
        1..4
    ok 9 - signed 64 integer
    # Subtest: float
        ok 1 - float = 1.5,0,-1.5
        ok 2
        ok 3
        ok 4
        ok 5 - float = 1.5,20,-1.5
        1..5
    ok 10 - float
    # Subtest: double
        ok 1 - double = 1.5,0,-1.5
        ok 2
        ok 3
        ok 4
        ok 5 - double = 1.5,20,-1.5
        1..5
    ok 11 - double
    # Subtest: opaque
        ok 1 - opaque     = 15611872,undef,15792208
        ok 2 - opaque     = 15611872,15611872,15792208
        ok 3 - opaque     = undef,15611872,15792208
        ok 4
        ok 5
        ok 6
        1..6
    ok 12 - opaque
    ok 13 - align = 8
    ok 14 - align is positive
    1..14
ok 5 - array alignment
# Subtest: string ro
    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 342.
    ok 7 - foo.value = undef
    ok 8 - foo.get_value = undef
    1..8
ok 6 - string ro
# Subtest: fixed string
    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
    1..6
ok 7 - fixed string
# Subtest: string rw
    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!!!
    1..7
ok 8 - string rw
# Subtest: record with custom ffi
    ok 1 - An object of class 'Foo8' isa 'Foo8'
    ok 2
    1..2
ok 9 - record with custom ffi
# Subtest: record with ffi args
    ok 1 - An object of class 'Foo8' isa 'Foo8'
    ok 2
    1..2
ok 10 - record with ffi args
# Subtest: api_1
    # Subtest: no $ffi or args
        ok 1
        ok 2
        1..2
    ok 1 - no $ffi or args
    # Subtest: args
        ok 1
        ok 2
        1..2
    ok 2 - args
    # Subtest: $ffi
        ok 1
        ok 2
        1..2
    ok 3 - $ffi
    1..3
ok 11 - api_1
1..11
ok
t/ffi_platypus_record_meta.t ............. 
# Subtest: basic
    ok 1 - An object of class 'FFI::Platypus::Record::Meta' isa 'FFI::Platypus::Record::Meta'
    ok 2 - meta->ffi_type = 33494456
    ok 3 - meta->size
    ok 4 - meta->alignment
    ok 5 - meta->element_pointers
    1..5
ok 1 - basic
# Subtest: bogus types
    ok 1
    ok 2
    1..2
ok 2 - bogus types
1..2
ok
t/ffi_platypus_record_tiearray.t ......... 
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
1..45
ok
t/ffi_platypus_shareconfig.t ............. 
# {
#   'abi' => {
#              'default_abi' => '2',
#              'sysv' => '1',
#              'vfp' => '2'
#            },
#   'align' => {
#                'double' => '8',
#                'double complex' => '8',
#                'float' => '4',
#                'float complex' => '4',
#                'long double' => '8',
#                'long double complex' => '8',
#                'pointer' => '4',
#                'sint16' => '2',
#                'sint32' => '4',
#                'sint64' => '8',
#                'sint8' => '1',
#                'uint16' => '2',
#                'uint32' => '4',
#                'uint64' => '8',
#                'uint8' => '1'
#              },
#   'config_dlext' => [
#                       'so'
#                     ],
#   'probe' => {
#                'abi' => 1,
#                'alloca' => 1,
#                'bigendian' => 0,
#                'bigendian64' => 0,
#                'complex' => 1,
#                'recordvalue' => 1,
#                'variadic' => 1
#              },
#   'test-key' => 'test-value',
#   'type_map' => {
#                   'blkcnt_t' => 'sint64',
#                   'blksize_t' => 'sint32',
#                   'bool' => 'uint8',
#                   'char' => 'uint8',
#                   'dev_t' => 'uint64',
#                   'double' => 'double',
#                   'double complex' => 'longdouble',
#                   'enum' => 'uint32',
#                   'float' => 'float',
#                   'float complex' => 'double',
#                   'gid_t' => 'uint32',
#                   'ino_t' => 'uint64',
#                   'int' => 'sint32',
#                   'int16_t' => 'sint16',
#                   'int32_t' => 'sint32',
#                   'int64_t' => 'sint64',
#                   'int8_t' => 'sint8',
#                   'intptr_t' => 'sint32',
#                   'long' => 'sint32',
#                   'long double' => 'double',
#                   'long double complex' => 'longdouble',
#                   'long long' => 'sint64',
#                   'mode_t' => 'uint32',
#                   'nlink_t' => 'uint32',
#                   'off_t' => 'sint64',
#                   'ptrdiff_t' => 'sint32',
#                   'senum' => 'sint32',
#                   'short' => 'sint16',
#                   'signed char' => 'sint8',
#                   'signed int' => 'sint32',
#                   'signed long' => 'sint32',
#                   'signed long long' => 'sint64',
#                   'signed short' => 'sint16',
#                   'size_t' => 'uint32',
#                   'ssize_t' => 'sint32',
#                   'time_t' => 'sint32',
#                   'uchar' => 'uint8',
#                   'uid_t' => 'uint32',
#                   'uint' => 'uint32',
#                   'uint16_t' => 'uint16',
#                   'uint32_t' => 'uint32',
#                   'uint64_t' => 'uint64',
#                   'uint8_t' => 'uint8',
#                   'uintptr_t' => 'uint32',
#                   'ulong' => 'uint32',
#                   'unsigned char' => 'uint8',
#                   'unsigned int' => 'uint32',
#                   'unsigned long' => 'uint32',
#                   'unsigned long long' => 'uint64',
#                   'unsigned short' => 'uint16',
#                   'ushort' => 'uint16',
#                   'wchar_t' => 'uint32',
#                   'wint_t' => 'uint32'
#                 }
# }
# 0
ok 1
ok 2
1..2
ok
t/ffi_platypus_type.t .................... 
# Subtest: basic type
    ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    # $VAR1 = {
    #           'element_size' => 1,
    #           'element_type' => 'int',
    #           'ffi_type' => 'sint8',
    #           'sign' => 1,
    #           'size' => 1,
    #           'type' => 'scalar',
    #           'type_code' => 17
    #         };
    1..8
ok 1 - basic type
# Subtest: fixed string / record (pass by reference)
    ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    # $VAR1 = {
    #           'ffi_type' => 'pointer',
    #           'ref' => 0,
    #           'size' => 22,
    #           'type' => 'record',
    #           'type_code' => 2307
    #         };
    ok 9 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
    ok 10
    ok 11
    ok 12
    ok 13
    ok 14
    ok 15
    ok 16
    # $VAR1 = {
    #           'custom_native_to_p' => \sub { "DUMMY" },
    #           'custom_perl_to_nat' => \sub { "DUMMY" },
    #           'custom_perl_to_native_p' => \sub { "DUMMY" },
    #           'ffi_type' => 'pointer',
    #           'ref' => 0,
    #           'size' => 22,
    #           'sub_type' => 'record',
    #           'type' => 'custom_perl',
    #           'type_code' => 14595
    #         };
    1..16
ok 2 - fixed string / record (pass by reference)
# Subtest: record
    # Subtest: record class value (pass by value)
        ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 2
        ok 3
        ok 4
        ok 5
        ok 6
        ok 7
        ok 8
        ok 9
        ok 10
        # $VAR1 = {
        #           'class' => 'Foo::Bar',
        #           'ffi_type' => 'struct',
        #           'ref' => 1,
        #           'size' => 4,
        #           'type' => 'record_value',
        #           'type_code' => 2048
        #         };
        ok 11 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 12
        ok 13
        ok 14
        ok 15
        ok 16
        ok 17
        ok 18
        # $VAR1 = {
        #           'custom_native_to_p' => \sub { "DUMMY" },
        #           'custom_perl_to_nat' => \sub { "DUMMY" },
        #           'custom_perl_to_native_p' => \sub { "DUMMY" },
        #           'ffi_type' => 'struct',
        #           'size' => 4,
        #           'type' => 'custom_perl',
        #           'type_code' => 14336
        #         };
        1..18
    ok 1 - record class value (pass by value)
    # Subtest: record class (pass by reference)
        ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 2
        ok 3
        ok 4
        ok 5
        ok 6
        ok 7
        ok 8
        ok 9
        # $VAR1 = {
        #           'class' => 'Foo::Bar',
        #           'ffi_type' => 'pointer',
        #           'ref' => 1,
        #           'size' => 4,
        #           'type' => 'record',
        #           'type_code' => 2307
        #         };
        ok 10 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 11
        ok 12
        ok 13
        ok 14
        ok 15
        ok 16
        ok 17
        # $VAR1 = {
        #           'class' => 'Foo::Bar',
        #           'custom_native_to_p' => \sub { "DUMMY" },
        #           'custom_perl_to_nat' => \sub { "DUMMY" },
        #           'custom_perl_to_native_p' => \sub { "DUMMY" },
        #           'ffi_type' => 'pointer',
        #           'ref' => 1,
        #           'size' => 4,
        #           'sub_type' => 'record',
        #           'type' => 'custom_perl',
        #           'type_code' => 14595
        #         };
        1..17
    ok 2 - record class (pass by reference)
    1..2
ok 3 - record
# Subtest: string rw
    ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    ok 9
    # $VAR1 = {
    #           'access' => 'rw',
    #           'element_size' => 4,
    #           'ffi_type' => 'pointer',
    #           'size' => 4,
    #           'type' => 'string',
    #           'type_code' => 771
    #         };
    1..9
ok 4 - string rw
# Subtest: string ro
    ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    ok 9
    # $VAR1 = {
    #           'access' => 'ro',
    #           'element_size' => 4,
    #           'ffi_type' => 'pointer',
    #           'size' => 4,
    #           'type' => 'string',
    #           'type_code' => 771
    #         };
    1..9
ok 5 - string ro
# Subtest: fixed array
    ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    ok 9
    # $VAR1 = {
    #           'element_count' => 10,
    #           'element_size' => 1,
    #           'element_type' => 'int',
    #           'ffi_type' => 'sint8',
    #           'sign' => 1,
    #           'size' => 10,
    #           'type' => 'array',
    #           'type_code' => 8209
    #         };
    1..9
ok 6 - fixed array
# Subtest: var array
    ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    # $VAR1 = {
    #           'element_count' => 0,
    #           'element_size' => 1,
    #           'element_type' => 'int',
    #           'ffi_type' => 'sint8',
    #           'sign' => 1,
    #           'size' => 0,
    #           'type' => 'array',
    #           'type_code' => 8209
    #         };
    1..8
ok 7 - var array
# Subtest: pointer
    ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    # $VAR1 = {
    #           'element_size' => 1,
    #           'element_type' => 'int',
    #           'ffi_type' => 'sint8',
    #           'sign' => 1,
    #           'size' => 4,
    #           'type' => 'pointer',
    #           'type_code' => 4113
    #         };
    1..8
ok 8 - pointer
# Subtest: custom type
    ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    # $VAR1 = {
    #           'custom_native_to_p' => \sub { "DUMMY" },
    #           'custom_perl_to_nat' => \sub { "DUMMY" },
    #           'custom_perl_to_native_p' => \sub { "DUMMY" },
    #           'element_type' => 'int',
    #           'ffi_type' => 'sint8',
    #           'sign' => 1,
    #           'size' => 1,
    #           'type' => 'custom_perl',
    #           'type_code' => 12305
    #         };
    1..8
ok 9 - custom type
1..9
ok
t/ffi_platypus_type_pointersizebuffer.t .. 
ok 1
ok 2
ok 3
ok 4
ok 5
1..5
ok
t/ffi_platypus_type_stringarray.t ........ 
# Subtest: fixed length input
    # Subtest: with default
        ok 1 - a1(0) = foo
        ok 2 - a1(0) = bar
        ok 3 - a1(0) = baz
        ok 4 - a1(0) = hey
        ok 5 - a1(0) = five
        ok 6 - a1(0) = undef
        1..6
    ok 1 - with default
    # Subtest: with default
        ok 1 - a2(0) = foo
        ok 2 - a2(0) = bar
        ok 3 - a2(0) = baz
        ok 4 - a2(0) = undef
        ok 5 - a2(0) = five
        ok 6 - a2(0) = undef
        1..6
    ok 2 - with default
    1..2
ok 1 - fixed length input
# Subtest: variable length input
    ok 1 - get_string_from_array(@list, 0) = foo
    ok 2 - get_string_from_array(@list, 1) = bar
    ok 3 - get_string_from_array(@list, 2) = baz
    ok 4 - get_string_from_array(@list, 3) = undef
    1..4
ok 2 - variable length input
# Subtest: fixed length return
    ok 1 - returns null
    ok 2 - returns with just strings
    ok 3 - returns with NULL/undef in the middle
    ok 4 - returns with NULL/undef in the middle with default
    1..4
ok 3 - fixed length return
# Subtest: null terminated return
    ok 1 - returns null
    ok 2
    ok 3
    ok 4
    1..4
ok 4 - null terminated return
1..4
ok
t/ffi_platypus_type_stringpointer.t ...... 
# Subtest: arg pass in
    ok 1 - not null
    ok 2 - \undef is null
    ok 3 - undef is null
    1..3
ok 1 - arg pass in
# Subtest: arg pass out
    ok 1 - not null string = hi there
    ok 2 - not null string = and another
    1..2
ok 2 - arg pass out
# Subtest: return value
    ok 1 - not null string = once more onto
    ok 2 - \null
    ok 3 - null
    1..3
ok 3 - return value
1..3
ok
t/ffi_platypus_typeparser.t .............. 
# Subtest: basic
    ok 1 - An object of class 'FFI::Platypus::TypeParser' isa 'FFI::Platypus::TypeParser'
    1..1
ok 1 - basic
# Subtest: pick the right one
    ok 1 - An object of class 'FFI::Platypus::TypeParser::Version0' isa 'FFI::Platypus::TypeParser::Version0'
    ok 2 - An object of class 'FFI::Platypus::TypeParser::Version1' isa 'FFI::Platypus::TypeParser::Version1'
    1..2
ok 2 - pick the right one
1..2
ok
t/ffi_platypus_typeparser_version0.t ..... 
# Subtest: basic
    ok 1 - basic basic
    # Subtest: longdouble
        1..0 # SKIP test requires support for long double
    ok 2 # skip test requires support for long double
    # Subtest: complex
        ok 1 - complex float
        ok 2 - complex double
        1..2
    ok 3 - complex
    1..3
ok 1 - basic
# Subtest: record
    ok 1 - fixed string
    ok 2 - unclassed record
    ok 3 - classed record
    1..3
ok 2 - record
# Subtest: string
    ok 1 - default string
    ok 2 - explicit ro string
    ok 3 - explicit ro string with underscore
    ok 4 - explicit rw string
    ok 5 - explicit rw string with underscore
    1..5
ok 3 - string
# Subtest: array
    ok 1 - fixed array
    ok 2 - variable array
    # Subtest: longdouble
        1..0 # SKIP test requires support for long double
    ok 3 # skip test requires support for long double
    # Subtest: complex
        ok 1 - variable array
        ok 2 - variable array
        1..2
    ok 4 - complex
    1..4
ok 4 - array
# Subtest: pointer
    ok 1 - pointer
    # Subtest: longdouble
        1..0 # SKIP test requires support for long double
    ok 2 # skip test requires support for long double
    # Subtest: complex
        ok 1 - complex float pointer
        ok 2 - complex double pointer
        1..2
    ok 3 - complex
    1..3
ok 5 - pointer
1..5
ok
t/ffi_platypus_typeparser_version1.t ..... 
# Subtest: bad types
    ok 1
    ok 2
    1..2
ok 1 - bad types
# Subtest: basic types
    # Subtest: void
        ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 2
        ok 3
        ok 4
        1..4
    ok 1 - void
    # Subtest: non-void
        ok 1
        ok 2
        ok 3
        ok 4
        ok 5
        ok 6
        1..6
    ok 2 - non-void
    # Subtest: string
        ok 1
        ok 2
        ok 3
        ok 4
        ok 5
        ok 6
        ok 7
        ok 8
        ok 9
        ok 10
        ok 11
        1..11
    ok 3 - string
    # Subtest: bogus
        ok 1
        1..1
    ok 4 - bogus
    1..4
ok 2 - basic types
# Subtest: type map
    ok 1
    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
    1..23
ok 3 - type map
# Subtest: fixed record / fixed string
    # Subtest: zero bad
        ok 1
        ok 2
        ok 3
        ok 4
        ok 5
        ok 6
        1..6
    ok 1 - zero bad
    # Subtest: ten good
        ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 2
        ok 3
        ok 4
        ok 5 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 6
        ok 7
        ok 8
        ok 9 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 10
        ok 11
        ok 12
        ok 13 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 14
        ok 15
        ok 16
        ok 17 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 18
        ok 19
        ok 20
        ok 21 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 22
        ok 23
        ok 24
        1..24
    ok 2 - ten good
    # Subtest: ten pass-by-value
        ok 1
        ok 2
        ok 3
        ok 4
        ok 5
        ok 6
        1..6
    ok 3 - ten pass-by-value
    1..3
ok 4 - fixed record / fixed string
# Subtest: record class
    # Subtest: good with size
        ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        ok 2 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        1..2
    ok 1 - good with size
    # Subtest: bad without size
        ok 1
        ok 2
        1..2
    ok 2 - bad without size
    # Subtest: pass-by-value
        ok 1 - An object of class 'FFI::Platypus::Type' isa 'FFI::Platypus::Type'
        1..1
    ok 3 - pass-by-value
    # Subtest: alias
        ok 1
        ok 2
        ok 3
        ok 4
        ok 5
        ok 6
        1..6
    ok 4 - alias
    1..4
ok 5 - record class
# Subtest: check alias
    ok 1
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    1..8
ok 6 - check alias
# Subtest: use alias
    ok 1
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    ok 9
    ok 10
    1..10
ok 7 - use alias
# Subtest: object
    ok 1
    ok 2
    ok 3
    1..3
ok 8 - object
1..8
ok
t/ffi_probe.t ............................ 
# Subtest: check_header
    ok 1 - An object of class 'FFI::Probe' isa 'FFI::Probe'
    # PR header."stdio.h"=1
    # PR header."bogus/does/not/exist.h"=0
    ok 2
    ok 3
    # ==probe.log==
    # code: #include <stdio.h>
    # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c /<<PKGBUILDDIR>>/.tmp/ffi-probe-iqTAlE/ffi_build_j_Rzew.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-iqTAlE/_build/ffi_build_j_Rzew.c.o
    # header."stdio.h"=1
    # code: #include <stdio.h>
    # code: #include <bogus/does/not/exist.h>
    # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c /<<PKGBUILDDIR>>/.tmp/ffi-probe-iqTAlE/ffi_build_DUv1QR.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-iqTAlE/_build/ffi_build_DUv1QR.c.o
    # /<<PKGBUILDDIR>>/.tmp/ffi-probe-iqTAlE/ffi_build_DUv1QR.c:2:10: fatal error: bogus/does/not/exist.h: No such file or directory
    #     2 | #include <bogus/does/not/exist.h>
    #       |          ^~~~~~~~~~~~~~~~~~~~~~~~
    # compilation terminated.
    # header."bogus/does/not/exist.h"=0
    # ==probe.pl==
    # do { my $x = {
    #   'header' => {
    #     'bogus/does/not/exist.h' => 0,
    #     'stdio.h' => 1
    #   }
    # };
    # $x;}
    ok 4
    ok 5
    # 
    ok 6
    ok 7
    # ==probe2.log==
    # ==probe.pl==
    # do { my $x = {
    #   'header' => {
    #     'bogus/does/not/exist.h' => 0,
    #     'stdio.h' => 1
    #   }
    # };
    # $x;}
    1..7
ok 1 - check_header
# Subtest: check_eval
    # PR foo.bar.baz=3
    ok 1 - foo.bar.baz
    ok 2
    # PR foo.bar.string=hello world 7
    ok 3 - foo.bar.string
    ok 4
    # PR header."stddef.h"=1
    # PR type.unsigned char.align=1
    # PR type.unsigned char.sign=unsigned
    # PR type.unsigned char.size=1
    ok 5
    ok 6
    ok 7
    ok 8
    # PR type.float.align=4
    # PR type.float.size=4
    ok 9
    ok 10
    ok 11
    # PR type.pointer.align=4
    # PR type.pointer.size=4
    ok 12
    ok 13
    ok 14
    # ==probe.log==
    # code: #include <stdio.h>
    # code: 
    # code: 
    # code: 
    # code: 
    # code: int
    # code: dlmain(int argc, char *argv[])
    # code: {
    # code: 
    # code: 
    # code:   printf("eval1=<<<%d>>>\n", 1+2);
    # code: 
    # code:   return 0;
    # code: }
    # [build]
    # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/ffi_build_nWkWjx.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/_build/ffi_build_nWkWjx.c.o
    # +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/_build/ffi_build_nWkWjx.c.o -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/libeval1.so
    # [stdout]
    # eval1=<<<3>>>
    # [stderr]
    # 
    # rv  = 0
    # foo.bar.baz=3
    # code: #include <stdio.h>
    # code: 
    # code: char buffer[256];
    # code: 
    # code: 
    # code: int
    # code: dlmain(int argc, char *argv[])
    # code: {
    # code: sprintf(buffer, "hello world %d", 3+4);
    # code: 
    # code:   printf("eval1=<<<%s>>>\n", buffer);
    # code: 
    # code:   return 0;
    # code: }
    # [build]
    # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/ffi_build_Xy__tO.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/_build/ffi_build_Xy__tO.c.o
    # +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/_build/ffi_build_Xy__tO.c.o -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/libeval2.so
    # [stdout]
    # eval1=<<<hello world 7>>>
    # [stderr]
    # 
    # rv  = 0
    # foo.bar.string=hello world 7
    # code: #include <stddef.h>
    # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/ffi_build_5izpe9.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/_build/ffi_build_5izpe9.c.o
    # header."stddef.h"=1
    # code: #include <stdio.h>
    # code: #include <stddef.h>
    # code: 
    # code: #define signed(type)  (((type)-1) < 0) ? "signed" : "unsigned"
    # code: struct align { char a; unsigned char b; };
    # code: 
    # code: 
    # code: int
    # code: dlmain(int argc, char *argv[])
    # code: {
    # code: 
    # code: 
    # code:   printf("eval1=<<<%d>>>\n", (int)offsetof(struct align, b));
    # code:   printf("eval2=<<<%s>>>\n", signed(unsigned char));
    # code:   printf("eval3=<<<%d>>>\n", (int)sizeof(unsigned char));
    # code: 
    # code:   return 0;
    # code: }
    # [build]
    # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/ffi_build_XgGGw7.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/_build/ffi_build_XgGGw7.c.o
    # +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/_build/ffi_build_XgGGw7.c.o -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/libeval4.so
    # [stdout]
    # eval1=<<<1>>>
    # eval2=<<<unsigned>>>
    # eval3=<<<1>>>
    # [stderr]
    # 
    # rv  = 0
    # type.unsigned char.align=1
    # type.unsigned char.sign=unsigned
    # type.unsigned char.size=1
    # code: #include <stdio.h>
    # code: #include <stddef.h>
    # code: 
    # code: struct align { char a; float b; };
    # code: 
    # code: 
    # code: int
    # code: dlmain(int argc, char *argv[])
    # code: {
    # code: 
    # code: 
    # code:   printf("eval1=<<<%d>>>\n", (int)offsetof(struct align, b));
    # code:   printf("eval2=<<<%d>>>\n", (int)sizeof(float));
    # code: 
    # code:   return 0;
    # code: }
    # [build]
    # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/ffi_build_mireWN.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/_build/ffi_build_mireWN.c.o
    # +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/_build/ffi_build_mireWN.c.o -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/libeval5.so
    # [stdout]
    # eval1=<<<4>>>
    # eval2=<<<4>>>
    # [stderr]
    # 
    # rv  = 0
    # type.float.align=4
    # type.float.size=4
    # code: #include <stdio.h>
    # code: #include <stddef.h>
    # code: 
    # code: struct align { char a; void* b; };
    # code: 
    # code: 
    # code: int
    # code: dlmain(int argc, char *argv[])
    # code: {
    # code: 
    # code: 
    # code:   printf("eval1=<<<%d>>>\n", (int)offsetof(struct align, b));
    # code:   printf("eval2=<<<%d>>>\n", (int)sizeof(void *));
    # code: 
    # code:   return 0;
    # code: }
    # [build]
    # +arm-linux-gnueabihf-gcc -fPIC -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -I/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/include -c /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/ffi_build_b1iKqO.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/_build/ffi_build_b1iKqO.c.o
    # +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/_build/ffi_build_b1iKqO.c.o -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-fOx8qv/libeval6.so
    # [stdout]
    # eval1=<<<4>>>
    # eval2=<<<4>>>
    # [stderr]
    # 
    # rv  = 0
    # type.pointer.align=4
    # type.pointer.size=4
    # ==probe.pl==
    # do { my $x = {
    #   'foo' => {
    #     'bar' => {
    #       'baz' => '3',
    #       'string' => 'hello world 7'
    #     }
    #   },
    #   'header' => {
    #     'stddef.h' => 1
    #   },
    #   'type' => {
    #     'float' => {
    #       'align' => '4',
    #       'size' => '4'
    #     },
    #     'pointer' => {
    #       'align' => '4',
    #       'size' => '4'
    #     },
    #     'unsigned char' => {
    #       'align' => '1',
    #       'sign' => 'unsigned',
    #       'size' => '1'
    #     }
    #   }
    # };
    # $x;}
    1..14
ok 2 - check_eval
1..2
ok
t/ffi_probe_runner.t ..................... 
# Subtest: basic
    # exe=blib/lib/auto/share/dist/FFI-Platypus/probe/bin/dlrun
    ok 1 - An object of class 'FFI::Probe::Runner' isa 'FFI::Probe::Runner'
    ok 2
    ok 3
    1..3
ok 1 - basic
# Subtest: run not pass
    # CC corpus/ffi_probe_runner/foo.c
    # LD /<<PKGBUILDDIR>>/.tmp/test-probe-YCcy6V/libfrooble1.so
    # lib=/<<PKGBUILDDIR>>/.tmp/test-probe-YCcy6V/libfrooble1.so
    ok 1
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    ok 9
    1..9
ok 2 - run not pass
# Subtest: run pass
    # CC corpus/ffi_probe_runner/bar.c
    # LD /<<PKGBUILDDIR>>/.tmp/test-probe-INDD4h/libfrooble2.so
    # lib=/<<PKGBUILDDIR>>/.tmp/test-probe-INDD4h/libfrooble2.so
    ok 1
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    ok 9
    1..9
ok 3 - run pass
1..3
ok
t/ffi_probe_runner_builder.t ............. 
# dir = /<<PKGBUILDDIR>>/.tmp/test-probe-iFanKF
# libs=-ldl
# libs=
# libs=-lm
# libs=-lpthread
# libs=-lc
# libs=-lcrypt
ok 1 - An object of class 'FFI::Probe::Runner::Builder' isa 'FFI::Probe::Runner::Builder'
# +arm-linux-gnueabihf-gcc -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -c -o /<<PKGBUILDDIR>>/.tmp/test-probe-iFanKF/src/dlrun.o /<<PKGBUILDDIR>>/.tmp/test-probe-iFanKF/src/dlrun.c
# +arm-linux-gnueabihf-gcc -fstack-protector-strong -L/usr/local/lib -o /<<PKGBUILDDIR>>/.tmp/test-probe-iFanKF/bin/dlrun /<<PKGBUILDDIR>>/.tmp/test-probe-iFanKF/src/dlrun.o -ldl
# +/<<PKGBUILDDIR>>/.tmp/test-probe-iFanKF/bin/dlrun verify self
# dlrun verify self ok
ok 2 - no error
ok 3 - executable exists
# exe = /<<PKGBUILDDIR>>/.tmp/test-probe-iFanKF/bin/dlrun
# + /<<PKGBUILDDIR>>/.tmp/test-probe-iFanKF/bin/dlrun verify self
# dlrun verify self ok
ok 4 - verify ok
# + ldd /<<PKGBUILDDIR>>/.tmp/test-probe-iFanKF/bin/dlrun
# 	linux-vdso.so.1 (0xbecb2000)
# 	libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6f0d000)
# 	libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6dba000)
# 	/lib/ld-linux-armhf.so.3 (0x7f55e000)
1..4
ok
t/ffi_probe_runner_result.t .............. 
ok 1 - An object of class 'FFI::Probe::Runner::Result' isa 'FFI::Probe::Runner::Result'
ok 2
ok 3 - An object of class 'FFI::Probe::Runner::Result' isa 'FFI::Probe::Runner::Result'
ok 4
ok 5
ok 6 - An object of class 'FFI::Probe::Runner::Result' isa 'FFI::Probe::Runner::Result'
ok 7
ok 8
1..8
ok
t/ffi_temp.t ............................. 
ok 1
# dir = /<<PKGBUILDDIR>>/.tmp/JkHmvnbWkQ
# file = /<<PKGBUILDDIR>>/.tmp/_tU5ugVq8C
1..1
ok
t/forks.t ................................ skipped: Test requires forks
t/gh117.t ................................ 
# value64 = 1099511627775
ok 1
1..1
ok
t/gh129.t ................................ 
# Subtest: attached function
    ok 1
    1..1
ok 1 - attached function
# Subtest: dynamic function
    ok 1
    1..1
ok 2 - dynamic function
# Subtest: type wrapper argument
    ok 1
    1..1
ok 3 - type wrapper argument
# Subtest: type wrapper argument post
    ok 1
    1..1
ok 4 - type wrapper argument post
# Subtest: type wrapper return type
    ok 1
    1..1
ok 5 - type wrapper return type
1..5
ok
t/memory.t ............................... skipped: tested only in CI
t/threads.t .............................. 
ok 1 - works in a thread
ok 2 - works in main thread
1..2
ok
t/type_complex_double.t .................. 
# Subtest: api = 0
    # Subtest: standard argument
        # Subtest: with a real number
            # to_string(10.5) = 10.5 + 0 * i
            ok 1 - creal(10.5) = 10.5
            ok 2 - cimag(10.5) = 0.0
            1..2
        ok 1 - with a real number
        # Subtest: with an array ref
            # to_string([10.5,20.5]) = 10.5 + 20.5 * i
            ok 1 - creal([10.5,20.5]) = 10.5
            ok 2 - cimag([10.5,20.5]) = 20.5
            1..2
        ok 2 - with an array ref
        # Subtest: with Math::Complex
            # to_string($c) = 10.5 + 20.5 * i
            ok 1 - creal($c) = 10.5
            ok 2 - cimag($c) = 20.5
            1..2
        ok 3 - with Math::Complex
        1..3
    ok 1 - standard argument
    # Subtest: pointer argument
        # Subtest: with a real number
            # to_string(10.5) = 10.5 + 0 * i
            ok 1 - creal_ptr(\10.5) = 10.5
            ok 2 - cimag_ptr(\10.5) = 0.0
            1..2
        ok 1 - with a real number
        # Subtest: with an array ref
            # to_string([10.5,20.5]) = 10.5 + 20.5 * i
            ok 1 - creal_ptr(\[10.5,20.5]) = 10.5
            ok 2 - cimag_ptr(\[10.5,20.5]) = 20.5
            1..2
        ok 2 - with an array ref
        # Subtest: with Math::Complex
            # to_string($c) = 10.5 + 20.5 * i
            ok 1 - creal_ptr(\10.5+20.5i) = 10.5
            ok 2 - cimag_ptr(\10.5+20.5i) = 20.5
            1..2
        ok 3 - with Math::Complex
        # Subtest: values set on out (array)
            ok 1
            1..1
        ok 4 - values set on out (array)
        # Subtest: values set on out (object)
            ok 1
            1..1
        ok 5 - values set on out (object)
        # Subtest: values set on out (other)
            ok 1
            1..1
        ok 6 - values set on out (other)
        1..6
    ok 2 - pointer argument
    # Subtest: return value
        ok 1 - standard
        ok 2 - pointer
        ok 3 - null
        1..3
    ok 3 - return value
    # Subtest: complex array arg
        ok 1
        ok 2
        ok 3
        1..3
    ok 4 - complex array arg
    # Subtest: complex array arg set
        ok 1
        1..1
    ok 5 - complex array arg set
    # Subtest: complex array ret
        ok 1
        1..1
    ok 6 - complex array ret
    1..6
ok 1 - api = 0
# Subtest: api = 1
    # Subtest: standard argument
        # Subtest: with a real number
            # to_string(10.5) = 10.5 + 0 * i
            ok 1 - creal(10.5) = 10.5
            ok 2 - cimag(10.5) = 0.0
            1..2
        ok 1 - with a real number
        # Subtest: with an array ref
            # to_string([10.5,20.5]) = 10.5 + 20.5 * i
            ok 1 - creal([10.5,20.5]) = 10.5
            ok 2 - cimag([10.5,20.5]) = 20.5
            1..2
        ok 2 - with an array ref
        # Subtest: with Math::Complex
            # to_string($c) = 10.5 + 20.5 * i
            ok 1 - creal($c) = 10.5
            ok 2 - cimag($c) = 20.5
            1..2
        ok 3 - with Math::Complex
        1..3
    ok 1 - standard argument
    # Subtest: pointer argument
        # Subtest: with a real number
            # to_string(10.5) = 10.5 + 0 * i
            ok 1 - creal_ptr(\10.5) = 10.5
            ok 2 - cimag_ptr(\10.5) = 0.0
            1..2
        ok 1 - with a real number
        # Subtest: with an array ref
            # to_string([10.5,20.5]) = 10.5 + 20.5 * i
            ok 1 - creal_ptr(\[10.5,20.5]) = 10.5
            ok 2 - cimag_ptr(\[10.5,20.5]) = 20.5
            1..2
        ok 2 - with an array ref
        # Subtest: with Math::Complex
            # to_string($c) = 10.5 + 20.5 * i
            ok 1 - creal_ptr(\10.5+20.5i) = 10.5
            ok 2 - cimag_ptr(\10.5+20.5i) = 20.5
            1..2
        ok 3 - with Math::Complex
        # Subtest: values set on out (array)
            ok 1
            1..1
        ok 4 - values set on out (array)
        # Subtest: values set on out (object)
            ok 1
            1..1
        ok 5 - values set on out (object)
        # Subtest: values set on out (other)
            ok 1
            1..1
        ok 6 - values set on out (other)
        1..6
    ok 2 - pointer argument
    # Subtest: return value
        ok 1 - standard
        ok 2 - pointer
        ok 3 - null
        1..3
    ok 3 - return value
    # Subtest: complex array arg
        ok 1
        ok 2
        ok 3
        1..3
    ok 4 - complex array arg
    # Subtest: complex array arg set
        ok 1
        1..1
    ok 5 - complex array arg set
    # Subtest: complex array ret
        ok 1
        1..1
    ok 6 - complex array ret
    1..6
ok 2 - api = 1
1..2
ok
t/type_complex_float.t ................... 
# Subtest: api = 0
    # Subtest: standard argument
        # Subtest: with a real number
            # to_string(10.5) = 10.5 + 0 * i
            ok 1 - creal(10.5) = 10.5
            ok 2 - cimag(10.5) = 0.0
            1..2
        ok 1 - with a real number
        # Subtest: with an array ref
            # to_string([10.5,20.5]) = 10.5 + 20.5 * i
            ok 1 - creal([10.5,20.5]) = 10.5
            ok 2 - cimag([10.5,20.5]) = 20.5
            1..2
        ok 2 - with an array ref
        # Subtest: with Math::Complex
            # to_string($c) = 10.5 + 20.5 * i
            ok 1 - creal($c) = 10.5
            ok 2 - cimag($c) = 20.5
            1..2
        ok 3 - with Math::Complex
        1..3
    ok 1 - standard argument
    # Subtest: pointer argument
        # Subtest: with a real number
            # to_string(10.5) = 10.5 + 0 * i
            ok 1 - creal_ptr(\10.5) = 10.5
            ok 2 - cimag_ptr(\10.5) = 0.0
            1..2
        ok 1 - with a real number
        # Subtest: with an array ref
            # to_string([10.5,20.5]) = 10.5 + 20.5 * i
            ok 1 - creal_ptr(\[10.5,20.5]) = 10.5
            ok 2 - cimag_ptr(\[10.5,20.5]) = 20.5
            1..2
        ok 2 - with an array ref
        # Subtest: with Math::Complex
            # to_string($c) = 10.5 + 20.5 * i
            ok 1 - creal_ptr(\10.5+20.5i) = 10.5
            ok 2 - cimag_ptr(\10.5+20.5i) = 20.5
            1..2
        ok 3 - with Math::Complex
        # Subtest: values set on out (array)
            ok 1
            1..1
        ok 4 - values set on out (array)
        # Subtest: values set on out (object)
            ok 1
            1..1
        ok 5 - values set on out (object)
        # Subtest: values set on out (other)
            ok 1
            1..1
        ok 6 - values set on out (other)
        1..6
    ok 2 - pointer argument
    # Subtest: return value
        ok 1 - standard
        ok 2 - pointer
        ok 3 - null
        1..3
    ok 3 - return value
    # Subtest: complex array arg
        ok 1
        ok 2
        ok 3
        1..3
    ok 4 - complex array arg
    # Subtest: complex array arg set
        ok 1
        1..1
    ok 5 - complex array arg set
    # Subtest: complex array ret
        ok 1
        1..1
    ok 6 - complex array ret
    1..6
ok 1 - api = 0
# Subtest: api = 1
    # Subtest: standard argument
        # Subtest: with a real number
            # to_string(10.5) = 10.5 + 0 * i
            ok 1 - creal(10.5) = 10.5
            ok 2 - cimag(10.5) = 0.0
            1..2
        ok 1 - with a real number
        # Subtest: with an array ref
            # to_string([10.5,20.5]) = 10.5 + 20.5 * i
            ok 1 - creal([10.5,20.5]) = 10.5
            ok 2 - cimag([10.5,20.5]) = 20.5
            1..2
        ok 2 - with an array ref
        # Subtest: with Math::Complex
            # to_string($c) = 10.5 + 20.5 * i
            ok 1 - creal($c) = 10.5
            ok 2 - cimag($c) = 20.5
            1..2
        ok 3 - with Math::Complex
        1..3
    ok 1 - standard argument
    # Subtest: pointer argument
        # Subtest: with a real number
            # to_string(10.5) = 10.5 + 0 * i
            ok 1 - creal_ptr(\10.5) = 10.5
            ok 2 - cimag_ptr(\10.5) = 0.0
            1..2
        ok 1 - with a real number
        # Subtest: with an array ref
            # to_string([10.5,20.5]) = 10.5 + 20.5 * i
            ok 1 - creal_ptr(\[10.5,20.5]) = 10.5
            ok 2 - cimag_ptr(\[10.5,20.5]) = 20.5
            1..2
        ok 2 - with an array ref
        # Subtest: with Math::Complex
            # to_string($c) = 10.5 + 20.5 * i
            ok 1 - creal_ptr(\10.5+20.5i) = 10.5
            ok 2 - cimag_ptr(\10.5+20.5i) = 20.5
            1..2
        ok 3 - with Math::Complex
        # Subtest: values set on out (array)
            ok 1
            1..1
        ok 4 - values set on out (array)
        # Subtest: values set on out (object)
            ok 1
            1..1
        ok 5 - values set on out (object)
        # Subtest: values set on out (other)
            ok 1
            1..1
        ok 6 - values set on out (other)
        1..6
    ok 2 - pointer argument
    # Subtest: return value
        ok 1 - standard
        ok 2 - pointer
        ok 3 - null
        1..3
    ok 3 - return value
    # Subtest: complex array arg
        ok 1
        ok 2
        ok 3
        1..3
    ok 4 - complex array arg
    # Subtest: complex array arg set
        ok 1
        1..1
    ok 5 - complex array arg set
    # Subtest: complex array ret
        ok 1
        1..1
    ok 6 - complex array ret
    1..6
ok 2 - api = 1
1..2
ok
t/type_custom.t .......................... 
# Subtest: legal custom types
    ok 1
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8
    ok 9
    ok 10
    ok 11
    1..11
ok 1 - legal custom types
# Subtest: illegal types
    # alias = foo_sint8_32_
    ok 1
    # alias = foo_sint8_
    ok 2
    1..2
ok 2 - illegal types
# Subtest: records
    # Subtest: pointer
        ok 1
        ok 2
        ok 3
        ok 4
        ok 5
        1..5
    ok 1 - pointer
    # Subtest: by-value
        ok 1
        ok 2
        ok 3
        # Subtest: return-value
            ok 1
            1..1
        ok 4 - return-value
        1..4
    ok 2 - by-value
    1..2
ok 3 - records
1..3
ok
t/type_double.t .......................... 
# Subtest: api = 0
    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
        ok 1
        ok 2 - custom_add(1.25,2.5) = 4
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 2.25
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 1 - api = 0
# Subtest: api = 1
    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
        ok 1
        ok 2 - custom_add(1.25,2.5) = 4
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 2.25
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 2 - api = 1
# Subtest: api = 2
    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
        ok 1
        ok 2 - custom_add(1.25,2.5) = 4
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 2.25
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 3 - api = 2
1..3
ok
t/type_float.t ........................... 
# Subtest: api = 0
    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
        ok 1
        ok 2 - custom_add(1.25,2.5) = 4
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 2.25
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 1 - api = 0
# Subtest: api = 1
    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
        ok 1
        ok 2 - custom_add(1.25,2.5) = 4
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 2.25
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 2 - api = 1
# Subtest: api = 2
    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
        ok 1
        ok 2 - custom_add(1.25,2.5) = 4
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 2.25
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 3 - api = 2
1..3
ok
t/type_longdouble.t ...................... skipped: test requires support for long double
t/type_longdouble__array.t ............... skipped: test requires support for long double
t/type_longdouble__hide.t ................ skipped: test requires support for long double
t/type_longdouble__ptr.t ................. skipped: test requires support for long double
t/type_opaque.t .......................... 
# Subtest: api = 0
    ok 1 - null = ()/undef
    ok 2 - is_null(undef) == 1
    ok 3 - is_null() == 1
    ok 4 - is_null($ptr) = 0
    ok 5 - setp(30035936); getp() = 30035936
    ok 6 - get($tmp); tmp = 30035936
    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_out_nt()
    ok 14 - ra_null_out
    ok 15 - pp2p(\undef) = undef
    ok 16 - pp2p(\30207048) = 30207048
    ok 17 - p2pp(undef) = \undef
    ok 18 - pp2p(30212720) = \30212720
    ok 19 - call_closure(undef) = undef
    ok 20 - save = undef
    ok 21 - call_closure(\30107912) = 30107912
    ok 22 - save = 30107912
    # Subtest: custom type input
        ok 1
        ok 2
        1..2
    ok 23 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2
        1..2
    ok 24 - custom type output
    1..24
ok 1 - api = 0
# Subtest: api = 1
    ok 1 - null = ()/undef
    ok 2 - is_null(undef) == 1
    ok 3 - is_null() == 1
    ok 4 - is_null($ptr) = 0
    ok 5 - setp(27035616); getp() = 27035616
    ok 6 - get($tmp); tmp = 27035616
    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_out_nt()
    ok 14 - ra_null_out
    ok 15 - pp2p(\undef) = undef
    ok 16 - pp2p(\30137080) = 30137080
    ok 17 - p2pp(undef) = \undef
    ok 18 - pp2p(30212832) = \30212832
    ok 19 - call_closure(undef) = undef
    ok 20 - save = undef
    ok 21 - call_closure(\30305088) = 30305088
    ok 22 - save = 30305088
    # Subtest: custom type input
        ok 1
        ok 2
        1..2
    ok 23 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2
        1..2
    ok 24 - custom type output
    1..24
ok 2 - api = 1
# Subtest: api = 2
    ok 1 - null = ()/undef
    ok 2 - is_null(undef) == 1
    ok 3 - is_null() == 1
    ok 4 - is_null($ptr) = 0
    ok 5 - setp(30075824); getp() = 30075824
    ok 6 - get($tmp); tmp = 30075824
    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_out_nt()
    ok 14 - ra_null_out
    ok 15 - pp2p(\undef) = undef
    ok 16 - pp2p(\30305976) = 30305976
    ok 17 - p2pp(undef) = \undef
    ok 18 - pp2p(30171728) = \30171728
    ok 19 - call_closure(undef) = undef
    ok 20 - save = undef
    ok 21 - call_closure(\30104552) = 30104552
    ok 22 - save = 30104552
    # Subtest: custom type input
        ok 1
        ok 2
        1..2
    ok 23 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2
        1..2
    ok 24 - custom type output
    1..24
ok 3 - api = 2
# Subtest: object
    # Subtest: argument
        ok 1
        ok 2
        1..2
    ok 1 - argument
    # Subtest: return value
        ok 1
        ok 2 - An object of class 'Roger' isa 'Roger'
        ok 3
        ok 4 - An object of class 'Roger' isa 'Roger'
        ok 5
        1..5
    ok 2 - return value
    ok 3
    1..3
ok 4 - object
# Subtest: object
    # Subtest: argument
        ok 1
        ok 2
        1..2
    ok 1 - argument
    # Subtest: return value
        ok 1
        ok 2 - An object of class 'Roger' isa 'Roger'
        ok 3
        ok 4 - An object of class 'Roger' isa 'Roger'
        ok 5
        1..5
    ok 2 - return value
    ok 3
    1..3
ok 5 - object
1..5
ok
t/type_record.t .......................... 
# record size = 20
# Subtest: not a reference
    # Subtest: in
        # packed size = 20
        ok 1 - get_value($packed) = 42
        ok 2 - get_name($packed) = hi there
        ok 3 - is_null(undef)
        1..3
    ok 1 - in
    # Subtest: out
        # packed size = 20
        ok 1 - get_value($packed) = 47
        ok 2 - get_value($packed) = platypus
        ok 3 - null() = undef
        1..3
    ok 2 - out
    1..2
ok 1 - not a reference
# Subtest: return null
    ok 1
    ok 2
    1..2
ok 2 - return null
# Subtest: is a reference
    # Subtest: in
        # packed size = 20
        ok 1 - get_value(\$packed) = 42
        ok 2 - get_name(\$packed) = hi there
        ok 3 - is_null(\undef)
        1..3
    ok 1 - in
    # Subtest: out
        # 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
        1..5
    ok 2 - out
    1..2
ok 3 - is a reference
# Subtest: closure
    ok 1 - allow record type as arg
    ok 2
    ok 3
    ok 4
    ok 5
    ok 6
    ok 7
    # error = record is read-only at t/type_record.t line 137.
    ok 8
    ok 9
    ok 10
    ok 11
    # error = record is read-only at t/type_record.t line 146.
    ok 12
    ok 13
    # error = record is read-only at t/type_record.t line 153.
    ok 14
    ok 15
    ok 16
    # error = record is read-only at t/type_record.t line 162.
    ok 17
    ok 18
    ok 19
    # error = record is read-only at t/type_record.t line 171.
    ok 20
    ok 21
    # error = record is read-only at t/type_record.t line 178.
    ok 22
    ok 23
    # error = record is read-only at t/type_record.t line 186.
    ok 24
    ok 25
    ok 26
    # error = record is read-only at t/type_record.t line 195.
    ok 27
    ok 28
    ok 29
    ok 30
    ok 31
    ok 32
    1..32
ok 4 - closure
# Subtest: api = 1 fixed string
    ok 1
    ok 2
    ok 3
    1..3
ok 5 - api = 1 fixed string
1..5
ok
t/type_record_value.t .................... 
# Subtest: is a reference
    # Subtest: argument
        # Subtest: bad
            ok 1
            ok 2
            ok 3
            1..3
        ok 1 - bad
        # Subtest: good
            ok 1
            ok 2
            1..2
        ok 2 - good
        1..2
    ok 1 - argument
    # Subtest: return value
        # Subtest: function object
            ok 1
            ok 2
            1..2
        ok 1 - function object
        # Subtest: xsub_ref
            ok 1
            ok 2
            1..2
        ok 2 - xsub_ref
        # Subtest: attach
            ok 1
            ok 2
            1..2
        ok 3 - attach
        1..3
    ok 2 - return value
    1..2
ok 1 - is a reference
1..1
ok
t/type_sint16.t .......................... 
# Subtest: api = 0
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 1 - api = 0
# Subtest: api = 1
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 2 - api = 1
# Subtest: api = 2
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 3 - api = 2
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 4 - object
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 5 - object
1..5
ok
t/type_sint32.t .......................... 
# Subtest: api = 0
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 1 - api = 0
# Subtest: api = 1
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 2 - api = 1
# Subtest: api = 2
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 3 - api = 2
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 4 - object
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 5 - object
1..5
ok
t/type_sint64.t .......................... 
# Subtest: api = 0
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 1 - api = 0
# Subtest: api = 1
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 2 - api = 1
# Subtest: api = 2
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 3 - api = 2
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 4 - object
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 5 - object
1..5
ok
t/type_sint8.t ........................... 
# Subtest: api = 0
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 1 - api = 0
# Subtest: api = 1
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 2 - api = 1
# Subtest: api = 2
    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
        ok 1
        ok 2 - custom_add(-2,-1) = -5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(-2,-1) = -6
        1..2
    ok 18 - custom type output
    ok 19 - closure_pointer_is_null() = 1
    1..19
ok 3 - api = 2
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 4 - object
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 5 - object
1..5
ok
t/type_string.t .......................... 
# Subtest: api = 0
    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 18
    ok 19
    ok 20
    ok 21
    ok 22
    ok 23
    ok 24
    ok 25
    # Subtest: fixed length input
        # Subtest: with default
            ok 1 - a2(0) = foo
            ok 2 - a2(0) = bar
            ok 3 - a2(0) = baz
            ok 4 - a2(0) = undef
            ok 5 - a2(0) = five
            1..5
        ok 1 - with default
        1..1
    ok 26 - fixed length input
    # Subtest: variable length input
        ok 1 - get_string_from_array(@list, 0) = foo
        ok 2 - get_string_from_array(@list, 1) = bar
        ok 3 - get_string_from_array(@list, 2) = baz
        ok 4 - get_string_from_array(@list, 3) = undef
        1..4
    ok 27 - variable length input
    # Subtest: fixed length return
        ok 1 - returns null
        ok 2 - returns with just strings
        ok 3 - returns with NULL/undef in the middle
        1..3
    ok 28 - fixed length return
    # Subtest: null terminated return
        ok 1 - returns null
        ok 2
        ok 3
        ok 4
        1..4
    ok 29 - null terminated return
    # Subtest: argument update
        ok 1
        1..1
    ok 30 - argument update
    # Subtest: write to string
        ok 1
        1..1
    ok 31 - write to string
    ok 32
    1..32
ok 1 - api = 0
# Subtest: api = 1
    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 18
    ok 19
    ok 20
    ok 21
    ok 22
    ok 23
    ok 24
    ok 25
    # Subtest: fixed length input
        # Subtest: with default
            ok 1 - a2(0) = foo
            ok 2 - a2(0) = bar
            ok 3 - a2(0) = baz
            ok 4 - a2(0) = undef
            ok 5 - a2(0) = five
            1..5
        ok 1 - with default
        1..1
    ok 26 - fixed length input
    # Subtest: variable length input
        ok 1 - get_string_from_array(@list, 0) = foo
        ok 2 - get_string_from_array(@list, 1) = bar
        ok 3 - get_string_from_array(@list, 2) = baz
        ok 4 - get_string_from_array(@list, 3) = undef
        1..4
    ok 27 - variable length input
    # Subtest: fixed length return
        ok 1 - returns null
        ok 2 - returns with just strings
        ok 3 - returns with NULL/undef in the middle
        1..3
    ok 28 - fixed length return
    # Subtest: null terminated return
        ok 1 - returns null
        ok 2
        ok 3
        ok 4
        1..4
    ok 29 - null terminated return
    # Subtest: argument update
        ok 1
        1..1
    ok 30 - argument update
    # Subtest: write to string
        ok 1
        1..1
    ok 31 - write to string
    ok 32
    1..32
ok 2 - api = 1
# Subtest: api = 2
    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 18
    ok 19
    ok 20
    ok 21
    ok 22
    ok 23
    ok 24
    ok 25
    # Subtest: fixed length input
        # Subtest: with default
            ok 1 - a2(0) = foo
            ok 2 - a2(0) = bar
            ok 3 - a2(0) = baz
            ok 4 - a2(0) = undef
            ok 5 - a2(0) = five
            1..5
        ok 1 - with default
        1..1
    ok 26 - fixed length input
    # Subtest: variable length input
        ok 1 - get_string_from_array(@list, 0) = foo
        ok 2 - get_string_from_array(@list, 1) = bar
        ok 3 - get_string_from_array(@list, 2) = baz
        ok 4 - get_string_from_array(@list, 3) = undef
        1..4
    ok 27 - variable length input
    # Subtest: fixed length return
        ok 1 - returns null
        ok 2 - returns with just strings
        ok 3 - returns with NULL/undef in the middle
        1..3
    ok 28 - fixed length return
    # Subtest: null terminated return
        ok 1 - returns null
        ok 2
        ok 3
        ok 4
        1..4
    ok 29 - null terminated return
    # Subtest: argument update
        ok 1
        1..1
    ok 30 - argument update
    # Subtest: write to string
        ok 1
        1..1
    ok 31 - write to string
    ok 32
    1..32
ok 3 - api = 2
1..3
ok
t/type_uint16.t .......................... 
# Subtest: api = 0
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 1 - api = 0
# Subtest: api = 1
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 2 - api = 1
# Subtest: api = 2
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 3 - api = 2
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 4 - object
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 5 - object
1..5
ok
t/type_uint32.t .......................... 
# Subtest: api = 0
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 1 - api = 0
# Subtest: api = 1
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 2 - api = 1
# Subtest: api = 2
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 3 - api = 2
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 4 - object
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 5 - object
1..5
ok
t/type_uint64.t .......................... 
# Subtest: api = 0
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 1 - api = 0
# Subtest: api = 1
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 2 - api = 1
# Subtest: api = 2
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 3 - api = 2
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 4 - object
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 5 - object
1..5
ok
t/type_uint8.t ........................... 
# Subtest: api = 0
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 1 - api = 0
# Subtest: api = 1
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 2 - api = 1
# Subtest: api = 2
    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
        ok 1
        ok 2 - custom_add(2,1) = 5
        1..2
    ok 17 - custom type input
    # Subtest: custom type output
        ok 1
        ok 2 - custom_add2(1,1) = 4
        1..2
    ok 18 - custom type output
    # Subtest: custom type post
        ok 1
        ok 2 - custom_add3(1,2) = 3
        1..2
    ok 19 - custom type post
    ok 20 - closure_pointer_is_null() = 1
    1..20
ok 3 - api = 2
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 4 - object
# Subtest: object
    # Subtest: argument
        ok 1
        1..1
    ok 1 - argument
    # Subtest: return value
        ok 1 - An object of class 'Roger' isa 'Roger'
        ok 2
        1..2
    ok 2 - return value
    1..2
ok 5 - object
1..5
ok
All tests successful.
Files=69, Tests=372, 92 wallclock secs ( 3.42 usr  0.80 sys + 80.12 cusr  8.29 csys = 92.63 CPU)
Result: PASS
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   create-stamp debian/debhelper-build-stamp
   dh_testroot -a
   dh_prep -a
   debian/rules override_dh_auto_install
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_install
	make -j4 install DESTDIR=/<<PKGBUILDDIR>>/debian/libffi-platypus-perl AM_UPDATE_INFO_DIR=no PREFIX=/usr
make[2]: Entering directory '/<<PKGBUILDDIR>>'
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- lib/FFI/Platypus.bs blib/arch/auto/FFI/Platypus/Platypus.bs 644
Manifying 33 pod documents
Manifying 7 pod documents
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Platypus.so
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Memory/Memory.txt
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Record/Meta/Meta.txt
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Constant/Constant.txt
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/config.pl
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/probe/probe.pl
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/probe/bin/dlrun
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/probe/src/dlrun.c
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/include/ffi_platypus_config.h
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/include/ffi_platypus_bundle.h
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/lib/libplfill.so
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Probe.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/typemap
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Temp.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/Platform.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/MM.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/File/C.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/File/CXX.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/File/Base.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/File/Object.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/File/Library.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Declare.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/API.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Closure.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/TypeParser.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Record.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Bundle.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/DL.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Buffer.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Function.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Constant.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Lang.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Internal.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Memory.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Type.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/ShareConfig.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Legacy.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Lang/ASM.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Lang/Win32.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Lang/C.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Type/StringArray.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Type/PointerSizeBuffer.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Type/StringPointer.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/TypeParser/Version1.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/TypeParser/Version0.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Record/TieArray.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Record/Meta.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Probe/Runner.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Probe/Runner/Result.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Probe/Runner/Builder.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Build.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Build::File::Base.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Build::File::C.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Build::File::CXX.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Build::File::Library.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Build::File::Object.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Build::MM.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Build::Platform.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::API.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Buffer.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Bundle.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Closure.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Constant.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::DL.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Declare.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Function.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Internal.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Lang.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Lang::ASM.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Lang::C.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Lang::Win32.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Legacy.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Memory.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Record.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Record::Meta.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Record::TieArray.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::ShareConfig.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Type.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Type::PointerSizeBuffer.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Type::StringArray.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::Type::StringPointer.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::TypeParser.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::TypeParser::Version0.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::TypeParser::Version1.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Probe.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Probe::Runner.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Probe::Runner::Builder.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Probe::Runner::Result.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Temp.3pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
# contentless manpage
rm -f -v /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::ShareConfig.3pm
removed '/<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Platypus::ShareConfig.3pm'
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_installdocs -a
   dh_installchangelogs -a
   debian/rules override_dh_installexamples
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_installexamples
sed -i '1s|^#!perl|#!/usr/bin/perl|' /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/doc/libffi-platypus-perl/examples/*.pl
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_installman -a
   dh_lintian -a
   dh_perl -a
   dh_link -a
   dh_strip_nondeterminism -a
   dh_compress -a
   dh_fixperms -a
   dh_missing -a
   dh_dwz -a -a
   dh_strip -a -a
   dh_makeshlibs -a -a
   dh_shlibdeps -a -a
   dh_installdeb -a
   dh_gencontrol -a
   dh_md5sums -a
   dh_builddeb -a
dpkg-deb: building package 'libffi-platypus-perl' in '../libffi-platypus-perl_1.32-1_armhf.deb'.
dpkg-deb: building package 'libffi-platypus-perl-dbgsym' in '../libffi-platypus-perl-dbgsym_1.32-1_armhf.deb'.
 dpkg-genbuildinfo --build=any
 dpkg-genchanges --build=any -mRaspbian wandboard test autobuilder <root@raspbian.org> >../libffi-platypus-perl_1.32-1_armhf.changes
dpkg-genchanges: info: binary-only arch-specific upload (source code and arch-indep packages not included)
 dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
--------------------------------------------------------------------------------
Build finished at 2020-09-27T05:15:17Z

Finished
--------

I: Built successfully

+------------------------------------------------------------------------------+
| Post Build Chroot                                                            |
+------------------------------------------------------------------------------+


+------------------------------------------------------------------------------+
| Changes                                                                      |
+------------------------------------------------------------------------------+


libffi-platypus-perl_1.32-1_armhf.changes:
------------------------------------------

Format: 1.8
Date: Fri, 25 Sep 2020 14:58:49 +0200
Source: libffi-platypus-perl
Binary: libffi-platypus-perl libffi-platypus-perl-dbgsym
Architecture: armhf
Version: 1.32-1
Distribution: bullseye-staging
Urgency: medium
Maintainer: Raspbian wandboard test autobuilder <root@raspbian.org>
Changed-By: gregor herrmann <gregoa@debian.org>
Description:
 libffi-platypus-perl - module to create Perl bindings to non-Perl libraries with FFI
Changes:
 libffi-platypus-perl (1.32-1) unstable; urgency=medium
 .
   * Import upstream version 1.32.
Checksums-Sha1:
 f43aa59326a5d2fcf4261d7a3c93bc4ab0c2808f 155940 libffi-platypus-perl-dbgsym_1.32-1_armhf.deb
 06a6840994dc25cf7e7314a8c644c0bbf02b893b 4770 libffi-platypus-perl_1.32-1_armhf.buildinfo
 0e7bf0da911b280b5847f8c3dfa83a37b15b293c 281248 libffi-platypus-perl_1.32-1_armhf.deb
Checksums-Sha256:
 dad78f47dda510256d9146ce8aa1226292c7a2370d79ae19a7cc161dfbd212b2 155940 libffi-platypus-perl-dbgsym_1.32-1_armhf.deb
 d5ec02b936108526328f99e309a7d0a9d829c63d7b42f9438209b191fc3dde39 4770 libffi-platypus-perl_1.32-1_armhf.buildinfo
 dad3c5822fdd6264baee20722d0afe358b8dd89479316bce169e58665b7a7326 281248 libffi-platypus-perl_1.32-1_armhf.deb
Files:
 37ba2957625bc1ab34155a2b727521e7 155940 debug optional libffi-platypus-perl-dbgsym_1.32-1_armhf.deb
 4d44ba3c10d7c2dec275fbc8ee55e01e 4770 perl optional libffi-platypus-perl_1.32-1_armhf.buildinfo
 640d8c9ffda48f9f5b4a25860f885d4b 281248 perl optional libffi-platypus-perl_1.32-1_armhf.deb

+------------------------------------------------------------------------------+
| Package contents                                                             |
+------------------------------------------------------------------------------+


libffi-platypus-perl-dbgsym_1.32-1_armhf.deb
--------------------------------------------

 new Debian package, version 2.0.
 size 155940 bytes: control archive=700 bytes.
     494 bytes,    12 lines      control              
     418 bytes,     4 lines      md5sums              
 Package: libffi-platypus-perl-dbgsym
 Source: libffi-platypus-perl
 Version: 1.32-1
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
 Installed-Size: 189
 Depends: libffi-platypus-perl (= 1.32-1)
 Section: debug
 Priority: optional
 Description: debug symbols for libffi-platypus-perl
 Build-Ids: 1141e989f83c5fc232caddc6d9b6ba3c96d45f8a 6fe7b9f3f73560d8cefaa108bacfebc7a0fdb5c5 9538ae716597d8d7f1a406a03579463f0ebb9243

drwxr-xr-x root/root         0 2020-09-25 12:58 ./
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/debug/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/debug/.build-id/11/
-rw-r--r-- root/root      7620 2020-09-25 12:58 ./usr/lib/debug/.build-id/11/41e989f83c5fc232caddc6d9b6ba3c96d45f8a.debug
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/debug/.build-id/6f/
-rw-r--r-- root/root    159796 2020-09-25 12:58 ./usr/lib/debug/.build-id/6f/e7b9f3f73560d8cefaa108bacfebc7a0fdb5c5.debug
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/debug/.build-id/95/
-rw-r--r-- root/root      8148 2020-09-25 12:58 ./usr/lib/debug/.build-id/95/38ae716597d8d7f1a406a03579463f0ebb9243.debug
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/debug/.dwz/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/debug/.dwz/arm-linux-gnueabihf/
-rw-r--r-- root/root      1968 2020-09-25 12:58 ./usr/lib/debug/.dwz/arm-linux-gnueabihf/libffi-platypus-perl.debug
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/doc/
lrwxrwxrwx root/root         0 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl-dbgsym -> libffi-platypus-perl


libffi-platypus-perl_1.32-1_armhf.deb
-------------------------------------

 new Debian package, version 2.0.
 size 281248 bytes: control archive=4432 bytes.
     884 bytes,    16 lines      control              
   12868 bytes,   138 lines      md5sums              
 Package: libffi-platypus-perl
 Version: 1.32-1
 Architecture: armhf
 Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
 Installed-Size: 814
 Depends: perl (>= 5.30.3-4), perlapi-5.30.3, libc6 (>= 2.4), libffi7 (>= 3.3~20180313), libcapture-tiny-perl, libffi-checklib-perl, libscalar-list-utils-perl (>= 1:1.45)
 Section: perl
 Priority: optional
 Homepage: https://metacpan.org/release/FFI-Platypus
 Description: module to create Perl bindings to non-Perl libraries with FFI
  FFI::Platypus is a library for creating interfaces to machine code libraries
  written in languages like C, C++, Fortran, Rust, Pascal. Essentially anything
  that gets compiled into machine code. This implementation uses libffi to
  accomplish this task. libffi is battle tested by a number of other scripting
  and virtual machine languages, such as Python and Ruby to serve a similar
  role.

drwxr-xr-x root/root         0 2020-09-25 12:58 ./
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/
-rw-r--r-- root/root     13583 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build.pm
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/File/
-rw-r--r-- root/root      7013 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/File/Base.pm
-rw-r--r-- root/root      4505 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/File/C.pm
-rw-r--r-- root/root      1429 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/File/CXX.pm
-rw-r--r-- root/root      1741 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/File/Library.pm
-rw-r--r-- root/root      1488 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/File/Object.pm
-rw-r--r-- root/root      8708 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/MM.pm
-rw-r--r-- root/root     12374 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Build/Platform.pm
-rw-r--r-- root/root     73183 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus.pm
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/
-rw-r--r-- root/root      5839 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/API.pm
-rw-r--r-- root/root      9862 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Buffer.pm
-rw-r--r-- root/root     16018 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Bundle.pm
-rw-r--r-- root/root      3489 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Closure.pm
-rw-r--r-- root/root      4695 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Constant.pm
-rw-r--r-- root/root      5599 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/DL.pm
-rw-r--r-- root/root     11076 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Declare.pm
-rw-r--r-- root/root      3867 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Function.pm
-rw-r--r-- root/root      1320 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Internal.pm
-rw-r--r-- root/root      1472 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Lang.pm
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Lang/
-rw-r--r-- root/root      2009 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Lang/ASM.pm
-rw-r--r-- root/root      1900 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Lang/C.pm
-rw-r--r-- root/root      6891 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Lang/Win32.pm
-rw-r--r-- root/root      2232 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Legacy.pm
-rw-r--r-- root/root      5027 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Memory.pm
-rw-r--r-- root/root     11617 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Record.pm
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Record/
-rw-r--r-- root/root      2593 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Record/Meta.pm
-rw-r--r-- root/root      2690 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Record/TieArray.pm
-rw-r--r-- root/root      1852 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/ShareConfig.pm
-rw-r--r-- root/root     41626 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Type.pm
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Type/
-rw-r--r-- root/root      2857 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Type/PointerSizeBuffer.pm
-rw-r--r-- root/root      6307 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Type/StringArray.pm
-rw-r--r-- root/root      3297 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/Type/StringPointer.pm
-rw-r--r-- root/root      3108 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/TypeParser.pm
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/TypeParser/
-rw-r--r-- root/root      6672 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/TypeParser/Version0.pm
-rw-r--r-- root/root     12137 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Platypus/TypeParser/Version1.pm
-rw-r--r-- root/root     12709 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Probe.pm
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Probe/
-rw-r--r-- root/root      3217 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Probe/Runner.pm
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Probe/Runner/
-rw-r--r-- root/root      9418 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Probe/Runner/Builder.pm
-rw-r--r-- root/root      1668 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Probe/Runner/Result.pm
-rw-r--r-- root/root      2282 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/Temp.pm
-rw-r--r-- root/root      1553 2020-09-21 10:25 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/FFI/typemap
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Constant/
-rw-r--r-- root/root        57 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Constant/Constant.txt
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Memory/
-rw-r--r-- root/root        57 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Memory/Memory.txt
-rw-r--r-- root/root    169364 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Platypus.so
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Record/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Record/Meta/
-rw-r--r-- root/root        57 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/FFI/Platypus/Record/Meta/Meta.txt
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/
-rw-r--r-- root/root      2206 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/config.pl
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/include/
-rw-r--r-- root/root       798 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/include/ffi_platypus_bundle.h
-rw-r--r-- root/root       990 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/include/ffi_platypus_config.h
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/lib/
-rw-r--r-- root/root      5520 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/lib/libplfill.so
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/probe/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/probe/bin/
-rwxr-xr-x root/root      5684 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/probe/bin/dlrun
-rw-r--r-- root/root      5412 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/probe/probe.pl
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/probe/src/
-rw-r--r-- root/root      1661 2020-09-25 12:58 ./usr/lib/arm-linux-gnueabihf/perl5/5.30/auto/share/dist/FFI-Platypus/probe/src/dlrun.c
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/doc/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/
-rw-r--r-- root/root      2337 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/CONTRIBUTING.gz
-rw-r--r-- root/root      1188 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/Changes.FFI-Build
-rw-r--r-- root/root       250 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/Changes.FFI-Platypus-Type-StringArray
-rw-r--r-- root/root      2371 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/changelog.Debian.gz
-rw-r--r-- root/root     11082 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/changelog.gz
-rw-r--r-- root/root      1344 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/copyright
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/
-rw-r--r-- root/root      3254 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/archive.pl
-rw-r--r-- root/root      2943 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/archive_object.pl
-rw-r--r-- root/root       343 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/attach_from_pointer.pl
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/ffi/
-rw-r--r-- root/root       433 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/ffi/const.c
-rw-r--r-- root/root       214 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/ffi/myheader.h
drwxr-xr-x root/root         0 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/lib/
-rw-r--r-- root/root       130 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/lib/Const.pm
drwxr-xr-x root/root         0 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/t/
-rw-r--r-- root/root       184 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/t/const.t
drwxr-xr-x root/root         0 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/
-rw-r--r-- root/root       269 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/Makefile.PL
drwxr-xr-x root/root         0 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/ffi/
-rw-r--r-- root/root       498 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/ffi/foo.c
drwxr-xr-x root/root         0 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/lib/
-rw-r--r-- root/root       545 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/lib/Foo.pm
drwxr-xr-x root/root         0 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/t/
-rw-r--r-- root/root       170 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/t/foo.t
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/
drwxr-xr-x root/root         0 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/ffi/
-rw-r--r-- root/root       454 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/ffi/init.c
drwxr-xr-x root/root         0 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/lib/
-rw-r--r-- root/root       380 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/lib/Init.pm
drwxr-xr-x root/root         0 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/t/
-rw-r--r-- root/root        88 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/t/init.t
-rw-r--r-- root/root      2064 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/bzip2.pl
-rw-r--r-- root/root       405 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/char.pl
-rw-r--r-- root/root       431 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/closure-opaque.pl
-rw-r--r-- root/root       366 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/closure.c
-rw-r--r-- root/root       492 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/closure.pl
-rw-r--r-- root/root       995 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/file_handle.pl
-rw-r--r-- root/root      1953 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/get_uptime.pl
-rw-r--r-- root/root       204 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/getpid.pl
-rw-r--r-- root/root       212 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/integer.pl
-rw-r--r-- root/root       272 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/list_integer_types.pl
-rw-r--r-- root/root       325 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/malloc.pl
-rw-r--r-- root/root       388 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/math.pl
-rw-r--r-- root/root      1070 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/notify.pl
-rw-r--r-- root/root       235 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/pipe.pl
-rw-r--r-- root/root       430 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/string.pl
-rw-r--r-- root/root      1033 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/tcod.pl
-rw-r--r-- root/root      1808 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/time.pl
-rw-r--r-- root/root      2265 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/time_oo.pl
-rw-r--r-- root/root       879 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/time_record.pl
-rw-r--r-- root/root      1078 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/time_struct.pl
-rw-r--r-- root/root       607 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/uuid.pl
-rw-r--r-- root/root       137 2020-09-21 10:25 ./usr/share/doc/libffi-platypus-perl/examples/var_array.c
-rw-r--r-- root/root       231 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/var_array.pl
-rw-r--r-- root/root       242 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/win32_beep.pl
-rw-r--r-- root/root      1546 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/win32_getSystemTime.pl
-rw-r--r-- root/root      2319 2020-09-25 12:58 ./usr/share/doc/libffi-platypus-perl/examples/zmq3.pl
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/lintian/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       195 2020-09-25 12:58 ./usr/share/lintian/overrides/libffi-platypus-perl
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/man/
drwxr-xr-x root/root         0 2020-09-25 12:58 ./usr/share/man/man3/
-rw-r--r-- root/root      3935 2020-09-25 12:58 ./usr/share/man/man3/FFI::Build.3pm.gz
-rw-r--r-- root/root      2973 2020-09-25 12:58 ./usr/share/man/man3/FFI::Build::File::Base.3pm.gz
-rw-r--r-- root/root      1695 2020-09-25 12:58 ./usr/share/man/man3/FFI::Build::File::C.3pm.gz
-rw-r--r-- root/root      1703 2020-09-25 12:58 ./usr/share/man/man3/FFI::Build::File::CXX.3pm.gz
-rw-r--r-- root/root      1907 2020-09-25 12:58 ./usr/share/man/man3/FFI::Build::File::Library.3pm.gz
-rw-r--r-- root/root      1734 2020-09-25 12:58 ./usr/share/man/man3/FFI::Build::File::Object.3pm.gz
-rw-r--r-- root/root      2601 2020-09-25 12:58 ./usr/share/man/man3/FFI::Build::MM.3pm.gz
-rw-r--r-- root/root      2988 2020-09-25 12:58 ./usr/share/man/man3/FFI::Build::Platform.3pm.gz
-rw-r--r-- root/root     22325 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus.3pm.gz
-rw-r--r-- root/root      2987 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::API.3pm.gz
-rw-r--r-- root/root      4758 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Buffer.3pm.gz
-rw-r--r-- root/root      6098 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Bundle.3pm.gz
-rw-r--r-- root/root      2292 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Closure.3pm.gz
-rw-r--r-- root/root      2583 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Constant.3pm.gz
-rw-r--r-- root/root      3547 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::DL.3pm.gz
-rw-r--r-- root/root      4667 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Declare.3pm.gz
-rw-r--r-- root/root      2106 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Function.3pm.gz
-rw-r--r-- root/root      1715 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Internal.3pm.gz
-rw-r--r-- root/root      1826 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Lang.3pm.gz
-rw-r--r-- root/root      2102 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Lang::ASM.3pm.gz
-rw-r--r-- root/root      1959 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Lang::C.3pm.gz
-rw-r--r-- root/root      1971 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Lang::Win32.3pm.gz
-rw-r--r-- root/root      1625 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Legacy.3pm.gz
-rw-r--r-- root/root      2714 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Memory.3pm.gz
-rw-r--r-- root/root      4430 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Record.3pm.gz
-rw-r--r-- root/root      1674 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Record::Meta.3pm.gz
-rw-r--r-- root/root      2139 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Record::TieArray.3pm.gz
-rw-r--r-- root/root     15202 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Type.3pm.gz
-rw-r--r-- root/root      2061 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Type::PointerSizeBuffer.3pm.gz
-rw-r--r-- root/root      2900 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Type::StringArray.3pm.gz
-rw-r--r-- root/root      2070 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::Type::StringPointer.3pm.gz
-rw-r--r-- root/root      1655 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::TypeParser.3pm.gz
-rw-r--r-- root/root      2373 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::TypeParser::Version0.3pm.gz
-rw-r--r-- root/root      1974 2020-09-25 12:58 ./usr/share/man/man3/FFI::Platypus::TypeParser::Version1.3pm.gz
-rw-r--r-- root/root      2456 2020-09-25 12:58 ./usr/share/man/man3/FFI::Probe.3pm.gz
-rw-r--r-- root/root      2115 2020-09-25 12:58 ./usr/share/man/man3/FFI::Probe::Runner.3pm.gz
-rw-r--r-- root/root      2493 2020-09-25 12:58 ./usr/share/man/man3/FFI::Probe::Runner::Builder.3pm.gz
-rw-r--r-- root/root      1814 2020-09-25 12:58 ./usr/share/man/man3/FFI::Probe::Runner::Result.3pm.gz
-rw-r--r-- root/root      1625 2020-09-25 12:58 ./usr/share/man/man3/FFI::Temp.3pm.gz


+------------------------------------------------------------------------------+
| Post Build                                                                   |
+------------------------------------------------------------------------------+


+------------------------------------------------------------------------------+
| Cleanup                                                                      |
+------------------------------------------------------------------------------+

Purging /<<BUILDDIR>>
Not cleaning session: cloned chroot in use

+------------------------------------------------------------------------------+
| Summary                                                                      |
+------------------------------------------------------------------------------+

Build Architecture: armhf
Build-Space: 7352
Build-Time: 277
Distribution: bullseye-staging
Host Architecture: armhf
Install-Time: 196
Job: libffi-platypus-perl_1.32-1
Machine Architecture: armhf
Package: libffi-platypus-perl
Package-Time: 521
Source-Version: 1.32-1
Space: 7352
Status: successful
Version: 1.32-1
--------------------------------------------------------------------------------
Finished at 2020-09-27T05:15:17Z
Build needed 00:08:41, 7352k disc space