Sun Feb 2 05:02:57 UTC 2025 I: starting to build lua-cjson/trixie/armhf on jenkins on '2025-02-02 05:02' Sun Feb 2 05:02:57 UTC 2025 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/armhf_9/12732/console.log Sun Feb 2 05:02:57 UTC 2025 I: Downloading source for trixie/lua-cjson=2.1.0+dfsg-2.2 --2025-02-02 05:02:58-- http://deb.debian.org/debian/pool/main/l/lua-cjson/lua-cjson_2.1.0%2bdfsg-2.2.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2045 (2.0K) [text/prs.lines.tag] Saving to: ‘lua-cjson_2.1.0+dfsg-2.2.dsc’ 0K . 100% 339M=0s 2025-02-02 05:02:58 (339 MB/s) - ‘lua-cjson_2.1.0+dfsg-2.2.dsc’ saved [2045/2045] Sun Feb 2 05:02:58 UTC 2025 I: lua-cjson_2.1.0+dfsg-2.2.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: lua-cjson Binary: lua-cjson, lua-cjson-dev Architecture: any Version: 2.1.0+dfsg-2.2 Maintainer: The Debian Lua Team Uploaders: Dmitry E. Oboukhov Homepage: http://www.kyne.com.au/~mark/software/lua-cjson.php Standards-Version: 4.6.1 Vcs-Browser: https://salsa.debian.org/lua-team/lua-cjson Vcs-Git: https://salsa.debian.org/lua-team/lua-cjson.git Build-Depends: debhelper-compat (= 13), dh-lua Package-List: lua-cjson deb interpreters optional arch=any lua-cjson-dev deb libdevel optional arch=any Checksums-Sha1: 90bce831a3207ff0776f891e205e4d5628b6e059 76830 lua-cjson_2.1.0+dfsg.orig.tar.gz 7186aa18a68708c7988a8158d4d246c66032f70f 4192 lua-cjson_2.1.0+dfsg-2.2.debian.tar.xz Checksums-Sha256: 94f1fce36742cf00e99c5071b309b9f71e6e7daf60a7151f7bf4ac0a97259ac4 76830 lua-cjson_2.1.0+dfsg.orig.tar.gz 2b6fb37c00e0d1faf671b1e68f80478a7048fb49e356748a48e54996f12377cc 4192 lua-cjson_2.1.0+dfsg-2.2.debian.tar.xz Files: a3394f2eb1670ab3553e3f91eb748b2a 76830 lua-cjson_2.1.0+dfsg.orig.tar.gz 623c4ba369d313102b7a81a1f76ae1ca 4192 lua-cjson_2.1.0+dfsg-2.2.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEfncpR22H1vEdkazLwpPntGGCWs4FAmOI4+YACgkQwpPntGGC Ws4NrQ/8CR2idWMiR8JGklPWNkPd1amYBkBxQdUe1rEkwzt2DkJljKmU5wcDkOOd 50RafnHtXOYHylZ5LU0zgtR9bB507kkZfG9U2+doSyoWyeuQ1TiyI1FSPhmtNIWC C37geMNMuSt2vXlDCxPT+JgZtIlywcHhZDljumPzsg1mx5oPcAJ2bbHIlHz4HibZ nFjRoxFkLVD5wGCKtEAt7FKoRmguIY8690PXeTQ6ONCTYPAwYVuMNmkx7mmtcPDi YM6BHbhrUd5JhEtpjLZd3LfHmtc42eZbP/WPxvn+QEcgdZUdeZq+i1HlZjX9zoZ/ KZ3BPVHdzaA1Sh/qEwgXb3D2Cjcu6iqlGdrq8GCV4mO3nTCVJzkrtb/JZU6smauj EmIgxaBNLU9oZH/Xgu3Xj6raC10H+TYTtH/wIgohYUay5w66p6K1UWCaMsXnrp2H C0j3MgOMMKm5WnZgShyOJk68Z/g8q6+CkjNC+oLXXoEgpq8+2FyFGopf05LdKxW3 5gocrzn3XZfzFUlwLckyX3CAGk7C3K8sn4KFfSeM87gXbgEpRIdRqJpELCW3FhU5 YLERdAjFKbvMdMcFHPCEEdbIRTq8SILUBOM+azJcMOYsqo+lXc095jhJldoJXcjL vQ17ED40dO3C5ASU/l+KbDgEjDY2dURSjvoX9LkqtvJOxZZBOcw= =W3zn -----END PGP SIGNATURE----- Sun Feb 2 05:02:58 UTC 2025 I: Checking whether the package is not for us Sun Feb 2 05:02:58 UTC 2025 I: Starting 1st build on remote node virt32a-armhf-rb.debian.net. Sun Feb 2 05:02:58 UTC 2025 I: Preparing to do remote build '1' on virt32a-armhf-rb.debian.net. Sun Feb 2 05:07:16 UTC 2025 I: Deleting $TMPDIR on virt32a-armhf-rb.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Sat Feb 1 17:03:07 -12 2025 I: pbuilder-time-stamp: 1738472587 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [lua-cjson_2.1.0+dfsg-2.2.dsc] I: copying [./lua-cjson_2.1.0+dfsg.orig.tar.gz] I: copying [./lua-cjson_2.1.0+dfsg-2.2.debian.tar.xz] I: Extracting source dpkg-source: warning: cannot verify inline signature for ./lua-cjson_2.1.0+dfsg-2.2.dsc: unsupported subcommand dpkg-source: info: extracting lua-cjson in lua-cjson-2.1.0+dfsg dpkg-source: info: unpacking lua-cjson_2.1.0+dfsg.orig.tar.gz dpkg-source: info: unpacking lua-cjson_2.1.0+dfsg-2.2.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying disable-sparse-array-test dpkg-source: info: applying disable-utf16-test dpkg-source: info: applying lua5.2-function-names dpkg-source: info: applying lua5.3-unpack I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/3164/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='armhf' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' DISTRIBUTION='trixie' HOME='/root' HOST_ARCH='armhf' IFS=' ' INVOCATION_ID='6807b20c7c334c249a26825f502afb83' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='3164' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.MZyBPXZQ/pbuilderrc_Rp98 --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.MZyBPXZQ/b1 --logfile b1/build.log lua-cjson_2.1.0+dfsg-2.2.dsc' SUDO_GID='113' SUDO_UID='107' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://10.0.0.15:3142/' I: uname -a Linux virt32a 6.1.0-30-armmp-lpae #1 SMP Debian 6.1.124-1 (2025-01-12) armv7l GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin I: user script /srv/workspace/pbuilder/3164/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: armhf Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), dh-lua dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19573 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-lua; however: Package dh-lua is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} dctrl-tools{a} debhelper{a} dh-autoreconf{a} dh-lua{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libdebhelper-perl{a} libelf1t64{a} libfile-find-rule-perl{a} libfile-stripnondeterminism-perl{a} libicu72{a} liblua5.1-0{a} liblua5.1-0-dev{a} liblua5.2-0{a} liblua5.2-dev{a} liblua5.3-0{a} liblua5.3-dev{a} liblua5.4-0{a} liblua5.4-dev{a} libmagic-mgc{a} libmagic1t64{a} libncurses-dev{a} libncurses6{a} libnumber-compare-perl{a} libpipeline1{a} libpkgconf3{a} libreadline-dev{a} libreadline8t64{a} libtext-glob-perl{a} libtool{a} libuchardet0{a} libunistring5{a} libxml2{a} lua5.1{a} lua5.2{a} lua5.3{a} lua5.4{a} m4{a} man-db{a} pkg-config{a} pkgconf{a} pkgconf-bin{a} po-debconf{a} readline-common{a} sensible-utils{a} The following packages are RECOMMENDED but will NOT be installed: curl libarchive-cpio-perl libgpm2 libltdl-dev libmail-sendmail-perl libtool-bin lynx wget 0 packages upgraded, 56 newly installed, 0 to remove and 0 not upgraded. Need to get 22.1 MB of archives. After unpacking 83.0 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian trixie/main armhf readline-common all 8.2-6 [69.4 kB] Get: 2 http://deb.debian.org/debian trixie/main armhf sensible-utils all 0.0.24 [24.8 kB] Get: 3 http://deb.debian.org/debian trixie/main armhf libmagic-mgc armhf 1:5.45-3+b1 [314 kB] Get: 4 http://deb.debian.org/debian trixie/main armhf libmagic1t64 armhf 1:5.45-3+b1 [98.5 kB] Get: 5 http://deb.debian.org/debian trixie/main armhf file armhf 1:5.45-3+b1 [42.3 kB] Get: 6 http://deb.debian.org/debian trixie/main armhf gettext-base armhf 0.23.1-1 [238 kB] Get: 7 http://deb.debian.org/debian trixie/main armhf libuchardet0 armhf 0.0.8-1+b2 [65.6 kB] Get: 8 http://deb.debian.org/debian trixie/main armhf groff-base armhf 1.23.0-7 [1095 kB] Get: 9 http://deb.debian.org/debian trixie/main armhf bsdextrautils armhf 2.40.4-2 [84.6 kB] Get: 10 http://deb.debian.org/debian trixie/main armhf libpipeline1 armhf 1.5.8-1 [35.0 kB] Get: 11 http://deb.debian.org/debian trixie/main armhf man-db armhf 2.13.0-1 [1382 kB] Get: 12 http://deb.debian.org/debian trixie/main armhf m4 armhf 1.4.19-5 [272 kB] Get: 13 http://deb.debian.org/debian trixie/main armhf autoconf all 2.72-3 [493 kB] Get: 14 http://deb.debian.org/debian trixie/main armhf autotools-dev all 20220109.1 [51.6 kB] Get: 15 http://deb.debian.org/debian trixie/main armhf automake all 1:1.16.5-1.3 [823 kB] Get: 16 http://deb.debian.org/debian trixie/main armhf autopoint all 0.23.1-1 [770 kB] Get: 17 http://deb.debian.org/debian trixie/main armhf dctrl-tools armhf 2.24-3 [96.0 kB] Get: 18 http://deb.debian.org/debian trixie/main armhf libdebhelper-perl all 13.24.1 [90.9 kB] Get: 19 http://deb.debian.org/debian trixie/main armhf libtool all 2.5.4-2 [539 kB] Get: 20 http://deb.debian.org/debian trixie/main armhf dh-autoreconf all 20 [17.1 kB] Get: 21 http://deb.debian.org/debian trixie/main armhf libarchive-zip-perl all 1.68-1 [104 kB] Get: 22 http://deb.debian.org/debian trixie/main armhf libfile-stripnondeterminism-perl all 1.14.1-1 [19.6 kB] Get: 23 http://deb.debian.org/debian trixie/main armhf dh-strip-nondeterminism all 1.14.1-1 [8584 B] Get: 24 http://deb.debian.org/debian trixie/main armhf libelf1t64 armhf 0.192-4 [184 kB] Get: 25 http://deb.debian.org/debian trixie/main armhf dwz armhf 0.15-1+b2 [106 kB] Get: 26 http://deb.debian.org/debian trixie/main armhf libunistring5 armhf 1.3-1 [444 kB] Get: 27 http://deb.debian.org/debian trixie/main armhf libicu72 armhf 72.1-6 [9086 kB] Get: 28 http://deb.debian.org/debian trixie/main armhf libxml2 armhf 2.12.7+dfsg+really2.9.14-0.2+b1 [605 kB] Get: 29 http://deb.debian.org/debian trixie/main armhf gettext armhf 0.23.1-1 [1560 kB] Get: 30 http://deb.debian.org/debian trixie/main armhf intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 31 http://deb.debian.org/debian trixie/main armhf po-debconf all 1.0.21+nmu1 [248 kB] Get: 32 http://deb.debian.org/debian trixie/main armhf debhelper all 13.24.1 [920 kB] Get: 33 http://deb.debian.org/debian trixie/main armhf libpkgconf3 armhf 1.8.1-4 [31.8 kB] Get: 34 http://deb.debian.org/debian trixie/main armhf pkgconf-bin armhf 1.8.1-4 [29.2 kB] Get: 35 http://deb.debian.org/debian trixie/main armhf pkgconf armhf 1.8.1-4 [26.1 kB] Get: 36 http://deb.debian.org/debian trixie/main armhf pkg-config armhf 1.8.1-4 [14.0 kB] Get: 37 http://deb.debian.org/debian trixie/main armhf libnumber-compare-perl all 0.03-3 [6332 B] Get: 38 http://deb.debian.org/debian trixie/main armhf libtext-glob-perl all 0.11-3 [7676 B] Get: 39 http://deb.debian.org/debian trixie/main armhf libfile-find-rule-perl all 0.34-3 [26.6 kB] Get: 40 http://deb.debian.org/debian trixie/main armhf liblua5.4-0 armhf 5.4.7-1+b2 [123 kB] Get: 41 http://deb.debian.org/debian trixie/main armhf libreadline8t64 armhf 8.2-6 [146 kB] Get: 42 http://deb.debian.org/debian trixie/main armhf libncurses6 armhf 6.5-2+b1 [82.3 kB] Get: 43 http://deb.debian.org/debian trixie/main armhf libncurses-dev armhf 6.5-2+b1 [310 kB] Get: 44 http://deb.debian.org/debian trixie/main armhf libreadline-dev armhf 8.2-6 [138 kB] Get: 45 http://deb.debian.org/debian trixie/main armhf liblua5.4-dev armhf 5.4.7-1+b2 [168 kB] Get: 46 http://deb.debian.org/debian trixie/main armhf lua5.4 armhf 5.4.7-1+b2 [108 kB] Get: 47 http://deb.debian.org/debian trixie/main armhf liblua5.3-0 armhf 5.3.6-2+b4 [105 kB] Get: 48 http://deb.debian.org/debian trixie/main armhf liblua5.3-dev armhf 5.3.6-2+b4 [148 kB] Get: 49 http://deb.debian.org/debian trixie/main armhf lua5.3 armhf 5.3.6-2+b4 [92.9 kB] Get: 50 http://deb.debian.org/debian trixie/main armhf liblua5.2-0 armhf 5.2.4-3+b3 [92.2 kB] Get: 51 http://deb.debian.org/debian trixie/main armhf liblua5.2-dev armhf 5.2.4-3+b3 [130 kB] Get: 52 http://deb.debian.org/debian trixie/main armhf lua5.2 armhf 5.2.4-3+b3 [81.9 kB] Get: 53 http://deb.debian.org/debian trixie/main armhf liblua5.1-0 armhf 5.1.5-10 [88.7 kB] Get: 54 http://deb.debian.org/debian trixie/main armhf liblua5.1-0-dev armhf 5.1.5-10 [124 kB] Get: 55 http://deb.debian.org/debian trixie/main armhf lua5.1 armhf 5.1.5-10 [82.6 kB] Get: 56 http://deb.debian.org/debian trixie/main armhf dh-lua all 33 [30.3 kB] Fetched 22.1 MB in 0s (49.1 MB/s) Preconfiguring packages ... Selecting previously unselected package readline-common. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19573 files and directories currently installed.) Preparing to unpack .../00-readline-common_8.2-6_all.deb ... Unpacking readline-common (8.2-6) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../01-sensible-utils_0.0.24_all.deb ... Unpacking sensible-utils (0.0.24) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../02-libmagic-mgc_1%3a5.45-3+b1_armhf.deb ... Unpacking libmagic-mgc (1:5.45-3+b1) ... Selecting previously unselected package libmagic1t64:armhf. Preparing to unpack .../03-libmagic1t64_1%3a5.45-3+b1_armhf.deb ... Unpacking libmagic1t64:armhf (1:5.45-3+b1) ... Selecting previously unselected package file. Preparing to unpack .../04-file_1%3a5.45-3+b1_armhf.deb ... Unpacking file (1:5.45-3+b1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../05-gettext-base_0.23.1-1_armhf.deb ... Unpacking gettext-base (0.23.1-1) ... Selecting previously unselected package libuchardet0:armhf. Preparing to unpack .../06-libuchardet0_0.0.8-1+b2_armhf.deb ... Unpacking libuchardet0:armhf (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../07-groff-base_1.23.0-7_armhf.deb ... Unpacking groff-base (1.23.0-7) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../08-bsdextrautils_2.40.4-2_armhf.deb ... Unpacking bsdextrautils (2.40.4-2) ... Selecting previously unselected package libpipeline1:armhf. Preparing to unpack .../09-libpipeline1_1.5.8-1_armhf.deb ... Unpacking libpipeline1:armhf (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../10-man-db_2.13.0-1_armhf.deb ... Unpacking man-db (2.13.0-1) ... Selecting previously unselected package m4. Preparing to unpack .../11-m4_1.4.19-5_armhf.deb ... Unpacking m4 (1.4.19-5) ... Selecting previously unselected package autoconf. Preparing to unpack .../12-autoconf_2.72-3_all.deb ... Unpacking autoconf (2.72-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../13-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../14-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 .../15-autopoint_0.23.1-1_all.deb ... Unpacking autopoint (0.23.1-1) ... Selecting previously unselected package dctrl-tools. Preparing to unpack .../16-dctrl-tools_2.24-3_armhf.deb ... Unpacking dctrl-tools (2.24-3) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../17-libdebhelper-perl_13.24.1_all.deb ... Unpacking libdebhelper-perl (13.24.1) ... Selecting previously unselected package libtool. Preparing to unpack .../18-libtool_2.5.4-2_all.deb ... Unpacking libtool (2.5.4-2) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../19-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../20-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../21-libfile-stripnondeterminism-perl_1.14.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../22-dh-strip-nondeterminism_1.14.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.14.1-1) ... Selecting previously unselected package libelf1t64:armhf. Preparing to unpack .../23-libelf1t64_0.192-4_armhf.deb ... Unpacking libelf1t64:armhf (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../24-dwz_0.15-1+b2_armhf.deb ... Unpacking dwz (0.15-1+b2) ... Selecting previously unselected package libunistring5:armhf. Preparing to unpack .../25-libunistring5_1.3-1_armhf.deb ... Unpacking libunistring5:armhf (1.3-1) ... Selecting previously unselected package libicu72:armhf. Preparing to unpack .../26-libicu72_72.1-6_armhf.deb ... Unpacking libicu72:armhf (72.1-6) ... Selecting previously unselected package libxml2:armhf. Preparing to unpack .../27-libxml2_2.12.7+dfsg+really2.9.14-0.2+b1_armhf.deb ... Unpacking libxml2:armhf (2.12.7+dfsg+really2.9.14-0.2+b1) ... Selecting previously unselected package gettext. Preparing to unpack .../28-gettext_0.23.1-1_armhf.deb ... Unpacking gettext (0.23.1-1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../29-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../30-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../31-debhelper_13.24.1_all.deb ... Unpacking debhelper (13.24.1) ... Selecting previously unselected package libpkgconf3:armhf. Preparing to unpack .../32-libpkgconf3_1.8.1-4_armhf.deb ... Unpacking libpkgconf3:armhf (1.8.1-4) ... Selecting previously unselected package pkgconf-bin. Preparing to unpack .../33-pkgconf-bin_1.8.1-4_armhf.deb ... Unpacking pkgconf-bin (1.8.1-4) ... Selecting previously unselected package pkgconf:armhf. Preparing to unpack .../34-pkgconf_1.8.1-4_armhf.deb ... Unpacking pkgconf:armhf (1.8.1-4) ... Selecting previously unselected package pkg-config:armhf. Preparing to unpack .../35-pkg-config_1.8.1-4_armhf.deb ... Unpacking pkg-config:armhf (1.8.1-4) ... Selecting previously unselected package libnumber-compare-perl. Preparing to unpack .../36-libnumber-compare-perl_0.03-3_all.deb ... Unpacking libnumber-compare-perl (0.03-3) ... Selecting previously unselected package libtext-glob-perl. Preparing to unpack .../37-libtext-glob-perl_0.11-3_all.deb ... Unpacking libtext-glob-perl (0.11-3) ... Selecting previously unselected package libfile-find-rule-perl. Preparing to unpack .../38-libfile-find-rule-perl_0.34-3_all.deb ... Unpacking libfile-find-rule-perl (0.34-3) ... Selecting previously unselected package liblua5.4-0:armhf. Preparing to unpack .../39-liblua5.4-0_5.4.7-1+b2_armhf.deb ... Unpacking liblua5.4-0:armhf (5.4.7-1+b2) ... Selecting previously unselected package libreadline8t64:armhf. Preparing to unpack .../40-libreadline8t64_8.2-6_armhf.deb ... Adding 'diversion of /lib/arm-linux-gnueabihf/libhistory.so.8 to /lib/arm-linux-gnueabihf/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/arm-linux-gnueabihf/libhistory.so.8.2 to /lib/arm-linux-gnueabihf/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/arm-linux-gnueabihf/libreadline.so.8 to /lib/arm-linux-gnueabihf/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/arm-linux-gnueabihf/libreadline.so.8.2 to /lib/arm-linux-gnueabihf/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:armhf (8.2-6) ... Selecting previously unselected package libncurses6:armhf. Preparing to unpack .../41-libncurses6_6.5-2+b1_armhf.deb ... Unpacking libncurses6:armhf (6.5-2+b1) ... Selecting previously unselected package libncurses-dev:armhf. Preparing to unpack .../42-libncurses-dev_6.5-2+b1_armhf.deb ... Unpacking libncurses-dev:armhf (6.5-2+b1) ... Selecting previously unselected package libreadline-dev:armhf. Preparing to unpack .../43-libreadline-dev_8.2-6_armhf.deb ... Unpacking libreadline-dev:armhf (8.2-6) ... Selecting previously unselected package liblua5.4-dev:armhf. Preparing to unpack .../44-liblua5.4-dev_5.4.7-1+b2_armhf.deb ... Unpacking liblua5.4-dev:armhf (5.4.7-1+b2) ... Selecting previously unselected package lua5.4. Preparing to unpack .../45-lua5.4_5.4.7-1+b2_armhf.deb ... Unpacking lua5.4 (5.4.7-1+b2) ... Selecting previously unselected package liblua5.3-0:armhf. Preparing to unpack .../46-liblua5.3-0_5.3.6-2+b4_armhf.deb ... Unpacking liblua5.3-0:armhf (5.3.6-2+b4) ... Selecting previously unselected package liblua5.3-dev:armhf. Preparing to unpack .../47-liblua5.3-dev_5.3.6-2+b4_armhf.deb ... Unpacking liblua5.3-dev:armhf (5.3.6-2+b4) ... Selecting previously unselected package lua5.3. Preparing to unpack .../48-lua5.3_5.3.6-2+b4_armhf.deb ... Unpacking lua5.3 (5.3.6-2+b4) ... Selecting previously unselected package liblua5.2-0:armhf. Preparing to unpack .../49-liblua5.2-0_5.2.4-3+b3_armhf.deb ... Unpacking liblua5.2-0:armhf (5.2.4-3+b3) ... Selecting previously unselected package liblua5.2-dev:armhf. Preparing to unpack .../50-liblua5.2-dev_5.2.4-3+b3_armhf.deb ... Unpacking liblua5.2-dev:armhf (5.2.4-3+b3) ... Selecting previously unselected package lua5.2. Preparing to unpack .../51-lua5.2_5.2.4-3+b3_armhf.deb ... Unpacking lua5.2 (5.2.4-3+b3) ... Selecting previously unselected package liblua5.1-0:armhf. Preparing to unpack .../52-liblua5.1-0_5.1.5-10_armhf.deb ... Unpacking liblua5.1-0:armhf (5.1.5-10) ... Selecting previously unselected package liblua5.1-0-dev:armhf. Preparing to unpack .../53-liblua5.1-0-dev_5.1.5-10_armhf.deb ... Unpacking liblua5.1-0-dev:armhf (5.1.5-10) ... Selecting previously unselected package lua5.1. Preparing to unpack .../54-lua5.1_5.1.5-10_armhf.deb ... Unpacking lua5.1 (5.1.5-10) ... Selecting previously unselected package dh-lua. Preparing to unpack .../55-dh-lua_33_all.deb ... Unpacking dh-lua (33) ... Setting up libpipeline1:armhf (1.5.8-1) ... Setting up libicu72:armhf (72.1-6) ... Setting up bsdextrautils (2.40.4-2) ... Setting up libtext-glob-perl (0.11-3) ... Setting up libmagic-mgc (1:5.45-3+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libdebhelper-perl (13.24.1) ... Setting up libmagic1t64:armhf (1:5.45-3+b1) ... Setting up gettext-base (0.23.1-1) ... Setting up m4 (1.4.19-5) ... Setting up file (1:5.45-3+b1) ... Setting up libelf1t64:armhf (0.192-4) ... Setting up libnumber-compare-perl (0.03-3) ... Setting up autotools-dev (20220109.1) ... Setting up libpkgconf3:armhf (1.8.1-4) ... Setting up libfile-find-rule-perl (0.34-3) ... Setting up libncurses6:armhf (6.5-2+b1) ... Setting up libunistring5:armhf (1.3-1) ... Setting up autopoint (0.23.1-1) ... Setting up pkgconf-bin (1.8.1-4) ... Setting up autoconf (2.72-3) ... Setting up dwz (0.15-1+b2) ... Setting up liblua5.2-0:armhf (5.2.4-3+b3) ... Setting up sensible-utils (0.0.24) ... Setting up libuchardet0:armhf (0.0.8-1+b2) ... Setting up liblua5.3-0:armhf (5.3.6-2+b4) ... Setting up liblua5.1-0:armhf (5.1.5-10) ... Setting up liblua5.4-0:armhf (5.4.7-1+b2) ... Setting up readline-common (8.2-6) ... Setting up libxml2:armhf (2.12.7+dfsg+really2.9.14-0.2+b1) ... Setting up dctrl-tools (2.24-3) ... 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.14.1-1) ... Setting up libncurses-dev:armhf (6.5-2+b1) ... Setting up gettext (0.23.1-1) ... Setting up libtool (2.5.4-2) ... Setting up pkgconf:armhf (1.8.1-4) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up pkg-config:armhf (1.8.1-4) ... Setting up libreadline8t64:armhf (8.2-6) ... Setting up dh-strip-nondeterminism (1.14.1-1) ... Setting up groff-base (1.23.0-7) ... Setting up lua5.4 (5.4.7-1+b2) ... update-alternatives: using /usr/bin/lua5.4 to provide /usr/bin/lua (lua-interpreter) in auto mode update-alternatives: using /usr/bin/luac5.4 to provide /usr/bin/luac (lua-compiler) in auto mode Setting up lua5.2 (5.2.4-3+b3) ... update-alternatives: using /usr/bin/lua5.2 to provide /usr/bin/lua (lua-interpreter) in auto mode update-alternatives: using /usr/bin/luac5.2 to provide /usr/bin/luac (lua-compiler) in auto mode Setting up po-debconf (1.0.21+nmu1) ... Setting up lua5.3 (5.3.6-2+b4) ... Setting up libreadline-dev:armhf (8.2-6) ... Setting up man-db (2.13.0-1) ... Not building database; man-db/auto-update is not 'true'. Setting up lua5.1 (5.1.5-10) ... Setting up liblua5.2-dev:armhf (5.2.4-3+b3) ... Setting up liblua5.4-dev:armhf (5.4.7-1+b2) ... update-alternatives: using /usr/lib/arm-linux-gnueabihf/pkgconfig/lua5.4.pc to provide /usr/lib/arm-linux-gnueabihf/pkgconfig/lua.pc (lua-pkgconfig-arm-linux-gnueabihf) in auto mode Setting up liblua5.3-dev:armhf (5.3.6-2+b4) ... Setting up liblua5.1-0-dev:armhf (5.1.5-10) ... Setting up debhelper (13.24.1) ... Setting up dh-lua (33) ... Processing triggers for libc-bin (2.40-6) ... Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/lua-cjson-2.1.0+dfsg/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../lua-cjson_2.1.0+dfsg-2.2_source.changes dpkg-buildpackage: info: source package lua-cjson dpkg-buildpackage: info: source version 2.1.0+dfsg-2.2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Yangfl dpkg-source --before-build . dpkg-buildpackage: info: host architecture armhf debian/rules clean dh clean --buildsystem=lua --with lua dh_auto_clean -O--buildsystem=lua make --no-print-directory -f /usr/share/dh-lua/make/dh-lua.Makefile.multiple clean Making target clean for debian/lua5.1.dh-lua.conf # fix for leftovers of dh-lua < 14 Target clean made Making target clean for debian/lua5.2.dh-lua.conf # fix for leftovers of dh-lua < 14 Target clean made Making target clean for debian/lua5.3.dh-lua.conf # fix for leftovers of dh-lua < 14 Target clean made Making target clean for debian/lua5.4.dh-lua.conf # fix for leftovers of dh-lua < 14 Target clean made dh_autoreconf_clean -O--buildsystem=lua dh_clean -O--buildsystem=lua debian/rules execute_after_dh_clean make[1]: Entering directory '/build/reproducible-path/lua-cjson-2.1.0+dfsg' rm -f -f debian/trash make[1]: Leaving directory '/build/reproducible-path/lua-cjson-2.1.0+dfsg' debian/rules binary dh binary --buildsystem=lua --with lua dh_update_autotools_config -O--buildsystem=lua dh_autoreconf -O--buildsystem=lua dh_auto_configure -O--buildsystem=lua make --no-print-directory -f /usr/share/dh-lua/make/dh-lua.Makefile.multiple configure Making target configure for debian/lua5.1.dh-lua.conf # .install Filling in debian/lua-cjson.install using /usr/share/dh-lua/template/lib.install.in Adding new line: usr/lib/arm-linux-gnueabihf/lua/5.1/cjson.so Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so.* Adding new line: usr/share/lua/5.1/cjson/util.lua Filling in debian/lua-cjson-dev.install using /usr/share/dh-lua/template/dev.install.in Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.a Adding new line: usr/lib/arm-linux-gnueabihf/pkgconfig/lua5.1-cjson.pc Adding new line: usr/include/lua5.1/lua-cjson.h # lua_versions Filling in debian/lua_versions Adding new line: 5.1 Target configure made Making target configure for debian/lua5.2.dh-lua.conf # .install Filling in debian/lua-cjson.install using /usr/share/dh-lua/template/lib.install.in Adding new line: usr/lib/arm-linux-gnueabihf/lua/5.2/cjson.so Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so.* Adding new line: usr/share/lua/5.2/cjson/util.lua Filling in debian/lua-cjson-dev.install using /usr/share/dh-lua/template/dev.install.in Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.a Adding new line: usr/lib/arm-linux-gnueabihf/pkgconfig/lua5.2-cjson.pc Adding new line: usr/include/lua5.2/lua-cjson.h # lua_versions Filling in debian/lua_versions Adding new line: 5.2 Target configure made Making target configure for debian/lua5.3.dh-lua.conf # .install Filling in debian/lua-cjson.install using /usr/share/dh-lua/template/lib.install.in Adding new line: usr/lib/arm-linux-gnueabihf/lua/5.3/cjson.so Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so.* Adding new line: usr/share/lua/5.3/cjson/util.lua Filling in debian/lua-cjson-dev.install using /usr/share/dh-lua/template/dev.install.in Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.a Adding new line: usr/lib/arm-linux-gnueabihf/pkgconfig/lua5.3-cjson.pc Adding new line: usr/include/lua5.3/lua-cjson.h # lua_versions Filling in debian/lua_versions Adding new line: 5.3 Target configure made Making target configure for debian/lua5.4.dh-lua.conf # .install Filling in debian/lua-cjson.install using /usr/share/dh-lua/template/lib.install.in Adding new line: usr/lib/arm-linux-gnueabihf/lua/5.4/cjson.so Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so.* Adding new line: usr/share/lua/5.4/cjson/util.lua Filling in debian/lua-cjson-dev.install using /usr/share/dh-lua/template/dev.install.in Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so Adding new line: usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.a Adding new line: usr/lib/arm-linux-gnueabihf/pkgconfig/lua5.4-cjson.pc Adding new line: usr/include/lua5.4/lua-cjson.h # lua_versions Filling in debian/lua_versions Adding new line: 5.4 Target configure made dh_auto_build -O--buildsystem=lua make --no-print-directory -f /usr/share/dh-lua/make/dh-lua.Makefile.multiple build Making target build for debian/lua5.1.dh-lua.conf libtoolize: putting auxiliary files in '.'. libtoolize: copying file './config.guess' libtoolize: copying file './config.sub' libtoolize: copying file './install-sh' libtoolize: copying file './ltmain.sh' libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac, libtoolize: and rerunning libtoolize and aclocal. libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. cd debian/.dh_lua-libtool && ./configure --build=arm-linux-gnueabihf --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-option-checking --disable-silent-rules --libdir=\${prefix}/lib/arm-linux-gnueabihf --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking CFLAGS= LDFLAGS= LDFLAGS_STATIC= checking build system type... arm-unknown-linux-gnueabihf checking host system type... arm-unknown-linux-gnueabihf checking how to print strings... printf checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert arm-unknown-linux-gnueabihf file names to arm-unknown-linux-gnueabihf format... func_convert_file_noop checking how to convert arm-unknown-linux-gnueabihf file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ranlib... ranlib checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for gawk... no checking for mawk... mawk checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating ./config.status config.status: executing libtool commands /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/lua_cjson.lo lua_cjson.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra lua_cjson.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/lua_cjson.o lua_cjson.c: In function 'json_append_string': lua_cjson.c:477:19: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'unsigned int'} [-Wsign-compare] 477 | for (i = 0; i < len; i++) { | ^ In file included from lua_cjson.c:47: fpconv.h: At top level: fpconv.h:15:20: warning: inline function 'fpconv_init' declared but never defined 15 | extern inline void fpconv_init(); | ^~~~~~~~~~~ lua_cjson.c: In function 'json_append_data': lua_cjson.c:689:12: warning: this statement may fall through [-Wimplicit-fallthrough=] 689 | if (lua_touserdata(l, -1) == NULL) { | ^ lua_cjson.c:693:5: note: here 693 | default: | ^~~~~~~ libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra lua_cjson.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/lua_cjson.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/fpconv.lo fpconv.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra fpconv.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/fpconv.o libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra fpconv.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/fpconv.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/strbuf.lo strbuf.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra strbuf.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/strbuf.o libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra strbuf.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/strbuf.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc \ -rpath /usr//lib/arm-linux-gnueabihf -version-info 0:0:0 -Wl,--no-add-needed \ -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/liblua5.1-cjson.la \ /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/lua_cjson.lo /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/fpconv.lo /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/strbuf.lo \ -Wl,-z,relro -Wl,-z,now libtool: link: gcc -shared -fPIC -DPIC /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/lua_cjson.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/fpconv.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/strbuf.o -Wl,--no-add-needed -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,-soname -Wl,liblua5.1-cjson.so.0 -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/liblua5.1-cjson.so.0.0.0 libtool: link: (cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs" && rm -f "liblua5.1-cjson.so.0" && ln -s "liblua5.1-cjson.so.0.0.0" "liblua5.1-cjson.so.0") libtool: link: (cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs" && rm -f "liblua5.1-cjson.so" && ln -s "liblua5.1-cjson.so.0.0.0" "liblua5.1-cjson.so") libtool: link: ar cr /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/liblua5.1-cjson.a /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/lua_cjson.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/fpconv.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/strbuf.o libtool: link: ranlib /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/liblua5.1-cjson.a libtool: link: ( cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs" && rm -f "liblua5.1-cjson.la" && ln -s "../liblua5.1-cjson.la" "liblua5.1-cjson.la" ) ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/cjson.so linux-vdso.so.1 (0xbeff5000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6d80000) /lib/ld-linux-armhf.so.3 (0xb6ee3000) Target build made Making target build for debian/lua5.2.dh-lua.conf /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/lua_cjson.lo lua_cjson.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra lua_cjson.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/lua_cjson.o lua_cjson.c: In function 'json_append_string': lua_cjson.c:477:19: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'unsigned int'} [-Wsign-compare] 477 | for (i = 0; i < len; i++) { | ^ In file included from lua_cjson.c:47: fpconv.h: At top level: fpconv.h:15:20: warning: inline function 'fpconv_init' declared but never defined 15 | extern inline void fpconv_init(); | ^~~~~~~~~~~ lua_cjson.c: In function 'json_append_data': lua_cjson.c:689:12: warning: this statement may fall through [-Wimplicit-fallthrough=] 689 | if (lua_touserdata(l, -1) == NULL) { | ^ lua_cjson.c:693:5: note: here 693 | default: | ^~~~~~~ libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra lua_cjson.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/lua_cjson.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/fpconv.lo fpconv.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra fpconv.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/fpconv.o libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra fpconv.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/fpconv.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/strbuf.lo strbuf.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra strbuf.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/strbuf.o libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra strbuf.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/strbuf.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc \ -rpath /usr//lib/arm-linux-gnueabihf -version-info 0:0:0 -Wl,--no-add-needed \ -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/liblua5.2-cjson.la \ /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/lua_cjson.lo /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/fpconv.lo /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/strbuf.lo \ -Wl,-z,relro -Wl,-z,now libtool: link: gcc -shared -fPIC -DPIC /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/lua_cjson.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/fpconv.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/strbuf.o -Wl,--no-add-needed -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,-soname -Wl,liblua5.2-cjson.so.0 -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/liblua5.2-cjson.so.0.0.0 libtool: link: (cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs" && rm -f "liblua5.2-cjson.so.0" && ln -s "liblua5.2-cjson.so.0.0.0" "liblua5.2-cjson.so.0") libtool: link: (cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs" && rm -f "liblua5.2-cjson.so" && ln -s "liblua5.2-cjson.so.0.0.0" "liblua5.2-cjson.so") libtool: link: ar cr /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/liblua5.2-cjson.a /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/lua_cjson.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/fpconv.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/strbuf.o libtool: link: ranlib /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/liblua5.2-cjson.a libtool: link: ( cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs" && rm -f "liblua5.2-cjson.la" && ln -s "../liblua5.2-cjson.la" "liblua5.2-cjson.la" ) ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/cjson.so linux-vdso.so.1 (0xbedb4000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6e30000) /lib/ld-linux-armhf.so.3 (0xb6f9d000) Target build made Making target build for debian/lua5.3.dh-lua.conf /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/lua_cjson.lo lua_cjson.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra lua_cjson.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/lua_cjson.o lua_cjson.c: In function 'json_append_string': lua_cjson.c:477:19: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'unsigned int'} [-Wsign-compare] 477 | for (i = 0; i < len; i++) { | ^ In file included from lua_cjson.c:47: fpconv.h: At top level: fpconv.h:15:20: warning: inline function 'fpconv_init' declared but never defined 15 | extern inline void fpconv_init(); | ^~~~~~~~~~~ lua_cjson.c: In function 'json_append_data': lua_cjson.c:689:12: warning: this statement may fall through [-Wimplicit-fallthrough=] 689 | if (lua_touserdata(l, -1) == NULL) { | ^ lua_cjson.c:693:5: note: here 693 | default: | ^~~~~~~ libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra lua_cjson.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/lua_cjson.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/fpconv.lo fpconv.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra fpconv.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/fpconv.o libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra fpconv.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/fpconv.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/strbuf.lo strbuf.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra strbuf.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/strbuf.o libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra strbuf.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/strbuf.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc \ -rpath /usr//lib/arm-linux-gnueabihf -version-info 0:0:0 -Wl,--no-add-needed \ -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/liblua5.3-cjson.la \ /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/lua_cjson.lo /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/fpconv.lo /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/strbuf.lo \ -Wl,-z,relro -Wl,-z,now libtool: link: gcc -shared -fPIC -DPIC /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/lua_cjson.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/fpconv.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/strbuf.o -Wl,--no-add-needed -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,-soname -Wl,liblua5.3-cjson.so.0 -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/liblua5.3-cjson.so.0.0.0 libtool: link: (cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs" && rm -f "liblua5.3-cjson.so.0" && ln -s "liblua5.3-cjson.so.0.0.0" "liblua5.3-cjson.so.0") libtool: link: (cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs" && rm -f "liblua5.3-cjson.so" && ln -s "liblua5.3-cjson.so.0.0.0" "liblua5.3-cjson.so") libtool: link: ar cr /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/liblua5.3-cjson.a /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/lua_cjson.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/fpconv.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/strbuf.o libtool: link: ranlib /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/liblua5.3-cjson.a libtool: link: ( cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs" && rm -f "liblua5.3-cjson.la" && ln -s "../liblua5.3-cjson.la" "liblua5.3-cjson.la" ) ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/cjson.so linux-vdso.so.1 (0xbef59000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6e10000) /lib/ld-linux-armhf.so.3 (0xb6f80000) Target build made Making target build for debian/lua5.4.dh-lua.conf /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/lua_cjson.lo lua_cjson.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra lua_cjson.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/lua_cjson.o lua_cjson.c: In function 'json_append_string': lua_cjson.c:477:19: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'unsigned int'} [-Wsign-compare] 477 | for (i = 0; i < len; i++) { | ^ In file included from lua_cjson.c:47: fpconv.h: At top level: fpconv.h:15:20: warning: inline function 'fpconv_init' declared but never defined 15 | extern inline void fpconv_init(); | ^~~~~~~~~~~ lua_cjson.c: In function 'json_append_data': lua_cjson.c:689:12: warning: this statement may fall through [-Wimplicit-fallthrough=] 689 | if (lua_touserdata(l, -1) == NULL) { | ^ lua_cjson.c:693:5: note: here 693 | default: | ^~~~~~~ libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra lua_cjson.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/lua_cjson.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/fpconv.lo fpconv.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra fpconv.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/fpconv.o libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra fpconv.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/fpconv.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/strbuf.lo strbuf.c libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra strbuf.c -fPIC -DPIC -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/strbuf.o libtool: compile: arm-linux-gnueabihf-gcc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra strbuf.c -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/strbuf.o >/dev/null 2>&1 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc \ -rpath /usr//lib/arm-linux-gnueabihf -version-info 0:0:0 -Wl,--no-add-needed \ -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/liblua5.4-cjson.la \ /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/lua_cjson.lo /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/fpconv.lo /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/strbuf.lo \ -Wl,-z,relro -Wl,-z,now libtool: link: gcc -shared -fPIC -DPIC /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/lua_cjson.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/fpconv.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/strbuf.o -Wl,--no-add-needed -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,-soname -Wl,liblua5.4-cjson.so.0 -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/liblua5.4-cjson.so.0.0.0 libtool: link: (cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs" && rm -f "liblua5.4-cjson.so.0" && ln -s "liblua5.4-cjson.so.0.0.0" "liblua5.4-cjson.so.0") libtool: link: (cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs" && rm -f "liblua5.4-cjson.so" && ln -s "liblua5.4-cjson.so.0.0.0" "liblua5.4-cjson.so") libtool: link: ar cr /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/liblua5.4-cjson.a /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/lua_cjson.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/fpconv.o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/strbuf.o libtool: link: ranlib /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/liblua5.4-cjson.a libtool: link: ( cd "/build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs" && rm -f "liblua5.4-cjson.la" && ln -s "../liblua5.4-cjson.la" "liblua5.4-cjson.la" ) ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/cjson.so linux-vdso.so.1 (0xbefee000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6e50000) /lib/ld-linux-armhf.so.3 (0xb6fb6000) Target build made dh_auto_test -O--buildsystem=lua make --no-print-directory -f /usr/share/dh-lua/make/dh-lua.Makefile.multiple test Making target test for debian/lua5.1.dh-lua.conf # tests Copying lua/cjson/util.lua in /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson for test ********************** lua dynamic (5.1) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0, -5000, -1, 0.0003, 1023.2, 0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["1"] = "one", ["3"] = "three" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["a"] = "a", ["b"] = "b" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\000\"\000\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\000\"\000" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\000\000\000\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\000\000\000" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\000 \ \r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\000 \ \r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to '?' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to '?' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to '?' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to '?' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to '?' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to '?' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to '?' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to '?' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to '?' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra -Wl,--no-add-needed \ -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/app-dynamic -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/ \ /usr/share/dh-lua/test/5.1/app.c /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/liblua5.1-cjson.la \ -Wl,-z,relro -Wl,-z,now -llua5.1 libtool: link: arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra -Wl,--no-add-needed -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/app-dynamic -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/ /usr/share/dh-lua/test/5.1/app.c -Wl,-z -Wl,relro -Wl,-z -Wl,now /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/liblua5.1-cjson.so -llua5.1 -Wl,-rpath -Wl,/usr//lib/arm-linux-gnueabihf /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=execute -dlopen /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/liblua5.1-cjson.la \ ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/app-dynamic linux-vdso.so.1 (0xbeeaa000) liblua5.1-cjson.so.0 => /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/liblua5.1-cjson.so.0 (0xb6ef0000) liblua5.1.so.0 => /usr//lib/arm-linux-gnueabihf/liblua5.1.so.0 (0xb6ed2000) libc.so.6 => /usr//lib/arm-linux-gnueabihf/libc.so.6 (0xb6d90000) /lib/ld-linux-armhf.so.3 (0xb6f4d000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6d20000) ********************** app dynamic (5.1) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0, -5000, -1, 0.0003, 1023.2, 0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["1"] = "one", ["3"] = "three" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["a"] = "a", ["b"] = "b" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\000\"\000\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\000\"\000" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\000\000\000\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\000\000\000" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\000 \ \r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\000 \ \r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to '?' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to '?' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to '?' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to '?' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to '?' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to '?' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to '?' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to '?' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to '?' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra -Wl,--no-add-needed \ -static -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/app-static -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/ \ /usr/share/dh-lua/test/5.1/app.c /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/liblua5.1-cjson.la \ -Wl,-z,relro -Wl,-z,now -llua5.1 -lm -ldl libtool: link: arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.1 -Wall -Wextra -Wl,--no-add-needed -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/app-static -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/ /usr/share/dh-lua/test/5.1/app.c -Wl,-z -Wl,relro -Wl,-z -Wl,now /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/liblua5.1-cjson.a -llua5.1 -lm -ldl ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/app-static linux-vdso.so.1 (0xbed32000) liblua5.1.so.0 => /lib/arm-linux-gnueabihf/liblua5.1.so.0 (0xb6f72000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6f10000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6dd0000) /lib/ld-linux-armhf.so.3 (0xb6fb8000) *********************** app static (5.1) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0, -5000, -1, 0.0003, 1023.2, 0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["1"] = "one", ["3"] = "three" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["a"] = "a", ["b"] = "b" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\000\"\000\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\000\"\000" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\000\000\000\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\000\000\000" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\000 \ \r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\000 \ \r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to '?' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to '?' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to '?' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to '?' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to '?' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to '?' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to '?' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to '?' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to '?' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** Target test made Making target test for debian/lua5.2.dh-lua.conf # tests Copying lua/cjson/util.lua in /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson for test ********************** lua dynamic (5.2) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0, -5000, -1, 0.0003, 1023.2, 0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["3"] = "three", ["1"] = "one" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["b"] = "b", ["a"] = "a" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\0\"\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\0\"\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\0\0\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\0\0\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to 'cjson.encode_keep_buffer' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to 'cjson.encode_max_depth' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to 'cjson.decode_max_depth' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to 'cjson.encode_invalid_numbers' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to 'cjson.decode_invalid_numbers' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to 'cjson.encode_sparse_array' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to '?' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra -Wl,--no-add-needed \ -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/app-dynamic -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/ \ /usr/share/dh-lua/test/5.2/app.c /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/liblua5.2-cjson.la \ -Wl,-z,relro -Wl,-z,now -llua5.2 libtool: link: arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra -Wl,--no-add-needed -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/app-dynamic -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/ /usr/share/dh-lua/test/5.2/app.c -Wl,-z -Wl,relro -Wl,-z -Wl,now /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/liblua5.2-cjson.so -llua5.2 -Wl,-rpath -Wl,/usr//lib/arm-linux-gnueabihf /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=execute -dlopen /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/liblua5.2-cjson.la \ ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/app-dynamic linux-vdso.so.1 (0xbef75000) liblua5.2-cjson.so.0 => /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/liblua5.2-cjson.so.0 (0xb6f30000) liblua5.2.so.0 => /usr//lib/arm-linux-gnueabihf/liblua5.2.so.0 (0xb6f0f000) libc.so.6 => /usr//lib/arm-linux-gnueabihf/libc.so.6 (0xb6dd0000) /lib/ld-linux-armhf.so.3 (0xb6f87000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6d60000) ********************** app dynamic (5.2) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0, -5000, -1, 0.0003, 1023.2, 0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["1"] = "one", ["3"] = "three" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["a"] = "a", ["b"] = "b" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\0\"\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\0\"\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\0\0\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\0\0\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to '?' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to '?' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to '?' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to '?' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to '?' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to '?' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to '?' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to '?' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to '?' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra -Wl,--no-add-needed \ -static -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/app-static -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/ \ /usr/share/dh-lua/test/5.2/app.c /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/liblua5.2-cjson.la \ -Wl,-z,relro -Wl,-z,now -llua5.2 -lm -ldl libtool: link: arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.2 -Wall -Wextra -Wl,--no-add-needed -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/app-static -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/ /usr/share/dh-lua/test/5.2/app.c -Wl,-z -Wl,relro -Wl,-z -Wl,now /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/liblua5.2-cjson.a -llua5.2 -lm -ldl ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/app-static linux-vdso.so.1 (0xbee17000) liblua5.2.so.0 => /lib/arm-linux-gnueabihf/liblua5.2.so.0 (0xb6f2f000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6ec0000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6d80000) /lib/ld-linux-armhf.so.3 (0xb6f77000) *********************** app static (5.2) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0, -5000, -1, 0.0003, 1023.2, 0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["3"] = "three", ["1"] = "one" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["b"] = "b", ["a"] = "a" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\0\"\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\0\"\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\0\0\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\0\0\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to '?' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to '?' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to '?' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to '?' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to '?' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to '?' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to '?' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to '?' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to '?' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** Target test made Making target test for debian/lua5.3.dh-lua.conf # tests Copying lua/cjson/util.lua in /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson for test ********************** lua dynamic (5.3) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0.0, -5000.0, -1.0, 0.0003, 1023.2, 0.0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["1"] = "one", ["3"] = "three" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["a"] = "a", ["b"] = "b" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\0\"\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\0\"\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\0\0\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\0\0\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123.0, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10,0, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to 'cjson.encode_keep_buffer' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to 'cjson.encode_max_depth' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to 'cjson.decode_max_depth' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to 'cjson.encode_invalid_numbers' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to 'cjson.decode_invalid_numbers' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to 'cjson.encode_sparse_array' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to 'cjson.safe.encode' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra -Wl,--no-add-needed \ -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/app-dynamic -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/ \ /usr/share/dh-lua/test/5.3/app.c /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/liblua5.3-cjson.la \ -Wl,-z,relro -Wl,-z,now -llua5.3 libtool: link: arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra -Wl,--no-add-needed -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/app-dynamic -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/ /usr/share/dh-lua/test/5.3/app.c -Wl,-z -Wl,relro -Wl,-z -Wl,now /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/liblua5.3-cjson.so -llua5.3 -Wl,-rpath -Wl,/usr//lib/arm-linux-gnueabihf /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=execute -dlopen /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/liblua5.3-cjson.la \ ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/app-dynamic linux-vdso.so.1 (0xbeccc000) liblua5.3-cjson.so.0 => /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/liblua5.3-cjson.so.0 (0xb6f70000) liblua5.3.so.0 => /usr//lib/arm-linux-gnueabihf/liblua5.3.so.0 (0xb6f20000) libc.so.6 => /usr//lib/arm-linux-gnueabihf/libc.so.6 (0xb6de0000) /lib/ld-linux-armhf.so.3 (0xb6fc4000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6d70000) ********************** app dynamic (5.3) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0.0, -5000.0, -1.0, 0.0003, 1023.2, 0.0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["3"] = "three", ["1"] = "one" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["b"] = "b", ["a"] = "a" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\0\"\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\0\"\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\0\0\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\0\0\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123.0, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10,0, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to 'cjson.encode_keep_buffer' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to 'cjson.encode_max_depth' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to 'cjson.decode_max_depth' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to 'cjson.encode_invalid_numbers' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to 'cjson.decode_invalid_numbers' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to 'cjson.encode_sparse_array' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to 'cjson.safe.encode' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra -Wl,--no-add-needed \ -static -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/app-static -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/ \ /usr/share/dh-lua/test/5.3/app.c /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/liblua5.3-cjson.la \ -Wl,-z,relro -Wl,-z,now -llua5.3 -lm -ldl libtool: link: arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.3 -Wall -Wextra -Wl,--no-add-needed -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/app-static -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/ /usr/share/dh-lua/test/5.3/app.c -Wl,-z -Wl,relro -Wl,-z -Wl,now /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/liblua5.3-cjson.a -llua5.3 -lm -ldl ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/app-static linux-vdso.so.1 (0xbef3b000) liblua5.3.so.0 => /lib/arm-linux-gnueabihf/liblua5.3.so.0 (0xb6e70000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6e00000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6cc0000) /lib/ld-linux-armhf.so.3 (0xb6ee2000) *********************** app static (5.3) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0.0, -5000.0, -1.0, 0.0003, 1023.2, 0.0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["1"] = "one", ["3"] = "three" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["a"] = "a", ["b"] = "b" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\0\"\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\0\"\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\0\0\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\0\0\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123.0, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10,0, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to 'cjson.encode_keep_buffer' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to 'cjson.encode_max_depth' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to 'cjson.decode_max_depth' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to 'cjson.encode_invalid_numbers' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to 'cjson.decode_invalid_numbers' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to 'cjson.encode_sparse_array' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to 'cjson.safe.encode' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** Target test made Making target test for debian/lua5.4.dh-lua.conf # tests Copying lua/cjson/util.lua in /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson for test ********************** lua dynamic (5.4) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0.0, -5000.0, -1.0, 0.0003, 1023.2, 0.0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["1"] = "one", ["3"] = "three" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["a"] = "a", ["b"] = "b" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\0\"\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\0\"\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\0\0\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\0\0\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123.0, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10,0, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to 'cjson.encode_keep_buffer' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to 'cjson.encode_max_depth' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to 'cjson.decode_max_depth' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to 'cjson.encode_invalid_numbers' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to 'cjson.decode_invalid_numbers' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to 'cjson.encode_sparse_array' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to 'cjson.safe.encode' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra -Wl,--no-add-needed \ -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/app-dynamic -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/ \ /usr/share/dh-lua/test/5.4/app.c /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/liblua5.4-cjson.la \ -Wl,-z,relro -Wl,-z,now -llua5.4 libtool: link: arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra -Wl,--no-add-needed -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/app-dynamic -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/ /usr/share/dh-lua/test/5.4/app.c -Wl,-z -Wl,relro -Wl,-z -Wl,now /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/liblua5.4-cjson.so -llua5.4 -Wl,-rpath -Wl,/usr//lib/arm-linux-gnueabihf /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=execute -dlopen /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/liblua5.4-cjson.la \ ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/app-dynamic linux-vdso.so.1 (0xbeceb000) liblua5.4-cjson.so.0 => /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/liblua5.4-cjson.so.0 (0xb6f50000) liblua5.4.so.0 => /usr//lib/arm-linux-gnueabihf/liblua5.4.so.0 (0xb6f00000) libc.so.6 => /usr//lib/arm-linux-gnueabihf/libc.so.6 (0xb6dc0000) /lib/ld-linux-armhf.so.3 (0xb6fa7000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6d50000) ********************** app dynamic (5.4) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0.0, -5000.0, -1.0, 0.0003, 1023.2, 0.0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["3"] = "three", ["1"] = "one" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["b"] = "b", ["a"] = "a" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\0\"\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\0\"\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\0\0\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\0\0\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123.0, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10,0, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to 'cjson.encode_keep_buffer' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to 'cjson.encode_max_depth' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to 'cjson.decode_max_depth' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to 'cjson.encode_invalid_numbers' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to 'cjson.decode_invalid_numbers' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to 'cjson.encode_sparse_array' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to 'cjson.safe.encode' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --mode=link arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra -Wl,--no-add-needed \ -static -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/app-static -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/ \ /usr/share/dh-lua/test/5.4/app.c /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/liblua5.4-cjson.la \ -Wl,-z,relro -Wl,-z,now -llua5.4 -lm -ldl libtool: link: arm-linux-gnueabihf-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lua-cjson-2.1.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/lua5.4 -Wall -Wextra -Wl,--no-add-needed -o /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/app-static -I . -I /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/ /usr/share/dh-lua/test/5.4/app.c -Wl,-z -Wl,relro -Wl,-z -Wl,now /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/liblua5.4-cjson.a -llua5.4 -lm -ldl ldd /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/app-static linux-vdso.so.1 (0xbed8a000) liblua5.4.so.0 => /lib/arm-linux-gnueabihf/liblua5.4.so.0 (0xb6ef0000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6e80000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6d40000) /lib/ld-linux-armhf.so.3 (0xb6f70000) *********************** app static (5.4) ********* Test: cd tests/ && @@LUA@@ test.lua ==> Testing Lua CJSON version 2.1.0 ==> Test [1] Check module name, version: PASS [Input] { } [Received:success] { "cjson", "2.1.0" } ==> Test [2] Decode string: PASS [Input] { "\"test string\"" } [Received:success] { "test string" } ==> Test [3] Decode numbers: PASS [Input] { "[ 0.0, -5e3, -1, 0.3e-3, 1023.2, 0e10 ]" } [Received:success] { { 0.0, -5000.0, -1.0, 0.0003, 1023.2, 0.0 } } ==> Test [4] Decode null: PASS [Input] { "null" } [Received:success] { json.null } ==> Test [5] Decode true: PASS [Input] { "true" } [Received:success] { true } ==> Test [6] Decode false: PASS [Input] { "false" } [Received:success] { false } ==> Test [7] Decode object with numeric keys: PASS [Input] { "{ \"1\": \"one\", \"3\": \"three\" }" } [Received:success] { { ["3"] = "three", ["1"] = "one" } } ==> Test [8] Decode object with string keys: PASS [Input] { "{ \"a\": \"a\", \"b\": \"b\" }" } [Received:success] { { ["b"] = "b", ["a"] = "a" } } ==> Test [9] Decode array: PASS [Input] { "[ \"one\", null, \"three\" ]" } [Received:success] { { "one", json.null, "three" } } ==> Test [10] Decode UTF-16BE [throw error]: PASS [Input] { "\0\"\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [11] Decode UTF-16LE [throw error]: PASS [Input] { "\"\0\"\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [12] Decode UTF-32BE [throw error]: PASS [Input] { "\0\0\0\"" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [13] Decode UTF-32LE [throw error]: PASS [Input] { "\"\0\0\0" } [Received:error] { "JSON parser does not support UTF-16 or UTF-32" } ==> Test [14] Decode partial JSON [throw error]: PASS [Input] { "{ \"unexpected eof\": " } [Received:error] { "Expected value but found T_END at character 21" } ==> Test [15] Decode with extra comma [throw error]: PASS [Input] { "{ \"extra data\": true }, false" } [Received:error] { "Expected the end but found T_COMMA at character 23" } ==> Test [16] Decode invalid escape code [throw error]: PASS [Input] { " { \"bad escape \\q code\" } " } [Received:error] { "Expected object key string but found invalid escape code at character 16" } ==> Test [17] Decode invalid unicode escape [throw error]: PASS [Input] { " { \"bad unicode \\u0f6 escape\" } " } [Received:error] { "Expected object key string but found invalid unicode escape code at character 17" } ==> Test [18] Decode invalid keyword [throw error]: PASS [Input] { " [ \"bad barewood\", test ] " } [Received:error] { "Expected value but found invalid token at character 20" } ==> Test [19] Decode invalid number #1 [throw error]: PASS [Input] { "[ -+12 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [20] Decode invalid number #2 [throw error]: PASS [Input] { "-v" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [21] Decode invalid number exponent [throw error]: PASS [Input] { "[ 0.4eg10 ]" } [Received:error] { "Expected comma or array end but found invalid token at character 6" } ==> Test [22] Set decode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [23] Decode array at nested limit: PASS [Input] { "[[[[[ \"nested\" ]]]]]" } [Received:success] { { { { { { "nested" } } } } } } ==> Test [24] Decode array over nested limit [throw error]: PASS [Input] { "[[[[[[ \"nested\" ]]]]]]" } [Received:error] { "Found too many nested data structures (6) at character 6" } ==> Test [25] Decode object at nested limit: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } [Received:success] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } ==> Test [26] Decode object over nested limit [throw error]: PASS [Input] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":\"nested\"}}}}}}" } [Received:error] { "Found too many nested data structures (6) at character 26" } ==> Test [27] Set decode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [28] Decode deeply nested array [throw error]: PASS [Input] { "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1100]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" } [Received:error] { "Found too many nested data structures (1001) at character 1001" } ==> Test [29] Set encode_max_depth(5): PASS [Input] { 5 } [Received:success] { 5 } ==> Test [30] Encode nested table as array at nested limit: PASS [Input] { { { { { { "nested" } } } } } } [Received:success] { "[[[[[\"nested\"]]]]]" } ==> Test [31] Encode nested table as array after nested limit [throw error]: PASS [Input] { { { { { { { "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [32] Encode nested table as object at nested limit: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = "nested" } } } } } } [Received:success] { "{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":\"nested\"}}}}}" } ==> Test [33] Encode nested table as object over nested limit [throw error]: PASS [Input] { { ["a"] = { ["b"] = { ["c"] = { ["d"] = { ["e"] = { ["f"] = "nested" } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [34] Encode table with cycle [throw error]: PASS [Input] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (6)" } ==> Test [35] Set encode_max_depth(1000): PASS [Input] { 1000 } [Received:success] { 1000 } ==> Test [36] Encode deeply nested data [throw error]: PASS [Input] { { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = { 10, false, true, json.null }, [2] = "string", ["a"] = { [1] = Cannot serialise any further: too many nested tables, [2] = "string", ["a"] = Cannot serialise any further: too many nested tables } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [Received:error] { "Cannot serialise, excessive nesting (1001)" } ==> Test [37] Encode null: PASS [Input] { json.null } [Received:success] { "null" } ==> Test [38] Encode true: PASS [Input] { true } [Received:success] { "true" } ==> Test [39] Encode false: PASS [Input] { false } [Received:success] { "false" } ==> Test [40] Encode empty object: PASS [Input] { { } } [Received:success] { "{}" } ==> Test [41] Encode integer: PASS [Input] { 10 } [Received:success] { "10" } ==> Test [42] Encode string: PASS [Input] { "hello" } [Received:success] { "\"hello\"" } ==> Test [43] Encode Lua function [throw error]: PASS [Input] { "" } [Received:error] { "Cannot serialise function: type not supported" } ==> Test [44] Set decode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [45] Decode hexadecimal: PASS [Input] { "0x6.ffp1" } [Received:success] { 13.9921875 } ==> Test [46] Decode numbers with leading zero: PASS [Input] { "[ 0123, 00.33 ]" } [Received:success] { { 123.0, 0.33 } } ==> Test [47] Decode +-Inf: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:success] { { inf, inf, -inf } } ==> Test [48] Decode +-Infinity: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:success] { { inf, inf, -inf } } ==> Test [49] Decode +-NaN: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:success] { { nan, nan, -nan } } ==> Test [50] Decode Infrared (not infinity) [throw error]: PASS [Input] { "Infrared" } [Received:error] { "Expected the end but found invalid token at character 4" } ==> Test [51] Decode Noodle (not NaN) [throw error]: PASS [Input] { "Noodle" } [Received:error] { "Expected value but found invalid token at character 1" } ==> Test [52] Set decode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [53] Decode hexadecimal [throw error]: PASS [Input] { "0x6" } [Received:error] { "Expected value but found invalid number at character 1" } ==> Test [54] Decode numbers with leading zero [throw error]: PASS [Input] { "[ 0123, 00.33 ]" } [Received:error] { "Expected value but found invalid number at character 3" } ==> Test [55] Decode +-Inf [throw error]: PASS [Input] { "[ +Inf, Inf, -Inf ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [56] Decode +-Infinity [throw error]: PASS [Input] { "[ +Infinity, Infinity, -Infinity ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [57] Decode +-NaN [throw error]: PASS [Input] { "[ +NaN, NaN, -NaN ]" } [Received:error] { "Expected value but found invalid token at character 3" } ==> Test [58] Set decode_invalid_numbers("on"): PASS [Input] { "on" } [Received:success] { true } ==> Test [59] Set encode_invalid_numbers(false): PASS [Input] { false } [Received:success] { false } ==> Test [60] Encode NaN [throw error]: PASS [Input] { nan } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [61] Encode Infinity [throw error]: PASS [Input] { inf } [Received:error] { "Cannot serialise number: must not be NaN or Inf" } ==> Test [62] Set encode_invalid_numbers("null"): PASS [Input] { "null" } [Received:success] { "null" } ==> Test [63] Encode NaN as null: PASS [Input] { nan } [Received:success] { "null" } ==> Test [64] Encode Infinity as null: PASS [Input] { inf } [Received:success] { "null" } ==> Test [65] Set encode_invalid_numbers(true): PASS [Input] { true } [Received:success] { true } ==> Test [66] Encode NaN: PASS [Input] { nan } [Received:success] { "nan" } ==> Test [67] Encode Infinity: PASS [Input] { inf } [Received:success] { "inf" } ==> Test [68] Set encode_invalid_numbers("off"): PASS [Input] { "off" } [Received:success] { false } ==> Test [69] Set encode_sparse_array(true, 2, 3): PASS [Input] { true, 2, 3 } [Received:success] { true, 2, 3 } ==> Test [70] Encode sparse table as array #1: PASS [Input] { { [3] = "sparse test" } } [Received:success] { "[null,null,\"sparse test\"]" } ==> Test [71] Encode sparse table as array #2: PASS [Input] { { "one", nil, nil, "sparse test" } } [Received:success] { "[\"one\",null,null,\"sparse test\"]" } ==> Test [72] Encode table with numeric string key as object: PASS [Input] { { ["2"] = "numeric string key test" } } [Received:success] { "{\"2\":\"numeric string key test\"}" } ==> Test [73] Set encode_sparse_array(false): PASS [Input] { false } [Received:success] { false, 2, 3 } ==> Test [74] Encode table with incompatible key [throw error]: PASS [Input] { { [false] = "wrong" } } [Received:error] { "Cannot serialise boolean: table key must be a number or string" } ==> Test [75] Encode all octets (8-bit clean): PASS [Input] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } [Received:success] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } ==> Test [76] Decode all escaped octets: PASS [Input] { "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\"" } [Received:success] { "\0\1\2\3\4\5\6\7\8\9\ \11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\127" } ==> Test [77] Decode single UTF-16 escape: PASS [Input] { "\"\\uF800\"" } [Received:success] { "" } ==> Test [78] Decode swapped surrogate pair [throw error]: PASS [Input] { "\"\\uDC00\\uD800\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [79] Decode duplicate high surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [80] Decode duplicate low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [81] Decode missing low surrogate [throw error]: PASS [Input] { "\"\\uDB00\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Test [82] Decode invalid low surrogate [throw error]: PASS [Input] { "\"\\uDB00\\uD\"" } [Received:error] { "Expected value but found invalid unicode escape code at character 2" } ==> Set locale to cs_CZ (comma separator) ==> Test [83] Encode number under comma locale: PASS [Input] { 1,5 } [Received:success] { "1.5" } ==> Test [84] Decode number in array under comma locale: PASS [Input] { "[ 10, \"test\" ]" } [Received:success] { { 10,0, "test" } } ==> Revert locale to POSIX ==> Test [85] Set encode_keep_buffer(false): PASS [Input] { false } [Received:success] { false } ==> Test [86] Set encode_number_precision(3): PASS [Input] { 3 } [Received:success] { 3 } ==> Test [87] Encode number with precision 3: PASS [Input] { 0.33333333333333 } [Received:success] { "0.333" } ==> Test [88] Set encode_number_precision(14): PASS [Input] { 14 } [Received:success] { 14 } ==> Test [89] Set encode_keep_buffer(true): PASS [Input] { true } [Received:success] { true } ==> Test [90] Set encode_number_precision(0) [throw error]: PASS [Input] { 0 } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (expected integer between 1 and 14)" } ==> Test [91] Set encode_number_precision("five") [throw error]: PASS [Input] { "five" } [Received:error] { "bad argument #1 to 'cjson.encode_number_precision' (number expected, got string)" } ==> Test [92] Set encode_keep_buffer(nil, true) [throw error]: PASS [Input] { nil, true } [Received:error] { "bad argument #2 to 'cjson.encode_keep_buffer' (found too many arguments)" } ==> Test [93] Set encode_max_depth("wrong") [throw error]: PASS [Input] { "wrong" } [Received:error] { "bad argument #1 to 'cjson.encode_max_depth' (number expected, got string)" } ==> Test [94] Set decode_max_depth(0) [throw error]: PASS [Input] { "0" } [Received:error] { "bad argument #1 to 'cjson.decode_max_depth' (expected integer between 1 and 2147483647)" } ==> Test [95] Set encode_invalid_numbers(-2) [throw error]: PASS [Input] { -2 } [Received:error] { "bad argument #1 to 'cjson.encode_invalid_numbers' (invalid option '-2')" } ==> Test [96] Set decode_invalid_numbers(true, false) [throw error]: PASS [Input] { true, false } [Received:error] { "bad argument #2 to 'cjson.decode_invalid_numbers' (found too many arguments)" } ==> Test [97] Set encode_sparse_array("not quite on") [throw error]: PASS [Input] { "not quite on" } [Received:error] { "bad argument #1 to 'cjson.encode_sparse_array' (invalid option 'not quite on')" } ==> Reset Lua CJSON configuration ==> Test [98] Check encode_sparse_array(): PASS [Input] { } [Received:success] { false, 2, 10 } ==> Test [99] Encode (safe) simple value: PASS [Input] { true } [Received:success] { "true" } ==> Test [100] Encode (safe) argument validation [throw error]: PASS [Input] { "arg1", "arg2" } [Received:error] { "bad argument #1 to 'cjson.safe.encode' (expected 1 argument)" } ==> Test [101] Decode (safe) error generation: PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Test [102] Decode (safe) error generation after new(): PASS [Input] { "Oops" } [Received:success] { nil, "Expected value but found invalid token at character 1" } ==> Summary: all tests succeeded ************************************************** Target test made create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=lua dh_prep -O--buildsystem=lua dh_auto_install -O--buildsystem=lua make --no-print-directory -f /usr/share/dh-lua/make/dh-lua.Makefile.multiple install Making target install for debian/lua5.1.dh-lua.conf # .lua Installing lua/cjson/util.lua in debian/tmp/usr//share/lua/5.1 # debian/substvars Filling in debian/lua-cjson.substvars Adding new line: lua:Versions=5.1 5.2 5.3 5.4 Filling in debian/lua-cjson-dev.substvars Adding new line: lua:Versions=5.1 5.2 5.3 5.4 Filling in debian/lua-cjson.substvars Adding new line: lua:Provides=lua5.4-cjson, lua5.3-cjson, lua5.2-cjson, lua5.1-cjson, Filling in debian/lua-cjson-dev.substvars Adding new line: lua:Provides=lua5.4-cjson-dev, lua5.3-cjson-dev, lua5.2-cjson-dev, lua5.1-cjson-dev, # .so Installing liblua5.1-cjson libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/liblua5.1-cjson.so.0.0.0 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.1-cjson.so.0.0.0 libtool: install: (cd /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf && { ln -s -f liblua5.1-cjson.so.0.0.0 liblua5.1-cjson.so.0 || { rm -f liblua5.1-cjson.so.0 && ln -s liblua5.1-cjson.so.0.0.0 liblua5.1-cjson.so.0; }; }) libtool: install: (cd /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf && { ln -s -f liblua5.1-cjson.so.0.0.0 liblua5.1-cjson.so || { rm -f liblua5.1-cjson.so && ln -s liblua5.1-cjson.so.0.0.0 liblua5.1-cjson.so; }; }) libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/liblua5.1-cjson.lai /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.1-cjson.la libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/.libs/liblua5.1-cjson.a /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.1-cjson.a libtool: install: chmod 644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.1-cjson.a libtool: install: ranlib /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.1-cjson.a libtool: warning: remember to run 'libtool --finish /usr//lib/arm-linux-gnueabihf' /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --finish debian/tmp/usr//lib/arm-linux-gnueabihf libtool: finish: PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/sbin" ldconfig -n debian/tmp/usr//lib/arm-linux-gnueabihf ---------------------------------------------------------------------- Libraries have been installed in: debian/tmp/usr//lib/arm-linux-gnueabihf If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- Creating symlink cjson.so # .pc Installing lua5.1-cjson.pc libtool: install: install -m 0644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/lua5.1-cjson.pc /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/pkgconfig/lua5.1-cjson.pc # .h Installing /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/lua-cjson.h libtool: install: install -m 0644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.1-cjson/lua-cjson.h /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//include/lua5.1/lua-cjson.h Target install made Making target install for debian/lua5.2.dh-lua.conf # .lua Installing lua/cjson/util.lua in debian/tmp/usr//share/lua/5.2 # debian/substvars Filling in debian/lua-cjson.substvars Skipping already existing line: lua:Versions=5.1 5.2 5.3 5.4 Filling in debian/lua-cjson-dev.substvars Skipping already existing line: lua:Versions=5.1 5.2 5.3 5.4 Filling in debian/lua-cjson.substvars Skipping already existing line: lua:Provides=lua5.4-cjson, lua5.3-cjson, lua5.2-cjson, lua5.1-cjson, Filling in debian/lua-cjson-dev.substvars Skipping already existing line: lua:Provides=lua5.4-cjson-dev, lua5.3-cjson-dev, lua5.2-cjson-dev, lua5.1-cjson-dev, # .so Installing liblua5.2-cjson libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/liblua5.2-cjson.so.0.0.0 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.2-cjson.so.0.0.0 libtool: install: (cd /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf && { ln -s -f liblua5.2-cjson.so.0.0.0 liblua5.2-cjson.so.0 || { rm -f liblua5.2-cjson.so.0 && ln -s liblua5.2-cjson.so.0.0.0 liblua5.2-cjson.so.0; }; }) libtool: install: (cd /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf && { ln -s -f liblua5.2-cjson.so.0.0.0 liblua5.2-cjson.so || { rm -f liblua5.2-cjson.so && ln -s liblua5.2-cjson.so.0.0.0 liblua5.2-cjson.so; }; }) libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/liblua5.2-cjson.lai /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.2-cjson.la libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/.libs/liblua5.2-cjson.a /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.2-cjson.a libtool: install: chmod 644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.2-cjson.a libtool: install: ranlib /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.2-cjson.a libtool: warning: remember to run 'libtool --finish /usr//lib/arm-linux-gnueabihf' /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --finish debian/tmp/usr//lib/arm-linux-gnueabihf libtool: finish: PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/sbin" ldconfig -n debian/tmp/usr//lib/arm-linux-gnueabihf ---------------------------------------------------------------------- Libraries have been installed in: debian/tmp/usr//lib/arm-linux-gnueabihf If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- Creating symlink cjson.so # .pc Installing lua5.2-cjson.pc libtool: install: install -m 0644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/lua5.2-cjson.pc /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/pkgconfig/lua5.2-cjson.pc # .h Installing /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/lua-cjson.h libtool: install: install -m 0644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.2-cjson/lua-cjson.h /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//include/lua5.2/lua-cjson.h Target install made Making target install for debian/lua5.3.dh-lua.conf # .lua Installing lua/cjson/util.lua in debian/tmp/usr//share/lua/5.3 # debian/substvars Filling in debian/lua-cjson.substvars Skipping already existing line: lua:Versions=5.1 5.2 5.3 5.4 Filling in debian/lua-cjson-dev.substvars Skipping already existing line: lua:Versions=5.1 5.2 5.3 5.4 Filling in debian/lua-cjson.substvars Skipping already existing line: lua:Provides=lua5.4-cjson, lua5.3-cjson, lua5.2-cjson, lua5.1-cjson, Filling in debian/lua-cjson-dev.substvars Skipping already existing line: lua:Provides=lua5.4-cjson-dev, lua5.3-cjson-dev, lua5.2-cjson-dev, lua5.1-cjson-dev, # .so Installing liblua5.3-cjson libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/liblua5.3-cjson.so.0.0.0 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.3-cjson.so.0.0.0 libtool: install: (cd /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf && { ln -s -f liblua5.3-cjson.so.0.0.0 liblua5.3-cjson.so.0 || { rm -f liblua5.3-cjson.so.0 && ln -s liblua5.3-cjson.so.0.0.0 liblua5.3-cjson.so.0; }; }) libtool: install: (cd /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf && { ln -s -f liblua5.3-cjson.so.0.0.0 liblua5.3-cjson.so || { rm -f liblua5.3-cjson.so && ln -s liblua5.3-cjson.so.0.0.0 liblua5.3-cjson.so; }; }) libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/liblua5.3-cjson.lai /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.3-cjson.la libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/.libs/liblua5.3-cjson.a /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.3-cjson.a libtool: install: chmod 644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.3-cjson.a libtool: install: ranlib /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.3-cjson.a libtool: warning: remember to run 'libtool --finish /usr//lib/arm-linux-gnueabihf' /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --finish debian/tmp/usr//lib/arm-linux-gnueabihf libtool: finish: PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/sbin" ldconfig -n debian/tmp/usr//lib/arm-linux-gnueabihf ---------------------------------------------------------------------- Libraries have been installed in: debian/tmp/usr//lib/arm-linux-gnueabihf If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- Creating symlink cjson.so # .pc Installing lua5.3-cjson.pc libtool: install: install -m 0644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/lua5.3-cjson.pc /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/pkgconfig/lua5.3-cjson.pc # .h Installing /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/lua-cjson.h libtool: install: install -m 0644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.3-cjson/lua-cjson.h /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//include/lua5.3/lua-cjson.h Target install made Making target install for debian/lua5.4.dh-lua.conf # .lua Installing lua/cjson/util.lua in debian/tmp/usr//share/lua/5.4 # debian/substvars Filling in debian/lua-cjson.substvars Skipping already existing line: lua:Versions=5.1 5.2 5.3 5.4 Filling in debian/lua-cjson-dev.substvars Skipping already existing line: lua:Versions=5.1 5.2 5.3 5.4 Filling in debian/lua-cjson.substvars Skipping already existing line: lua:Provides=lua5.4-cjson, lua5.3-cjson, lua5.2-cjson, lua5.1-cjson, Filling in debian/lua-cjson-dev.substvars Skipping already existing line: lua:Provides=lua5.4-cjson-dev, lua5.3-cjson-dev, lua5.2-cjson-dev, lua5.1-cjson-dev, # .so Installing liblua5.4-cjson libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/liblua5.4-cjson.so.0.0.0 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.4-cjson.so.0.0.0 libtool: install: (cd /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf && { ln -s -f liblua5.4-cjson.so.0.0.0 liblua5.4-cjson.so.0 || { rm -f liblua5.4-cjson.so.0 && ln -s liblua5.4-cjson.so.0.0.0 liblua5.4-cjson.so.0; }; }) libtool: install: (cd /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf && { ln -s -f liblua5.4-cjson.so.0.0.0 liblua5.4-cjson.so || { rm -f liblua5.4-cjson.so && ln -s liblua5.4-cjson.so.0.0.0 liblua5.4-cjson.so; }; }) libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/liblua5.4-cjson.lai /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.4-cjson.la libtool: install: install /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/.libs/liblua5.4-cjson.a /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.4-cjson.a libtool: install: chmod 644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.4-cjson.a libtool: install: ranlib /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/liblua5.4-cjson.a libtool: warning: remember to run 'libtool --finish /usr//lib/arm-linux-gnueabihf' /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/.dh_lua-libtool/libtool --tag=CC --finish debian/tmp/usr//lib/arm-linux-gnueabihf libtool: finish: PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/sbin" ldconfig -n debian/tmp/usr//lib/arm-linux-gnueabihf ---------------------------------------------------------------------- Libraries have been installed in: debian/tmp/usr//lib/arm-linux-gnueabihf If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- Creating symlink cjson.so # .pc Installing lua5.4-cjson.pc libtool: install: install -m 0644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/lua5.4-cjson.pc /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//lib/arm-linux-gnueabihf/pkgconfig/lua5.4-cjson.pc # .h Installing /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/lua-cjson.h libtool: install: install -m 0644 /build/reproducible-path/lua-cjson-2.1.0+dfsg/5.4-cjson/lua-cjson.h /build/reproducible-path/lua-cjson-2.1.0+dfsg/debian/tmp/usr//include/lua5.4/lua-cjson.h Target install made dh_install -O--buildsystem=lua dh_lua -O--buildsystem=lua deduplicating cjson/util.lua deduplicating cjson/util.lua deduplicating cjson/util.lua dh_installdocs -O--buildsystem=lua dh_installchangelogs -O--buildsystem=lua dh_installsystemduser -O--buildsystem=lua dh_perl -O--buildsystem=lua dh_link -O--buildsystem=lua dh_strip_nondeterminism -O--buildsystem=lua dh_compress -X.lua -O--buildsystem=lua dh_fixperms -O--buildsystem=lua dh_missing -O--buildsystem=lua dh_dwz -a -O--buildsystem=lua dh_strip -a -O--buildsystem=lua dh_makeshlibs -a -O--buildsystem=lua dh_shlibdeps -a -O--buildsystem=lua dpkg-shlibdeps: warning: diversions involved - output may be incorrect diversion by libc6 from: /lib/ld-linux-armhf.so.3 dpkg-shlibdeps: warning: diversions involved - output may be incorrect diversion by libc6 to: /lib/ld-linux-armhf.so.3.usr-is-merged dpkg-shlibdeps: warning: symbol lua_toboolean used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_settop used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_setmetatable used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol luaL_checklstring used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_pushcclosure used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol luaL_checkinteger used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_rawgeti used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_tonumber used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_type used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_pushboolean used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.1-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: 26 other similar warnings have been skipped (use -v to see them all) dpkg-shlibdeps: warning: symbol lua_rotate used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_pushlightuserdata used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_gettop used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_tolstring used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol luaL_error used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_newuserdata used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_rawseti used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol floor used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_touserdata used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_typename used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.3-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: 26 other similar warnings have been skipped (use -v to see them all) dpkg-shlibdeps: warning: symbol lua_pushlightuserdata used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_gettop used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_rotate used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_rawseti used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol luaL_error used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_tolstring used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_typename used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol floor used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_touserdata used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_rawset used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.4-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: 26 other similar warnings have been skipped (use -v to see them all) dpkg-shlibdeps: warning: symbol lua_pushboolean used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_tonumberx used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_checkstack used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_setfield used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_toboolean used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_pushcclosure used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_setmetatable used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol luaL_checklstring used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_settop used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: symbol lua_rawgeti used by debian/lua-cjson/usr/lib/arm-linux-gnueabihf/liblua5.2-cjson.so.0.0.0 found in none of the libraries dpkg-shlibdeps: warning: 26 other similar warnings have been skipped (use -v to see them all) dh_installdeb -O--buildsystem=lua dh_gencontrol -O--buildsystem=lua dh_md5sums -O--buildsystem=lua dh_builddeb -O--buildsystem=lua dpkg-deb: building package 'lua-cjson' in '../lua-cjson_2.1.0+dfsg-2.2_armhf.deb'. dpkg-deb: building package 'lua-cjson-dbgsym' in '../lua-cjson-dbgsym_2.1.0+dfsg-2.2_armhf.deb'. dpkg-deb: building package 'lua-cjson-dev' in '../lua-cjson-dev_2.1.0+dfsg-2.2_armhf.deb'. dpkg-genbuildinfo --build=binary -O../lua-cjson_2.1.0+dfsg-2.2_armhf.buildinfo dpkg-genchanges --build=binary -O../lua-cjson_2.1.0+dfsg-2.2_armhf.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/3164 and its subdirectories I: Current time: Sat Feb 1 17:07:04 -12 2025 I: pbuilder-time-stamp: 1738472824 Sun Feb 2 05:07:18 UTC 2025 I: 1st build successful. Starting 2nd build on remote node virt64z-armhf-rb.debian.net. Sun Feb 2 05:07:18 UTC 2025 I: Preparing to do remote build '2' on virt64z-armhf-rb.debian.net. Sun Feb 2 05:09:47 UTC 2025 I: Deleting $TMPDIR on virt64z-armhf-rb.debian.net. Sun Feb 2 05:09:49 UTC 2025 I: lua-cjson_2.1.0+dfsg-2.2_armhf.changes: Format: 1.8 Date: Thu, 01 Dec 2022 00:26:18 +0800 Source: lua-cjson Binary: lua-cjson lua-cjson-dbgsym lua-cjson-dev Architecture: armhf Version: 2.1.0+dfsg-2.2 Distribution: unstable Urgency: medium Maintainer: The Debian Lua Team Changed-By: Yangfl Description: lua-cjson - JSON parser/encoder for Lua lua-cjson-dev - JSON parser/encoder for Lua, development files Closes: 872599 942569 Changes: lua-cjson (2.1.0+dfsg-2.2) unstable; urgency=medium . * Non-maintainer upload. * Add lua version 5.3 (Closes: #872599, #942569). * Add lua version 5.4. * Add Rules-Requires-Root: no. * Add hardening options. * Bump debhelper compat to 13. * Bump Standards-Version to 4.6.1. . [ Boyuan Yang ] * debian/control: Migrate Vcs-* fields to Salsa lua-team. * debian/copyright: Use latest machine-readable copyright format. Checksums-Sha1: 52af4d6182773962949413927dffe056f271ab29 101880 lua-cjson-dbgsym_2.1.0+dfsg-2.2_armhf.deb c0ef61adb345420a5b36399fbd4ddf14c0b2db1b 31484 lua-cjson-dev_2.1.0+dfsg-2.2_armhf.deb 643ffecbba0eeff80b4750c10105441500011ca8 6039 lua-cjson_2.1.0+dfsg-2.2_armhf.buildinfo e30cba1749afbc6f0f6670284fbd093c463b168f 18152 lua-cjson_2.1.0+dfsg-2.2_armhf.deb Checksums-Sha256: 954585c29b2bc97b7074985fa536ce17e4a99489764a1516e31e02e34440cdd8 101880 lua-cjson-dbgsym_2.1.0+dfsg-2.2_armhf.deb 1ef41ce74df17ea213b91a866fa8d1d547a3dc76acb55a8931e573f8d2c5493e 31484 lua-cjson-dev_2.1.0+dfsg-2.2_armhf.deb 4e897e90fc3cfdf73f8be7c2f32dcb8948ec9cea89037b0a4c3d46ff3a3882a4 6039 lua-cjson_2.1.0+dfsg-2.2_armhf.buildinfo 99cf229b304073ae3cfa9476162fc1a2127d2c48cc7f94cbff23782db8a7abec 18152 lua-cjson_2.1.0+dfsg-2.2_armhf.deb Files: e815e0d7a4802d9f5b3c6eabd9d9da9b 101880 debug optional lua-cjson-dbgsym_2.1.0+dfsg-2.2_armhf.deb d24b1481f529108902994ef3c0de8228 31484 libdevel optional lua-cjson-dev_2.1.0+dfsg-2.2_armhf.deb 0e42f80127c0edf82161a1128d13e1c9 6039 interpreters optional lua-cjson_2.1.0+dfsg-2.2_armhf.buildinfo a6f37d4296e8405d763e97ed84f618eb 18152 interpreters optional lua-cjson_2.1.0+dfsg-2.2_armhf.deb Sun Feb 2 05:09:50 UTC 2025 I: diffoscope 287 will be used to compare the two builds: Running as unit: rb-diffoscope-armhf_9-12732.service # Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.MZyBPXZQ/lua-cjson_2.1.0+dfsg-2.2.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.MZyBPXZQ/lua-cjson_2.1.0+dfsg-2.2.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.MZyBPXZQ/lua-cjson_2.1.0+dfsg-2.2.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.MZyBPXZQ/b1/lua-cjson_2.1.0+dfsg-2.2_armhf.changes /srv/reproducible-results/rbuild-debian/r-b-build.MZyBPXZQ/b2/lua-cjson_2.1.0+dfsg-2.2_armhf.changes ## command (total time: 0.000s) 0.000s 1 call cmp (internal) ## has_same_content_as (total time: 0.000s) 0.000s 1 call diffoscope.comparators.binary.FilesystemFile ## main (total time: 0.003s) 0.003s 2 calls outputs 0.000s 1 call cleanup Finished with result: success Main processes terminated with: code=exited/status=0 Service runtime: 219ms CPU time consumed: 220ms Sun Feb 2 05:09:51 UTC 2025 I: diffoscope 287 found no differences in the changes files, and a .buildinfo file also exists. Sun Feb 2 05:09:51 UTC 2025 I: lua-cjson from trixie built successfully and reproducibly on armhf. Sun Feb 2 05:09:52 UTC 2025 I: Submitting .buildinfo files to external archives: Sun Feb 2 05:09:52 UTC 2025 I: Submitting 8.0K b1/lua-cjson_2.1.0+dfsg-2.2_armhf.buildinfo.asc Sun Feb 2 05:09:53 UTC 2025 I: Submitting 8.0K b2/lua-cjson_2.1.0+dfsg-2.2_armhf.buildinfo.asc Sun Feb 2 05:09:54 UTC 2025 I: Done submitting .buildinfo files to http://buildinfo.debian.net/api/submit. Sun Feb 2 05:09:54 UTC 2025 I: Done submitting .buildinfo files. Sun Feb 2 05:09:54 UTC 2025 I: Removing signed lua-cjson_2.1.0+dfsg-2.2_armhf.buildinfo.asc files: removed './b1/lua-cjson_2.1.0+dfsg-2.2_armhf.buildinfo.asc' removed './b2/lua-cjson_2.1.0+dfsg-2.2_armhf.buildinfo.asc'