libffi-platypus-perl →
2.00-1 →
armhf → 2022-08-23 04:54:18
sbuild (Debian sbuild) 0.78.1 (09 February 2019) on test2019
+==============================================================================+
| libffi-platypus-perl 2.00-1 (armhf) Tue, 23 Aug 2022 04:45:24 +0000 |
+==============================================================================+
Package: libffi-platypus-perl
Version: 2.00-1
Source Version: 2.00-1
Distribution: bookworm-staging
Machine Architecture: armhf
Host Architecture: armhf
Build Architecture: armhf
Build Type: any
I: NOTICE: Log filtering will replace 'var/run/schroot/mount/bookworm-staging-armhf-sbuild-dd03184d-228c-4521-a2fe-2925d4d73e39' with '<<CHROOT>>'
I: NOTICE: Log filtering will replace 'build/libffi-platypus-perl-LSDpcE/resolver-j1Ps2j' with '<<RESOLVERDIR>>'
+------------------------------------------------------------------------------+
| Update chroot |
+------------------------------------------------------------------------------+
Get:1 http://172.17.4.1/private bookworm-staging InRelease [11.3 kB]
Get:2 http://172.17.4.1/private bookworm-staging/main Sources [13.2 MB]
Get:3 http://172.17.4.1/private bookworm-staging/main armhf Packages [14.1 MB]
Fetched 27.4 MB in 20s (1371 kB/s)
Reading package lists...
W: http://172.17.4.1/private/dists/bookworm-staging/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
+------------------------------------------------------------------------------+
| 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 401 kB of source archives.
Get:1 http://172.17.4.1/private bookworm-staging/main libffi-platypus-perl 2.00-1 (dsc) [2688 B]
Get:2 http://172.17.4.1/private bookworm-staging/main libffi-platypus-perl 2.00-1 (tar) [394 kB]
Get:3 http://172.17.4.1/private bookworm-staging/main libffi-platypus-perl 2.00-1 (diff) [4836 B]
Fetched 401 kB in 0s (2420 kB/s)
Download complete and in download only mode
I: NOTICE: Log filtering will replace 'build/libffi-platypus-perl-LSDpcE/libffi-platypus-perl-2.00' with '<<PKGBUILDDIR>>'
I: NOTICE: Log filtering will replace 'build/libffi-platypus-perl-LSDpcE' with '<<BUILDDIR>>'
+------------------------------------------------------------------------------+
| Install package build dependencies |
+------------------------------------------------------------------------------+
Setup apt archive
-----------------
Merged Build-Depends: debhelper-compat (= 13), libcapture-tiny-perl, libextutils-parsexs-perl, libffi-checklib-perl, libffi-dev, libjson-pp-perl, libscalar-list-utils-perl, libtest-simple-perl, libtest2-suite-perl (>= 0.000121), perl-xs-dev, perl, pkg-config | libpkgconfig-perl, build-essential, fakeroot
Filtered Build-Depends: debhelper-compat (= 13), libcapture-tiny-perl, libextutils-parsexs-perl, libffi-checklib-perl, libffi-dev, libjson-pp-perl, libscalar-list-utils-perl, libtest-simple-perl, libtest2-suite-perl (>= 0.000121), perl-xs-dev, perl, pkg-config, build-essential, fakeroot
dpkg-deb: building package 'sbuild-build-depends-main-dummy' in '/<<RESOLVERDIR>>/apt_archive/sbuild-build-depends-main-dummy.deb'.
Ign:1 copy:/<<RESOLVERDIR>>/apt_archive ./ InRelease
Get:2 copy:/<<RESOLVERDIR>>/apt_archive ./ Release [957 B]
Ign:3 copy:/<<RESOLVERDIR>>/apt_archive ./ Release.gpg
Get:4 copy:/<<RESOLVERDIR>>/apt_archive ./ Sources [492 B]
Get:5 copy:/<<RESOLVERDIR>>/apt_archive ./ Packages [558 B]
Fetched 2007 B in 0s (28.7 kB/s)
Reading package lists...
Reading package lists...
Install main 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:
krb5-locales libpam-cap
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
autoconf automake autopoint autotools-dev bsdextrautils debhelper
dh-autoreconf dh-strip-nondeterminism dwz file gettext gettext-base
groff-base intltool-debian libarchive-zip-perl libcapture-tiny-perl
libdebhelper-perl libelf1 libffi-checklib-perl libffi-dev
libfile-stripnondeterminism-perl libglib2.0-0 libicu71 libimporter-perl
libmagic-mgc libmagic1 libmodule-pluggable-perl libperl-dev libpipeline1
libscope-guard-perl libsub-info-perl libsub-override-perl libterm-table-perl
libtest2-suite-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 libmodule-runtime-perl libunicode-linebreak-perl libltdl-dev
libmail-sendmail-perl
The following NEW packages will be installed:
autoconf automake autopoint autotools-dev bsdextrautils debhelper
dh-autoreconf dh-strip-nondeterminism dwz file gettext gettext-base
groff-base intltool-debian libarchive-zip-perl libcapture-tiny-perl
libdebhelper-perl libelf1 libffi-checklib-perl libffi-dev
libfile-stripnondeterminism-perl libglib2.0-0 libicu71 libimporter-perl
libmagic-mgc libmagic1 libmodule-pluggable-perl libperl-dev libpipeline1
libscope-guard-perl libsub-info-perl libsub-override-perl libterm-table-perl
libtest2-suite-perl libtool libuchardet0 libxml2 m4 man-db pkg-config
po-debconf sbuild-build-depends-main-dummy
0 upgraded, 42 newly installed, 0 to remove and 11 not upgraded.
Need to get 21.0 MB of archives.
After this operation, 78.9 MB of additional disk space will be used.
Get:1 copy:/<<RESOLVERDIR>>/apt_archive ./ sbuild-build-depends-main-dummy 0.invalid.0 [980 B]
Get:2 http://172.17.4.1/private bookworm-staging/main armhf libuchardet0 armhf 0.0.7-1 [65.0 kB]
Get:3 http://172.17.4.1/private bookworm-staging/main armhf groff-base armhf 1.22.4-8 [793 kB]
Get:4 http://172.17.4.1/private bookworm-staging/main armhf bsdextrautils armhf 2.38.1-1 [137 kB]
Get:5 http://172.17.4.1/private bookworm-staging/main armhf libpipeline1 armhf 1.5.6-2 [34.2 kB]
Get:6 http://172.17.4.1/private bookworm-staging/main armhf man-db armhf 2.10.2-1 [1362 kB]
Get:7 http://172.17.4.1/private bookworm-staging/main armhf libmagic-mgc armhf 1:5.41-4 [295 kB]
Get:8 http://172.17.4.1/private bookworm-staging/main armhf libmagic1 armhf 1:5.41-4 [120 kB]
Get:9 http://172.17.4.1/private bookworm-staging/main armhf file armhf 1:5.41-4 [65.8 kB]
Get:10 http://172.17.4.1/private bookworm-staging/main armhf gettext-base armhf 0.21-8 [171 kB]
Get:11 http://172.17.4.1/private bookworm-staging/main armhf m4 armhf 1.4.19-1 [260 kB]
Get:12 http://172.17.4.1/private bookworm-staging/main armhf autoconf all 2.71-2 [343 kB]
Get:13 http://172.17.4.1/private bookworm-staging/main armhf autotools-dev all 20220109.1 [51.6 kB]
Get:14 http://172.17.4.1/private bookworm-staging/main armhf automake all 1:1.16.5-1.3 [823 kB]
Get:15 http://172.17.4.1/private bookworm-staging/main armhf autopoint all 0.21-8 [510 kB]
Get:16 http://172.17.4.1/private bookworm-staging/main armhf libdebhelper-perl all 13.9 [195 kB]
Get:17 http://172.17.4.1/private bookworm-staging/main armhf libtool all 2.4.7-4 [526 kB]
Get:18 http://172.17.4.1/private bookworm-staging/main armhf dh-autoreconf all 20 [17.1 kB]
Get:19 http://172.17.4.1/private bookworm-staging/main armhf libarchive-zip-perl all 1.68-1 [104 kB]
Get:20 http://172.17.4.1/private bookworm-staging/main armhf libsub-override-perl all 0.09-3 [10.4 kB]
Get:21 http://172.17.4.1/private bookworm-staging/main armhf libfile-stripnondeterminism-perl all 1.13.0-1 [26.6 kB]
Get:22 http://172.17.4.1/private bookworm-staging/main armhf dh-strip-nondeterminism all 1.13.0-1 [15.8 kB]
Get:23 http://172.17.4.1/private bookworm-staging/main armhf libelf1 armhf 0.187-1 [175 kB]
Get:24 http://172.17.4.1/private bookworm-staging/main armhf dwz armhf 0.14-1 [83.0 kB]
Get:25 http://172.17.4.1/private bookworm-staging/main armhf libicu71 armhf 71.1-3 [8855 kB]
Get:26 http://172.17.4.1/private bookworm-staging/main armhf libxml2 armhf 2.9.14+dfsg-1 [591 kB]
Get:27 http://172.17.4.1/private bookworm-staging/main armhf gettext armhf 0.21-8 [1219 kB]
Get:28 http://172.17.4.1/private bookworm-staging/main armhf intltool-debian all 0.35.0+20060710.5 [26.8 kB]
Get:29 http://172.17.4.1/private bookworm-staging/main armhf po-debconf all 1.0.21+nmu1 [248 kB]
Get:30 http://172.17.4.1/private bookworm-staging/main armhf debhelper all 13.9 [1070 kB]
Get:31 http://172.17.4.1/private bookworm-staging/main armhf libcapture-tiny-perl all 0.48-1 [26.0 kB]
Get:32 http://172.17.4.1/private bookworm-staging/main armhf libffi-checklib-perl all 0.28-1 [16.6 kB]
Get:33 http://172.17.4.1/private bookworm-staging/main armhf libffi-dev armhf 3.4.2-4 [61.7 kB]
Get:34 http://172.17.4.1/private bookworm-staging/main armhf libglib2.0-0 armhf 2.72.3-1 [1233 kB]
Get:35 http://172.17.4.1/private bookworm-staging/main armhf libimporter-perl all 0.026-1 [25.0 kB]
Get:36 http://172.17.4.1/private bookworm-staging/main armhf libmodule-pluggable-perl all 5.2-2 [23.9 kB]
Get:37 http://172.17.4.1/private bookworm-staging/main armhf libperl-dev armhf 5.34.0-5 [920 kB]
Get:38 http://172.17.4.1/private bookworm-staging/main armhf libscope-guard-perl all 0.21-2 [8212 B]
Get:39 http://172.17.4.1/private bookworm-staging/main armhf libsub-info-perl all 0.002-2 [6668 B]
Get:40 http://172.17.4.1/private bookworm-staging/main armhf libterm-table-perl all 0.016-1 [29.0 kB]
Get:41 http://172.17.4.1/private bookworm-staging/main armhf libtest2-suite-perl all 0.000145-1 [387 kB]
Get:42 http://172.17.4.1/private bookworm-staging/main armhf pkg-config armhf 0.29.2-1 [61.5 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 21.0 MB in 3s (6088 kB/s)
Selecting previously unselected package libuchardet0:armhf.
(Reading database ... 14679 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-8_armhf.deb ...
Unpacking groff-base (1.22.4-8) ...
Selecting previously unselected package bsdextrautils.
Preparing to unpack .../02-bsdextrautils_2.38.1-1_armhf.deb ...
Unpacking bsdextrautils (2.38.1-1) ...
Selecting previously unselected package libpipeline1:armhf.
Preparing to unpack .../03-libpipeline1_1.5.6-2_armhf.deb ...
Unpacking libpipeline1:armhf (1.5.6-2) ...
Selecting previously unselected package man-db.
Preparing to unpack .../04-man-db_2.10.2-1_armhf.deb ...
Unpacking man-db (2.10.2-1) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../05-libmagic-mgc_1%3a5.41-4_armhf.deb ...
Unpacking libmagic-mgc (1:5.41-4) ...
Selecting previously unselected package libmagic1:armhf.
Preparing to unpack .../06-libmagic1_1%3a5.41-4_armhf.deb ...
Unpacking libmagic1:armhf (1:5.41-4) ...
Selecting previously unselected package file.
Preparing to unpack .../07-file_1%3a5.41-4_armhf.deb ...
Unpacking file (1:5.41-4) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../08-gettext-base_0.21-8_armhf.deb ...
Unpacking gettext-base (0.21-8) ...
Selecting previously unselected package m4.
Preparing to unpack .../09-m4_1.4.19-1_armhf.deb ...
Unpacking m4 (1.4.19-1) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../10-autoconf_2.71-2_all.deb ...
Unpacking autoconf (2.71-2) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../11-autotools-dev_20220109.1_all.deb ...
Unpacking autotools-dev (20220109.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../12-automake_1%3a1.16.5-1.3_all.deb ...
Unpacking automake (1:1.16.5-1.3) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../13-autopoint_0.21-8_all.deb ...
Unpacking autopoint (0.21-8) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../14-libdebhelper-perl_13.9_all.deb ...
Unpacking libdebhelper-perl (13.9) ...
Selecting previously unselected package libtool.
Preparing to unpack .../15-libtool_2.4.7-4_all.deb ...
Unpacking libtool (2.4.7-4) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../16-dh-autoreconf_20_all.deb ...
Unpacking dh-autoreconf (20) ...
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-3_all.deb ...
Unpacking libsub-override-perl (0.09-3) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../19-libfile-stripnondeterminism-perl_1.13.0-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.13.0-1) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../20-dh-strip-nondeterminism_1.13.0-1_all.deb ...
Unpacking dh-strip-nondeterminism (1.13.0-1) ...
Selecting previously unselected package libelf1:armhf.
Preparing to unpack .../21-libelf1_0.187-1_armhf.deb ...
Unpacking libelf1:armhf (0.187-1) ...
Selecting previously unselected package dwz.
Preparing to unpack .../22-dwz_0.14-1_armhf.deb ...
Unpacking dwz (0.14-1) ...
Selecting previously unselected package libicu71:armhf.
Preparing to unpack .../23-libicu71_71.1-3_armhf.deb ...
Unpacking libicu71:armhf (71.1-3) ...
Selecting previously unselected package libxml2:armhf.
Preparing to unpack .../24-libxml2_2.9.14+dfsg-1_armhf.deb ...
Unpacking libxml2:armhf (2.9.14+dfsg-1) ...
Selecting previously unselected package gettext.
Preparing to unpack .../25-gettext_0.21-8_armhf.deb ...
Unpacking gettext (0.21-8) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../26-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 .../27-po-debconf_1.0.21+nmu1_all.deb ...
Unpacking po-debconf (1.0.21+nmu1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../28-debhelper_13.9_all.deb ...
Unpacking debhelper (13.9) ...
Selecting previously unselected package libcapture-tiny-perl.
Preparing to unpack .../29-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 .../30-libffi-checklib-perl_0.28-1_all.deb ...
Unpacking libffi-checklib-perl (0.28-1) ...
Selecting previously unselected package libffi-dev:armhf.
Preparing to unpack .../31-libffi-dev_3.4.2-4_armhf.deb ...
Unpacking libffi-dev:armhf (3.4.2-4) ...
Selecting previously unselected package libglib2.0-0:armhf.
Preparing to unpack .../32-libglib2.0-0_2.72.3-1_armhf.deb ...
Unpacking libglib2.0-0:armhf (2.72.3-1) ...
Selecting previously unselected package libimporter-perl.
Preparing to unpack .../33-libimporter-perl_0.026-1_all.deb ...
Unpacking libimporter-perl (0.026-1) ...
Selecting previously unselected package libmodule-pluggable-perl.
Preparing to unpack .../34-libmodule-pluggable-perl_5.2-2_all.deb ...
Unpacking libmodule-pluggable-perl (5.2-2) ...
Selecting previously unselected package libperl-dev:armhf.
Preparing to unpack .../35-libperl-dev_5.34.0-5_armhf.deb ...
Unpacking libperl-dev:armhf (5.34.0-5) ...
Selecting previously unselected package libscope-guard-perl.
Preparing to unpack .../36-libscope-guard-perl_0.21-2_all.deb ...
Unpacking libscope-guard-perl (0.21-2) ...
Selecting previously unselected package libsub-info-perl.
Preparing to unpack .../37-libsub-info-perl_0.002-2_all.deb ...
Unpacking libsub-info-perl (0.002-2) ...
Selecting previously unselected package libterm-table-perl.
Preparing to unpack .../38-libterm-table-perl_0.016-1_all.deb ...
Unpacking libterm-table-perl (0.016-1) ...
Selecting previously unselected package libtest2-suite-perl.
Preparing to unpack .../39-libtest2-suite-perl_0.000145-1_all.deb ...
Unpacking libtest2-suite-perl (0.000145-1) ...
Selecting previously unselected package pkg-config.
Preparing to unpack .../40-pkg-config_0.29.2-1_armhf.deb ...
Unpacking pkg-config (0.29.2-1) ...
Selecting previously unselected package sbuild-build-depends-main-dummy.
Preparing to unpack .../41-sbuild-build-depends-main-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-main-dummy (0.invalid.0) ...
Setting up libmodule-pluggable-perl (5.2-2) ...
Setting up libpipeline1:armhf (1.5.6-2) ...
Setting up libicu71:armhf (71.1-3) ...
Setting up bsdextrautils (2.38.1-1) ...
Setting up libmagic-mgc (1:5.41-4) ...
Setting up libarchive-zip-perl (1.68-1) ...
Setting up libglib2.0-0:armhf (2.72.3-1) ...
No schema files found: doing nothing.
Setting up libdebhelper-perl (13.9) ...
Setting up libmagic1:armhf (1:5.41-4) ...
Setting up gettext-base (0.21-8) ...
Setting up m4 (1.4.19-1) ...
Setting up libperl-dev:armhf (5.34.0-5) ...
Setting up file (1:5.41-4) ...
Setting up libffi-dev:armhf (3.4.2-4) ...
Setting up libscope-guard-perl (0.21-2) ...
Setting up autotools-dev (20220109.1) ...
Setting up libimporter-perl (0.026-1) ...
Setting up libffi-checklib-perl (0.28-1) ...
Setting up autopoint (0.21-8) ...
Setting up pkg-config (0.29.2-1) ...
Setting up autoconf (2.71-2) ...
Setting up libcapture-tiny-perl (0.48-1) ...
Setting up libuchardet0:armhf (0.0.7-1) ...
Setting up libsub-override-perl (0.09-3) ...
Setting up libelf1:armhf (0.187-1) ...
Setting up libxml2:armhf (2.9.14+dfsg-1) ...
Setting up automake (1:1.16.5-1.3) ...
update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode
Setting up libfile-stripnondeterminism-perl (1.13.0-1) ...
Setting up gettext (0.21-8) ...
Setting up libterm-table-perl (0.016-1) ...
Setting up libtool (2.4.7-4) ...
Setting up libsub-info-perl (0.002-2) ...
Setting up libtest2-suite-perl (0.000145-1) ...
Setting up intltool-debian (0.35.0+20060710.5) ...
Setting up dh-autoreconf (20) ...
Setting up dh-strip-nondeterminism (1.13.0-1) ...
Setting up dwz (0.14-1) ...
Setting up groff-base (1.22.4-8) ...
Setting up po-debconf (1.0.21+nmu1) ...
Setting up man-db (2.10.2-1) ...
Not building database; man-db/auto-update is not 'true'.
Setting up debhelper (13.9) ...
Setting up sbuild-build-depends-main-dummy (0.invalid.0) ...
Processing triggers for libc-bin (2.33-8+rpi1) ...
+------------------------------------------------------------------------------+
| Check architectures |
+------------------------------------------------------------------------------+
Arch check ok (armhf included in any)
+------------------------------------------------------------------------------+
| Build environment |
+------------------------------------------------------------------------------+
Kernel: Linux 4.19.20-v7+ #1 SMP Mon Mar 18 11:37:02 GMT 2019 armhf (armv7l)
Toolchain package versions: binutils_2.38.90.20220713-2+rpi1 dpkg-dev_1.21.9+rpi1 g++-12_12.1.0-7+rpi1 gcc-12_12.1.0-7+rpi1 libc6-dev_2.33-8+rpi1 libstdc++-12-dev_12.1.0-7+rpi1 libstdc++6_12.1.0-7+rpi1 linux-libc-dev_5.18.14-1+rpi1
Package versions: adduser_3.123 apt_2.5.2 autoconf_2.71-2 automake_1:1.16.5-1.3 autopoint_0.21-8 autotools-dev_20220109.1 base-files_12.2+rpi1 base-passwd_3.5.52 bash_5.1-6.1 binutils_2.38.90.20220713-2+rpi1 binutils-arm-linux-gnueabihf_2.38.90.20220713-2+rpi1 binutils-common_2.38.90.20220713-2+rpi1 bsdextrautils_2.38.1-1 bsdutils_1:2.38.1-1 build-essential_12.9 bzip2_1.0.8-5+b2 coreutils_8.32-4.1 cpp_4:12.1.0-3+rpi1 cpp-12_12.1.0-7+rpi1 dash_0.5.11+git20210903+057cd650a4ed-8 debconf_1.5.79 debhelper_13.9 debianutils_5.7-0.3 dh-autoreconf_20 dh-strip-nondeterminism_1.13.0-1 diffutils_1:3.7-5 dirmngr_2.2.35-3 dpkg_1.21.9+rpi1 dpkg-dev_1.21.9+rpi1 dwz_0.14-1 e2fsprogs_1.46.5-2 fakeroot_1.29-1 file_1:5.41-4 findutils_4.9.0-3 g++_4:12.1.0-3+rpi1 g++-12_12.1.0-7+rpi1 gcc_4:12.1.0-3+rpi1 gcc-12_12.1.0-7+rpi1 gcc-12-base_12.1.0-7+rpi1 gcc-7-base_7.5.0-6+rpi1+b2 gcc-8-base_8.4.0-7+rpi1 gcc-9-base_9.4.0-2+rpi1 gettext_0.21-8 gettext-base_0.21-8 gnupg_2.2.35-3 gnupg-l10n_2.2.35-3 gnupg-utils_2.2.35-3 gpg_2.2.35-3 gpg-agent_2.2.35-3 gpg-wks-client_2.2.35-3 gpg-wks-server_2.2.35-3 gpgconf_2.2.35-3 gpgsm_2.2.35-3 gpgv_2.2.35-3 grep_3.7-1 groff-base_1.22.4-8 gzip_1.12-1 hostname_3.23 init-system-helpers_1.64 intltool-debian_0.35.0+20060710.5 iputils-ping_3:20211215-1 krb5-locales_1.20-1 libacl1_2.3.1-1 libapt-pkg6.0_2.5.2 libarchive-zip-perl_1.68-1 libasan8_12.1.0-7+rpi1 libassuan0_2.5.5-4 libatomic1_12.1.0-7+rpi1 libattr1_1:2.5.1-1 libaudit-common_1:3.0.7-1 libaudit1_1:3.0.7-1+b1 libbinutils_2.38.90.20220713-2+rpi1 libblkid1_2.38.1-1 libbz2-1.0_1.0.8-5+b2 libc-bin_2.33-8+rpi1 libc-dev-bin_2.33-8+rpi1 libc6_2.33-8+rpi1 libc6-dev_2.33-8+rpi1 libcap-ng0_0.8.3-1 libcap2_1:2.44-1 libcap2-bin_1:2.44-1 libcapture-tiny-perl_0.48-1 libcc1-0_12.1.0-7+rpi1 libcom-err2_1.46.5-2 libcrypt-dev_1:4.4.28-2 libcrypt1_1:4.4.28-2 libctf-nobfd0_2.38.90.20220713-2+rpi1 libctf0_2.38.90.20220713-2+rpi1 libdb5.3_5.3.28+dfsg1-0.10 libdebconfclient0_0.263 libdebhelper-perl_13.9 libdpkg-perl_1.21.9+rpi1 libelf1_0.187-1 libext2fs2_1.46.5-2 libfakeroot_1.29-1 libffi-checklib-perl_0.28-1 libffi-dev_3.4.2-4 libffi8_3.4.2-4 libfile-stripnondeterminism-perl_1.13.0-1 libgcc-12-dev_12.1.0-7+rpi1 libgcc-s1_12.1.0-7+rpi1 libgcrypt20_1.10.1-2+b2 libgdbm-compat4_1.23-1 libgdbm6_1.23-1 libglib2.0-0_2.72.3-1 libgmp10_2:6.2.1+dfsg1-1 libgnutls30_3.7.7-2 libgomp1_12.1.0-7+rpi1 libgpg-error0_1.45-2 libgssapi-krb5-2_1.20-1 libhogweed6_3.7.3-1 libicu71_71.1-3 libidn2-0_2.3.3-1 libimporter-perl_0.026-1 libisl23_0.25-1 libk5crypto3_1.20-1 libkeyutils1_1.6.3-1 libkrb5-3_1.20-1 libkrb5support0_1.20-1 libksba8_1.6.0-3 libldap-2.5-0_2.5.12+dfsg-2 liblz4-1_1.9.3-2 liblzma5_5.2.5-2.1 libmagic-mgc_1:5.41-4 libmagic1_1:5.41-4 libmodule-pluggable-perl_5.2-2 libmount1_2.38.1-1 libmpc3_1.2.1-2 libmpfr6_4.1.0-3 libncursesw6_6.3+20220423-2 libnettle8_3.7.3-1 libnpth0_1.6-3 libnsl-dev_1.3.0-2 libnsl2_1.3.0-2 libp11-kit0_0.24.1-1 libpam-cap_1:2.44-1 libpam-modules_1.4.0-13 libpam-modules-bin_1.4.0-13 libpam-runtime_1.4.0-13 libpam0g_1.4.0-13 libpcre2-8-0_10.40-1+b2 libpcre3_2:8.39-14 libperl-dev_5.34.0-5 libperl5.32_5.32.1-6 libperl5.34_5.34.0-5 libpipeline1_1.5.6-2 libreadline8_8.1.2-1.2 libsasl2-2_2.1.28+dfsg-6+b1 libsasl2-modules-db_2.1.28+dfsg-6+b1 libscope-guard-perl_0.21-2 libseccomp2_2.5.4-1+rpi1 libselinux1_3.4-1 libsemanage-common_3.4-1 libsemanage2_3.4-1 libsepol1_3.1-1 libsepol2_3.4-2 libsmartcols1_2.38.1-1 libsqlite3-0_3.39.2-1 libss2_1.46.5-2 libssl1.1_1.1.1o-1 libssl3_3.0.4-2 libstdc++-12-dev_12.1.0-7+rpi1 libstdc++6_12.1.0-7+rpi1 libsub-info-perl_0.002-2 libsub-override-perl_0.09-3 libsystemd0_251.3-1+rpi1 libtasn1-6_4.18.0-4 libterm-table-perl_0.016-1 libtest2-suite-perl_0.000145-1 libtinfo6_6.3+20220423-2 libtirpc-common_1.3.2-2.1 libtirpc-dev_1.3.2-2.1 libtirpc3_1.3.2-2.1 libtool_2.4.7-4 libubsan1_12.1.0-7+rpi1 libuchardet0_0.0.7-1 libudev1_251.3-1+rpi1 libunistring2_1.0-1 libuuid1_2.38.1-1 libxml2_2.9.14+dfsg-1 libxxhash0_0.8.1-1 libzstd1_1.5.2+dfsg-1 linux-libc-dev_5.18.14-1+rpi1 login_1:4.11.1+dfsg1-2 logsave_1.46.5-2 lsb-base_11.2+rpi1 m4_1.4.19-1 make_4.3-4.1 man-db_2.10.2-1 mawk_1.3.4.20200120-3.1 mount_2.38.1-1 nano_6.4-1 ncurses-base_6.3+20220423-2 ncurses-bin_6.3+20220423-2 passwd_1:4.11.1+dfsg1-2 patch_2.7.6-7 perl_5.34.0-5 perl-base_5.34.0-5 perl-modules-5.32_5.32.1-6 perl-modules-5.34_5.34.0-5 pinentry-curses_1.2.0-2 pkg-config_0.29.2-1 po-debconf_1.0.21+nmu1 raspbian-archive-keyring_20120528.2 readline-common_8.1.2-1.2 rpcsvc-proto_1.4.2-4 sbuild-build-depends-main-dummy_0.invalid.0 sed_4.8-1 sensible-utils_0.0.17 sgml-base_1.30 sysvinit-utils_3.04-1 tar_1.34+dfsg-1 tzdata_2022a-1 util-linux_2.38.1-1 util-linux-extra_2.38.1-1 xz-utils_5.2.5-2.1 zlib1g_1:1.2.11.dfsg-4+b2
+------------------------------------------------------------------------------+
| Build |
+------------------------------------------------------------------------------+
Unpack source
-------------
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 3.0 (quilt)
Source: libffi-platypus-perl
Binary: libffi-platypus-perl
Architecture: any
Version: 2.00-1
Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
Uploaders: C.J. Collier <cjcollier@linuxfoundation.org>, gregor herrmann <gregoa@debian.org>
Homepage: https://metacpan.org/release/FFI-Platypus
Standards-Version: 4.6.1
Vcs-Browser: https://salsa.debian.org/perl-team/modules/packages/libffi-platypus-perl
Vcs-Git: https://salsa.debian.org/perl-team/modules/packages/libffi-platypus-perl.git
Testsuite: autopkgtest-pkg-perl
Build-Depends: debhelper-compat (= 13), libcapture-tiny-perl, libextutils-parsexs-perl, libffi-checklib-perl <!nocheck>, libffi-dev, libjson-pp-perl, libscalar-list-utils-perl <!nocheck>, libtest-simple-perl <!nocheck>, libtest2-suite-perl (>= 0.000121) <!nocheck>, perl-xs-dev, perl:native, pkg-config | libpkgconfig-perl
Package-List:
libffi-platypus-perl deb perl optional arch=any
Checksums-Sha1:
e73fbebbdf243db92d4d358dc3a3f07fd06adc40 393754 libffi-platypus-perl_2.00.orig.tar.gz
c3adaf20a7be659d673b17ecd4cb27406af1f954 4836 libffi-platypus-perl_2.00-1.debian.tar.xz
Checksums-Sha256:
a4f833f03595589dae992a1b77db63dfeee93f31329b4cd6b29ad9762f118da6 393754 libffi-platypus-perl_2.00.orig.tar.gz
fbf036c9662711c9d07f702b04dba96530118ba5f081b014cd9014b2f073b85c 4836 libffi-platypus-perl_2.00-1.debian.tar.xz
Files:
c086e78d81da271929ed84ee9c048940 393754 libffi-platypus-perl_2.00.orig.tar.gz
27bfd00dce087d771d1c2b30c0ad3e02 4836 libffi-platypus-perl_2.00-1.debian.tar.xz
Dgit: 14699f34a74e351dfc8cb02375a99735d6b1adb6 debian archive/debian/2.00-1 https://git.dgit.debian.org/libffi-platypus-perl
-----BEGIN PGP SIGNATURE-----
iQKTBAEBCgB9FiEE0eExbpOnYKgQTYX6uzpoAYZJqgYFAmMA5x1fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQx
RTEzMTZFOTNBNzYwQTgxMDREODVGQUJCM0E2ODAxODY0OUFBMDYACgkQuzpoAYZJ
qgb+yBAAoQ4RtMWbnserCUEdchde3O2ZBqKlhlhruJ9Gi8eKzavlA7sDI5z3Yms3
q5HzCf2OTx7oj40DU7qo+JSfQVkhCop44XYF9CstV8Jod+9b0nPhtOgG9z5E3Ymr
RjQzhuAFG1cp7PDTjICE96+1hT0P3Uk+yRVKhrUR0wd5aWdDYUYI75N+Y9N819zw
0PYa5t+ae93zf5ZFhvQKQOiHBYkq8rghVqjyj5aMLE1rfrgfQTy2hmNehxYvQ0Qo
b3rEVCGm+j/Vvjk9yEg7SBjc7qsC83YCTiunDI2JI5K2kAFqW+8tmhtFTJ+LbH4d
GB+eyAdYsYtJl+ZGns24N46aOT47T1ClzgT09pNs9M9PEbsc6EmVmkr6AW3pxH8K
+gIQ8GXWca+MKgfaHt/aJk/IT/dUBJJx+PMNK7sr6T+OWa659fteyW3hYnOeGzzZ
LdC7yem+FcxkPpPFesNXHcUt/twrd5IvqRRrqTE0ldGjZTfnbaltdPmUj5dpPSA6
apB83udpsEbKPUOgginAepCyLCjXFLcDD+vrK5HWGJOifkkZRqxwyqLmdCVjDv2i
NDebW3osCbDUdWpsr9tFMvDN7cLXAyENqP0d95jg60ux/aA7Afrp3xzrM7Kx9YJj
IuhxPv9aBfCp1V2Kpr0NQQGq8rPPubrkp1zuViDGQlZMTdXPOHo=
=qlOP
-----END PGP SIGNATURE-----
gpgv: unknown type of key resource 'trustedkeys.kbx'
gpgv: keyblock resource '/tmp/dpkg-verify-sig.cgWvP6B2/trustedkeys.kbx': General error
gpgv: Signature made Sat Aug 20 13:52:29 2022 UTC
gpgv: using RSA key D1E1316E93A760A8104D85FABB3A68018649AA06
gpgv: Can't check signature: No public key
dpkg-source: warning: cannot verify signature ./libffi-platypus-perl_2.00-1.dsc
dpkg-source: info: extracting libffi-platypus-perl in /<<PKGBUILDDIR>>
dpkg-source: info: unpacking libffi-platypus-perl_2.00.orig.tar.gz
dpkg-source: info: unpacking libffi-platypus-perl_2.00-1.debian.tar.xz
Check disk space
----------------
Sufficient free space for build
User Environment
----------------
APT_CONFIG=/var/lib/sbuild/apt.conf
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/112/bus
DEB_BUILD_OPTIONS=parallel=4
HOME=/sbuild-nonexistent
INVOCATION_ID=b1a4a50b076d45168d85858aa150e93f
JOURNAL_STREAM=8:26928
LANG=en_GB.UTF-8
LC_ALL=C.UTF-8
LOGNAME=buildd
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
PWD=/
SCHROOT_ALIAS_NAME=bookworm-staging-armhf-sbuild
SCHROOT_CHROOT_NAME=bookworm-staging-armhf-sbuild
SCHROOT_COMMAND=env
SCHROOT_GID=117
SCHROOT_GROUP=buildd
SCHROOT_SESSION_ID=bookworm-staging-armhf-sbuild-dd03184d-228c-4521-a2fe-2925d4d73e39
SCHROOT_UID=112
SCHROOT_USER=buildd
SHELL=/bin/sh
USER=buildd
XDG_RUNTIME_DIR=/run/user/112
XDG_SESSION_CLASS=background
XDG_SESSION_ID=c57812
XDG_SESSION_TYPE=unspecified
dpkg-buildpackage
-----------------
Command: dpkg-buildpackage -us -uc -mRaspbian pi4 based autobuilder <root@raspbian.org> -B -rfakeroot
dpkg-buildpackage: info: source package libffi-platypus-perl
dpkg-buildpackage: info: source version 2.00-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
/usr/bin/perl Makefile.PL INSTALLDIRS=vendor "OPTIMIZE=-g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2" "LD=arm-linux-gnueabihf-gcc -g -O2 -ffile-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.34/ExtUtils/xsubpp" -typemap '/usr/share/perl/5.34/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/Platypus/Lang.pm blib/lib/FFI/Platypus/Lang.pm
cp lib/FFI/Platypus/Constant.pm blib/lib/FFI/Platypus/Constant.pm
cp lib/FFI/Platypus/Lang/Win32.pm blib/lib/FFI/Platypus/Lang/Win32.pm
cp lib/FFI/Platypus/Buffer.pm blib/lib/FFI/Platypus/Buffer.pm
cp lib/FFI/Build/Platform.pm blib/lib/FFI/Build/Platform.pm
cp lib/FFI/Build/Plugin.pm blib/lib/FFI/Build/Plugin.pm
cp lib/FFI/Build/File/Base.pm blib/lib/FFI/Build/File/Base.pm
cp lib/FFI/Platypus/Type/StringPointer.pm blib/lib/FFI/Platypus/Type/StringPointer.pm
cp lib/FFI/Platypus/Lang/ASM.pm blib/lib/FFI/Platypus/Lang/ASM.pm
cp lib/FFI/Platypus.pm blib/lib/FFI/Platypus.pm
cp lib/FFI/Platypus/Record.pm blib/lib/FFI/Platypus/Record.pm
cp lib/FFI/Platypus/TypeParser/Version0.pm blib/lib/FFI/Platypus/TypeParser/Version0.pm
cp lib/FFI/Platypus/Type/WideString.pm blib/lib/FFI/Platypus/Type/WideString.pm
cp lib/FFI/Platypus/DL.pm blib/lib/FFI/Platypus/DL.pm
cp lib/FFI/Platypus/TypeParser.pm blib/lib/FFI/Platypus/TypeParser.pm
cp lib/FFI/Build/File/C.pm blib/lib/FFI/Build/File/C.pm
cp lib/FFI/Platypus/Function.pm blib/lib/FFI/Platypus/Function.pm
cp lib/FFI/Build/MM.pm blib/lib/FFI/Build/MM.pm
cp lib/FFI/Platypus/Type/StringArray.pm blib/lib/FFI/Platypus/Type/StringArray.pm
cp lib/FFI/Build/PluginData.pm blib/lib/FFI/Build/PluginData.pm
cp lib/FFI/Platypus/TypeParser/Version1.pm blib/lib/FFI/Platypus/TypeParser/Version1.pm
cp lib/FFI/Platypus/Legacy.pm blib/lib/FFI/Platypus/Legacy.pm
cp lib/FFI/Platypus/Type/PointerSizeBuffer.pm blib/lib/FFI/Platypus/Type/PointerSizeBuffer.pm
cp lib/FFI/Platypus/Record/Meta.pm blib/lib/FFI/Platypus/Record/Meta.pm
cp lib/FFI/Platypus/Internal.pm blib/lib/FFI/Platypus/Internal.pm
cp lib/FFI/Platypus/Lang/C.pm blib/lib/FFI/Platypus/Lang/C.pm
cp lib/FFI/Platypus/ShareConfig.pm blib/lib/FFI/Platypus/ShareConfig.pm
cp lib/FFI/Build/File/Library.pm blib/lib/FFI/Build/File/Library.pm
cp lib/FFI/Build/File/Object.pm blib/lib/FFI/Build/File/Object.pm
cp lib/FFI/Platypus/Record/TieArray.pm blib/lib/FFI/Platypus/Record/TieArray.pm
cp lib/FFI/Platypus/Memory.pm blib/lib/FFI/Platypus/Memory.pm
cp lib/FFI/Platypus/Type.pm blib/lib/FFI/Platypus/Type.pm
cp lib/FFI/Platypus/TypeParser/Version2.pm blib/lib/FFI/Platypus/TypeParser/Version2.pm
cp lib/FFI/Build.pm blib/lib/FFI/Build.pm
cp lib/FFI/Platypus/Closure.pm blib/lib/FFI/Platypus/Closure.pm
cp lib/FFI/Platypus/API.pm blib/lib/FFI/Platypus/API.pm
cp lib/FFI/Platypus/Bundle.pm blib/lib/FFI/Platypus/Bundle.pm
cp lib/FFI/Build/File/CXX.pm blib/lib/FFI/Build/File/CXX.pm
cp lib/FFI/Probe/Runner.pm blib/lib/FFI/Probe/Runner.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
cp lib/FFI/Probe/Runner/Builder.pm blib/lib/FFI/Probe/Runner/Builder.pm
cp lib/FFI/Probe/Runner/Result.pm blib/lib/FFI/Probe/Runner/Result.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 -ffile-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 -ffile-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.intmax_t.align=8
PR type.intmax_t.sign=signed
PR type.intmax_t.size=8
PR type.uintmax_t.align=8
PR type.uintmax_t.sign=unsigned
PR type.uintmax_t.size=8
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.strnlen=1
PR probe.variadic=1
PR abi.sysv=1
PR abi.vfp=2
PR abi.default_abi=2
"/usr/bin/perl" "/usr/share/perl/5.34/ExtUtils/xsubpp" -typemap '/usr/share/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"2.00\" -DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"2.00\" -DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"2.00\" -DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"2.00\" -DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 \
-DVERSION=\"2.00\" \
-DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"2.00\" -DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"2.00\" -DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"2.00\" -DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"2.00\" -DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"2.00\" -DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"2.00\" -DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"2.00\" -DXS_VERSION=\"2.00\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.34/CORE" xs/windl.c -o xs/windl.o
rm -f blib/arch/auto/FFI/Platypus/Platypus.so
arm-linux-gnueabihf-gcc -g -O2 -ffile-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 -Iinclude -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 -ffile-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 -Iinclude -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 -ffile-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 -Iinclude -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 -ffile-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 -ffile-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 10 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.43
# LANG=en_GB.UTF-8
# LC_ALL=C.UTF-8
# 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.034000 linux arm-linux-gnueabihf-thread-multi-64int
# Alien::Base -
# Capture::Tiny 0.48
# Devel::Hide -
# ExtUtils::CBuilder 0.280236
# ExtUtils::MakeMaker 7.62
# ExtUtils::ParseXS 3.43
# FFI::CheckLib 0.28
# File::Spec::Functions 3.80
# IPC::Cmd 1.04
# JSON::PP 4.06
# List::Util 1.55
# Math::LongDouble -
# PkgConfig -
# Test2::API 1.302183
# Test2::V0 0.000145
# autodie 2.34
# constant 1.33
# forks -
# parent 0.238
#
#
#
# mode : system
# Alien::FFI::pkgconfig->VERSION =
# Alien::FFI::pkgconfig->install_type = system
# Alien::FFI::pkgconfig->cflags =
# Alien::FFI::pkgconfig->libs = -lffi
# Alien::FFI::pkgconfig->version = 3.4.2
#
#
#
# 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, intmax_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, uintmax_t, unsigned long long
# uint8 : bool, char, uchar, uint8_t, unsigned char
#
#
#
# ABIs:
# default_abi 2
# sysv 1
# vfp 2
#
#
#
# Probes:
# bigendian 0
# complex 1
# recordvalue 1
# alloca 1
# strnlen 1
# bigendian64 0
# variadic 1
# abi 1
#
#
#
# CPU Info:
# model name : ARMv7 Processor rev 3 (v7l)
#
#
#
# [PLATFORM]
# osname : linux
# cc : arm-linux-gnueabihf-gcc
# cxx : arm-linux-gnueabihf-g++
# cxxld : 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 ..............................
ok 1 - okay
1..1
ok
t/ffi_build.t ............................
ok 1 - basic {
ok 1 - FFI::Build=HASH->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 - FFI::Build::Platform=HASH->isa('FFI::Build::Platform')
ok 5 - FFI::Build::File::C=HASH->isa('FFI::Build::File::C')
1..5
}
ok 2 - 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::Foo2
# class = FFI::Build::File::Foo1
1..1
}
ok 3 - build {
ok 1 - 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.4369.1661230356/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.4369.1661230356/foo2.c.o
# +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong corpus/ffi_build/project1/tmpbuild.tmpbuild.4369.1661230356/foo1.c.o corpus/ffi_build/project1/tmpbuild.tmpbuild.4369.1661230356/foo2.c.o -o /<<PKGBUILDDIR>>/.tmp/DGivawxa1F/libfoo.so
ok 2
ok 3
1..3
}
ok 2 - 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/DLJXjL9qp7/libfoo.so
ok 2
ok 3
1..3
}
ok 3 - 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.4369.1661230357/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.4369.1661230357/foo2.c.o
# +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong corpus/ffi_build/project1/tmpbuild.tmpbuild.4369.1661230357/foo1.c.o corpus/ffi_build/project1/tmpbuild.tmpbuild.4369.1661230357/foo2.c.o -o /<<PKGBUILDDIR>>/.tmp/wVr6lhbCgV/libfoo.so
ok 2
ok 3
1..3
}
1..3
}
ok 4 - 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.4369.1661230358/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.4369.1661230358/foo2.o
# +arm-linux-gnueabihf-g++ -shared -L/usr/local/lib -fstack-protector-strong corpus/ffi_build/project-cxx/tmpbuild.4369.1661230358/foo1.o corpus/ffi_build/project-cxx/tmpbuild.4369.1661230358/foo2.o -o /<<PKGBUILDDIR>>/.tmp/tmpbuild.nsbFU7/libfoo.so
ok 2 - foo1 found
ok 3 - foo2 found
ok 4
ok 5
1..5
}
ok 5 - alien {
1..0 # SKIP Test requires Acme::Alien::DontPanic 1.03
}
1..5
ok
t/ffi_build_file_base.t ..................
ok 1 - basic {
ok 1 - basic usage {
ok 1
# error = content is required at t/ffi_build_file_base.t line 16.
1..1
}
ok 2 - array filename {
ok 1 - FFI::Build::File::Foo=HASH->isa('FFI::Build::File::Base')
ok 2 - FFI::Build::File::Foo=HASH->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 3 - string filename {
ok 1 - FFI::Build::File::Foo=HASH->isa('FFI::Build::File::Base')
ok 2 - FFI::Build::File::Foo=HASH->isa('FFI::Build::File::Foo')
ok 3
ok 4 - is_temp
ok 5 - No forward slashes!
1..5
}
ok 4 - string ref {
ok 1 - FFI::Build::File::Foo=HASH->isa('FFI::Build::File::Base')
ok 2 - FFI::Build::File::Foo=HASH->isa('FFI::Build::File::Foo')
ok 3 - has the correct extension
ok 4 - is_temp
ok 5
# path: /<<PKGBUILDDIR>>/.tmp/ffi_build_a3oQbp.foo
ok 6 - No forward slashes!
ok 7 - file exists
ok 8 - file is removed after destroy
1..8
}
ok 5 - string ref keep {
ok 1
ok 2 - file exists
ok 3 - No forward slashes!
ok 4 - file exists after undef
1..4
}
1..5
}
1..1
ok
t/ffi_build_file_c.t .....................
ok 1 - basic {
ok 1 - FFI::Build::File::C=HASH->isa('FFI::Build::File::C')
ok 2 - FFI::Build::File::C=HASH->isa('FFI::Build::File::Base')
ok 3
ok 4
1..4
}
ok 2 - compile {
ok 1 - FFI::Build::File::Object=HASH->isa('FFI::Build::File::Object')
ok 2
1..2
}
ok 3 - 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
}
1..3
ok
t/ffi_build_file_cxx.t ...................
ok 1 - basic {
ok 1 - FFI::Build::File::CXX=HASH->isa('FFI::Build::File::CXX')
ok 2 - FFI::Build::File::CXX=HASH->isa('FFI::Build::File::C')
ok 3 - FFI::Build::File::CXX=HASH->isa('FFI::Build::File::Base')
ok 4
ok 5
1..5
}
ok 2 - compile {
ok 1 - FFI::Build::File::Object=HASH->isa('FFI::Build::File::Object')
ok 2
1..2
}
ok 3 - 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
}
1..3
ok
t/ffi_build_file_library.t ...............
ok 1 - basic {
ok 1
ok 2
# path = corpus/basic.so
1..2
}
1..1
ok
t/ffi_build_file_object.t ................
ok 1 - basic {
ok 1
ok 2
# path = corpus/basic.o
1..2
}
1..1
ok
t/ffi_build_mm.t .........................
ok 1 - basic {
ok 1 - FFI::Build::MM=HASH->isa('FFI::Build::MM')
ok 2
ok 3
ok 4
ok 5 - build with fbx file {
ok 1 - FFI::Build=HASH->isa('FFI::Build')
ok 2
1..2
}
ok 6 - build with fbx file with errors {
ok 1 - caught compile error in fbx file
1..1
}
ok 7 - build with default {
ok 1 - FFI::Build=HASH->isa('FFI::Build')
ok 2
1..2
}
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 2 - with a build! {
ok 1 - 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 2 - do not save on request {
ok 1
1..1
}
ok 3 - perl Makefile.PL {
ok 1
1..1
}
ok 4 - 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 5 - 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 6 - 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 7 - make clean {
ok 1
1..1
}
1..7
}
ok 3 - alien {
1..0 # SKIP todo
}
1..3
ok
t/ffi_build_platform.t ...................
ok 1 - basic {
ok 1 - FFI::Build::Platform=HASH->isa('FFI::Build::Platform')
# osname : linux
# cc : arm-linux-gnueabihf-gcc
# cxx : arm-linux-gnueabihf-g++
# cxxld : 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 2 - cc mm works {
# CC (checkfor -MM)
ok 1
# cc_mm_works = -MM
1..1
}
1..2
ok
t/ffi_build_plugin.t .....................
# @INC[]=/<<PKGBUILDDIR>>/blib/lib
# @INC[]=/<<PKGBUILDDIR>>/blib/arch
# @INC[]=/etc/perl
# @INC[]=/usr/local/lib/arm-linux-gnueabihf/perl/5.34.0
# @INC[]=/usr/local/share/perl/5.34.0
# @INC[]=/usr/lib/arm-linux-gnueabihf/perl5/5.34
# @INC[]=/usr/share/perl5
# @INC[]=/usr/lib/arm-linux-gnueabihf/perl-base
# @INC[]=/usr/lib/arm-linux-gnueabihf/perl/5.34
# @INC[]=/usr/share/perl/5.34
# @INC[]=/usr/local/lib/site_perl
# @INC[]=.
ok 1 - works with local config
# @INC[]=/<<PKGBUILDDIR>>/blib/lib
# @INC[]=/<<PKGBUILDDIR>>/blib/arch
# @INC[]=/etc/perl
# @INC[]=/usr/local/lib/arm-linux-gnueabihf/perl/5.34.0
# @INC[]=/usr/local/share/perl/5.34.0
# @INC[]=/usr/lib/arm-linux-gnueabihf/perl5/5.34
# @INC[]=/usr/share/perl5
# @INC[]=/usr/lib/arm-linux-gnueabihf/perl-base
# @INC[]=/usr/lib/arm-linux-gnueabihf/perl/5.34
# @INC[]=/usr/share/perl/5.34
# @INC[]=/usr/local/lib/site_perl
# @INC[]=.
# @INC[]=/<<PKGBUILDDIR>>/corpus/ffi_build_plugin/lib2
ok 2 - works with local + empty dir
# @INC[]=/<<PKGBUILDDIR>>/corpus/ffi_build_plugin/lib2
ok 3
1..3
ok
t/ffi_build_plugindata.t .................
ok 1
ok 2
ok 3
1..3
ok
t/ffi_platypus.t .........................
ok 1 - constructor {
ok 1 - basic {
ok 1 - FFI::Platypus=HASH->isa('FFI::Platypus')
1..1
}
ok 2 - no arguments {
ok 1 - FFI::Platypus=HASH->isa('FFI::Platypus')
ok 2 - ffi.lib
1..2
}
ok 3 - with single lib {
ok 1 - FFI::Platypus=HASH->isa('FFI::Platypus')
ok 2 - ffi.lib
1..2
}
ok 4 - with multiple lib {
ok 1 - FFI::Platypus=HASH->isa('FFI::Platypus')
ok 2 - ffi.lib
1..2
}
1..4
}
ok 2 - abi {
ok 1 - has a default ABI
ok 2 - sysv {
ok 1 - string
ok 2 - type parser
ok 3 - integer
ok 4 - type parser
1..4
}
ok 3 - default_abi {
ok 1 - string
ok 2 - type parser
ok 3 - integer
ok 4 - type parser
1..4
}
ok 4 - vfp {
ok 1 - string
ok 2 - type parser
ok 3 - integer
ok 4 - type parser
1..4
}
ok 5 - bogus {
ok 1 - string
ok 2 - integer
1..2
}
1..5
}
ok 3 - alignof {
ok 1 - 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 2 - aliases {
ok 1 - alignof ushort = 2
ok 2 - alignof foo = 2
1..2
}
ok 3 - closure {
ok 1 - sizeof closure_t = 4
1..1
}
ok 4 - record {
ok 1
# {'ffi_type' => 'pointer','ref' => 0,'size' => 22,'type' => 'record','type_code' => 2307}
1..1
}
1..4
}
ok 4 - custom type {
ok 1 - 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 2 - 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 3 - 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 4 - 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 5 - 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 6 - 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 7 - 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 8 - 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 9 - 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 10 - 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 11 - 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
}
1..11
}
ok 5 - find lib {
ok 1 - find_lib {
ok 1 - found f0 = 3063077576
1..1
}
ok 2 - external {
ok 1 - ffi.find_symbol(f0) = 3063077576
ok 2 - ffi.find_symbol(bogus) = undef
1..2
}
ok 3 - internal {
ok 1 - ffi.find_symbol(printf) = 3067003684
ok 2 - ffi.find_symbol(bogus) = undef
1..2
}
1..3
}
ok 6 - find symbol {
ok 1 - external {
ok 1 - ffi.find_symbol(f0) = 3063077576
ok 2 - ffi.find_symbol(bogus) = undef
1..2
}
ok 2 - internal {
ok 1 - ffi.find_symbol(printf) = 3067003684
ok 2 - ffi.find_symbol(bogus) = undef
1..2
}
1..2
}
ok 7 - lib {
ok 1 - basic {
ok 1 - exists t/ffi/libtest.so
ok 2 - ffi.lib (set)
ok 3 - ffi.lib (get)
1..3
}
ok 2 - undef {
ok 1 - baseline {
ok 1
1..1
}
ok 2 - lib => [undef] {
ok 1
1..1
}
ok 3 - lib => undef {
ok 1
1..1
}
1..3
}
ok 3 - coderef {
ok 1 - exists t/ffi/libtest.so
ok 2 - ffi.lib (set)
ok 3 - ffi.lib (get)
1..3
}
1..3
}
ok 8 - sizeof {
ok 1 - 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 2 - 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 3 - floats {
ok 1 - sizeof float = 4
ok 2 - sizeof double = 8
1..2
}
ok 4 - 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 5 - 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 6 - 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
}
1..6
}
ok 9 - type {
ok 1 - simple type {
ok 1 - ffi.type(sint8)
1..1
}
ok 2 - aliased type {
ok 1 - ffi.type(sint8 => my_integer_8)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - ffi.types returns my_integer_8
1..3
}
ok 3 - ffi basic types {
ok 1 - sint8 {
ok 1 - ffi.type(sint8)
# {'element_size' => 1,'element_type' => 'int','ffi_type' => 'sint8','sign' => 1,'size' => 1,'type' => 'scalar','type_code' => 17}
#
ok 2 - size = 1
1..2
}
ok 2 - uint8 {
ok 1 - ffi.type(uint8)
# {'element_size' => 1,'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 1,'type' => 'scalar','type_code' => 33}
#
ok 2 - size = 1
1..2
}
ok 3 - sint16 {
ok 1 - ffi.type(sint16)
# {'element_size' => 2,'element_type' => 'int','ffi_type' => 'sint16','sign' => 1,'size' => 2,'type' => 'scalar','type_code' => 18}
#
ok 2 - size = 2
1..2
}
ok 4 - uint16 {
ok 1 - ffi.type(uint16)
# {'element_size' => 2,'element_type' => 'int','ffi_type' => 'uint16','sign' => 0,'size' => 2,'type' => 'scalar','type_code' => 34}
#
ok 2 - size = 2
1..2
}
ok 5 - sint32 {
ok 1 - ffi.type(sint32)
# {'element_size' => 4,'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'scalar','type_code' => 19}
#
ok 2 - size = 4
1..2
}
ok 6 - uint32 {
ok 1 - ffi.type(uint32)
# {'element_size' => 4,'element_type' => 'int','ffi_type' => 'uint32','sign' => 0,'size' => 4,'type' => 'scalar','type_code' => 35}
#
ok 2 - size = 4
1..2
}
ok 7 - sint64 {
ok 1 - ffi.type(sint64)
# {'element_size' => 8,'element_type' => 'int','ffi_type' => 'sint64','sign' => 1,'size' => 8,'type' => 'scalar','type_code' => 20}
#
ok 2 - size = 8
1..2
}
ok 8 - uint64 {
ok 1 - ffi.type(uint64)
# {'element_size' => 8,'element_type' => 'int','ffi_type' => 'uint64','sign' => 0,'size' => 8,'type' => 'scalar','type_code' => 36}
#
ok 2 - size = 8
1..2
}
ok 9 - float {
ok 1 - ffi.type(float)
# {'element_size' => 4,'element_type' => 'float','ffi_type' => 'float','size' => 4,'type' => 'scalar','type_code' => 67}
#
ok 2 - size = 4
1..2
}
ok 10 - double {
ok 1 - ffi.type(double)
# {'element_size' => 8,'element_type' => 'float','ffi_type' => 'double','size' => 8,'type' => 'scalar','type_code' => 68}
#
ok 2 - size = 8
1..2
}
ok 11 - opaque {
ok 1 - ffi.type(opaque)
# {'element_size' => 4,'element_type' => 'opaque','ffi_type' => 'pointer','size' => 4,'type' => 'scalar','type_code' => 259}
#
ok 2 - size = 4
1..2
}
ok 12 - string {
ok 1 - ffi.type(string)
# {'access' => 'ro','element_size' => 4,'ffi_type' => 'pointer','size' => 4,'type' => 'string','type_code' => 771}
#
ok 2 - size = 4
1..2
}
ok 13 - 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}
#
ok 2 - size = 8
1..2
}
ok 14 - 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}
#
ok 2 - size = 16
1..2
}
1..14
}
ok 4 - ffi pointer types {
ok 1 - sint8 * {
ok 1 - ffi.type(sint8 *)
# {'element_size' => 1,'element_type' => 'int','ffi_type' => 'sint8','sign' => 1,'size' => 4,'type' => 'pointer','type_code' => 4113}
#
ok 2 - size = 4
1..2
}
ok 2 - uint8 * {
ok 1 - ffi.type(uint8 *)
# {'element_size' => 1,'element_type' => 'int','ffi_type' => 'uint8','sign' => 0,'size' => 4,'type' => 'pointer','type_code' => 4129}
#
ok 2 - size = 4
1..2
}
ok 3 - sint16 * {
ok 1 - ffi.type(sint16 *)
# {'element_size' => 2,'element_type' => 'int','ffi_type' => 'sint16','sign' => 1,'size' => 4,'type' => 'pointer','type_code' => 4114}
#
ok 2 - size = 4
1..2
}
ok 4 - uint16 * {
ok 1 - ffi.type(uint16 *)
# {'element_size' => 2,'element_type' => 'int','ffi_type' => 'uint16','sign' => 0,'size' => 4,'type' => 'pointer','type_code' => 4130}
#
ok 2 - size = 4
1..2
}
ok 5 - sint32 * {
ok 1 - ffi.type(sint32 *)
# {'element_size' => 4,'element_type' => 'int','ffi_type' => 'sint32','sign' => 1,'size' => 4,'type' => 'pointer','type_code' => 4115}
#
ok 2 - size = 4
1..2
}
ok 6 - uint32 * {
ok 1 - ffi.type(uint32 *)
# {'element_size' => 4,'element_type' => 'int','ffi_type' => 'uint32','sign' => 0,'size' => 4,'type' => 'pointer','type_code' => 4131}
#
ok 2 - size = 4
1..2
}
ok 7 - sint64 * {
ok 1 - ffi.type(sint64 *)
# {'element_size' => 8,'element_type' => 'int','ffi_type' => 'sint64','sign' => 1,'size' => 4,'type' => 'pointer','type_code' => 4116}
#
ok 2 - size = 4
1..2
}
ok 8 - uint64 * {
ok 1 - ffi.type(uint64 *)
# {'element_size' => 8,'element_type' => 'int','ffi_type' => 'uint64','sign' => 0,'size' => 4,'type' => 'pointer','type_code' => 4132}
#
ok 2 - size = 4
1..2
}
ok 9 - float * {
ok 1 - ffi.type(float *)
# {'element_size' => 4,'element_type' => 'float','ffi_type' => 'float','size' => 4,'type' => 'pointer','type_code' => 4163}
#
ok 2 - size = 4
1..2
}
ok 10 - double * {
ok 1 - ffi.type(double *)
# {'element_size' => 8,'element_type' => 'float','ffi_type' => 'double','size' => 4,'type' => 'pointer','type_code' => 4164}
#
ok 2 - size = 4
1..2
}
ok 11 - opaque * {
ok 1 - ffi.type(opaque *)
# {'element_size' => 4,'element_type' => 'opaque','ffi_type' => 'pointer','size' => 4,'type' => 'pointer','type_code' => 4355}
#
ok 2 - size = 4
1..2
}
ok 12 - string * {
1..0 # SKIP ME GRIMLOCK SAY STRING CAN NO BE POINTER
}
ok 13 - 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}
#
ok 2 - size = 4
1..2
}
ok 14 - 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}
#
ok 2 - size = 4
1..2
}
1..14
}
ok 5 - ffi array types {
ok 1 - 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}
#
ok 2 - size = 5
ok 3 - size = 5
1..3
}
ok 2 - 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}
#
ok 2 - size = 7
ok 3 - size = 7
1..3
}
ok 3 - 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}
#
ok 2 - size = 18
ok 3 - size = 9
1..3
}
ok 4 - 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}
#
ok 2 - size = 22
ok 3 - size = 11
1..3
}
ok 5 - 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}
#
ok 2 - size = 52
ok 3 - size = 13
1..3
}
ok 6 - 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}
#
ok 2 - size = 60
ok 3 - size = 15
1..3
}
ok 7 - 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}
#
ok 2 - size = 136
ok 3 - size = 17
1..3
}
ok 8 - 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}
#
ok 2 - size = 152
ok 3 - size = 19
1..3
}
ok 9 - 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}
#
ok 2 - size = 84
ok 3 - size = 21
1..3
}
ok 10 - 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}
#
ok 2 - size = 184
ok 3 - size = 23
1..3
}
ok 11 - 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}
#
ok 2 - size = 100
ok 3 - size = 25
1..3
}
ok 12 - string [27] {
1..0 # SKIP ME GRIMLOCK SAY STRING CAN NO BE ARRAY
}
ok 13 - 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}
#
ok 2 - size = 232
ok 3 - size = 29
1..3
}
ok 14 - 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}
#
ok 2 - size = 496
ok 3 - size = 31
1..3
}
1..14
}
ok 6 - 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}
#
ok 2 - skipped test # 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}
#
1..6
}
ok 7 - record {
# {'ffi_type' => 'pointer','ref' => 0,'size' => 1,'type' => 'record','type_code' => 2307}
#
# {'ffi_type' => 'pointer','ref' => 0,'size' => 32,'type' => 'record','type_code' => 2307}
#
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}
#
# {'class' => 'My::Record44','ffi_type' => 'pointer','ref' => 1,'size' => 44,'type' => 'record','type_code' => 2307}
#
ok 3 - sizeof my_record_22 = 22
ok 4 - sizeof my_record_44 = 44
1..4
}
ok 8 - string {
ok 1 - 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}
#
1..2
}
ok 2 - 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}
#
1..2
}
ok 3 - 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}
#
1..2
}
ok 4 - 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}
#
1..2
}
ok 5 - 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}
#
1..2
}
ok 6 - 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}
#
1..2
}
ok 7 - 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}
#
1..2
}
1..7
}
ok 9 - private {
ok 1 - void {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(void)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = void
1..3
}
ok 2 - uint8 {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(uint8)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = uint8
1..3
}
ok 3 - sint8 {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(sint8)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = sint8
1..3
}
ok 4 - uint16 {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(uint16)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = uint16
1..3
}
ok 5 - sint16 {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(sint16)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = sint16
1..3
}
ok 6 - uint32 {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(uint32)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = uint32
1..3
}
ok 7 - sint32 {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(sint32)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = sint32
1..3
}
ok 8 - uint64 {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(uint64)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = uint64
1..3
}
ok 9 - sint64 {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(sint64)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = sint64
1..3
}
ok 10 - float {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(float)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = float
1..3
}
ok 11 - double {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(double)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = double
1..3
}
ok 12 - longdouble {
1..0 # SKIP test requires longdouble support
}
ok 13 - opaque {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(opaque)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = pointer
1..3
}
ok 14 - pointer {
1..0 # SKIP test requires longdouble support
}
ok 15 - string {
ok 1 - type = FFI::Platypus::TypeParser::Version0->new->parse(string)
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 3 - type.meta.ffi_type = pointer
1..3
}
1..15
}
1..9
}
ok 10 - 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: intmax_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: uintmax_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 11 - cast {
ok 1 - cast from string to pointer {
ok 1 - dynamic
ok 2 - static
1..2
}
ok 2 - cast from pointer to string {
ok 1 - dynamic
ok 2 - static
1..2
}
ok 3 - cast closure to opaque {
ok 1 - dynamic
ok 2 - dynamic
ok 3 - static
ok 4 - static
1..4
}
ok 4 - attach cast with wrapper {
ok 1
ok 2
1..2
}
1..4
}
ok 12 - ignore_not_found {
ok 1 - 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 2 - 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 3 - 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 4 - 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 5 - 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 6 - 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
}
1..6
}
ok 13 - 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 14 - attach void {
ok 1 - $i_ptr = 43 after f2(\$i_ptr)
ok 2 - $i_ptr = 44 after f2_implicit(\$i_ptr)
1..2
}
ok 15 - customer mangler {
ok 1
1..1
}
ok 16 - ->package is only allowed for api = 0 {
ok 1 - api = 0 {
ok 1
1..1
}
ok 2 - api = 1 {
ok 1
1..1
}
1..2
}
ok 17 - warning defaults {
ok 1 - api = 0 {
ok 1
ok 2
1..2
}
ok 2 - 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 507.
ok 1
ok 2
1..2
}
1..2
}
ok 18 - language plugin api version {
ok 1 - api = 0 {
ok 1
1..1
}
ok 2 - api = 1 {
ok 1
1..1
}
1..2
}
ok 19 - language load_custom_types hook {
ok 1
ok 2 - FFI::Platypus=HASH->isa('FFI::Platypus')
1..2
}
ok 20 - api attribute {
ok 1 - default is zero
ok 2 - explicit zero
ok 3 - explicit one
1..3
}
ok 21 - kindof {
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 {
ok 1 - void
ok 2 - scalar
ok 3 - pointer
ok 4 - array (fixed)
ok 5 - array (var)
ok 6 - string
1..6
}
ok 23 - def {
ok 1 - needs to be a real type {
ok 1
1..1
}
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
1..10
}
ok 24 - unitof {
ok 1 - void
ok 2 - scalar
ok 3 - pointer
ok 4 - array (fixed)
ok 5 - array (var)
ok 6 - string
1..6
}
1..24
ok
t/ffi_platypus_api.t .....................
ok 1 - basic {
ok 1
1..1
}
1..1
ok
t/ffi_platypus_buffer.t ..................
ok 1 - simple {
ok 1 - ptr = 19538864
ok 2 - scalar to pointer matches
ok 3 - size = 16
ok 4 - scalar = me grimlock king
1..4
}
ok 2 - unicode {
ok 1 - ptr = 19146328
ok 2 - size = 12
ok 3 - scalar = привет
1..3
}
ok 3 - grow {
ok 1 - B::PV returns consistent string length
ok 2 - initial buffer size is smaler than required
ok 3 - default options {
ok 1 - buffer grew as expected
ok 2 - original contents cleared
ok 3 - string length == requested buffer length
1..3
}
ok 4 - clear {
ok 1 - on {
ok 1 - buffer grew as expected
ok 2 - buffer contents cleared
1..2
}
ok 2 - off {
ok 1 - buffer grew as expected
ok 2 - buffer contents not cleared
1..2
}
1..2
}
ok 5 - set_length {
ok 1 - on {
ok 1 - buffer grew as expected
ok 2 - buffer length set
1..2
}
ok 2 - off {
ok 1 - buffer grew as expected
ok 2 - buffer length not cleared
1..2
}
1..2
}
ok 6 - bad option {
ok 1 - croaked
1..1
}
ok 7 - fail on reference {
ok 1 - croaked
1..1
}
ok 8 - $str = undef {
ok 1 - buffer grew as expected
1..1
}
ok 9 - undef {
ok 1 - croaked
1..1
}
1..9
}
ok 4 - set_used_length {
ok 1 - length < max {
ok 1 - requested length
ok 2 - requested string
1..2
}
ok 2 - length == max {
ok 1 - requested length
1..1
}
ok 3 - length > max {
ok 1 - maxed out length
1..1
}
ok 4 - fail on reference {
ok 1 - croaked
1..1
}
ok 5 - $str = undef { # TODO is set_used_length undef behavior correct?
not ok 1 - no added length #
# Failed test (with amnesty) 'no added length'
# at t/ffi_platypus_buffer.t line 155.
# +-----+----+-------+
# | GOT | OP | CHECK |
# +-----+----+-------+
# | 10 | eq | 0 |
# +-----+----+-------+
ok 2 - maxed out length #
1..2
}
ok 6 - undef {
ok 1 - croaked
1..1
}
1..6
}
ok 5 - hardwire {
ok 1 - ascii {
ok 1
ok 2
ok 3
ok 4
ok 5
1..5
}
ok 2 - unicode {
ok 1
ok 2
ok 3
ok 4
ok 5
1..5
}
ok 3 - strlen {
ok 1
ok 2
ok 3
1..3
}
1..3
}
1..5
ok
t/ffi_platypus_bundle.t ..................
ok 1 - from installed {
# spew(start)[/<<PKGBUILDDIR>>/.tmp/a3UT0ewlUD/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_1zw53a.c -o /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_1zw53a.c.o
# +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_1zw53a.c.o -o /<<PKGBUILDDIR>>/.tmp/a3UT0ewlUD/lib/auto/share/dist/Foo-Bar1/libbar1.so
# spew(start)[/<<PKGBUILDDIR>>/.tmp/a3UT0ewlUD/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 2 - from blib {
# spew(start)[/<<PKGBUILDDIR>>/.tmp/BTKsBC95xU/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_mAA0Cj.c -o /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_mAA0Cj.c.o
# +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_mAA0Cj.c.o -o /<<PKGBUILDDIR>>/.tmp/BTKsBC95xU/lib/auto/share/dist/Foo-Bar2/libbar2.so
# spew(start)[/<<PKGBUILDDIR>>/.tmp/BTKsBC95xU/arch/auto/Foo/Bar2/Bar2.txt]
# FFI::Build@auto/share/dist/Foo-Bar2/libbar2.so
# spew(end)
ok 1
ok 2
1..2
}
ok 3 - not loaded yet {
# spew(start)[/<<PKGBUILDDIR>>/.tmp/aU2f7Q3xc_/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_uOyOkA.c -o /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_uOyOkA.c.o
# +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/_build/ffi_build_uOyOkA.c.o -o /<<PKGBUILDDIR>>/.tmp/aU2f7Q3xc_/lib/auto/share/dist/Foo-Bar3/libbar3.so
# spew(start)[/<<PKGBUILDDIR>>/.tmp/aU2f7Q3xc_/lib/auto/Foo/Bar3/Bar3.txt]
# FFI::Build@auto/share/dist/Foo-Bar3/libbar3.so
# spew(end)
ok 1
1..1
}
ok 4 - with a ffi dir {
# spew(start)[/<<PKGBUILDDIR>>/.tmp/3em9S2DgG0/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/3em9S2DgG0/ffi/foo.c]
# int bar4(void) { return 45; }
# spew(end)
# spew(start)[/<<PKGBUILDDIR>>/.tmp/3em9S2DgG0/ffi/foo.fbx]
# use strict;
# use warnings;
# our $DIR;
# { export => ['bar4'], source => ["$DIR/*.c"] };
# spew(end)
ok 1
ok 2
1..2
}
ok 5 - entry points {
# spew(start)[/<<PKGBUILDDIR>>/.tmp/VethWnpNBZ/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/VethWnpNBZ/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/VethWnpNBZ/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] = -1225256952
# 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
}
1..5
ok
t/ffi_platypus_closure.t .................
ok 1 - basic {
ok 1 - FFI::Platypus::Closure=HASH->isa('FFI::Platypus::Closure')
ok 2 - closure.(1) = 2
ok 3 - FFI::Platypus::Closure=HASH->isa('FFI::Platypus::Closure')
ok 4 - closure.(1) = 3
ok 5 - closure.call(1) = 3
ok 6 - FFI::Platypus::Closure=HASH->isa('FFI::Platypus::Closure')
ok 7 - closure.(1) = 3
ok 8 - closure.call(1) = 3
1..8
}
ok 2 - sticky {
ok 1 - FFI::Platypus::Closure=HASH->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 3 - private {
ok 1 - FFI::Platypus::Closure=HASH->isa('FFI::Platypus::Closure')
ok 2 - closure.(1) = 2
1..2
}
ok 4 - space {
ok 1 - good without space
ok 2 - good with space
1..2
}
ok 5 - die {
ok 1
ok 2 - does not exit
# warning = 'omg i don't want to die! at t/ffi_platypus_closure.t line 70.
# '
1..2
}
ok 6 - reuse {
ok 1
ok 2
1..2
}
ok 7 - immediate {
ok 1
1..1
}
ok 8 - closure passing into a closure {
ok 1
# error = Only native types and strings are supported as closure argument types (1283) 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
}
1..8
ok
t/ffi_platypus_constant.t ................
ok 1 - very very basic... {
ok 1 - FFI::Platypus::Constant=HASH->isa('FFI::Platypus::Constant')
ok 2
1..2
}
ok 2 - create constants {
# spew(start)[/<<PKGBUILDDIR>>/.tmp/Sypl24Q73O/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/Sypl24Q73O/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
}
1..2
ok
t/ffi_platypus_dl.t ......................
ok 1 - flags {
ok 1 - RTLD_PLATYPUS_DEFAULT is defined
# RTLD_LOCAL 0000 0
# RTLD_PLATYPUS_DEFAULT 0001 1
# RTLD_LAZY 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 2 - dlopen {
ok 1 - 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 2 - good library {
ok 1 - Returns handle on good
# h = 14978824
1..1
}
1..2
}
ok 3 - dlsym {
ok 1 - good symbol {
ok 1 - returns an address
# address = 3063278280
1..1
}
ok 2 - bad symbol {
ok 1 - bad symbol returns undef
# dlerror = t/ffi/libtest.so: undefined symbol: bogus
1..1
}
1..2
}
1..3
ok
t/ffi_platypus_function.t ................
ok 1 - built in type {
ok 1 - ffi.function(f0, [uint8] => uint8)
ok 2 - FFI::Platypus::Function::Function=SCALAR->isa('FFI::Platypus::Function')
ok 3 - FFI::Platypus::Function::Function=SCALAR->isa('FFI::Platypus::Function::Function')
ok 4 - function.call(22) = 22
ok 5 - function.(22) = 22
1..5
}
ok 2 - custom type {
ok 1 - ffi.function(f0, [my_int_8] => my_int_8)
ok 2 - FFI::Platypus::Function::Function=SCALAR->isa('FFI::Platypus::Function')
ok 3 - FFI::Platypus::Function::Function=SCALAR->isa('FFI::Platypus::Function::Function')
ok 4 - function.call(22) = 22
ok 5 - function.(22) = 22
1..5
}
ok 3 - private {
ok 1 - FFI::Platypus::Function->new
ok 2 - FFI::Platypus::Function::Function=SCALAR->isa('FFI::Platypus::Function')
ok 3 - FFI::Platypus::Function::Function=SCALAR->isa('FFI::Platypus::Function::Function')
ok 4 - function.call(22) = 22
ok 5 - fooble(22) = 22
1..5
}
ok 4 - meta {
ok 1 - unattached {
ok 1
ok 2
1..2
}
ok 2 - attached {
ok 1
ok 2
1..2
}
1..2
}
ok 5 - sub_ref {
ok 1 - calls okay
ok 2 - it is a code reference
1..2
}
ok 6 - prototype {
ok 1 - one {
ok 1
ok 2
1..2
}
ok 2 - two {
ok 1
ok 2
1..2
}
1..2
}
ok 7 - variadic {
ok 1 - 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 2 - 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 3 - examples {
ok 1
ok 2
ok 3
1..3
}
1..3
}
ok 8 - void as arg should fail is arg count > 1 {
ok 1
1..1
}
ok 9 - single void arg treated as no args {
ok 1
1..1
}
1..9
ok
t/ffi_platypus_function_wrapper.t ........
ok 1 - built in type {
ok 1 - ffi.function(f0, [uint8] => uint8)
ok 2 - FFI::Platypus::Function::Wrapper=ARRAY->isa('FFI::Platypus::Function')
ok 3 - FFI::Platypus::Function::Wrapper=ARRAY->isa('FFI::Platypus::Function::Wrapper')
ok 4 - function.call(22) = 44
ok 5 - function.(22) = 44
ok 6 - baboon(11) = 22
1..6
}
ok 2 - sub_ref {
ok 1 - calls okay
ok 2 - it is a code reference
1..2
}
ok 3 - prototype {
ok 1 - one {
ok 1
ok 2
1..2
}
ok 2 - two {
ok 1
ok 2
1..2
}
1..2
}
1..3
ok
t/ffi_platypus_internal.t ................
ok 1 - 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_SIZE_0 0x0000
ok 47 - FFI_PL_SHAPE_SCALAR 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_MASK 0x0007
ok 56 - FFI_PL_SIZE_512 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
}
1..1
ok
t/ffi_platypus_lang.t ....................
ok 1 - Foo constructor {
ok 1 - int is not an okay type
# unknown ffi/platypus type int at t/ffi_platypus_lang.t line 12.
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 {
ok 1 - int is not an okay type
# unknown ffi/platypus type int at t/ffi_platypus_lang.t line 31.
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 3 - MyLang::Roger {
ok 1 - int is not an okay type
# unknown ffi/platypus type int at t/ffi_platypus_lang.t line 49.
ok 2 - sizeof foo_t = 4
1..2
}
1..3
ok
t/ffi_platypus_lang_asm.t ................
ok 1 - ASM {
ok 1 - int is not an okay type
# unknown ffi/platypus type int at t/ffi_platypus_lang_asm.t line 11.
ok 2 - foo_t is not an okay type
# unknown ffi/platypus type foo_t at t/ffi_platypus_lang_asm.t line 14.
ok 3 - sint16 is an okay type
ok 4 - unable to find unmangled name
1..4
}
1..1
ok
t/ffi_platypus_lang_c.t ..................
ok 1 - 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 13.
ok 3 - sint16 is an okay type
ok 4 - unable to find unmangled name
1..4
}
1..1
ok
t/ffi_platypus_lang_win32.t ..............
# encoding = UTF-32LE
# width = 4
ok 1 - native type map diagnostic {
# 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
# UINT uint32
# 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
# intmax_t sint64
# 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
# uintmax_t uint64
# 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 2 - load {
ok 1
1..1
}
ok 3 - LPCWSTR {
1..0 # SKIP Test only works on Windows
}
ok 4 - LPWSTR {
1..0 # SKIP Test only works on Windows
}
1..4
ok
t/ffi_platypus_legacy.t ..................
ok 1 - only load as needed {
ok 1
ok 2
1..2
}
1..1
ok
t/ffi_platypus_memory.t ..................
# lib=undef
# lib=/<<PKGBUILDDIR>>/blib/lib/auto/share/dist/FFI-Platypus/lib/libplfill.so
ok 1 - malloc calloc memset free {
ok 1 - malloc returns 13199248
ok 2 - calloc returns 13612592
ok 3 - string = yyyyxxxx
ok 4 - free $ptr1
ok 5 - free $ptr2
1..5
}
ok 2 - 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 3 - realloc {
ok 1 - realloc call ptr = 13612896
ok 2 - initial data copied
ok 3 - realloc call ptr = 13626560 (2)
ok 4 - after realloc data there
ok 5 - final free
1..5
}
ok 4 - strdup {
# strdup implementation = libc
ok 1 - string = this and
ok 2 - free $ptr1
1..2
}
ok 5 - strndup {
# strndup implementation = libc
ok 1 - full string {
ok 1
1..1
}
ok 2 - partial string {
ok 1
1..1
}
1..2
}
ok 6 - strcpy {
ok 1 - pointer cast back to string matches
1..1
}
1..6
ok
t/ffi_platypus_record.t ..................
ok 1 - integer accessor {
ok 1 - Foo1=SCALAR->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 2 - values match in C {
ok 1 - Color=SCALAR->isa('Color')
ok 2 - color.get_red = 50
ok 3 - color.get_green = 100
ok 4 - color.get_blue = 150
1..4
}
ok 3 - complex alignment {
ok 1 - Foo2=SCALAR->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 = 42099824
ok 13 - opaque = 42099824
ok 14 - get_opaque = undef
ok 15 - opaque = undef
1..15
}
ok 4 - same name {
ok 1 - two members of the same name not allowed
# accessor/method foo already exists at t/ffi_platypus_record.t line 186.
1..1
}
ok 5 - array alignment {
ok 1 - Foo4=SCALAR->isa('Foo4')
ok 2 - 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 3 - 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 4 - 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 5 - 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 6 - 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 7 - 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 8 - 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 9 - 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 10 - 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 11 - 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 12 - opaque {
ok 1 - opaque = 42323160,undef,42099104
ok 2 - opaque = 42323160,42323160,42099104
ok 3 - opaque = undef,42323160,42099104
ok 4
ok 5
ok 6
1..6
}
ok 13 - align = 8
ok 14 - align is positive
1..14
}
ok 6 - string ro {
ok 1 - Foo5=SCALAR->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 340.
ok 7 - foo.value = undef
ok 8 - foo.get_value = undef
1..8
}
ok 7 - fixed string {
ok 1 - Foo6=SCALAR->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 8 - string rw {
ok 1 - Foo7=SCALAR->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 9 - record with custom ffi {
ok 1 - Foo8=SCALAR->isa('Foo8')
ok 2
1..2
}
ok 10 - record with ffi args {
ok 1 - Foo8=SCALAR->isa('Foo8')
ok 2
1..2
}
ok 11 - api_1 {
ok 1 - no $ffi or args {
ok 1
ok 2
1..2
}
ok 2 - args {
ok 1
ok 2
1..2
}
ok 3 - $ffi {
ok 1
ok 2
1..2
}
1..3
}
1..11
ok
t/ffi_platypus_record_meta.t .............
ok 1 - basic {
ok 1 - FFI::Platypus::Record::Meta=SCALAR->isa('FFI::Platypus::Record::Meta')
ok 2 - meta->ffi_type = 30958632
ok 3 - meta->size
ok 4 - meta->alignment
ok 5 - meta->element_pointers
1..5
}
ok 2 - bogus types {
ok 1
ok 2
1..2
}
1..2
ok
t/ffi_platypus_record_tiearray.t .........
ok 1 - Foo=SCALAR->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,
# 'strnlen' => 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',
# 'intmax_t' => 'sint64',
# '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',
# 'uintmax_t' => 'uint64',
# '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
ok 2
1..2
ok
t/ffi_platypus_type.t ....................
ok 1 - basic type {
ok 1 - FFI::Platypus::Type=SCALAR->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 2 - fixed string / record (pass by reference) {
ok 1 - FFI::Platypus::Type=SCALAR->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 - FFI::Platypus::Type=SCALAR->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 3 - record {
ok 1 - record class value (pass by value) {
ok 1 - FFI::Platypus::Type=SCALAR->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 - FFI::Platypus::Type=SCALAR->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 2 - record class (pass by reference) {
ok 1 - FFI::Platypus::Type=SCALAR->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 - FFI::Platypus::Type=SCALAR->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
}
1..2
}
ok 4 - string rw {
ok 1 - FFI::Platypus::Type=SCALAR->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 5 - string ro {
ok 1 - FFI::Platypus::Type=SCALAR->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 6 - fixed array {
ok 1 - FFI::Platypus::Type=SCALAR->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 7 - var array {
ok 1 - FFI::Platypus::Type=SCALAR->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 8 - pointer {
ok 1 - FFI::Platypus::Type=SCALAR->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 9 - custom type {
ok 1 - FFI::Platypus::Type=SCALAR->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
}
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 ........
ok 1 - fixed length input {
ok 1 - 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 2 - 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
}
1..2
}
ok 2 - 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 3 - 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 4 - null terminated return {
ok 1 - returns null
ok 2
ok 3
ok 4
1..4
}
1..4
ok
t/ffi_platypus_type_stringpointer.t ......
ok 1 - arg pass in {
ok 1 - not null
ok 2 - \undef is null
ok 3 - undef is null
1..3
}
ok 2 - arg pass out {
ok 1 - not null string = hi there
ok 2 - not null string = and another
1..2
}
ok 3 - return value {
ok 1 - not null string = once more onto
ok 2 - \null
ok 3 - null
1..3
}
1..3
ok
t/ffi_platypus_type_widestring.t .........
# encoding = UTF-32LE
# width = 4
ok 1 - wcschr {
ok 1
ok 2
ok 3
1..3
}
ok 2 - wide string as argument (in) {
ok 1 - trivial
ok 2 - simple
ok 3 - fancy
ok 4 - complex
ok 5 - NULL
1..5
}
ok 3 - wide string as argument (out) {
ok 1 - trivial default buffer size
ok 2 - trivial with just enough buffer
ok 3 - simple default buffer size
ok 4 - simple with just enough buffer
ok 5 - fancy default buffer size
ok 6 - fancy with just enough buffer
ok 7 - complex default buffer size
ok 8 - complex with just enough buffer
ok 9 - NULL
1..9
}
ok 4 - wide string as a return value {
ok 1 - trivial
ok 2 - simple
ok 3 - fancy
ok 4 - complex
ok 5 - NULL
1..5
}
ok 5 - wide string as in-out argument {
ok 1 - trivial default buffer size
ok 2 - trivial with just enough buffer
ok 3 - simple default buffer size
ok 4 - simple with just enough buffer
ok 5 - fancy default buffer size
ok 6 - fancy with just enough buffer
ok 7 - complex default buffer size
ok 8 - complex with just enough buffer
1..8
}
1..5
ok
t/ffi_platypus_typeparser.t ..............
ok 1 - basic {
ok 1 - FFI::Platypus::TypeParser=HASH->isa('FFI::Platypus::TypeParser')
1..1
}
ok 2 - pick the right one {
ok 1 - FFI::Platypus::TypeParser::Version0=HASH->isa('FFI::Platypus::TypeParser::Version0')
ok 2 - FFI::Platypus::TypeParser::Version1=HASH->isa('FFI::Platypus::TypeParser::Version1')
1..2
}
1..2
ok
t/ffi_platypus_typeparser_version0.t .....
ok 1 - basic {
ok 1 - basic basic
ok 2 - longdouble {
1..0 # SKIP test requires support for long double
}
ok 3 - complex {
ok 1 - complex float
ok 2 - complex double
1..2
}
1..3
}
ok 2 - record {
ok 1 - fixed string
ok 2 - unclassed record
ok 3 - classed record
1..3
}
ok 3 - 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 4 - array {
ok 1 - fixed array
ok 2 - variable array
ok 3 - longdouble {
1..0 # SKIP test requires support for long double
}
ok 4 - complex {
ok 1 - variable array
ok 2 - variable array
1..2
}
1..4
}
ok 5 - pointer {
ok 1 - pointer
ok 2 - longdouble {
1..0 # SKIP test requires support for long double
}
ok 3 - complex {
ok 1 - complex float pointer
ok 2 - complex double pointer
1..2
}
1..3
}
1..5
ok
t/ffi_platypus_typeparser_version1.t .....
ok 1 - bad types {
ok 1
ok 2
1..2
}
ok 2 - basic types {
ok 1 - void {
ok 1 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 2
ok 3
ok 4
1..4
}
ok 2 - non-void {
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
1..6
}
ok 3 - 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 4 - bogus {
ok 1
1..1
}
1..4
}
ok 3 - 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 4 - fixed record / fixed string {
ok 1 - zero bad {
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
1..6
}
ok 2 - ten good {
ok 1 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 2
ok 3
ok 4
ok 5 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 6
ok 7
ok 8
ok 9 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 10
ok 11
ok 12
ok 13 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 14
ok 15
ok 16
ok 17 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 18
ok 19
ok 20
ok 21 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 22
ok 23
ok 24
1..24
}
ok 3 - ten pass-by-value {
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
1..6
}
1..3
}
ok 5 - record class {
ok 1 - good with size {
ok 1 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
1..2
}
ok 2 - bad without size {
ok 1
ok 2
1..2
}
ok 3 - pass-by-value {
ok 1 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
1..1
}
ok 4 - alias {
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
1..6
}
1..4
}
ok 6 - check alias {
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
1..8
}
ok 7 - 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 8 - object {
ok 1
ok 2
ok 3
1..3
}
1..8
ok
t/ffi_platypus_typeparser_version2.t .....
ok 1 - bad types {
ok 1
ok 2
1..2
}
ok 2 - basic types {
ok 1 - void {
ok 1 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 2
ok 3
ok 4
1..4
}
ok 2 - non-void {
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
1..6
}
ok 3 - 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 4 - bogus {
ok 1
1..1
}
1..4
}
ok 3 - 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 4 - fixed record / fixed string {
ok 1 - zero bad {
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
1..6
}
ok 2 - ten good {
ok 1 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 2
ok 3
ok 4
ok 5 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 6
ok 7
ok 8
ok 9 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 10
ok 11
ok 12
ok 13 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 14
ok 15
ok 16
ok 17 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 18
ok 19
ok 20
ok 21 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 22
ok 23
ok 24
1..24
}
ok 3 - ten pass-by-value {
ok 1 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 2
ok 3
ok 4
ok 5 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 6
ok 7
ok 8
ok 9 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 10
ok 11
ok 12
ok 13 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 14
ok 15
ok 16
ok 17 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 18
ok 19
ok 20
1..20
}
ok 4 - ten record pass-by-value {
ok 1
1..1
}
1..4
}
ok 5 - record class {
ok 1 - good with size {
ok 1 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
ok 2 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
1..2
}
ok 2 - bad without size {
ok 1
ok 2
1..2
}
ok 3 - pass-by-value {
ok 1 - FFI::Platypus::Type=SCALAR->isa('FFI::Platypus::Type')
1..1
}
ok 4 - alias {
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
1..6
}
1..4
}
ok 6 - check alias {
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
1..8
}
ok 7 - 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 8 - object {
ok 1
ok 2
ok 3
1..3
}
1..8
ok
t/ffi_probe.t ............................
ok 1 - check_header {
ok 1 - FFI::Probe=HASH->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-nyMBAB/ffi_build_44KsfB.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-nyMBAB/_build/ffi_build_44KsfB.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-nyMBAB/ffi_build_l8px2y.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-nyMBAB/_build/ffi_build_l8px2y.c.o
# /<<PKGBUILDDIR>>/.tmp/ffi-probe-nyMBAB/ffi_build_l8px2y.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 2 - 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-uxYaZf/ffi_build_sT5Hbf.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/_build/ffi_build_sT5Hbf.c.o
# +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/_build/ffi_build_sT5Hbf.c.o -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/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-uxYaZf/ffi_build_zDBbPE.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/_build/ffi_build_zDBbPE.c.o
# +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/_build/ffi_build_zDBbPE.c.o -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/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-uxYaZf/ffi_build_O3l4r7.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/_build/ffi_build_O3l4r7.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-uxYaZf/ffi_build_2JUtjC.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/_build/ffi_build_2JUtjC.c.o
# +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/_build/ffi_build_2JUtjC.c.o -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/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-uxYaZf/ffi_build_j9Fn82.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/_build/ffi_build_j9Fn82.c.o
# +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/_build/ffi_build_j9Fn82.c.o -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/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-uxYaZf/ffi_build_1Atrty.c -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/_build/ffi_build_1Atrty.c.o
# +arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/_build/ffi_build_1Atrty.c.o -o /<<PKGBUILDDIR>>/.tmp/ffi-probe-uxYaZf/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
}
1..2
ok
t/ffi_probe_runner.t .....................
ok 1 - basic {
# exe=blib/lib/auto/share/dist/FFI-Platypus/probe/bin/dlrun
ok 1 - FFI::Probe::Runner=HASH->isa('FFI::Probe::Runner')
ok 2
ok 3
1..3
}
ok 2 - run not pass {
# CC corpus/ffi_probe_runner/foo.c
# LD /<<PKGBUILDDIR>>/.tmp/test-probe-mhGi5a/libfrooble1.so
# lib=/<<PKGBUILDDIR>>/.tmp/test-probe-mhGi5a/libfrooble1.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 {
# CC corpus/ffi_probe_runner/bar.c
# LD /<<PKGBUILDDIR>>/.tmp/test-probe-fJhwQe/libfrooble2.so
# lib=/<<PKGBUILDDIR>>/.tmp/test-probe-fJhwQe/libfrooble2.so
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
1..9
}
1..3
ok
t/ffi_probe_runner_builder.t .............
# dir = /<<PKGBUILDDIR>>/.tmp/test-probe-7CZ4RS
# libs=-ldl
# libs=
# libs=-lm
# libs=-lpthread
# libs=-lc
# libs=-lcrypt
ok 1 - FFI::Probe::Runner::Builder=HASH->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-7CZ4RS/src/dlrun.o /<<PKGBUILDDIR>>/.tmp/test-probe-7CZ4RS/src/dlrun.c
# +arm-linux-gnueabihf-gcc -fstack-protector-strong -L/usr/local/lib -o /<<PKGBUILDDIR>>/.tmp/test-probe-7CZ4RS/bin/dlrun /<<PKGBUILDDIR>>/.tmp/test-probe-7CZ4RS/src/dlrun.o -ldl
# +/<<PKGBUILDDIR>>/.tmp/test-probe-7CZ4RS/bin/dlrun verify self
# dlrun verify self ok
ok 2 - no error
ok 3 - executable exists
# exe = /<<PKGBUILDDIR>>/.tmp/test-probe-7CZ4RS/bin/dlrun
# + /<<PKGBUILDDIR>>/.tmp/test-probe-7CZ4RS/bin/dlrun verify self
# dlrun verify self ok
ok 4 - verify ok
# + ldd /<<PKGBUILDDIR>>/.tmp/test-probe-7CZ4RS/bin/dlrun
# linux-vdso.so.1 (0xbef78000)
# libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6f19000)
# libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6db0000)
# /lib/ld-linux-armhf.so.3 (0xb6f3a000)
1..4
ok
t/ffi_probe_runner_result.t ..............
ok 1 - FFI::Probe::Runner::Result=HASH->isa('FFI::Probe::Runner::Result')
ok 2
ok 3 - FFI::Probe::Runner::Result=HASH->isa('FFI::Probe::Runner::Result')
ok 4
ok 5
ok 6 - FFI::Probe::Runner::Result=HASH->isa('FFI::Probe::Runner::Result')
ok 7
ok 8
1..8
ok
t/ffi_temp.t .............................
ok 1
# dir = /<<PKGBUILDDIR>>/.tmp/cHhCCu_nOt
# file = /<<PKGBUILDDIR>>/.tmp/GAJZklLivl
1..1
ok
t/forks.t ................................ skipped: Test requires forks
t/gh117.t ................................
# value64 = 1099511627775
ok 1
1..1
ok
t/gh129.t ................................
ok 1 - attached function {
ok 1
1..1
}
ok 2 - dynamic function {
ok 1
1..1
}
ok 3 - type wrapper argument {
ok 1
1..1
}
ok 4 - type wrapper argument post {
ok 1
1..1
}
ok 5 - type wrapper return type {
ok 1
1..1
}
1..5
ok
t/gh323.t ................................
ok 1 - api => 0 {
# double = 3.140000
# float = 3.140000
ok 1
# my_float = 3.140000
ok 2
1..2
}
ok 2 - api => 1 {
# double = 3.140000
# float = 3.140000
ok 1
# my_float = 3.140000
ok 2
1..2
}
ok 3 - api => 2 {
# double = 3.140000
# float = 3.140000
ok 1
# my_float = 3.140000
ok 2
1..2
}
1..3
ok
t/memory.t ............................... skipped: tested only in CI
t/threads.t ..............................
ok 1
ok 2 - works in a thread
ok 3 - works in main thread
1..3
ok
t/type_complex_double.t ..................
ok 1 - api = 0 {
ok 1 - standard argument {
ok 1 - 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 2 - 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 3 - 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
}
1..3
}
ok 2 - pointer argument {
ok 1 - 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 2 - 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 3 - 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 4 - values set on out (array) {
ok 1
1..1
}
ok 5 - values set on out (object) {
ok 1
1..1
}
ok 6 - values set on out (other) {
ok 1
1..1
}
1..6
}
ok 3 - return value {
ok 1 - standard
ok 2 - pointer
ok 3 - null
1..3
}
ok 4 - complex array arg {
ok 1
ok 2
ok 3
1..3
}
ok 5 - complex array arg {
1..0 # SKIP for api >= 2 only
}
ok 6 - complex array arg set {
ok 1
1..1
}
ok 7 - complex array arg set {
1..0 # SKIP for api >= 2 only
}
ok 8 - complex array ret {
ok 1
1..1
}
1..8
}
ok 2 - api = 1 {
ok 1 - standard argument {
ok 1 - 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 2 - 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 3 - 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
}
1..3
}
ok 2 - pointer argument {
ok 1 - 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 2 - 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 3 - 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 4 - values set on out (array) {
ok 1
1..1
}
ok 5 - values set on out (object) {
ok 1
1..1
}
ok 6 - values set on out (other) {
ok 1
1..1
}
1..6
}
ok 3 - return value {
ok 1 - standard
ok 2 - pointer
ok 3 - null
1..3
}
ok 4 - complex array arg {
ok 1
ok 2
ok 3
1..3
}
ok 5 - complex array arg {
1..0 # SKIP for api >= 2 only
}
ok 6 - complex array arg set {
ok 1
1..1
}
ok 7 - complex array arg set {
1..0 # SKIP for api >= 2 only
}
ok 8 - complex array ret {
ok 1
1..1
}
1..8
}
ok 3 - api = 2 {
ok 1 - standard argument {
ok 1 - 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 2 - 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 3 - 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
}
1..3
}
ok 2 - pointer argument {
ok 1 - 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 2 - 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 3 - 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 4 - values set on out (array) {
ok 1
1..1
}
ok 5 - values set on out (object) {
ok 1
1..1
}
ok 6 - values set on out (other) {
ok 1
1..1
}
1..6
}
ok 3 - return value {
ok 1 - standard
ok 2 - pointer
ok 3 - null
1..3
}
ok 4 - complex array arg {
ok 1
ok 2
ok 3
1..3
}
ok 5 - complex array arg {
ok 1
ok 2
ok 3
1..3
}
ok 6 - complex array arg set {
ok 1
1..1
}
ok 7 - complex array arg set {
ok 1
1..1
}
ok 8 - complex array ret {
ok 1
1..1
}
1..8
}
1..3
ok
t/type_complex_float.t ...................
ok 1 - api = 0 {
ok 1 - standard argument {
ok 1 - 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 2 - 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 3 - 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
}
1..3
}
ok 2 - pointer argument {
ok 1 - 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 2 - 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 3 - 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 4 - values set on out (array) {
ok 1
1..1
}
ok 5 - values set on out (object) {
ok 1
1..1
}
ok 6 - values set on out (other) {
ok 1
1..1
}
1..6
}
ok 3 - return value {
ok 1 - standard
ok 2 - pointer
ok 3 - null
1..3
}
ok 4 - complex array arg {
ok 1
ok 2
ok 3
1..3
}
ok 5 - complex array arg {
1..0 # SKIP for api >= 2 only
}
ok 6 - complex array arg set {
ok 1
1..1
}
ok 7 - complex array arg set {
1..0 # SKIP for api >= 2 only
}
ok 8 - complex array ret {
ok 1
1..1
}
1..8
}
ok 2 - api = 1 {
ok 1 - standard argument {
ok 1 - 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 2 - 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 3 - 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
}
1..3
}
ok 2 - pointer argument {
ok 1 - 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 2 - 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 3 - 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 4 - values set on out (array) {
ok 1
1..1
}
ok 5 - values set on out (object) {
ok 1
1..1
}
ok 6 - values set on out (other) {
ok 1
1..1
}
1..6
}
ok 3 - return value {
ok 1 - standard
ok 2 - pointer
ok 3 - null
1..3
}
ok 4 - complex array arg {
ok 1
ok 2
ok 3
1..3
}
ok 5 - complex array arg {
1..0 # SKIP for api >= 2 only
}
ok 6 - complex array arg set {
ok 1
1..1
}
ok 7 - complex array arg set {
1..0 # SKIP for api >= 2 only
}
ok 8 - complex array ret {
ok 1
1..1
}
1..8
}
ok 3 - api = 2 {
ok 1 - standard argument {
ok 1 - 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 2 - 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 3 - 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
}
1..3
}
ok 2 - pointer argument {
ok 1 - 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 2 - 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 3 - 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 4 - values set on out (array) {
ok 1
1..1
}
ok 5 - values set on out (object) {
ok 1
1..1
}
ok 6 - values set on out (other) {
ok 1
1..1
}
1..6
}
ok 3 - return value {
ok 1 - standard
ok 2 - pointer
ok 3 - null
1..3
}
ok 4 - complex array arg {
ok 1
ok 2
ok 3
1..3
}
ok 5 - complex array arg {
ok 1
ok 2
ok 3
1..3
}
ok 6 - complex array arg set {
ok 1
1..1
}
ok 7 - complex array arg set {
ok 1
1..1
}
ok 8 - complex array ret {
ok 1
1..1
}
1..8
}
1..3
ok
t/type_custom.t ..........................
ok 1 - 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 2 - illegal types {
# alias = foo_sint8_32_
ok 1
# alias = foo_sint8_
ok 2
1..2
}
ok 3 - records {
ok 1 - pointer {
ok 1
ok 2
ok 3
ok 4
ok 5
1..5
}
ok 2 - by-value {
ok 1
ok 2
ok 3
ok 4 - return-value {
ok 1
1..1
}
1..4
}
1..2
}
1..3
ok
t/type_double.t ..........................
ok 1 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(1.25,2.5) = 4
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 2.25
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 2 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(1.25,2.5) = 4
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 2.25
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 3 - 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 - sum([1..10]) = 55
ok 9 - array increment
ok 10 - array increment
ok 11 - null() == undef
ok 12 - is_null(undef) == 1
ok 13 - is_null() == 1
ok 14 - is_null(22) == 0
ok 15 - static_array = [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5]
ok 16 - null2() == undef
ok 17 - call_closure(2.5) = 4.75
ok 18 - call_closure(2.5) = 0
ok 19 - custom type input {
ok 1
ok 2 - custom_add(1.25,2.5) = 4
1..2
}
ok 20 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 2.25
1..2
}
ok 21 - closure_pointer_is_null() = 1
1..21
}
1..3
ok
t/type_float.t ...........................
ok 1 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(1.25,2.5) = 4
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 2.25
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 2 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(1.25,2.5) = 4
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 2.25
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 3 - 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 - sum([1..10]) = 55
ok 9 - array increment
ok 10 - array increment
ok 11 - null() == undef
ok 12 - is_null(undef) == 1
ok 13 - is_null() == 1
ok 14 - is_null(22) == 0
ok 15 - static_array = [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5]
ok 16 - null2() == undef
ok 17 - call_closure(2.5) = 4.75
ok 18 - call_closure(2.5) = 0
ok 19 - custom type input {
ok 1
ok 2 - custom_add(1.25,2.5) = 4
1..2
}
ok 20 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 2.25
1..2
}
ok 21 - closure_pointer_is_null() = 1
1..21
}
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 ..........................
ok 1 - 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(14451656); getp() = 14451656
ok 6 - get($tmp); tmp = 14451656
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(\14762496) = 14762496
ok 17 - p2pp(undef) = \undef
ok 18 - pp2p(15057720) = \15057720
ok 19 - call_closure(undef) = undef
ok 20 - save = undef
ok 21 - call_closure(\14761864) = 14761864
ok 22 - save = 14761864
ok 23 - custom type input {
ok 1
ok 2
1..2
}
ok 24 - custom type output {
ok 1
ok 2
1..2
}
1..24
}
ok 2 - 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(15027192); getp() = 15027192
ok 6 - get($tmp); tmp = 15027192
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(\15104464) = 15104464
ok 17 - p2pp(undef) = \undef
ok 18 - pp2p(15047184) = \15047184
ok 19 - call_closure(undef) = undef
ok 20 - save = undef
ok 21 - call_closure(\15057472) = 15057472
ok 22 - save = 15057472
ok 23 - custom type input {
ok 1
ok 2
1..2
}
ok 24 - custom type output {
ok 1
ok 2
1..2
}
1..24
}
ok 3 - 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(15206944); getp() = 15206944
ok 6 - get($tmp); tmp = 15206944
ok 7 - get(\$tmp); \$tmp = undef
ok 8 - aa_in([one two three])
ok 9 - aa_in([one two three])
ok 10 - aa_null_in([undef,undef,undef])
ok 11 - aa_out()
ok 12 - aa_out()
ok 13 - aa_null_out()
ok 14 - ra_out()
ok 15 - ra_out_nt()
ok 16 - ra_null_out
ok 17 - pp2p(\undef) = undef
ok 18 - pp2p(\14813600) = 14813600
ok 19 - p2pp(undef) = \undef
ok 20 - pp2p(15045576) = \15045576
ok 21 - call_closure(undef) = undef
ok 22 - save = undef
ok 23 - call_closure(\15045576) = 15045576
ok 24 - save = 15045576
ok 25 - custom type input {
ok 1
ok 2
1..2
}
ok 26 - custom type output {
ok 1
ok 2
1..2
}
1..26
}
ok 4 - object {
ok 1 - argument {
ok 1
ok 2
1..2
}
ok 2 - return value {
ok 1
ok 2 - Roger=SCALAR->isa('Roger')
ok 3
ok 4 - Roger=SCALAR->isa('Roger')
ok 5
1..5
}
ok 3
1..3
}
ok 5 - object {
ok 1 - argument {
ok 1
ok 2
1..2
}
ok 2 - return value {
ok 1
ok 2 - Roger=SCALAR->isa('Roger')
ok 3
ok 4 - Roger=SCALAR->isa('Roger')
ok 5
1..5
}
ok 3
1..3
}
1..5
ok
t/type_record.t ..........................
# record size = 20
ok 1 - not a reference {
ok 1 - 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 2 - out {
# packed size = 20
ok 1 - get_value($packed) = 47
ok 2 - get_value($packed) = platypus
ok 3 - null() = undef
1..3
}
1..2
}
ok 2 - return null {
ok 1
ok 2
1..2
}
ok 3 - is a reference {
ok 1 - 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 2 - out {
# packed size = 31
ok 1 - My::FooRecord=SCALAR->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
}
1..2
}
ok 4 - 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 135.
ok 8
ok 9
ok 10
ok 11
# error = record is read-only at t/type_record.t line 144.
ok 12
ok 13
# error = record is read-only at t/type_record.t line 151.
ok 14
ok 15
ok 16
# error = record is read-only at t/type_record.t line 160.
ok 17
ok 18
ok 19
# error = record is read-only at t/type_record.t line 169.
ok 20
ok 21
# error = record is read-only at t/type_record.t line 176.
ok 22
ok 23
# error = record is read-only at t/type_record.t line 184.
ok 24
ok 25
ok 26
# error = record is read-only at t/type_record.t line 193.
ok 27
ok 28
ok 29
ok 30
ok 31
ok 32
1..32
}
ok 5 - api = 1 fixed string {
ok 1
ok 2
ok 3
1..3
}
1..5
ok
t/type_record_value.t ....................
ok 1 - is a reference {
ok 1 - argument {
ok 1 - bad {
ok 1
ok 2
ok 3
1..3
}
ok 2 - good {
ok 1
ok 2
1..2
}
1..2
}
ok 2 - return value {
ok 1 - function object {
ok 1
ok 2
1..2
}
ok 2 - xsub_ref {
ok 1
ok 2
1..2
}
ok 3 - attach {
ok 1
ok 2
1..2
}
1..3
}
1..2
}
ok 2 - closure {
ok 1 - do allow record type as arg
ok 2 - do not allow record type with pointer strings as ret type
ok 3
# first closure
ok 4 - Closure::Record::RW=SCALAR->isa('Closure::Record::RW')
ok 5
ok 6
ok 7
ok 8
ok 9
# error = record is read-only at t/type_record_value.t line 156.
ok 10
ok 11
ok 12
ok 13
# error = record is read-only at t/type_record_value.t line 165.
ok 14
ok 15
# error = record is read-only at t/type_record_value.t line 172.
ok 16
ok 17
ok 18
# error = record is read-only at t/type_record_value.t line 181.
ok 19
ok 20
ok 21
# error = record is read-only at t/type_record_value.t line 190.
ok 22
ok 23
# error = record is read-only at t/type_record_value.t line 197.
ok 24
ok 25
# error = record is read-only at t/type_record_value.t line 205.
ok 26
ok 27
ok 28
# error = record is read-only at t/type_record_value.t line 214.
ok 29
ok 30
ok 31
1..31
}
ok 3 - closure ret {
ok 1
ok 2
ok 3 - good {
ok 1 - Closure::Record::Simple=SCALAR->isa('Closure::Record::Simple')
ok 2
ok 3
ok 4
1..4
}
ok 4 - bad {
# Return record from closure is wrong type! at t/type_record_value.t line 286.
ok 1 - Closure::Record::Simple=SCALAR->isa('Closure::Record::Simple')
ok 2
ok 3
ok 4
1..4
}
ok 5 - short {
# Return record from closure is wrong size! at t/type_record_value.t line 307.
ok 1 - Closure::Record::Simple=SCALAR->isa('Closure::Record::Simple')
ok 2
ok 3
ok 4
1..4
}
1..5
}
1..3
ok
t/type_sint16.t ..........................
ok 1 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 2 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 3 - 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 - sum([-5..4]) = -5 (passed as pointer)
ok 9 - array increment
ok 10 - array increment
ok 11 - null() == undef
ok 12 - is_null(undef) == 1
ok 13 - is_null() == 1
ok 14 - is_null(22) == 0
ok 15 - static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]
ok 16 - null2() == undef
ok 17 - call_closure(-2) = -4
ok 18 - call_closure(2) = 0
ok 19 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 20 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 21 - closure_pointer_is_null() = 1
1..21
}
ok 4 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
ok 5 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
1..5
ok
t/type_sint32.t ..........................
ok 1 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 2 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 3 - 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 - sum([-5..4]) = -5 (passed as pointer)
ok 9 - array increment
ok 10 - array increment
ok 11 - null() == undef
ok 12 - is_null(undef) == 1
ok 13 - is_null() == 1
ok 14 - is_null(22) == 0
ok 15 - static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]
ok 16 - null2() == undef
ok 17 - call_closure(-2) = -4
ok 18 - call_closure(2) = 0
ok 19 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 20 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 21 - closure_pointer_is_null() = 1
1..21
}
ok 4 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
ok 5 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
1..5
ok
t/type_sint64.t ..........................
ok 1 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 2 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 3 - 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 - sum([-5..4]) = -5 (passed as pointer)
ok 9 - array increment
ok 10 - array increment
ok 11 - null() == undef
ok 12 - is_null(undef) == 1
ok 13 - is_null() == 1
ok 14 - is_null(22) == 0
ok 15 - static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]
ok 16 - null2() == undef
ok 17 - call_closure(-2) = -4
ok 18 - call_closure(2) = 0
ok 19 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 20 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 21 - closure_pointer_is_null() = 1
1..21
}
ok 4 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
ok 5 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
1..5
ok
t/type_sint8.t ...........................
ok 1 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 2 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 19 - closure_pointer_is_null() = 1
1..19
}
ok 3 - 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 - sum([-5..4]) = -5 (passed as pointer)
ok 9 - array increment
ok 10 - array increment
ok 11 - null() == undef
ok 12 - is_null(undef) == 1
ok 13 - is_null() == 1
ok 14 - is_null(22) == 0
ok 15 - static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]
ok 16 - null2() == undef
ok 17 - call_closure(-2) = -4
ok 18 - call_closure(2) = 0
ok 19 - custom type input {
ok 1
ok 2 - custom_add(-2,-1) = -5
1..2
}
ok 20 - custom type output {
ok 1
ok 2 - custom_add2(-2,-1) = -6
1..2
}
ok 21 - closure_pointer_is_null() = 1
1..21
}
ok 4 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
ok 5 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
1..5
ok
t/type_string.t ..........................
ok 1 - 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
ok 26 - fixed length input {
ok 1 - 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
}
1..1
}
ok 27 - 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 28 - variable length input {
1..0 # SKIP test requires api >=2
}
ok 29 - 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 30 - null terminated return {
ok 1 - returns null
ok 2
ok 3
ok 4
1..4
}
ok 31 - argument update {
ok 1
1..1
}
ok 32 - write to string {
ok 1
1..1
}
ok 33
1..33
}
ok 2 - 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
ok 26 - fixed length input {
ok 1 - 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
}
1..1
}
ok 27 - 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 28 - variable length input {
1..0 # SKIP test requires api >=2
}
ok 29 - 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 30 - null terminated return {
ok 1 - returns null
ok 2
ok 3
ok 4
1..4
}
ok 31 - argument update {
ok 1
1..1
}
ok 32 - write to string {
ok 1
1..1
}
ok 33
1..33
}
ok 3 - 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
ok 26 - fixed length input {
ok 1 - 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
}
1..1
}
ok 27 - 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 28 - 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 29 - 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 30 - null terminated return {
ok 1 - returns null
ok 2
ok 3
ok 4
1..4
}
ok 31 - argument update {
ok 1
1..1
}
ok 32 - write to string {
ok 1
1..1
}
ok 33
1..33
}
1..3
ok
t/type_uint16.t ..........................
ok 1 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 19 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 20 - closure_pointer_is_null() = 1
1..20
}
ok 2 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 19 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 20 - closure_pointer_is_null() = 1
1..20
}
ok 3 - 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 - sum([1..10]) = 55 (passed as pointer)
ok 9 - array increment
ok 10 - array increment
ok 11 - null() == undef
ok 12 - is_null(undef) == 1
ok 13 - is_null() == 1
ok 14 - is_null(22) == 0
ok 15 - static_array = [1,4,6,8,10,12,14,16,18,20]
ok 16 - null2() == undef
ok 17 - call_closure(2) = 4
ok 18 - call_closure(2) = 0
ok 19 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 20 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 21 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 22 - closure_pointer_is_null() = 1
1..22
}
ok 4 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
ok 5 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
1..5
ok
t/type_uint32.t ..........................
ok 1 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 19 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 20 - closure_pointer_is_null() = 1
1..20
}
ok 2 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 19 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 20 - closure_pointer_is_null() = 1
1..20
}
ok 3 - 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 - sum([1..10]) = 55 (passed as pointer)
ok 9 - array increment
ok 10 - array increment
ok 11 - null() == undef
ok 12 - is_null(undef) == 1
ok 13 - is_null() == 1
ok 14 - is_null(22) == 0
ok 15 - static_array = [1,4,6,8,10,12,14,16,18,20]
ok 16 - null2() == undef
ok 17 - call_closure(2) = 4
ok 18 - call_closure(2) = 0
ok 19 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 20 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 21 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 22 - closure_pointer_is_null() = 1
1..22
}
ok 4 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
ok 5 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
1..5
ok
t/type_uint64.t ..........................
ok 1 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 19 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 20 - closure_pointer_is_null() = 1
1..20
}
ok 2 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 19 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 20 - closure_pointer_is_null() = 1
1..20
}
ok 3 - 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 - sum([1..10]) = 55 (passed as pointer)
ok 9 - array increment
ok 10 - array increment
ok 11 - null() == undef
ok 12 - is_null(undef) == 1
ok 13 - is_null() == 1
ok 14 - is_null(22) == 0
ok 15 - static_array = [1,4,6,8,10,12,14,16,18,20]
ok 16 - null2() == undef
ok 17 - call_closure(2) = 4
ok 18 - call_closure(2) = 0
ok 19 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 20 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 21 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 22 - closure_pointer_is_null() = 1
1..22
}
ok 4 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
ok 5 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
1..5
ok
t/type_uint8.t ...........................
ok 1 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 19 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 20 - closure_pointer_is_null() = 1
1..20
}
ok 2 - 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
ok 17 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 18 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 19 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 20 - closure_pointer_is_null() = 1
1..20
}
ok 3 - 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 - sum([1..10]) = 55 (passed as pointer)
ok 9 - array increment
ok 10 - array increment
ok 11 - null() == undef
ok 12 - is_null(undef) == 1
ok 13 - is_null() == 1
ok 14 - is_null(22) == 0
ok 15 - static_array = [1,4,6,8,10,12,14,16,18,20]
ok 16 - null2() == undef
ok 17 - call_closure(2) = 4
ok 18 - call_closure(2) = 0
ok 19 - custom type input {
ok 1
ok 2 - custom_add(2,1) = 5
1..2
}
ok 20 - custom type output {
ok 1
ok 2 - custom_add2(1,1) = 4
1..2
}
ok 21 - custom type post {
ok 1
ok 2 - custom_add3(1,2) = 3
1..2
}
ok 22 - closure_pointer_is_null() = 1
1..22
}
ok 4 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
ok 5 - object {
ok 1 - argument {
ok 1
1..1
}
ok 2 - return value {
ok 1 - Roger=SCALAR->isa('Roger')
ok 2
1..2
}
1..2
}
1..5
ok
All tests successful.
Files=72, Tests=313, 70 wallclock secs ( 1.58 usr 0.36 sys + 59.08 cusr 8.79 csys = 69.81 CPU)
Result: PASS
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
create-stamp debian/debhelper-build-stamp
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 10 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.34/auto/FFI/Platypus/Platypus.so
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Memory/Memory.txt
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Record/Meta/Meta.txt
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Constant/Constant.txt
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/config.pl
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/probe/probe.pl
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/probe/bin/dlrun
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/probe/src/dlrun.c
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/include/ffi_platypus_config.h
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/include/ffi_platypus_bundle.h
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/lib/libplfill.so
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Probe.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/typemap
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Temp.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Lang.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Constant.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Buffer.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Record.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/DL.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/TypeParser.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Function.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Legacy.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Internal.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/ShareConfig.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Memory.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Type.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Closure.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/API.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Bundle.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Lang/Win32.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Lang/ASM.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Lang/C.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Type/StringPointer.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Type/WideString.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Type/StringArray.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Type/PointerSizeBuffer.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/TypeParser/Version0.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/TypeParser/Version1.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/TypeParser/Version2.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Record/Meta.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Record/TieArray.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/Platform.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/Plugin.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/MM.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/PluginData.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/File/Base.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/File/C.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/File/Library.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/File/Object.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/File/CXX.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Probe/Runner.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Probe/Runner/Builder.pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Probe/Runner/Result.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::Build::Plugin.3pm
Installing /<<PKGBUILDDIR>>/debian/libffi-platypus-perl/usr/share/man/man3/FFI::Build::PluginData.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::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::Type::WideString.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::Platypus::TypeParser::Version2.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
dwz: debian/libffi-platypus-perl/usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Platypus.so: DWARF compression not beneficial - old size 191212 new size 191497
dh_strip -a
dh_makeshlibs -a
dh_shlibdeps -a
dh_installdeb -a
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
dpkg-deb: building package 'libffi-platypus-perl' in '../libffi-platypus-perl_2.00-1_armhf.deb'.
dpkg-deb: building package 'libffi-platypus-perl-dbgsym' in '../libffi-platypus-perl-dbgsym_2.00-1_armhf.deb'.
dpkg-genbuildinfo --build=any -O../libffi-platypus-perl_2.00-1_armhf.buildinfo
dpkg-genchanges --build=any -mRaspbian pi4 based autobuilder <root@raspbian.org> -O../libffi-platypus-perl_2.00-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 2022-08-23T04:54:07Z
Finished
--------
I: Built successfully
+------------------------------------------------------------------------------+
| Changes |
+------------------------------------------------------------------------------+
libffi-platypus-perl_2.00-1_armhf.changes:
------------------------------------------
Format: 1.8
Date: Sat, 20 Aug 2022 15:50:13 +0200
Source: libffi-platypus-perl
Binary: libffi-platypus-perl libffi-platypus-perl-dbgsym
Architecture: armhf
Version: 2.00-1
Distribution: bookworm-staging
Urgency: medium
Maintainer: Raspbian pi4 based 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 (2.00-1) unstable; urgency=medium
.
* Import upstream version 2.00.
* debian/copyright: add file in inc/.
Checksums-Sha1:
86746d02209ac5de59bcd133604436205b060dd6 170536 libffi-platypus-perl-dbgsym_2.00-1_armhf.deb
62cb7c4ad97d3bd930d1dcf9b86c3faa84ee029b 5487 libffi-platypus-perl_2.00-1_armhf.buildinfo
1280e45663f0ca8ca1fd2e6ea470eb8e20c321b9 309036 libffi-platypus-perl_2.00-1_armhf.deb
Checksums-Sha256:
a66c05b150e4a507d1728f061d7c22349febb00dca3ba89a9a5943a8dd7767bb 170536 libffi-platypus-perl-dbgsym_2.00-1_armhf.deb
f962ab1c4b21671e88a494e43fd974bf4f009e05767e024217ba459e737ca346 5487 libffi-platypus-perl_2.00-1_armhf.buildinfo
1a572fca4e6cc981f38a43c4e35b4ae343c6217032c1e4d85f7a6231ce647c2a 309036 libffi-platypus-perl_2.00-1_armhf.deb
Files:
eaf051582a494473ed805fdf27a9d969 170536 debug optional libffi-platypus-perl-dbgsym_2.00-1_armhf.deb
d11211741f66241189dc99daa602287d 5487 perl optional libffi-platypus-perl_2.00-1_armhf.buildinfo
c7ff029b1b09cb8146703d50b300aef9 309036 perl optional libffi-platypus-perl_2.00-1_armhf.deb
+------------------------------------------------------------------------------+
| Buildinfo |
+------------------------------------------------------------------------------+
Format: 1.0
Source: libffi-platypus-perl
Binary: libffi-platypus-perl libffi-platypus-perl-dbgsym
Architecture: armhf
Version: 2.00-1
Checksums-Md5:
eaf051582a494473ed805fdf27a9d969 170536 libffi-platypus-perl-dbgsym_2.00-1_armhf.deb
c7ff029b1b09cb8146703d50b300aef9 309036 libffi-platypus-perl_2.00-1_armhf.deb
Checksums-Sha1:
86746d02209ac5de59bcd133604436205b060dd6 170536 libffi-platypus-perl-dbgsym_2.00-1_armhf.deb
1280e45663f0ca8ca1fd2e6ea470eb8e20c321b9 309036 libffi-platypus-perl_2.00-1_armhf.deb
Checksums-Sha256:
a66c05b150e4a507d1728f061d7c22349febb00dca3ba89a9a5943a8dd7767bb 170536 libffi-platypus-perl-dbgsym_2.00-1_armhf.deb
1a572fca4e6cc981f38a43c4e35b4ae343c6217032c1e4d85f7a6231ce647c2a 309036 libffi-platypus-perl_2.00-1_armhf.deb
Build-Origin: Raspbian
Build-Architecture: armhf
Build-Date: Tue, 23 Aug 2022 04:54:05 +0000
Build-Path: /<<PKGBUILDDIR>>
Installed-Build-Depends:
autoconf (= 2.71-2),
automake (= 1:1.16.5-1.3),
autopoint (= 0.21-8),
autotools-dev (= 20220109.1),
base-files (= 12.2+rpi1),
base-passwd (= 3.5.52),
bash (= 5.1-6.1),
binutils (= 2.38.90.20220713-2+rpi1),
binutils-arm-linux-gnueabihf (= 2.38.90.20220713-2+rpi1),
binutils-common (= 2.38.90.20220713-2+rpi1),
bsdextrautils (= 2.38.1-1),
bsdutils (= 1:2.38.1-1),
build-essential (= 12.9),
bzip2 (= 1.0.8-5+b2),
coreutils (= 8.32-4.1),
cpp (= 4:12.1.0-3+rpi1),
cpp-12 (= 12.1.0-7+rpi1),
dash (= 0.5.11+git20210903+057cd650a4ed-8),
debconf (= 1.5.79),
debhelper (= 13.9),
debianutils (= 5.7-0.3),
dh-autoreconf (= 20),
dh-strip-nondeterminism (= 1.13.0-1),
diffutils (= 1:3.7-5),
dpkg (= 1.21.9+rpi1),
dpkg-dev (= 1.21.9+rpi1),
dwz (= 0.14-1),
file (= 1:5.41-4),
findutils (= 4.9.0-3),
g++ (= 4:12.1.0-3+rpi1),
g++-12 (= 12.1.0-7+rpi1),
gcc (= 4:12.1.0-3+rpi1),
gcc-12 (= 12.1.0-7+rpi1),
gcc-12-base (= 12.1.0-7+rpi1),
gettext (= 0.21-8),
gettext-base (= 0.21-8),
grep (= 3.7-1),
groff-base (= 1.22.4-8),
gzip (= 1.12-1),
hostname (= 3.23),
init-system-helpers (= 1.64),
intltool-debian (= 0.35.0+20060710.5),
libacl1 (= 2.3.1-1),
libarchive-zip-perl (= 1.68-1),
libasan8 (= 12.1.0-7+rpi1),
libatomic1 (= 12.1.0-7+rpi1),
libattr1 (= 1:2.5.1-1),
libaudit-common (= 1:3.0.7-1),
libaudit1 (= 1:3.0.7-1+b1),
libbinutils (= 2.38.90.20220713-2+rpi1),
libblkid1 (= 2.38.1-1),
libbz2-1.0 (= 1.0.8-5+b2),
libc-bin (= 2.33-8+rpi1),
libc-dev-bin (= 2.33-8+rpi1),
libc6 (= 2.33-8+rpi1),
libc6-dev (= 2.33-8+rpi1),
libcap-ng0 (= 0.8.3-1),
libcap2 (= 1:2.44-1),
libcapture-tiny-perl (= 0.48-1),
libcc1-0 (= 12.1.0-7+rpi1),
libcom-err2 (= 1.46.5-2),
libcrypt-dev (= 1:4.4.28-2),
libcrypt1 (= 1:4.4.28-2),
libctf-nobfd0 (= 2.38.90.20220713-2+rpi1),
libctf0 (= 2.38.90.20220713-2+rpi1),
libdb5.3 (= 5.3.28+dfsg1-0.10),
libdebconfclient0 (= 0.263),
libdebhelper-perl (= 13.9),
libdpkg-perl (= 1.21.9+rpi1),
libelf1 (= 0.187-1),
libffi-checklib-perl (= 0.28-1),
libffi-dev (= 3.4.2-4),
libffi8 (= 3.4.2-4),
libfile-stripnondeterminism-perl (= 1.13.0-1),
libgcc-12-dev (= 12.1.0-7+rpi1),
libgcc-s1 (= 12.1.0-7+rpi1),
libgcrypt20 (= 1.10.1-2+b2),
libgdbm-compat4 (= 1.23-1),
libgdbm6 (= 1.23-1),
libglib2.0-0 (= 2.72.3-1),
libgmp10 (= 2:6.2.1+dfsg1-1),
libgomp1 (= 12.1.0-7+rpi1),
libgpg-error0 (= 1.45-2),
libgssapi-krb5-2 (= 1.20-1),
libicu71 (= 71.1-3),
libimporter-perl (= 0.026-1),
libisl23 (= 0.25-1),
libk5crypto3 (= 1.20-1),
libkeyutils1 (= 1.6.3-1),
libkrb5-3 (= 1.20-1),
libkrb5support0 (= 1.20-1),
liblz4-1 (= 1.9.3-2),
liblzma5 (= 5.2.5-2.1),
libmagic-mgc (= 1:5.41-4),
libmagic1 (= 1:5.41-4),
libmodule-pluggable-perl (= 5.2-2),
libmount1 (= 2.38.1-1),
libmpc3 (= 1.2.1-2),
libmpfr6 (= 4.1.0-3),
libnsl-dev (= 1.3.0-2),
libnsl2 (= 1.3.0-2),
libpam-modules (= 1.4.0-13),
libpam-modules-bin (= 1.4.0-13),
libpam-runtime (= 1.4.0-13),
libpam0g (= 1.4.0-13),
libpcre2-8-0 (= 10.40-1+b2),
libpcre3 (= 2:8.39-14),
libperl-dev (= 5.34.0-5),
libperl5.34 (= 5.34.0-5),
libpipeline1 (= 1.5.6-2),
libscope-guard-perl (= 0.21-2),
libseccomp2 (= 2.5.4-1+rpi1),
libselinux1 (= 3.4-1),
libsmartcols1 (= 2.38.1-1),
libssl3 (= 3.0.4-2),
libstdc++-12-dev (= 12.1.0-7+rpi1),
libstdc++6 (= 12.1.0-7+rpi1),
libsub-info-perl (= 0.002-2),
libsub-override-perl (= 0.09-3),
libsystemd0 (= 251.3-1+rpi1),
libterm-table-perl (= 0.016-1),
libtest2-suite-perl (= 0.000145-1),
libtinfo6 (= 6.3+20220423-2),
libtirpc-common (= 1.3.2-2.1),
libtirpc-dev (= 1.3.2-2.1),
libtirpc3 (= 1.3.2-2.1),
libtool (= 2.4.7-4),
libubsan1 (= 12.1.0-7+rpi1),
libuchardet0 (= 0.0.7-1),
libudev1 (= 251.3-1+rpi1),
libunistring2 (= 1.0-1),
libuuid1 (= 2.38.1-1),
libxml2 (= 2.9.14+dfsg-1),
libzstd1 (= 1.5.2+dfsg-1),
linux-libc-dev (= 5.18.14-1+rpi1),
login (= 1:4.11.1+dfsg1-2),
lsb-base (= 11.2+rpi1),
m4 (= 1.4.19-1),
make (= 4.3-4.1),
man-db (= 2.10.2-1),
mawk (= 1.3.4.20200120-3.1),
ncurses-base (= 6.3+20220423-2),
ncurses-bin (= 6.3+20220423-2),
patch (= 2.7.6-7),
perl (= 5.34.0-5),
perl-base (= 5.34.0-5),
perl-modules-5.34 (= 5.34.0-5),
pkg-config (= 0.29.2-1),
po-debconf (= 1.0.21+nmu1),
rpcsvc-proto (= 1.4.2-4),
sed (= 4.8-1),
sensible-utils (= 0.0.17),
sysvinit-utils (= 3.04-1),
tar (= 1.34+dfsg-1),
util-linux (= 2.38.1-1),
util-linux-extra (= 2.38.1-1),
xz-utils (= 5.2.5-2.1),
zlib1g (= 1:1.2.11.dfsg-4+b2)
Environment:
DEB_BUILD_OPTIONS="parallel=4"
LANG="en_GB.UTF-8"
LC_ALL="C.UTF-8"
SOURCE_DATE_EPOCH="1661003413"
+------------------------------------------------------------------------------+
| Package contents |
+------------------------------------------------------------------------------+
libffi-platypus-perl-dbgsym_2.00-1_armhf.deb
--------------------------------------------
new Debian package, version 2.0.
size 170536 bytes: control archive=696 bytes.
494 bytes, 12 lines control
418 bytes, 4 lines md5sums
Package: libffi-platypus-perl-dbgsym
Source: libffi-platypus-perl
Version: 2.00-1
Auto-Built-Package: debug-symbols
Architecture: armhf
Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
Installed-Size: 203
Depends: libffi-platypus-perl (= 2.00-1)
Section: debug
Priority: optional
Description: debug symbols for libffi-platypus-perl
Build-Ids: 87c6e7d38c160db84efbfefc722c82c8a43efc72 af61121d231a34c62057197c167e1c7cdddc8dc1 af619063377666a2ccf3b9a7584c3c5235c4c623
drwxr-xr-x root/root 0 2022-08-20 13:50 ./
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/debug/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/debug/.build-id/87/
-rw-r--r-- root/root 175516 2022-08-20 13:50 ./usr/lib/debug/.build-id/87/c6e7d38c160db84efbfefc722c82c8a43efc72.debug
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/debug/.build-id/af/
-rw-r--r-- root/root 8192 2022-08-20 13:50 ./usr/lib/debug/.build-id/af/61121d231a34c62057197c167e1c7cdddc8dc1.debug
-rw-r--r-- root/root 7548 2022-08-20 13:50 ./usr/lib/debug/.build-id/af/619063377666a2ccf3b9a7584c3c5235c4c623.debug
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/debug/.dwz/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/debug/.dwz/arm-linux-gnueabihf/
-rw-r--r-- root/root 2044 2022-08-20 13:50 ./usr/lib/debug/.dwz/arm-linux-gnueabihf/libffi-platypus-perl.debug
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/share/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/share/doc/
lrwxrwxrwx root/root 0 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl-dbgsym -> libffi-platypus-perl
libffi-platypus-perl_2.00-1_armhf.deb
-------------------------------------
new Debian package, version 2.0.
size 309036 bytes: control archive=4856 bytes.
864 bytes, 16 lines control
14571 bytes, 155 lines md5sums
Package: libffi-platypus-perl
Version: 2.00-1
Architecture: armhf
Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
Installed-Size: 1042
Depends: perl (>= 5.34.0-5), perlapi-5.34.0, libc6 (>= 2.4), libffi8 (>= 3.4), libcapture-tiny-perl, libffi-checklib-perl, libscalar-list-utils-perl
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 2022-08-20 13:50 ./
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/
-rw-r--r-- root/root 15218 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build.pm
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/File/
-rw-r--r-- root/root 7125 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/File/Base.pm
-rw-r--r-- root/root 4589 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/File/C.pm
-rw-r--r-- root/root 1515 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/File/CXX.pm
-rw-r--r-- root/root 1825 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/File/Library.pm
-rw-r--r-- root/root 1572 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/File/Object.pm
-rw-r--r-- root/root 8790 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/MM.pm
-rw-r--r-- root/root 12988 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/Platform.pm
-rw-r--r-- root/root 2428 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/Plugin.pm
-rw-r--r-- root/root 1613 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Build/PluginData.pm
-rw-r--r-- root/root 76887 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus.pm
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/
-rw-r--r-- root/root 5923 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/API.pm
-rw-r--r-- root/root 9945 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Buffer.pm
-rw-r--r-- root/root 20842 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Bundle.pm
-rw-r--r-- root/root 3576 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Closure.pm
-rw-r--r-- root/root 4801 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Constant.pm
-rw-r--r-- root/root 5688 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/DL.pm
-rw-r--r-- root/root 3958 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Function.pm
-rw-r--r-- root/root 1404 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Internal.pm
-rw-r--r-- root/root 2375 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Lang.pm
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Lang/
-rw-r--r-- root/root 2183 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Lang/ASM.pm
-rw-r--r-- root/root 2074 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Lang/C.pm
-rw-r--r-- root/root 14436 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Lang/Win32.pm
-rw-r--r-- root/root 2314 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Legacy.pm
-rw-r--r-- root/root 5643 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Memory.pm
-rw-r--r-- root/root 11989 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Record.pm
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Record/
-rw-r--r-- root/root 2737 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Record/Meta.pm
-rw-r--r-- root/root 2772 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Record/TieArray.pm
-rw-r--r-- root/root 1934 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/ShareConfig.pm
-rw-r--r-- root/root 46199 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Type.pm
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Type/
-rw-r--r-- root/root 2944 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Type/PointerSizeBuffer.pm
-rw-r--r-- root/root 6394 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Type/StringArray.pm
-rw-r--r-- root/root 3384 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Type/StringPointer.pm
-rw-r--r-- root/root 15977 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/Type/WideString.pm
-rw-r--r-- root/root 3356 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/TypeParser.pm
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/TypeParser/
-rw-r--r-- root/root 6768 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/TypeParser/Version0.pm
-rw-r--r-- root/root 12472 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/TypeParser/Version1.pm
-rw-r--r-- root/root 1964 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Platypus/TypeParser/Version2.pm
-rw-r--r-- root/root 12791 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Probe.pm
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Probe/
-rw-r--r-- root/root 3299 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Probe/Runner.pm
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Probe/Runner/
-rw-r--r-- root/root 9500 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Probe/Runner/Builder.pm
-rw-r--r-- root/root 1750 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Probe/Runner/Result.pm
-rw-r--r-- root/root 2679 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/Temp.pm
-rw-r--r-- root/root 1553 2022-08-12 19:59 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/FFI/typemap
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Constant/
-rw-r--r-- root/root 57 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Constant/Constant.txt
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Memory/
-rw-r--r-- root/root 57 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Memory/Memory.txt
-rw-r--r-- root/root 197896 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Platypus.so
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Record/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Record/Meta/
-rw-r--r-- root/root 57 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/FFI/Platypus/Record/Meta/Meta.txt
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/
-rw-r--r-- root/root 2283 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/config.pl
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/include/
-rw-r--r-- root/root 798 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/include/ffi_platypus_bundle.h
-rw-r--r-- root/root 1020 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/include/ffi_platypus_config.h
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/lib/
-rw-r--r-- root/root 66960 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/lib/libplfill.so
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/probe/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/probe/bin/
-rwxr-xr-x root/root 67124 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/probe/bin/dlrun
-rw-r--r-- root/root 5625 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/probe/probe.pl
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/probe/src/
-rw-r--r-- root/root 1661 2022-08-20 13:50 ./usr/lib/arm-linux-gnueabihf/perl5/5.34/auto/share/dist/FFI-Platypus/probe/src/dlrun.c
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/share/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/share/doc/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/
-rw-r--r-- root/root 2337 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/CONTRIBUTING.gz
-rw-r--r-- root/root 1188 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/Changes.FFI-Build
-rw-r--r-- root/root 250 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/Changes.FFI-Platypus-Type-StringArray
-rw-r--r-- root/root 383 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/NEWS.Developer.gz
-rw-r--r-- root/root 2717 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/changelog.Debian.gz
-rw-r--r-- root/root 12554 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/changelog.gz
-rw-r--r-- root/root 1461 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/copyright
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/
-rw-r--r-- root/root 3256 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/archive.pl
-rw-r--r-- root/root 2935 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/archive_object.pl
-rw-r--r-- root/root 348 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/attach_from_pointer.pl
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-answer/
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-answer/ffi/
-rw-r--r-- root/root 110 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-answer/ffi/answer.c
-rw-r--r-- root/root 99 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-answer/ffi/answer.fbx
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-answer/include/
-rw-r--r-- root/root 61 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-answer/include/answer.h
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-answer/lib/
-rw-r--r-- root/root 223 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-answer/lib/Answer.pm
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-answer/t/
-rw-r--r-- root/root 61 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-answer/t/answer.t
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-bzip2/
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-bzip2/ffi/
-rw-r--r-- root/root 87 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-bzip2/ffi/bz2.fbx
-rw-r--r-- root/root 334 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-bzip2/ffi/compress.c
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-bzip2/lib/
-rw-r--r-- root/root 715 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-bzip2/lib/Bzip2.pm
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-bzip2/t/
-rw-r--r-- root/root 125 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-bzip2/t/bzip2.t
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/ffi/
-rw-r--r-- root/root 433 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/ffi/const.c
-rw-r--r-- root/root 214 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/ffi/myheader.h
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/lib/
-rw-r--r-- root/root 135 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/lib/Const.pm
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/t/
-rw-r--r-- root/root 157 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-const/t/const.t
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/
-rw-r--r-- root/root 269 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/Makefile.PL
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/ffi/
-rw-r--r-- root/root 498 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/ffi/foo.c
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/lib/
-rw-r--r-- root/root 550 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/lib/Foo.pm
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/t/
-rw-r--r-- root/root 143 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-foo/t/foo.t
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/ffi/
-rw-r--r-- root/root 454 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/ffi/init.c
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/lib/
-rw-r--r-- root/root 385 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/lib/Init.pm
drwxr-xr-x root/root 0 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/t/
-rw-r--r-- root/root 61 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/bundle-init/t/init.t
-rw-r--r-- root/root 2026 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/bzip2.pl
-rw-r--r-- root/root 422 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/char.pl
-rw-r--r-- root/root 436 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/closure-opaque.pl
-rw-r--r-- root/root 366 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/closure.c
-rw-r--r-- root/root 497 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/closure.pl
-rw-r--r-- root/root 1000 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/file_handle.pl
-rw-r--r-- root/root 1953 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/get_uptime.pl
-rw-r--r-- root/root 209 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/getpid.pl
-rw-r--r-- root/root 217 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/integer.pl
-rw-r--r-- root/root 313 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/list_integer_types.pl
-rw-r--r-- root/root 330 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/malloc.pl
-rw-r--r-- root/root 393 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/math.pl
-rw-r--r-- root/root 1075 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/notify.pl
-rw-r--r-- root/root 240 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/pipe.pl
-rw-r--r-- root/root 447 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/string.pl
-rw-r--r-- root/root 1033 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/tcod.pl
-rw-r--r-- root/root 1813 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/time.pl
-rw-r--r-- root/root 2294 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/time_oo.pl
-rw-r--r-- root/root 923 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/time_record.pl
-rw-r--r-- root/root 1082 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/time_struct.pl
-rw-r--r-- root/root 569 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/uuid.pl
-rw-r--r-- root/root 137 2022-08-12 19:59 ./usr/share/doc/libffi-platypus-perl/examples/var_array.c
-rw-r--r-- root/root 237 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/var_array.pl
-rw-r--r-- root/root 259 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/win32_beep.pl
-rw-r--r-- root/root 1546 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/win32_getSystemTime.pl
-rw-r--r-- root/root 536 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/win32_messagebox.pl
-rw-r--r-- root/root 2324 2022-08-20 13:50 ./usr/share/doc/libffi-platypus-perl/examples/zmq3.pl
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/share/lintian/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/share/lintian/overrides/
-rw-r--r-- root/root 160 2022-08-20 13:50 ./usr/share/lintian/overrides/libffi-platypus-perl
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/share/man/
drwxr-xr-x root/root 0 2022-08-20 13:50 ./usr/share/man/man3/
-rw-r--r-- root/root 4086 2022-08-20 13:50 ./usr/share/man/man3/FFI::Build.3pm.gz
-rw-r--r-- root/root 3052 2022-08-20 13:50 ./usr/share/man/man3/FFI::Build::File::Base.3pm.gz
-rw-r--r-- root/root 1773 2022-08-20 13:50 ./usr/share/man/man3/FFI::Build::File::C.3pm.gz
-rw-r--r-- root/root 1780 2022-08-20 13:50 ./usr/share/man/man3/FFI::Build::File::CXX.3pm.gz
-rw-r--r-- root/root 1988 2022-08-20 13:50 ./usr/share/man/man3/FFI::Build::File::Library.3pm.gz
-rw-r--r-- root/root 1812 2022-08-20 13:50 ./usr/share/man/man3/FFI::Build::File::Object.3pm.gz
-rw-r--r-- root/root 2678 2022-08-20 13:50 ./usr/share/man/man3/FFI::Build::MM.3pm.gz
-rw-r--r-- root/root 3088 2022-08-20 13:50 ./usr/share/man/man3/FFI::Build::Platform.3pm.gz
-rw-r--r-- root/root 1813 2022-08-20 13:50 ./usr/share/man/man3/FFI::Build::Plugin.3pm.gz
-rw-r--r-- root/root 1817 2022-08-20 13:50 ./usr/share/man/man3/FFI::Build::PluginData.3pm.gz
-rw-r--r-- root/root 23489 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus.3pm.gz
-rw-r--r-- root/root 3067 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::API.3pm.gz
-rw-r--r-- root/root 4837 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Buffer.3pm.gz
-rw-r--r-- root/root 7961 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Bundle.3pm.gz
-rw-r--r-- root/root 2372 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Closure.3pm.gz
-rw-r--r-- root/root 2661 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Constant.3pm.gz
-rw-r--r-- root/root 3624 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::DL.3pm.gz
-rw-r--r-- root/root 2186 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Function.3pm.gz
-rw-r--r-- root/root 1793 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Internal.3pm.gz
-rw-r--r-- root/root 2107 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Lang.3pm.gz
-rw-r--r-- root/root 2216 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Lang::ASM.3pm.gz
-rw-r--r-- root/root 2074 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Lang::C.3pm.gz
-rw-r--r-- root/root 4949 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Lang::Win32.3pm.gz
-rw-r--r-- root/root 1707 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Legacy.3pm.gz
-rw-r--r-- root/root 2791 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Memory.3pm.gz
-rw-r--r-- root/root 4572 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Record.3pm.gz
-rw-r--r-- root/root 1753 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Record::Meta.3pm.gz
-rw-r--r-- root/root 2219 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Record::TieArray.3pm.gz
-rw-r--r-- root/root 16673 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Type.3pm.gz
-rw-r--r-- root/root 2141 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Type::PointerSizeBuffer.3pm.gz
-rw-r--r-- root/root 2978 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Type::StringArray.3pm.gz
-rw-r--r-- root/root 2152 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Type::StringPointer.3pm.gz
-rw-r--r-- root/root 5408 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::Type::WideString.3pm.gz
-rw-r--r-- root/root 1734 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::TypeParser.3pm.gz
-rw-r--r-- root/root 2452 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::TypeParser::Version0.3pm.gz
-rw-r--r-- root/root 2057 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::TypeParser::Version1.3pm.gz
-rw-r--r-- root/root 2025 2022-08-20 13:50 ./usr/share/man/man3/FFI::Platypus::TypeParser::Version2.3pm.gz
-rw-r--r-- root/root 2536 2022-08-20 13:50 ./usr/share/man/man3/FFI::Probe.3pm.gz
-rw-r--r-- root/root 2194 2022-08-20 13:50 ./usr/share/man/man3/FFI::Probe::Runner.3pm.gz
-rw-r--r-- root/root 2574 2022-08-20 13:50 ./usr/share/man/man3/FFI::Probe::Runner::Builder.3pm.gz
-rw-r--r-- root/root 1895 2022-08-20 13:50 ./usr/share/man/man3/FFI::Probe::Runner::Result.3pm.gz
-rw-r--r-- root/root 1705 2022-08-20 13:50 ./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 Type: any
Build-Space: 8144
Build-Time: 188
Distribution: bookworm-staging
Host Architecture: armhf
Install-Time: 286
Job: libffi-platypus-perl_2.00-1
Machine Architecture: armhf
Package: libffi-platypus-perl
Package-Time: 523
Source-Version: 2.00-1
Space: 8144
Status: successful
Version: 2.00-1
--------------------------------------------------------------------------------
Finished at 2022-08-23T04:54:07Z
Build needed 00:08:43, 8144k disk space