Diff of the two buildlogs: -- --- b1/build.log 2023-05-27 12:39:10.193856020 +0000 +++ b2/build.log 2023-05-27 12:59:48.643592804 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat May 27 00:34:21 -12 2023 -I: pbuilder-time-stamp: 1685190861 +I: Current time: Sun May 28 02:39:35 +14 2023 +I: pbuilder-time-stamp: 1685191175 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration @@ -16,7 +16,7 @@ I: copying [./octave-io_2.6.4.orig.tar.gz] I: copying [./octave-io_2.6.4-3.debian.tar.xz] I: Extracting source -gpgv: Signature made Wed Mar 1 04:51:42 2023 -12 +gpgv: Signature made Thu Mar 2 06:51:42 2023 +14 gpgv: using RSA key 53951D95272E0C5B82BE8C4A2CECE9350ECEBE4A gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./octave-io_2.6.4-3.dsc: no acceptable signature found @@ -29,135 +29,167 @@ dpkg-source: info: applying xmlbeans-versioned.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/18090/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/15559/tmp/hooks/D01_modify_environment starting +debug: Running on cbxi4a. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 May 28 02:40 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/15559/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/15559/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - 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='bookworm' - HOME='/root' - HOST_ARCH='armhf' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="15" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.2.15(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 ' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='3b286b34c093480e98da8e4fe7a091ac' - 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='18090' - PS1='# ' - PS2='> ' + INVOCATION_ID=2f82f97b503f453dbe3852c7adae0281 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=15559 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.D5ZiwVVu/pbuilderrc_SvXI --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.D5ZiwVVu/b1 --logfile b1/build.log octave-io_2.6.4-3.dsc' - SUDO_GID='114' - SUDO_UID='108' - 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/' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.D5ZiwVVu/pbuilderrc_8xli --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.D5ZiwVVu/b2 --logfile b2/build.log --extrapackages usrmerge octave-io_2.6.4-3.dsc' + SUDO_GID=113 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux jtx1c 5.10.0-23-arm64 #1 SMP Debian 5.10.179-1 (2023-05-12) aarch64 GNU/Linux + Linux i-capture-the-hostname 5.10.0-23-armmp #1 SMP Debian 5.10.179-1 (2023-05-12) armv7l GNU/Linux I: ls -l /bin total 5072 - -rwxr-xr-x 1 root root 838488 Apr 23 09:24 bash - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bunzip2 - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzcat - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Sep 18 2022 bzdiff - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4893 Nov 27 2021 bzexe - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Sep 18 2022 bzgrep - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzip2 - -rwxr-xr-x 1 root root 67112 Sep 18 2022 bzip2recover - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Sep 18 2022 bzmore - -rwxr-xr-x 1 root root 67632 Sep 20 2022 cat - -rwxr-xr-x 1 root root 67676 Sep 20 2022 chgrp - -rwxr-xr-x 1 root root 67644 Sep 20 2022 chmod - -rwxr-xr-x 1 root root 67684 Sep 20 2022 chown - -rwxr-xr-x 1 root root 133532 Sep 20 2022 cp - -rwxr-xr-x 1 root root 132868 Jan 5 01:20 dash - -rwxr-xr-x 1 root root 133220 Sep 20 2022 date - -rwxr-xr-x 1 root root 67732 Sep 20 2022 dd - -rwxr-xr-x 1 root root 68104 Sep 20 2022 df - -rwxr-xr-x 1 root root 133632 Sep 20 2022 dir - -rwxr-xr-x 1 root root 59128 Mar 22 21:02 dmesg - lrwxrwxrwx 1 root root 8 Dec 19 01:33 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Dec 19 01:33 domainname -> hostname - -rwxr-xr-x 1 root root 67560 Sep 20 2022 echo - -rwxr-xr-x 1 root root 41 Jan 24 02:43 egrep - -rwxr-xr-x 1 root root 67548 Sep 20 2022 false - -rwxr-xr-x 1 root root 41 Jan 24 02:43 fgrep - -rwxr-xr-x 1 root root 55748 Mar 22 21:02 findmnt - -rwsr-xr-x 1 root root 26208 Mar 22 20:15 fusermount - -rwxr-xr-x 1 root root 128608 Jan 24 02:43 grep - -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip - -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe - -rwxr-xr-x 1 root root 64220 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 67032 Dec 19 01:33 hostname - -rwxr-xr-x 1 root root 67720 Sep 20 2022 ln - -rwxr-xr-x 1 root root 35132 Mar 22 21:51 login - -rwxr-xr-x 1 root root 133632 Sep 20 2022 ls - -rwxr-xr-x 1 root root 136808 Mar 22 21:02 lsblk - -rwxr-xr-x 1 root root 67800 Sep 20 2022 mkdir - -rwxr-xr-x 1 root root 67764 Sep 20 2022 mknod - -rwxr-xr-x 1 root root 67596 Sep 20 2022 mktemp - -rwxr-xr-x 1 root root 38504 Mar 22 21:02 more - -rwsr-xr-x 1 root root 38496 Mar 22 21:02 mount - -rwxr-xr-x 1 root root 9824 Mar 22 21:02 mountpoint - -rwxr-xr-x 1 root root 133532 Sep 20 2022 mv - lrwxrwxrwx 1 root root 8 Dec 19 01:33 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 2 18:25 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 67608 Sep 20 2022 pwd - lrwxrwxrwx 1 root root 4 Apr 23 09:24 rbash -> bash - -rwxr-xr-x 1 root root 67600 Sep 20 2022 readlink - -rwxr-xr-x 1 root root 67672 Sep 20 2022 rm - -rwxr-xr-x 1 root root 67600 Sep 20 2022 rmdir - -rwxr-xr-x 1 root root 67400 Nov 2 2022 run-parts - -rwxr-xr-x 1 root root 133372 Jan 5 07:55 sed - lrwxrwxrwx 1 root root 4 Jan 5 01:20 sh -> dash - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sleep - -rwxr-xr-x 1 root root 67644 Sep 20 2022 stty - -rwsr-xr-x 1 root root 50800 Mar 22 21:02 su - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sync - -rwxr-xr-x 1 root root 336764 Apr 6 02:25 tar - -rwxr-xr-x 1 root root 67144 Nov 2 2022 tempfile - -rwxr-xr-x 1 root root 133224 Sep 20 2022 touch - -rwxr-xr-x 1 root root 67548 Sep 20 2022 true - -rwxr-xr-x 1 root root 9768 Mar 22 20:15 ulockmgr_server - -rwsr-xr-x 1 root root 22108 Mar 22 21:02 umount - -rwxr-xr-x 1 root root 67572 Sep 20 2022 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 133632 Sep 20 2022 vdir - -rwxr-xr-x 1 root root 42608 Mar 22 21:02 wdctl - lrwxrwxrwx 1 root root 8 Dec 19 01:33 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat - -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp - -rwxr-xr-x 1 root root 6460 Apr 9 2022 zdiff - -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep - -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep - -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce - -rwxr-xr-x 1 root root 8103 Apr 9 2022 zgrep - -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless - -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore - -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew -I: user script /srv/workspace/pbuilder/18090/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 838488 Apr 24 11:24 bash + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bunzip2 + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzcat + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4893 Nov 28 2021 bzexe + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzip2 + -rwxr-xr-x 1 root root 67112 Sep 19 2022 bzip2recover + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore + -rwxr-xr-x 1 root root 67632 Sep 21 2022 cat + -rwxr-xr-x 1 root root 67676 Sep 21 2022 chgrp + -rwxr-xr-x 1 root root 67644 Sep 21 2022 chmod + -rwxr-xr-x 1 root root 67684 Sep 21 2022 chown + -rwxr-xr-x 1 root root 133532 Sep 21 2022 cp + -rwxr-xr-x 1 root root 132868 Jan 6 03:20 dash + -rwxr-xr-x 1 root root 133220 Sep 21 2022 date + -rwxr-xr-x 1 root root 67732 Sep 21 2022 dd + -rwxr-xr-x 1 root root 68104 Sep 21 2022 df + -rwxr-xr-x 1 root root 133632 Sep 21 2022 dir + -rwxr-xr-x 1 root root 59128 Mar 23 23:02 dmesg + lrwxrwxrwx 1 root root 8 Dec 20 03:33 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Dec 20 03:33 domainname -> hostname + -rwxr-xr-x 1 root root 67560 Sep 21 2022 echo + -rwxr-xr-x 1 root root 41 Jan 25 04:43 egrep + -rwxr-xr-x 1 root root 67548 Sep 21 2022 false + -rwxr-xr-x 1 root root 41 Jan 25 04:43 fgrep + -rwxr-xr-x 1 root root 55748 Mar 23 23:02 findmnt + -rwsr-xr-x 1 root root 26208 Mar 23 22:15 fusermount + -rwxr-xr-x 1 root root 128608 Jan 25 04:43 grep + -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip + -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe + -rwxr-xr-x 1 root root 64220 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 67032 Dec 20 03:33 hostname + -rwxr-xr-x 1 root root 67720 Sep 21 2022 ln + -rwxr-xr-x 1 root root 35132 Mar 23 23:51 login + -rwxr-xr-x 1 root root 133632 Sep 21 2022 ls + -rwxr-xr-x 1 root root 136808 Mar 23 23:02 lsblk + -rwxr-xr-x 1 root root 67800 Sep 21 2022 mkdir + -rwxr-xr-x 1 root root 67764 Sep 21 2022 mknod + -rwxr-xr-x 1 root root 67596 Sep 21 2022 mktemp + -rwxr-xr-x 1 root root 38504 Mar 23 23:02 more + -rwsr-xr-x 1 root root 38496 Mar 23 23:02 mount + -rwxr-xr-x 1 root root 9824 Mar 23 23:02 mountpoint + -rwxr-xr-x 1 root root 133532 Sep 21 2022 mv + lrwxrwxrwx 1 root root 8 Dec 20 03:33 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Apr 3 20:25 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 67608 Sep 21 2022 pwd + lrwxrwxrwx 1 root root 4 Apr 24 11:24 rbash -> bash + -rwxr-xr-x 1 root root 67600 Sep 21 2022 readlink + -rwxr-xr-x 1 root root 67672 Sep 21 2022 rm + -rwxr-xr-x 1 root root 67600 Sep 21 2022 rmdir + -rwxr-xr-x 1 root root 67400 Nov 3 2022 run-parts + -rwxr-xr-x 1 root root 133372 Jan 6 09:55 sed + lrwxrwxrwx 1 root root 9 May 28 02:40 sh -> /bin/bash + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sleep + -rwxr-xr-x 1 root root 67644 Sep 21 2022 stty + -rwsr-xr-x 1 root root 50800 Mar 23 23:02 su + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sync + -rwxr-xr-x 1 root root 336764 Apr 7 04:25 tar + -rwxr-xr-x 1 root root 67144 Nov 3 2022 tempfile + -rwxr-xr-x 1 root root 133224 Sep 21 2022 touch + -rwxr-xr-x 1 root root 67548 Sep 21 2022 true + -rwxr-xr-x 1 root root 9768 Mar 23 22:15 ulockmgr_server + -rwsr-xr-x 1 root root 22108 Mar 23 23:02 umount + -rwxr-xr-x 1 root root 67572 Sep 21 2022 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 133632 Sep 21 2022 vdir + -rwxr-xr-x 1 root root 42608 Mar 23 23:02 wdctl + lrwxrwxrwx 1 root root 8 Dec 20 03:33 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat + -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp + -rwxr-xr-x 1 root root 6460 Apr 10 2022 zdiff + -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep + -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep + -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce + -rwxr-xr-x 1 root root 8103 Apr 10 2022 zgrep + -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless + -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore + -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew +I: user script /srv/workspace/pbuilder/15559/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -702,7 +734,7 @@ Get: 503 http://deb.debian.org/debian bookworm/main armhf gnuplot-nox armhf 5.4.4+dfsg1-2+b2 [776 kB] Get: 504 http://deb.debian.org/debian bookworm/main armhf dh-octave-autopkgtest all 1.2.7 [9364 B] Get: 505 http://deb.debian.org/debian bookworm/main armhf dh-octave all 1.2.7 [22.8 kB] -Fetched 170 MB in 16s (10.7 MB/s) +Fetched 170 MB in 22s (7629 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package netbase. (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 ... 19326 files and directories currently installed.) @@ -2773,8 +2805,19 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +usrmerge is already the newest version (35). +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/octave-io-2.6.4/ && 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 > ../octave-io_2.6.4-3_source.changes +I: user script /srv/workspace/pbuilder/15559/tmp/hooks/A99_set_merged_usr starting +Re-configuring usrmerge... +removed '/etc/unsupported-skip-usrmerge-conversion' +The system has been successfully converted. +I: user script /srv/workspace/pbuilder/15559/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/octave-io-2.6.4/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../octave-io_2.6.4-3_source.changes dpkg-buildpackage: info: source package octave-io dpkg-buildpackage: info: source version 2.6.4-3 dpkg-buildpackage: info: source distribution unstable @@ -2808,330 +2851,47 @@ make[1]: Entering directory '/build/octave-io-2.6.4/src' /usr/bin/mkoctfile --verbose csvexplode.cc /usr/bin/mkoctfile --verbose csv2cell.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security csvexplode.cc -o /tmp/oct-3aUXT4.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security csv2cell.cc -o /tmp/oct-YnCfwX.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security csvexplode.cc -o /tmp/oct-I8qZuk.o /usr/bin/mkoctfile --verbose csvconcat.cc +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security csv2cell.cc -o /tmp/oct-IcSlU0.o /usr/bin/mkoctfile --verbose cell2csv.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security csvconcat.cc -o /tmp/oct-4vB9o3.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security cell2csv.cc -o /tmp/oct-N0S0FE.o -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o csvexplode.oct /tmp/oct-3aUXT4.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o csvconcat.oct /tmp/oct-4vB9o3.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o cell2csv.oct /tmp/oct-N0S0FE.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o csv2cell.oct /tmp/oct-YnCfwX.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security csvconcat.cc -o /tmp/oct-iCmKex.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security cell2csv.cc -o /tmp/oct-b8CQpB.o +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o csvconcat.oct /tmp/oct-iCmKex.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o csvexplode.oct /tmp/oct-I8qZuk.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o cell2csv.oct /tmp/oct-b8CQpB.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro /usr/bin/mkoctfile --verbose col2num.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security col2num.cc -o /tmp/oct-cFnyxI.o /usr/bin/mkoctfile --verbose num2col.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security num2col.cc -o /tmp/oct-BYVIZU.o -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o num2col.oct /tmp/oct-BYVIZU.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o col2num.oct /tmp/oct-cFnyxI.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security col2num.cc -o /tmp/oct-SktdtE.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security num2col.cc -o /tmp/oct-WsQy4p.o +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o csv2cell.oct /tmp/oct-IcSlU0.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o col2num.oct /tmp/oct-SktdtE.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-io-2.6.4=. -fstack-protector-strong -Wformat -Werror=format-security -o num2col.oct /tmp/oct-WsQy4p.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro make[1]: Leaving directory '/build/octave-io-2.6.4/src' copyfile /build/octave-io-2.6.4/./src/cell2csv.oct /build/octave-io-2.6.4/./src/col2num.oct /build/octave-io-2.6.4/./src/csv2cell.oct /build/octave-io-2.6.4/./src/csvconcat.oct /build/octave-io-2.6.4/./src/csvexplode.oct /build/octave-io-2.6.4/./src/num2col.oct /build/octave-io-2.6.4/./src/cell2csv.cc-tst /build/octave-io-2.6.4/./src/col2num.cc-tst /build/octave-io-2.6.4/./src/csv2cell.cc-tst /build/octave-io-2.6.4/./src/num2col.cc-tst /build/octave-io-2.6.4/./inst/arm-unknown-linux-gnueabihf-api-v57 For information about changes from previous versions of the io package, run 'news io'. dh_octave_check -O--buildsystem=octave Checking package... Checking m files ... -[inst/read_namelist.m] ->>>>> /build/octave-io-2.6.4/inst/read_namelist.m -***** test - fn = tempname (); - fid = fopen (fn, "w"); - fprintf (fid, "&test\n"); - fprintf (fid, " z = (1.1,2.2), (0.,1.), (1.,0.)\n"); - fprintf (fid, " y = (9,8)\n"); - fprintf (fid, " a = 1. 2. 3.\n"); - fprintf (fid, [' c = "(test)"' "\n" '\\' "\n"]); - fclose (fid); - nm = read_namelist (fn); - unlink (fn); - assert (nm.test.z, [1.1+2.2i, 1i, 1], eps); - assert (nm.test.y, 9+8i, eps); - assert (nm.test.a, [1 2 3], eps); +[inst/object2json.m] +>>>>> /build/octave-io-2.6.4/inst/object2json.m ***** test - fn = tempname (); - fid = fopen (fn, "w"); - fprintf (fid, "&test\n"); - fprintf (fid, " a = 1,\n"); - fprintf (fid, " /\n"); - fclose (fid); - nm = read_namelist (fn); - unlink (fn); - assert (nm.test.a, 1, eps); + assert(object2json([logical(1), logical(0)]), '[true,false]'); +warning: object2json is deprecated and will be removed in a future io release +warning: called from + object2json at line 59 column 7 + __test__ at line 3 column 2 + test at line 683 column 11 + /tmp/tmp.lTL7fxRN0u at line 14 column 31 + ***** test - fn = tempname(); - fid = fopen (fn, "w"); - fprintf (fid, "&test\n"); - fprintf (fid, " a = '/',\n"); % inside apostrophes - fprintf (fid, " b = ""/"",\n"); % inside double quotes - fprintf (fid, " c = '""/',\n"); % with double quotes inside apostrophes - fprintf (fid, " d = ""'/"",\n"); % with apostrophes inside double quotes - fprintf (fid, "/\n"); - fclose (fid); - nm = read_namelist (fn); - unlink (fn); - assert (strcmp(nm.test.a, '/'), 1, eps); - assert (strcmp(nm.test.b, '/'), 1, eps); - assert (strcmp(nm.test.c, '"/'), 1, eps); - assert (strcmp(nm.test.d, '''/'), 1, eps); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/toJSON.m] ->>>>> /build/octave-io-2.6.4/inst/toJSON.m -***** test ## invalid args -***** warning toJSON(0,struct); -***** warning toJSON(0,:,struct); -***** test ## no args - assert(toJSON(),''); -***** test ## empty string - assert(toJSON(''),'""'); -***** test ## empty array - assert(toJSON([]),'[]'); -***** test ## zero - assert(toJSON(0),"0") -***** test ## false - assert(toJSON(false),'false') -***** test ## float - assert(toJSON(pi),'3.14159265358979') -***** test ## PREC input arg test - assert(toJSON(pi, 0),'3') - assert(toJSON(pi, 5),'3.1416') - assert(toJSON(pi, -5),'3.1416') - assert(toJSON(pi, 25),'3.141592653589793115997963') - assert(toJSON(pi, :),'3.14159265358979') - assert(toJSON(pi, []),'3.14159265358979') - assert(toJSON(pi, false),'3.14159265358979'); - assert(toJSON(pi, {}),'3.14159265358979'); -***** test ## number single - assert(toJSON(single(pi)),'3.14159274101257') -***** test ## number int8 - assert(toJSON(int8(pi)),'3') -***** test ## number int32 - assert(toJSON(int32(pi)),'3') -***** test ## number string - assert(toJSON("3"),'"3"') -***** test ## string - assert(toJSON("abcdefg"), '"abcdefg"'); -***** test ## unknown class - if usejava("jvm") - obj = javaObject ("java.math.BigDecimal", 1.0); - assert(toJSON(obj), '"[java.math.BigDecimal]"'); - endif -***** test ## apparent JSON string, do not quote - assert(toJSON('[]'),'[]'); - assert(toJSON('[1,2, 3]'),'[1,2, 3]'); - assert(toJSON('{}'),'{}'); - assert(toJSON('{"a":4}'),'{"a":4}'); - assert(toJSON('""'),'""'); -***** test ## apparent JSON string blocked, quote it - assert(toJSON('"abc def" '),'"\"abc def\" "'); -***** test ## vectors - assert(toJSON([1,2,3]),'[1,2,3]') - assert(toJSON([1;2;3]),'[1,2,3]') -***** test ## vector with PREC - assert(toJSON(pi*(1:4),3),'[3.14,6.28,9.42,12.6]') -***** test ## matrix - assert(toJSON([1,2,3;13,14,15]),'[[1,2,3],[13,14,15]]') -***** test ## boolean 2D array - assert(toJSON(![1 1;0 1]),'[[false,false],[true,false]]') -***** test ## ND array - assert(toJSON(reshape(1:8,2,2,2)),'[[[1,3],[2,4]],[[5,7],[6,8]]]') -***** test ## more N ND array - ndmat = ones(2,2,2,3); - ndmat([4,9,21]) = [4,9,21]; - json = toJSON(ndmat); - assert(json,'[[[[1,1],[1,4]],[[1,1],[1,1]]],[[[9,1],[1,1]],[[1,1],[1,1]]],[[[1,1],[1,1]],[[21,1],[1,1]]]]') -***** test ## string array - assert(toJSON(["a";"bc";"defg"]), '["a ","bc ","defg"]'); -***** test ## string array - assert(toJSON(["a";"bc";"defg"]'), '["abd"," ce"," f"," g"]'); -***** test ## cell vector - assert(toJSON({1,2,3}),'[1,2,3]') - assert(toJSON({1;2;3}),'[1,2,3]') -***** test ## mixed cell vector - assert(toJSON({1,2,3,"a"}),'[1,2,3,"a"]') -***** test ## cell array of numerical vectors - assert(toJSON({[1,2,3];[3,4,5]}),'[[1,2,3],[3,4,5]]') -***** test ## numerical ND cell array (look just like ND numerical array) - json = toJSON(num2cell(reshape(1:8,2,2,2))); - assert(json,'[[[1,3],[2,4]],[[5,7],[6,8]]]') -***** test ## numerical ND cell array, with PREC - c = num2cell(reshape(1:8,2,2,2)); c{5} = pi; - assert(toJSON(c,5),'[[[1,3],[2,4]],[[3.1416,7],[6,8]]]') -***** test ## mixed ND cell array - c = num2cell(reshape(1:8,2,2,2)); c{5} = "a"; - assert(toJSON(c),'[[[1,3],[2,4]],[["a",7],[6,8]]]') -***** test ## structure numbers - assert(toJSON(struct(), true),'{}') -***** test ## structure numbers - assert(toJSON(struct("a",3,"b",5), true),'{"a":3,"b":5}') -***** test ## structure string - s = struct("a","hello","b",4); - assert(toJSON(s, true),'{"a":"hello","b":4}') -***** test ## structure string array - s = struct("a","","b",4); s.a = {"hello","bye"}; - assert(toJSON(s, true),'{"a":["hello","bye"],"b":4}') -***** test ## structure array COMPACT=false - assert(toJSON(struct("a",{3.125;3.125}), false),'[{"a":3.125},{"a":3.125}]') -***** test ## structure array COMPACT=true - assert(toJSON(struct("a",{3.125;3.125}), true),'{"a":[3.125,3.125]}') - assert(toJSON(struct("a",{pi;pi}), 5, true),'{"a":[3.1416,3.1416]}') -***** test ## structure array 2D - s = struct("a",{1 3;2 4},"b",{11 13;12 14}); - assert(toJSON(s, true),'{"a":[[1,3],[2,4]],"b":[[11,13],[12,14]]}') -***** test ## structure array 2D COMPACT=false - s = struct("a",{1 3;2 4},"b",{11 13;12 14}); - assert(toJSON(s, false),'[[{"a":1,"b":11},{"a":3,"b":13}],[{"a":2,"b":12},{"a":4,"b":14}]]') -***** test ## mixed cell array - assert(toJSON({1,2,3,"a",struct("a",3)}, true),'[1,2,3,"a",{"a":3}]') -***** test ## complex number - assert(toJSON(i, true),'{"re":0,"im":1}'); -***** test ## complex number 1D array - assert(toJSON([i,1], true),'{"re":[0,1],"im":[1,0]}'); -***** test ## complex number COMPACT=false, - assert(toJSON([i,1], false),'[{"re":0,"im":1},{"re":1,"im":0}]'); -***** test ## test complex number 2D array - assert(toJSON([i 1;2 i*3],true),'{"re":[[0,1],[2,0]],"im":[[1,0],[0,3]]}'); -***** test ## struct with complex number - assert(toJSON(struct('a',1+i,'b',3),true), '{"a":{"re":1,"im":1},"b":3}'); -***** test ## struct ARRAY with complex number - json = toJSON(struct('a',{1;i},'b',{5;2}),true); - assert(json, '{"a":{"re":[1,0],"im":[0,1]},"b":[5,2]}'); -***** test ## struct ARRAY with complex number COMPACT=false, - json = toJSON(struct('a',{1;i},'b',{5;2}),false); - assert(json, '[{"a":1,"b":5},{"a":{"re":0,"im":1},"b":2}]'); -***** test ## struct ARRAY with complex number COMPACT=false, - json = toJSON(struct('a',{[1 2i];[3 i]},'b',{5;2}),false); - assert(json, '[{"a":[{"re":1,"im":0},{"re":0,"im":2}],"b":5},{"a":[{"re":3,"im":0},{"re":0,"im":1}],"b":2}]'); -***** test ## ND struct array - json=toJSON(struct('a',num2cell(reshape(1:8,2,2,2))),true); - assert(json, '{"a":[[[1,3],[2,4]],[[5,7],[6,8]]]}'); -***** test ## ND struct array COMPACT=false, - json=toJSON(struct('a',num2cell(reshape(1:8,2,2,2))),false); - assert(json, '[[[{"a":1},{"a":3}],[{"a":2},{"a":4}]],[[{"a":5},{"a":7}],[{"a":6},{"a":8}]]]'); -***** test ## inline function - assert(toJSON(@sin),'"@@(x) sin(x)"') - assert(toJSON(@(a,b)a+b+c),'"@@(a, b) a + b + c"') -***** test ## struct with java object - if usejava("jvm") - obj = javaObject ("java.math.BigDecimal", 1.0); - assert(toJSON(struct('a',obj)), '{"a":"[java.math.BigDecimal]"}'); - endif -***** test ## structure array DEFAULT COMPACT - s = struct("a",{3.125;3.125}); - assert(toJSON(s),'[{"a":3.125},{"a":3.125}]') -***** test %% jsondecode's a big test - var1 = struct ('para', ['A meta-markup language, used to create ' ... - 'markup languages such as DocBook.'], ... - 'GlossSeeAlso', {{'GML'; 'XML'}}); - var2 = struct ('ID', 'SGML', 'SortAs', 'SGML', ... - 'GlossTerm', 'Standard Generalized Markup Language', ... - 'Acronym', 'SGML', 'Abbrev', 'ISO 8879:1986', ... - 'GlossDef', var1, 'GlossSee', 'markup'); - data = struct ('glossary', ... - struct ('title', 'example glossary', ... - 'GlossDiv', struct ('title', 'S', ... - 'GlossList', ... - struct ('GlossEntry', var2)))); - exp = ['{' , ... - '"glossary":{', ... - '"title":"example glossary",', ... - '"GlossDiv":{', ... - '"title":"S",', ... - '"GlossList":{', ... - '"GlossEntry":{', ... - '"ID":"SGML",', ... - '"SortAs":"SGML",', ... - '"GlossTerm":"Standard Generalized Markup Language",', ... - '"Acronym":"SGML",', ... - '"Abbrev":"ISO 8879:1986",', ... - '"GlossDef":{', ... - '"para":"A meta-markup language, ', ... - 'used to create markup languages such as DocBook.",', ... - '"GlossSeeAlso":["GML","XML"]', ... - '},', ... - '"GlossSee":"markup"', ... - '}', ... - '}', ... - '}', ... - '}', ... - '}']; - assert (toJSON (data), exp); -***** test %% jsondecode's another big Test - var1 = struct ('id', {0; 1; 2}, 'name', {'Collins'; 'Hays'; 'Griffin'}); - var2 = struct ('id', {0; 1; 2}, 'name', {'Osborn'; 'Mcdowell'; 'Jewel'}); - var3 = struct ('id', {0; 1; 2}, 'name', {'Socorro'; 'Darla'; 'Leanne'}); - data = struct (... - 'x_id', {'5ee28980fc9ab3'; '5ee28980dd7250'; '5ee289802422ac'}, ... - 'index', {0; 1; 2}, ... - 'guid', {'b229d1de-f94a'; '39cee338-01fb'; '3db8d55a-663e'}, ... - 'latitude', {-17.124067; 13.205994; -35.453456}, ... - 'longitude', {-61.161831; -37.276231; 14.080287}, ... - 'friends', {var1; var2; var3}); - exp = ['[', ... - '{', ... - '"x_id":"5ee28980fc9ab3",', ... - '"index":0,', ... - '"guid":"b229d1de-f94a",', ... - '"latitude":-17.124067,', ... - '"longitude":-61.161831,', ... - '"friends":[', ... - '{', ... - '"id":0,', ... - '"name":"Collins"', ... - '},', ... - '{', ... - '"id":1,', ... - '"name":"Hays"', ... - '},', ... - '{', ... - '"id":2,', ... - '"name":"Griffin"', ... - '}', ... - ']', ... - '},', ... - '{', ... - '"x_id":"5ee28980dd7250",', ... - '"index":1,', ... - '"guid":"39cee338-01fb",', ... - '"latitude":13.205994,', ... - '"longitude":-37.276231,', ... - '"friends":[', ... - '{', ... - '"id":0,', ... - '"name":"Osborn"', ... - '},', ... - '{', ... - '"id":1,', ... - '"name":"Mcdowell"', ... - '},', ... - '{', ... - '"id":2,', ... - '"name":"Jewel"', ... - '}', ... - ']', ... - '},', ... - '{', ... - '"x_id":"5ee289802422ac",', ... - '"index":2,', ... - '"guid":"3db8d55a-663e",', ... - '"latitude":-35.453456,', ... - '"longitude":14.080287,', ... - '"friends":[', ... - '{', ... - '"id":0,', ... - '"name":"Socorro"', ... - '},', ... - '{', ... - '"id":1,', ... - '"name":"Darla"', ... - '},', ... - '{', ... - '"id":2,', ... - '"name":"Leanne"', ... - '}', ... - ']', ... - '}', ... - ']']; - assert (toJSON (data), exp); -56 tests, 56 passed, 0 known failure, 0 skipped + car.name = 'Mzd R8'; + car.speedsamples = [98, 33, 50; 56, 120, 102; 77, 82, 93]; + car.toofast = car.speedsamples >= 90; + car.leased = logical(1); + car.european = logical(0); + assert(object2json(car), '{"name":"Mzd R8","speedsamples":[[98,33,50],[56,120,102],[77,82,93]],"toofast":[[true,false,false],[false,true,true],[false,false,true]],"leased":true,"european":false}'); +2 tests, 2 passed, 0 known failure, 0 skipped [inst/fromJSON.m] >>>>> /build/octave-io-2.6.4/inst/fromJSON.m ***** test ## input validation @@ -3589,25 +3349,6 @@ assert (fromJSON(json, true), exp ); assert (fromJSON(json, false), {exp}); 152 tests, 152 passed, 0 known failure, 0 skipped -[inst/object2json.m] ->>>>> /build/octave-io-2.6.4/inst/object2json.m -***** test - assert(object2json([logical(1), logical(0)]), '[true,false]'); -warning: object2json is deprecated and will be removed in a future io release -warning: called from - object2json at line 59 column 7 - __test__ at line 3 column 2 - test at line 683 column 11 - /tmp/tmp.jHCjIIjpyO at line 38 column 31 - -***** test - car.name = 'Mzd R8'; - car.speedsamples = [98, 33, 50; 56, 120, 102; 77, 82, 93]; - car.toofast = car.speedsamples >= 90; - car.leased = logical(1); - car.european = logical(0); - assert(object2json(car), '{"name":"Mzd R8","speedsamples":[[98,33,50],[56,120,102],[77,82,93]],"toofast":[[true,false,false],[false,true,true],[false,false,true]],"leased":true,"european":false}'); -2 tests, 2 passed, 0 known failure, 0 skipped [inst/calccelladdress.m] >>>>> /build/octave-io-2.6.4/inst/calccelladdress.m ***** test @@ -3638,7 +3379,339 @@ a = calccelladdress (378, 676); assert (a, "YZ378"); 9 tests, 9 passed, 0 known failure, 0 skipped +[inst/toJSON.m] +>>>>> /build/octave-io-2.6.4/inst/toJSON.m +***** test ## invalid args +***** warning toJSON(0,struct); +***** warning toJSON(0,:,struct); +***** test ## no args + assert(toJSON(),''); +***** test ## empty string + assert(toJSON(''),'""'); +***** test ## empty array + assert(toJSON([]),'[]'); +***** test ## zero + assert(toJSON(0),"0") +***** test ## false + assert(toJSON(false),'false') +***** test ## float + assert(toJSON(pi),'3.14159265358979') +***** test ## PREC input arg test + assert(toJSON(pi, 0),'3') + assert(toJSON(pi, 5),'3.1416') + assert(toJSON(pi, -5),'3.1416') + assert(toJSON(pi, 25),'3.141592653589793115997963') + assert(toJSON(pi, :),'3.14159265358979') + assert(toJSON(pi, []),'3.14159265358979') + assert(toJSON(pi, false),'3.14159265358979'); + assert(toJSON(pi, {}),'3.14159265358979'); +***** test ## number single + assert(toJSON(single(pi)),'3.14159274101257') +***** test ## number int8 + assert(toJSON(int8(pi)),'3') +***** test ## number int32 + assert(toJSON(int32(pi)),'3') +***** test ## number string + assert(toJSON("3"),'"3"') +***** test ## string + assert(toJSON("abcdefg"), '"abcdefg"'); +***** test ## unknown class + if usejava("jvm") + obj = javaObject ("java.math.BigDecimal", 1.0); + assert(toJSON(obj), '"[java.math.BigDecimal]"'); + endif +***** test ## apparent JSON string, do not quote + assert(toJSON('[]'),'[]'); + assert(toJSON('[1,2, 3]'),'[1,2, 3]'); + assert(toJSON('{}'),'{}'); + assert(toJSON('{"a":4}'),'{"a":4}'); + assert(toJSON('""'),'""'); +***** test ## apparent JSON string blocked, quote it + assert(toJSON('"abc def" '),'"\"abc def\" "'); +***** test ## vectors + assert(toJSON([1,2,3]),'[1,2,3]') + assert(toJSON([1;2;3]),'[1,2,3]') +***** test ## vector with PREC + assert(toJSON(pi*(1:4),3),'[3.14,6.28,9.42,12.6]') +***** test ## matrix + assert(toJSON([1,2,3;13,14,15]),'[[1,2,3],[13,14,15]]') +***** test ## boolean 2D array + assert(toJSON(![1 1;0 1]),'[[false,false],[true,false]]') +***** test ## ND array + assert(toJSON(reshape(1:8,2,2,2)),'[[[1,3],[2,4]],[[5,7],[6,8]]]') +***** test ## more N ND array + ndmat = ones(2,2,2,3); + ndmat([4,9,21]) = [4,9,21]; + json = toJSON(ndmat); + assert(json,'[[[[1,1],[1,4]],[[1,1],[1,1]]],[[[9,1],[1,1]],[[1,1],[1,1]]],[[[1,1],[1,1]],[[21,1],[1,1]]]]') +***** test ## string array + assert(toJSON(["a";"bc";"defg"]), '["a ","bc ","defg"]'); +***** test ## string array + assert(toJSON(["a";"bc";"defg"]'), '["abd"," ce"," f"," g"]'); +***** test ## cell vector + assert(toJSON({1,2,3}),'[1,2,3]') + assert(toJSON({1;2;3}),'[1,2,3]') +***** test ## mixed cell vector + assert(toJSON({1,2,3,"a"}),'[1,2,3,"a"]') +***** test ## cell array of numerical vectors + assert(toJSON({[1,2,3];[3,4,5]}),'[[1,2,3],[3,4,5]]') +***** test ## numerical ND cell array (look just like ND numerical array) + json = toJSON(num2cell(reshape(1:8,2,2,2))); + assert(json,'[[[1,3],[2,4]],[[5,7],[6,8]]]') +***** test ## numerical ND cell array, with PREC + c = num2cell(reshape(1:8,2,2,2)); c{5} = pi; + assert(toJSON(c,5),'[[[1,3],[2,4]],[[3.1416,7],[6,8]]]') +***** test ## mixed ND cell array + c = num2cell(reshape(1:8,2,2,2)); c{5} = "a"; + assert(toJSON(c),'[[[1,3],[2,4]],[["a",7],[6,8]]]') +***** test ## structure numbers + assert(toJSON(struct(), true),'{}') +***** test ## structure numbers + assert(toJSON(struct("a",3,"b",5), true),'{"a":3,"b":5}') +***** test ## structure string + s = struct("a","hello","b",4); + assert(toJSON(s, true),'{"a":"hello","b":4}') +***** test ## structure string array + s = struct("a","","b",4); s.a = {"hello","bye"}; + assert(toJSON(s, true),'{"a":["hello","bye"],"b":4}') +***** test ## structure array COMPACT=false + assert(toJSON(struct("a",{3.125;3.125}), false),'[{"a":3.125},{"a":3.125}]') +***** test ## structure array COMPACT=true + assert(toJSON(struct("a",{3.125;3.125}), true),'{"a":[3.125,3.125]}') + assert(toJSON(struct("a",{pi;pi}), 5, true),'{"a":[3.1416,3.1416]}') +***** test ## structure array 2D + s = struct("a",{1 3;2 4},"b",{11 13;12 14}); + assert(toJSON(s, true),'{"a":[[1,3],[2,4]],"b":[[11,13],[12,14]]}') +***** test ## structure array 2D COMPACT=false + s = struct("a",{1 3;2 4},"b",{11 13;12 14}); + assert(toJSON(s, false),'[[{"a":1,"b":11},{"a":3,"b":13}],[{"a":2,"b":12},{"a":4,"b":14}]]') +***** test ## mixed cell array + assert(toJSON({1,2,3,"a",struct("a",3)}, true),'[1,2,3,"a",{"a":3}]') +***** test ## complex number + assert(toJSON(i, true),'{"re":0,"im":1}'); +***** test ## complex number 1D array + assert(toJSON([i,1], true),'{"re":[0,1],"im":[1,0]}'); +***** test ## complex number COMPACT=false, + assert(toJSON([i,1], false),'[{"re":0,"im":1},{"re":1,"im":0}]'); +***** test ## test complex number 2D array + assert(toJSON([i 1;2 i*3],true),'{"re":[[0,1],[2,0]],"im":[[1,0],[0,3]]}'); +***** test ## struct with complex number + assert(toJSON(struct('a',1+i,'b',3),true), '{"a":{"re":1,"im":1},"b":3}'); +***** test ## struct ARRAY with complex number + json = toJSON(struct('a',{1;i},'b',{5;2}),true); + assert(json, '{"a":{"re":[1,0],"im":[0,1]},"b":[5,2]}'); +***** test ## struct ARRAY with complex number COMPACT=false, + json = toJSON(struct('a',{1;i},'b',{5;2}),false); + assert(json, '[{"a":1,"b":5},{"a":{"re":0,"im":1},"b":2}]'); +***** test ## struct ARRAY with complex number COMPACT=false, + json = toJSON(struct('a',{[1 2i];[3 i]},'b',{5;2}),false); + assert(json, '[{"a":[{"re":1,"im":0},{"re":0,"im":2}],"b":5},{"a":[{"re":3,"im":0},{"re":0,"im":1}],"b":2}]'); +***** test ## ND struct array + json=toJSON(struct('a',num2cell(reshape(1:8,2,2,2))),true); + assert(json, '{"a":[[[1,3],[2,4]],[[5,7],[6,8]]]}'); +***** test ## ND struct array COMPACT=false, + json=toJSON(struct('a',num2cell(reshape(1:8,2,2,2))),false); + assert(json, '[[[{"a":1},{"a":3}],[{"a":2},{"a":4}]],[[{"a":5},{"a":7}],[{"a":6},{"a":8}]]]'); +***** test ## inline function + assert(toJSON(@sin),'"@@(x) sin(x)"') + assert(toJSON(@(a,b)a+b+c),'"@@(a, b) a + b + c"') +***** test ## struct with java object + if usejava("jvm") + obj = javaObject ("java.math.BigDecimal", 1.0); + assert(toJSON(struct('a',obj)), '{"a":"[java.math.BigDecimal]"}'); + endif +***** test ## structure array DEFAULT COMPACT + s = struct("a",{3.125;3.125}); + assert(toJSON(s),'[{"a":3.125},{"a":3.125}]') +***** test %% jsondecode's a big test + var1 = struct ('para', ['A meta-markup language, used to create ' ... + 'markup languages such as DocBook.'], ... + 'GlossSeeAlso', {{'GML'; 'XML'}}); + var2 = struct ('ID', 'SGML', 'SortAs', 'SGML', ... + 'GlossTerm', 'Standard Generalized Markup Language', ... + 'Acronym', 'SGML', 'Abbrev', 'ISO 8879:1986', ... + 'GlossDef', var1, 'GlossSee', 'markup'); + data = struct ('glossary', ... + struct ('title', 'example glossary', ... + 'GlossDiv', struct ('title', 'S', ... + 'GlossList', ... + struct ('GlossEntry', var2)))); + exp = ['{' , ... + '"glossary":{', ... + '"title":"example glossary",', ... + '"GlossDiv":{', ... + '"title":"S",', ... + '"GlossList":{', ... + '"GlossEntry":{', ... + '"ID":"SGML",', ... + '"SortAs":"SGML",', ... + '"GlossTerm":"Standard Generalized Markup Language",', ... + '"Acronym":"SGML",', ... + '"Abbrev":"ISO 8879:1986",', ... + '"GlossDef":{', ... + '"para":"A meta-markup language, ', ... + 'used to create markup languages such as DocBook.",', ... + '"GlossSeeAlso":["GML","XML"]', ... + '},', ... + '"GlossSee":"markup"', ... + '}', ... + '}', ... + '}', ... + '}', ... + '}']; + assert (toJSON (data), exp); +***** test %% jsondecode's another big Test + var1 = struct ('id', {0; 1; 2}, 'name', {'Collins'; 'Hays'; 'Griffin'}); + var2 = struct ('id', {0; 1; 2}, 'name', {'Osborn'; 'Mcdowell'; 'Jewel'}); + var3 = struct ('id', {0; 1; 2}, 'name', {'Socorro'; 'Darla'; 'Leanne'}); + data = struct (... + 'x_id', {'5ee28980fc9ab3'; '5ee28980dd7250'; '5ee289802422ac'}, ... + 'index', {0; 1; 2}, ... + 'guid', {'b229d1de-f94a'; '39cee338-01fb'; '3db8d55a-663e'}, ... + 'latitude', {-17.124067; 13.205994; -35.453456}, ... + 'longitude', {-61.161831; -37.276231; 14.080287}, ... + 'friends', {var1; var2; var3}); + exp = ['[', ... + '{', ... + '"x_id":"5ee28980fc9ab3",', ... + '"index":0,', ... + '"guid":"b229d1de-f94a",', ... + '"latitude":-17.124067,', ... + '"longitude":-61.161831,', ... + '"friends":[', ... + '{', ... + '"id":0,', ... + '"name":"Collins"', ... + '},', ... + '{', ... + '"id":1,', ... + '"name":"Hays"', ... + '},', ... + '{', ... + '"id":2,', ... + '"name":"Griffin"', ... + '}', ... + ']', ... + '},', ... + '{', ... + '"x_id":"5ee28980dd7250",', ... + '"index":1,', ... + '"guid":"39cee338-01fb",', ... + '"latitude":13.205994,', ... + '"longitude":-37.276231,', ... + '"friends":[', ... + '{', ... + '"id":0,', ... + '"name":"Osborn"', ... + '},', ... + '{', ... + '"id":1,', ... + '"name":"Mcdowell"', ... + '},', ... + '{', ... + '"id":2,', ... + '"name":"Jewel"', ... + '}', ... + ']', ... + '},', ... + '{', ... + '"x_id":"5ee289802422ac",', ... + '"index":2,', ... + '"guid":"3db8d55a-663e",', ... + '"latitude":-35.453456,', ... + '"longitude":14.080287,', ... + '"friends":[', ... + '{', ... + '"id":0,', ... + '"name":"Socorro"', ... + '},', ... + '{', ... + '"id":1,', ... + '"name":"Darla"', ... + '},', ... + '{', ... + '"id":2,', ... + '"name":"Leanne"', ... + '}', ... + ']', ... + '}', ... + ']']; + assert (toJSON (data), exp); +56 tests, 56 passed, 0 known failure, 0 skipped +[inst/read_namelist.m] +>>>>> /build/octave-io-2.6.4/inst/read_namelist.m +***** test + fn = tempname (); + fid = fopen (fn, "w"); + fprintf (fid, "&test\n"); + fprintf (fid, " z = (1.1,2.2), (0.,1.), (1.,0.)\n"); + fprintf (fid, " y = (9,8)\n"); + fprintf (fid, " a = 1. 2. 3.\n"); + fprintf (fid, [' c = "(test)"' "\n" '\\' "\n"]); + fclose (fid); + nm = read_namelist (fn); + unlink (fn); + assert (nm.test.z, [1.1+2.2i, 1i, 1], eps); + assert (nm.test.y, 9+8i, eps); + assert (nm.test.a, [1 2 3], eps); +***** test + fn = tempname (); + fid = fopen (fn, "w"); + fprintf (fid, "&test\n"); + fprintf (fid, " a = 1,\n"); + fprintf (fid, " /\n"); + fclose (fid); + nm = read_namelist (fn); + unlink (fn); + assert (nm.test.a, 1, eps); +***** test + fn = tempname(); + fid = fopen (fn, "w"); + fprintf (fid, "&test\n"); + fprintf (fid, " a = '/',\n"); % inside apostrophes + fprintf (fid, " b = ""/"",\n"); % inside double quotes + fprintf (fid, " c = '""/',\n"); % with double quotes inside apostrophes + fprintf (fid, " d = ""'/"",\n"); % with apostrophes inside double quotes + fprintf (fid, "/\n"); + fclose (fid); + nm = read_namelist (fn); + unlink (fn); + assert (strcmp(nm.test.a, '/'), 1, eps); + assert (strcmp(nm.test.b, '/'), 1, eps); + assert (strcmp(nm.test.c, '"/'), 1, eps); + assert (strcmp(nm.test.d, '''/'), 1, eps); +3 tests, 3 passed, 0 known failure, 0 skipped Checking C++ files ... +[src/cell2csv.cc] +>>>>> /build/octave-io-2.6.4/src/cell2csv.cc +***** test + arr = arr1 = num2cell (randn (3, 3)); + for ii=1:size (arr, 1) + arr1(ii, ii) = sprintf ("\"Val = %f\"", arr{ii, ii}); + endfor + f = tempname(); + cell2csv (f, arr1); + arr2 = csv2cell (f); + unlink (f); + idx = find (cellfun ("ischar", arr2)); + arr2(idx) = cellfun (@(x) str2double(strrep(x, "Val = ", "")), arr2(idx), "Uni", false); + assert (arr, arr2, 1e-5); +***** test + arr = arr1 = num2cell (randn (3, 3)); + for ii=1:size (arr, 1) + arr1(ii, ii) = sprintf ("Val = %f", arr{ii, ii}); + endfor + arr1(2, 2) = [arr1{2, 2} ";"]; + f = tempname(); + cell2csv (f, arr1, ";", "&"); + arr2 = csv2cell (f, ";", "&"); + unlink (f); + assert (arr2{2, 2}(end), ";"); + arr2(2, 2) = strrep (arr2{2, 2}, ";", ""); + idx = find (cellfun ("ischar", arr2)); + arr2(idx) = cellfun (@(x) str2double(strrep(x, "Val = ", "")), arr2(idx), "Uni", false); + assert (arr, arr2, 1e-5); +2 tests, 2 passed, 0 known failure, 0 skipped [src/col2num.cc] >>>>> /build/octave-io-2.6.4/src/col2num.cc ***** test @@ -3797,36 +3870,6 @@ ***** error csv2cell ("f.csv", ",,"); ***** error csv2cell ("f.csv", ",", "[]"); 18 tests, 18 passed, 0 known failure, 0 skipped -[src/cell2csv.cc] ->>>>> /build/octave-io-2.6.4/src/cell2csv.cc -***** test - arr = arr1 = num2cell (randn (3, 3)); - for ii=1:size (arr, 1) - arr1(ii, ii) = sprintf ("\"Val = %f\"", arr{ii, ii}); - endfor - f = tempname(); - cell2csv (f, arr1); - arr2 = csv2cell (f); - unlink (f); - idx = find (cellfun ("ischar", arr2)); - arr2(idx) = cellfun (@(x) str2double(strrep(x, "Val = ", "")), arr2(idx), "Uni", false); - assert (arr, arr2, 1e-5); -***** test - arr = arr1 = num2cell (randn (3, 3)); - for ii=1:size (arr, 1) - arr1(ii, ii) = sprintf ("Val = %f", arr{ii, ii}); - endfor - arr1(2, 2) = [arr1{2, 2} ";"]; - f = tempname(); - cell2csv (f, arr1, ";", "&"); - arr2 = csv2cell (f, ";", "&"); - unlink (f); - assert (arr2{2, 2}(end), ";"); - arr2(2, 2) = strrep (arr2{2, 2}, ";", ""); - idx = find (cellfun ("ischar", arr2)); - arr2(idx) = cellfun (@(x) str2double(strrep(x, "Val = ", "")), arr2(idx), "Uni", false); - assert (arr, arr2, 1e-5); -2 tests, 2 passed, 0 known failure, 0 skipped [src/num2col.cc] >>>>> /build/octave-io-2.6.4/src/num2col.cc ***** test @@ -3856,8 +3899,8 @@ dpkg-gencontrol: warning: package octave-io: substitution variable ${octave:Upstream-Description} unused, but is defined dh_md5sums -O--buildsystem=octave dh_builddeb -O--buildsystem=octave -dpkg-deb: building package 'octave-io-dbgsym' in '../octave-io-dbgsym_2.6.4-3_armhf.deb'. dpkg-deb: building package 'octave-io' in '../octave-io_2.6.4-3_armhf.deb'. +dpkg-deb: building package 'octave-io-dbgsym' in '../octave-io-dbgsym_2.6.4-3_armhf.deb'. dpkg-genbuildinfo --build=binary -O../octave-io_2.6.4-3_armhf.buildinfo dpkg-genchanges --build=binary -O../octave-io_2.6.4-3_armhf.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -3865,12 +3908,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/15559/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/15559/tmp/hooks/B01_cleanup finished 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/18090 and its subdirectories -I: Current time: Sat May 27 00:39:02 -12 2023 -I: pbuilder-time-stamp: 1685191142 +I: removing directory /srv/workspace/pbuilder/15559 and its subdirectories +I: Current time: Sun May 28 02:59:43 +14 2023 +I: pbuilder-time-stamp: 1685192383