0s autopkgtest [17:57:44]: starting date and time: 2025-03-15 17:57:44+0000
1s autopkgtest [17:57:45]: git checkout: 325255d2 Merge branch 'pin-any-arch' into 'ubuntu/production'
1s autopkgtest [17:57:45]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.vawu3hg_/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:glibc --apt-upgrade r-cran-diffobj --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=glibc/2.41-1ubuntu2 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@bos03-s390x-15.secgroup --name adt-plucky-s390x-r-cran-diffobj-20250315-175744-juju-7f2275-prod-proposed-migration-environment-20-700ff6a4-033a-4278-a938-be8a809d3bd5 --image adt/ubuntu-plucky-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-proposed-migration-s390x -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/
131s autopkgtest [17:59:55]: testbed dpkg architecture: s390x
131s autopkgtest [17:59:55]: testbed apt version: 2.9.33
131s autopkgtest [17:59:55]: @@@@@@@@@@@@@@@@@@@@ test bed setup
131s autopkgtest [17:59:55]: testbed release detected to be: None
132s autopkgtest [17:59:56]: updating testbed package index (apt update)
132s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [126 kB]
132s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease
133s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease
133s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease
133s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [379 kB]
133s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [99.7 kB]
133s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.8 kB]
133s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x Packages [113 kB]
133s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x c-n-f Metadata [1824 B]
133s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/restricted s390x c-n-f Metadata [116 B]
133s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x Packages [320 kB]
133s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x c-n-f Metadata [13.4 kB]
133s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse s390x Packages [3776 B]
133s Get:14 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse s390x c-n-f Metadata [240 B]
134s Fetched 1073 kB in 1s (805 kB/s)
134s Reading package lists...
135s Reading package lists...
135s Building dependency tree...
135s Reading state information...
135s Calculating upgrade...
135s Calculating upgrade...
135s The following packages were automatically installed and are no longer required:
135s libnsl2 libpython3.12-minimal libpython3.12-stdlib libpython3.12t64
135s linux-headers-6.11.0-8 linux-headers-6.11.0-8-generic
135s linux-modules-6.11.0-8-generic linux-tools-6.11.0-8
135s linux-tools-6.11.0-8-generic
135s Use 'sudo apt autoremove' to remove them.
135s The following packages will be upgraded:
135s pinentry-curses python3-jinja2 strace
135s 3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
135s Need to get 652 kB of archives.
135s After this operation, 27.6 kB of additional disk space will be used.
135s Get:1 http://ftpmaster.internal/ubuntu plucky/main s390x strace s390x 6.13+ds-1ubuntu1 [500 kB]
136s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x pinentry-curses s390x 1.3.1-2ubuntu3 [42.9 kB]
136s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x python3-jinja2 all 3.1.5-2ubuntu1 [109 kB]
136s Fetched 652 kB in 1s (730 kB/s)
137s (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 ... 81428 files and directories currently installed.)
137s Preparing to unpack .../strace_6.13+ds-1ubuntu1_s390x.deb ...
137s Unpacking strace (6.13+ds-1ubuntu1) over (6.11-0ubuntu1) ...
137s Preparing to unpack .../pinentry-curses_1.3.1-2ubuntu3_s390x.deb ...
137s Unpacking pinentry-curses (1.3.1-2ubuntu3) over (1.3.1-2ubuntu2) ...
137s Preparing to unpack .../python3-jinja2_3.1.5-2ubuntu1_all.deb ...
137s Unpacking python3-jinja2 (3.1.5-2ubuntu1) over (3.1.5-2) ...
137s Setting up pinentry-curses (1.3.1-2ubuntu3) ...
137s Setting up python3-jinja2 (3.1.5-2ubuntu1) ...
137s Setting up strace (6.13+ds-1ubuntu1) ...
137s Processing triggers for man-db (2.13.0-1) ...
137s Reading package lists...
137s Building dependency tree...
137s Reading state information...
138s Solving dependencies...
138s The following packages will be REMOVED:
138s libnsl2* libpython3.12-minimal* libpython3.12-stdlib* libpython3.12t64*
138s linux-headers-6.11.0-8* linux-headers-6.11.0-8-generic*
138s linux-modules-6.11.0-8-generic* linux-tools-6.11.0-8*
138s linux-tools-6.11.0-8-generic*
138s 0 upgraded, 0 newly installed, 9 to remove and 5 not upgraded.
138s After this operation, 167 MB disk space will be freed.
138s (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 ... 81428 files and directories currently installed.)
138s Removing linux-tools-6.11.0-8-generic (6.11.0-8.8) ...
138s Removing linux-tools-6.11.0-8 (6.11.0-8.8) ...
138s Removing libpython3.12t64:s390x (3.12.9-1) ...
138s Removing libpython3.12-stdlib:s390x (3.12.9-1) ...
138s Removing libnsl2:s390x (1.3.0-3build3) ...
138s Removing libpython3.12-minimal:s390x (3.12.9-1) ...
138s Removing linux-headers-6.11.0-8-generic (6.11.0-8.8) ...
138s Removing linux-headers-6.11.0-8 (6.11.0-8.8) ...
139s Removing linux-modules-6.11.0-8-generic (6.11.0-8.8) ...
139s Processing triggers for libc-bin (2.41-1ubuntu1) ...
139s (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 ... 56328 files and directories currently installed.)
139s Purging configuration files for libpython3.12-minimal:s390x (3.12.9-1) ...
139s Purging configuration files for linux-modules-6.11.0-8-generic (6.11.0-8.8) ...
139s autopkgtest [18:00:03]: upgrading testbed (apt dist-upgrade and autopurge)
140s Reading package lists...
140s Building dependency tree...
140s Reading state information...
140s Calculating upgrade...Starting pkgProblemResolver with broken count: 0
140s Starting 2 pkgProblemResolver with broken count: 0
140s Done
140s Entering ResolveByKeep
140s
140s Calculating upgrade...
140s The following packages will be upgraded:
140s libc-bin libc-dev-bin libc6 libc6-dev locales
141s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
141s Need to get 9512 kB of archives.
141s After this operation, 8192 B of additional disk space will be used.
141s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc6-dev s390x 2.41-1ubuntu2 [1678 kB]
142s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc-dev-bin s390x 2.41-1ubuntu2 [24.3 kB]
142s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc6 s390x 2.41-1ubuntu2 [2892 kB]
145s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc-bin s390x 2.41-1ubuntu2 [671 kB]
146s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x locales all 2.41-1ubuntu2 [4246 kB]
150s Preconfiguring packages ...
150s Fetched 9512 kB in 9s (1004 kB/s)
150s (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 ... 56326 files and directories currently installed.)
150s Preparing to unpack .../libc6-dev_2.41-1ubuntu2_s390x.deb ...
150s Unpacking libc6-dev:s390x (2.41-1ubuntu2) over (2.41-1ubuntu1) ...
150s Preparing to unpack .../libc-dev-bin_2.41-1ubuntu2_s390x.deb ...
150s Unpacking libc-dev-bin (2.41-1ubuntu2) over (2.41-1ubuntu1) ...
150s Preparing to unpack .../libc6_2.41-1ubuntu2_s390x.deb ...
150s Unpacking libc6:s390x (2.41-1ubuntu2) over (2.41-1ubuntu1) ...
151s Setting up libc6:s390x (2.41-1ubuntu2) ...
151s (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 ... 56326 files and directories currently installed.)
151s Preparing to unpack .../libc-bin_2.41-1ubuntu2_s390x.deb ...
151s Unpacking libc-bin (2.41-1ubuntu2) over (2.41-1ubuntu1) ...
151s Setting up libc-bin (2.41-1ubuntu2) ...
151s (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 ... 56326 files and directories currently installed.)
151s Preparing to unpack .../locales_2.41-1ubuntu2_all.deb ...
151s Unpacking locales (2.41-1ubuntu2) over (2.41-1ubuntu1) ...
151s Setting up locales (2.41-1ubuntu2) ...
151s Generating locales (this might take a while)...
152s en_US.UTF-8... done
152s Generation complete.
152s Setting up libc-dev-bin (2.41-1ubuntu2) ...
152s Setting up libc6-dev:s390x (2.41-1ubuntu2) ...
152s Processing triggers for man-db (2.13.0-1) ...
153s Processing triggers for systemd (257.3-1ubuntu3) ...
154s Reading package lists...
154s Building dependency tree...
154s Reading state information...
154s Starting pkgProblemResolver with broken count: 0
154s Starting 2 pkgProblemResolver with broken count: 0
154s Done
154s Solving dependencies...
154s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
155s autopkgtest [18:00:19]: rebooting testbed after setup commands that affected boot
174s autopkgtest [18:00:38]: testbed running kernel: Linux 6.14.0-10-generic #10-Ubuntu SMP Wed Mar 12 14:53:49 UTC 2025
176s autopkgtest [18:00:40]: @@@@@@@@@@@@@@@@@@@@ apt-source r-cran-diffobj
178s Get:1 http://ftpmaster.internal/ubuntu plucky/universe r-cran-diffobj 0.3.5-1 (dsc) [2117 B]
178s Get:2 http://ftpmaster.internal/ubuntu plucky/universe r-cran-diffobj 0.3.5-1 (tar) [479 kB]
178s Get:3 http://ftpmaster.internal/ubuntu plucky/universe r-cran-diffobj 0.3.5-1 (diff) [3480 B]
178s gpgv: Signature made Tue Oct 12 17:58:35 2021 UTC
178s gpgv: using RSA key F1F007320A035541F0A663CA578A0494D1C646D1
178s gpgv: issuer "tille@debian.org"
178s gpgv: Can't check signature: No public key
178s dpkg-source: warning: cannot verify inline signature for ./r-cran-diffobj_0.3.5-1.dsc: no acceptable signature found
178s autopkgtest [18:00:42]: testing package r-cran-diffobj version 0.3.5-1
179s autopkgtest [18:00:43]: build not needed
181s autopkgtest [18:00:45]: test run-unit-test: preparing testbed
181s Reading package lists...
181s Building dependency tree...
181s Reading state information...
181s Starting pkgProblemResolver with broken count: 0
181s Starting 2 pkgProblemResolver with broken count: 0
181s Done
182s The following NEW packages will be installed:
182s fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono libblas3
182s libcairo2 libdatrie1 libdeflate0 libfontconfig1 libfreetype6 libgfortran5
182s libgomp1 libgraphite2-3 libharfbuzz0b libice6 libjbig0 libjpeg-turbo8
182s libjpeg8 liblapack3 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0
182s libpaper-utils libpaper2 libpixman-1-0 libsharpyuv0 libsm6 libtcl8.6
182s libthai-data libthai0 libtiff6 libtk8.6 libwebp7 libxcb-render0 libxcb-shm0
182s libxft2 libxrender1 libxss1 libxt6t64 r-base-core r-cran-brio r-cran-callr
182s r-cran-cli r-cran-crayon r-cran-desc r-cran-diffobj r-cran-digest
182s r-cran-evaluate r-cran-fs r-cran-glue r-cran-jsonlite r-cran-lifecycle
182s r-cran-magrittr r-cran-pkgbuild r-cran-pkgload r-cran-praise r-cran-processx
182s r-cran-ps r-cran-r6 r-cran-rlang r-cran-rprojroot r-cran-testthat
182s r-cran-waldo r-cran-withr unzip x11-common xdg-utils zip
182s 0 upgraded, 68 newly installed, 0 to remove and 0 not upgraded.
182s Need to get 50.2 MB of archives.
182s After this operation, 98.0 MB of additional disk space will be used.
182s Get:1 http://ftpmaster.internal/ubuntu plucky/main s390x libfreetype6 s390x 2.13.3+dfsg-1 [431 kB]
182s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-dejavu-mono all 2.37-8 [502 kB]
183s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-dejavu-core all 2.37-8 [835 kB]
183s Get:4 http://ftpmaster.internal/ubuntu plucky/main s390x fontconfig-config s390x 2.15.0-2ubuntu1 [37.5 kB]
183s Get:5 http://ftpmaster.internal/ubuntu plucky/main s390x libfontconfig1 s390x 2.15.0-2ubuntu1 [150 kB]
183s Get:6 http://ftpmaster.internal/ubuntu plucky/main s390x fontconfig s390x 2.15.0-2ubuntu1 [191 kB]
183s Get:7 http://ftpmaster.internal/ubuntu plucky/main s390x libblas3 s390x 3.12.1-2 [252 kB]
184s Get:8 http://ftpmaster.internal/ubuntu plucky/main s390x libpixman-1-0 s390x 0.44.0-3 [201 kB]
184s Get:9 http://ftpmaster.internal/ubuntu plucky/main s390x libxcb-render0 s390x 1.17.0-2 [17.0 kB]
184s Get:10 http://ftpmaster.internal/ubuntu plucky/main s390x libxcb-shm0 s390x 1.17.0-2 [5862 B]
184s Get:11 http://ftpmaster.internal/ubuntu plucky/main s390x libxrender1 s390x 1:0.9.10-1.1build1 [20.4 kB]
184s Get:12 http://ftpmaster.internal/ubuntu plucky/main s390x libcairo2 s390x 1.18.2-2 [580 kB]
184s Get:13 http://ftpmaster.internal/ubuntu plucky/main s390x libdatrie1 s390x 0.2.13-3build1 [20.6 kB]
184s Get:14 http://ftpmaster.internal/ubuntu plucky/main s390x libdeflate0 s390x 1.23-1 [46.1 kB]
184s Get:15 http://ftpmaster.internal/ubuntu plucky/main s390x libgfortran5 s390x 15-20250222-0ubuntu1 [620 kB]
185s Get:16 http://ftpmaster.internal/ubuntu plucky/main s390x libgomp1 s390x 15-20250222-0ubuntu1 [152 kB]
185s Get:17 http://ftpmaster.internal/ubuntu plucky/main s390x libgraphite2-3 s390x 1.3.14-2ubuntu1 [79.8 kB]
185s Get:18 http://ftpmaster.internal/ubuntu plucky/main s390x libharfbuzz0b s390x 10.2.0-1 [538 kB]
185s Get:19 http://ftpmaster.internal/ubuntu plucky/main s390x x11-common all 1:7.7+23ubuntu3 [21.7 kB]
185s Get:20 http://ftpmaster.internal/ubuntu plucky/main s390x libice6 s390x 2:1.1.1-1 [45.4 kB]
185s Get:21 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg-turbo8 s390x 2.1.5-3ubuntu2 [147 kB]
186s Get:22 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg8 s390x 8c-2ubuntu11 [2146 B]
186s Get:23 http://ftpmaster.internal/ubuntu plucky/main s390x liblapack3 s390x 3.12.1-2 [2971 kB]
188s Get:24 http://ftpmaster.internal/ubuntu plucky/main s390x libthai-data all 0.1.29-2build1 [158 kB]
188s Get:25 http://ftpmaster.internal/ubuntu plucky/main s390x libthai0 s390x 0.1.29-2build1 [20.7 kB]
188s Get:26 http://ftpmaster.internal/ubuntu plucky/main s390x libpango-1.0-0 s390x 1.56.2-1 [253 kB]
188s Get:27 http://ftpmaster.internal/ubuntu plucky/main s390x libpangoft2-1.0-0 s390x 1.56.2-1 [50.2 kB]
188s Get:28 http://ftpmaster.internal/ubuntu plucky/main s390x libpangocairo-1.0-0 s390x 1.56.2-1 [28.2 kB]
188s Get:29 http://ftpmaster.internal/ubuntu plucky/main s390x libpaper2 s390x 2.2.5-0.3 [17.2 kB]
188s Get:30 http://ftpmaster.internal/ubuntu plucky/main s390x libpaper-utils s390x 2.2.5-0.3 [15.3 kB]
188s Get:31 http://ftpmaster.internal/ubuntu plucky/main s390x libsharpyuv0 s390x 1.5.0-0.1 [16.7 kB]
188s Get:32 http://ftpmaster.internal/ubuntu plucky/main s390x libsm6 s390x 2:1.2.4-1 [18.4 kB]
188s Get:33 http://ftpmaster.internal/ubuntu plucky/main s390x libtcl8.6 s390x 8.6.16+dfsg-1 [1034 kB]
189s Get:34 http://ftpmaster.internal/ubuntu plucky/main s390x libjbig0 s390x 2.1-6.1ubuntu2 [33.1 kB]
189s Get:35 http://ftpmaster.internal/ubuntu plucky/main s390x libwebp7 s390x 1.5.0-0.1 [210 kB]
189s Get:36 http://ftpmaster.internal/ubuntu plucky/main s390x libtiff6 s390x 4.5.1+git230720-4ubuntu4 [217 kB]
189s Get:37 http://ftpmaster.internal/ubuntu plucky/main s390x libxft2 s390x 2.3.6-1build1 [49.6 kB]
189s Get:38 http://ftpmaster.internal/ubuntu plucky/main s390x libxss1 s390x 1:1.2.3-1build3 [7396 B]
189s Get:39 http://ftpmaster.internal/ubuntu plucky/main s390x libtk8.6 s390x 8.6.16-1 [830 kB]
190s Get:40 http://ftpmaster.internal/ubuntu plucky/main s390x libxt6t64 s390x 1:1.2.1-1.2build1 [184 kB]
190s Get:41 http://ftpmaster.internal/ubuntu plucky/main s390x zip s390x 3.0-14ubuntu2 [187 kB]
190s Get:42 http://ftpmaster.internal/ubuntu plucky/main s390x unzip s390x 6.0-28ubuntu6 [186 kB]
190s Get:43 http://ftpmaster.internal/ubuntu plucky/main s390x xdg-utils all 1.2.1-2ubuntu1 [66.0 kB]
190s Get:44 http://ftpmaster.internal/ubuntu plucky/universe s390x r-base-core s390x 4.4.3-1 [28.6 MB]
213s Get:45 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-brio s390x 1.1.5-1 [38.6 kB]
213s Get:46 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-ps s390x 1.9.0-1 [408 kB]
213s Get:47 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-r6 all 2.6.1-1 [101 kB]
213s Get:48 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-processx s390x 3.8.6-1 [364 kB]
213s Get:49 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-callr all 3.7.6-1 [458 kB]
214s Get:50 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-cli s390x 3.6.4-1 [1379 kB]
215s Get:51 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-crayon all 1.5.3-1 [165 kB]
215s Get:52 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-desc all 1.4.3-1 [359 kB]
215s Get:53 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-diffobj s390x 0.3.5-1 [1115 kB]
216s Get:54 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-digest s390x 0.6.37-1 [205 kB]
216s Get:55 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-evaluate all 1.0.3-1 [114 kB]
216s Get:56 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-fs s390x 1.6.5+dfsg-1 [245 kB]
217s Get:57 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-glue s390x 1.8.0-1 [164 kB]
217s Get:58 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-jsonlite s390x 1.9.1+dfsg-1 [447 kB]
217s Get:59 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-rlang s390x 1.1.5-1 [1713 kB]
219s Get:60 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-lifecycle all 1.0.4+dfsg-1 [110 kB]
219s Get:61 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-magrittr s390x 2.0.3-1 [154 kB]
219s Get:62 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-pkgbuild all 1.4.6-1 [213 kB]
219s Get:63 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-rprojroot all 2.0.4-2 [125 kB]
219s Get:64 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-withr all 3.0.2+dfsg-1 [214 kB]
219s Get:65 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-pkgload all 1.4.0-1 [247 kB]
220s Get:66 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-praise all 1.0.0-4build1 [20.3 kB]
220s Get:67 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-waldo all 0.6.1-2 [150 kB]
220s Get:68 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-testthat s390x 3.2.3-1 [1641 kB]
222s Preconfiguring packages ...
222s Fetched 50.2 MB in 40s (1268 kB/s)
222s Selecting previously unselected package libfreetype6:s390x.
222s (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 ... 56326 files and directories currently installed.)
222s Preparing to unpack .../00-libfreetype6_2.13.3+dfsg-1_s390x.deb ...
222s Unpacking libfreetype6:s390x (2.13.3+dfsg-1) ...
222s Selecting previously unselected package fonts-dejavu-mono.
222s Preparing to unpack .../01-fonts-dejavu-mono_2.37-8_all.deb ...
222s Unpacking fonts-dejavu-mono (2.37-8) ...
222s Selecting previously unselected package fonts-dejavu-core.
222s Preparing to unpack .../02-fonts-dejavu-core_2.37-8_all.deb ...
222s Unpacking fonts-dejavu-core (2.37-8) ...
222s Selecting previously unselected package fontconfig-config.
222s Preparing to unpack .../03-fontconfig-config_2.15.0-2ubuntu1_s390x.deb ...
222s Unpacking fontconfig-config (2.15.0-2ubuntu1) ...
222s Selecting previously unselected package libfontconfig1:s390x.
222s Preparing to unpack .../04-libfontconfig1_2.15.0-2ubuntu1_s390x.deb ...
222s Unpacking libfontconfig1:s390x (2.15.0-2ubuntu1) ...
222s Selecting previously unselected package fontconfig.
222s Preparing to unpack .../05-fontconfig_2.15.0-2ubuntu1_s390x.deb ...
222s Unpacking fontconfig (2.15.0-2ubuntu1) ...
222s Selecting previously unselected package libblas3:s390x.
222s Preparing to unpack .../06-libblas3_3.12.1-2_s390x.deb ...
222s Unpacking libblas3:s390x (3.12.1-2) ...
222s Selecting previously unselected package libpixman-1-0:s390x.
222s Preparing to unpack .../07-libpixman-1-0_0.44.0-3_s390x.deb ...
222s Unpacking libpixman-1-0:s390x (0.44.0-3) ...
222s Selecting previously unselected package libxcb-render0:s390x.
222s Preparing to unpack .../08-libxcb-render0_1.17.0-2_s390x.deb ...
222s Unpacking libxcb-render0:s390x (1.17.0-2) ...
222s Selecting previously unselected package libxcb-shm0:s390x.
222s Preparing to unpack .../09-libxcb-shm0_1.17.0-2_s390x.deb ...
222s Unpacking libxcb-shm0:s390x (1.17.0-2) ...
222s Selecting previously unselected package libxrender1:s390x.
222s Preparing to unpack .../10-libxrender1_1%3a0.9.10-1.1build1_s390x.deb ...
222s Unpacking libxrender1:s390x (1:0.9.10-1.1build1) ...
222s Selecting previously unselected package libcairo2:s390x.
222s Preparing to unpack .../11-libcairo2_1.18.2-2_s390x.deb ...
222s Unpacking libcairo2:s390x (1.18.2-2) ...
222s Selecting previously unselected package libdatrie1:s390x.
222s Preparing to unpack .../12-libdatrie1_0.2.13-3build1_s390x.deb ...
222s Unpacking libdatrie1:s390x (0.2.13-3build1) ...
222s Selecting previously unselected package libdeflate0:s390x.
222s Preparing to unpack .../13-libdeflate0_1.23-1_s390x.deb ...
222s Unpacking libdeflate0:s390x (1.23-1) ...
222s Selecting previously unselected package libgfortran5:s390x.
222s Preparing to unpack .../14-libgfortran5_15-20250222-0ubuntu1_s390x.deb ...
222s Unpacking libgfortran5:s390x (15-20250222-0ubuntu1) ...
222s Selecting previously unselected package libgomp1:s390x.
222s Preparing to unpack .../15-libgomp1_15-20250222-0ubuntu1_s390x.deb ...
222s Unpacking libgomp1:s390x (15-20250222-0ubuntu1) ...
222s Selecting previously unselected package libgraphite2-3:s390x.
222s Preparing to unpack .../16-libgraphite2-3_1.3.14-2ubuntu1_s390x.deb ...
222s Unpacking libgraphite2-3:s390x (1.3.14-2ubuntu1) ...
222s Selecting previously unselected package libharfbuzz0b:s390x.
222s Preparing to unpack .../17-libharfbuzz0b_10.2.0-1_s390x.deb ...
222s Unpacking libharfbuzz0b:s390x (10.2.0-1) ...
222s Selecting previously unselected package x11-common.
222s Preparing to unpack .../18-x11-common_1%3a7.7+23ubuntu3_all.deb ...
222s Unpacking x11-common (1:7.7+23ubuntu3) ...
222s Selecting previously unselected package libice6:s390x.
222s Preparing to unpack .../19-libice6_2%3a1.1.1-1_s390x.deb ...
222s Unpacking libice6:s390x (2:1.1.1-1) ...
222s Selecting previously unselected package libjpeg-turbo8:s390x.
222s Preparing to unpack .../20-libjpeg-turbo8_2.1.5-3ubuntu2_s390x.deb ...
222s Unpacking libjpeg-turbo8:s390x (2.1.5-3ubuntu2) ...
222s Selecting previously unselected package libjpeg8:s390x.
222s Preparing to unpack .../21-libjpeg8_8c-2ubuntu11_s390x.deb ...
222s Unpacking libjpeg8:s390x (8c-2ubuntu11) ...
222s Selecting previously unselected package liblapack3:s390x.
222s Preparing to unpack .../22-liblapack3_3.12.1-2_s390x.deb ...
222s Unpacking liblapack3:s390x (3.12.1-2) ...
222s Selecting previously unselected package libthai-data.
222s Preparing to unpack .../23-libthai-data_0.1.29-2build1_all.deb ...
222s Unpacking libthai-data (0.1.29-2build1) ...
222s Selecting previously unselected package libthai0:s390x.
222s Preparing to unpack .../24-libthai0_0.1.29-2build1_s390x.deb ...
222s Unpacking libthai0:s390x (0.1.29-2build1) ...
222s Selecting previously unselected package libpango-1.0-0:s390x.
222s Preparing to unpack .../25-libpango-1.0-0_1.56.2-1_s390x.deb ...
222s Unpacking libpango-1.0-0:s390x (1.56.2-1) ...
222s Selecting previously unselected package libpangoft2-1.0-0:s390x.
222s Preparing to unpack .../26-libpangoft2-1.0-0_1.56.2-1_s390x.deb ...
222s Unpacking libpangoft2-1.0-0:s390x (1.56.2-1) ...
222s Selecting previously unselected package libpangocairo-1.0-0:s390x.
222s Preparing to unpack .../27-libpangocairo-1.0-0_1.56.2-1_s390x.deb ...
222s Unpacking libpangocairo-1.0-0:s390x (1.56.2-1) ...
222s Selecting previously unselected package libpaper2:s390x.
222s Preparing to unpack .../28-libpaper2_2.2.5-0.3_s390x.deb ...
222s Unpacking libpaper2:s390x (2.2.5-0.3) ...
222s Selecting previously unselected package libpaper-utils.
222s Preparing to unpack .../29-libpaper-utils_2.2.5-0.3_s390x.deb ...
222s Unpacking libpaper-utils (2.2.5-0.3) ...
222s Selecting previously unselected package libsharpyuv0:s390x.
222s Preparing to unpack .../30-libsharpyuv0_1.5.0-0.1_s390x.deb ...
222s Unpacking libsharpyuv0:s390x (1.5.0-0.1) ...
222s Selecting previously unselected package libsm6:s390x.
222s Preparing to unpack .../31-libsm6_2%3a1.2.4-1_s390x.deb ...
222s Unpacking libsm6:s390x (2:1.2.4-1) ...
222s Selecting previously unselected package libtcl8.6:s390x.
222s Preparing to unpack .../32-libtcl8.6_8.6.16+dfsg-1_s390x.deb ...
222s Unpacking libtcl8.6:s390x (8.6.16+dfsg-1) ...
222s Selecting previously unselected package libjbig0:s390x.
222s Preparing to unpack .../33-libjbig0_2.1-6.1ubuntu2_s390x.deb ...
222s Unpacking libjbig0:s390x (2.1-6.1ubuntu2) ...
222s Selecting previously unselected package libwebp7:s390x.
222s Preparing to unpack .../34-libwebp7_1.5.0-0.1_s390x.deb ...
222s Unpacking libwebp7:s390x (1.5.0-0.1) ...
222s Selecting previously unselected package libtiff6:s390x.
222s Preparing to unpack .../35-libtiff6_4.5.1+git230720-4ubuntu4_s390x.deb ...
222s Unpacking libtiff6:s390x (4.5.1+git230720-4ubuntu4) ...
222s Selecting previously unselected package libxft2:s390x.
222s Preparing to unpack .../36-libxft2_2.3.6-1build1_s390x.deb ...
222s Unpacking libxft2:s390x (2.3.6-1build1) ...
222s Selecting previously unselected package libxss1:s390x.
222s Preparing to unpack .../37-libxss1_1%3a1.2.3-1build3_s390x.deb ...
222s Unpacking libxss1:s390x (1:1.2.3-1build3) ...
222s Selecting previously unselected package libtk8.6:s390x.
222s Preparing to unpack .../38-libtk8.6_8.6.16-1_s390x.deb ...
222s Unpacking libtk8.6:s390x (8.6.16-1) ...
222s Selecting previously unselected package libxt6t64:s390x.
222s Preparing to unpack .../39-libxt6t64_1%3a1.2.1-1.2build1_s390x.deb ...
222s Unpacking libxt6t64:s390x (1:1.2.1-1.2build1) ...
222s Selecting previously unselected package zip.
222s Preparing to unpack .../40-zip_3.0-14ubuntu2_s390x.deb ...
222s Unpacking zip (3.0-14ubuntu2) ...
222s Selecting previously unselected package unzip.
222s Preparing to unpack .../41-unzip_6.0-28ubuntu6_s390x.deb ...
222s Unpacking unzip (6.0-28ubuntu6) ...
222s Selecting previously unselected package xdg-utils.
222s Preparing to unpack .../42-xdg-utils_1.2.1-2ubuntu1_all.deb ...
222s Unpacking xdg-utils (1.2.1-2ubuntu1) ...
222s Selecting previously unselected package r-base-core.
222s Preparing to unpack .../43-r-base-core_4.4.3-1_s390x.deb ...
222s Unpacking r-base-core (4.4.3-1) ...
223s Selecting previously unselected package r-cran-brio.
223s Preparing to unpack .../44-r-cran-brio_1.1.5-1_s390x.deb ...
223s Unpacking r-cran-brio (1.1.5-1) ...
223s Selecting previously unselected package r-cran-ps.
223s Preparing to unpack .../45-r-cran-ps_1.9.0-1_s390x.deb ...
223s Unpacking r-cran-ps (1.9.0-1) ...
223s Selecting previously unselected package r-cran-r6.
223s Preparing to unpack .../46-r-cran-r6_2.6.1-1_all.deb ...
223s Unpacking r-cran-r6 (2.6.1-1) ...
223s Selecting previously unselected package r-cran-processx.
223s Preparing to unpack .../47-r-cran-processx_3.8.6-1_s390x.deb ...
223s Unpacking r-cran-processx (3.8.6-1) ...
223s Selecting previously unselected package r-cran-callr.
223s Preparing to unpack .../48-r-cran-callr_3.7.6-1_all.deb ...
223s Unpacking r-cran-callr (3.7.6-1) ...
223s Selecting previously unselected package r-cran-cli.
223s Preparing to unpack .../49-r-cran-cli_3.6.4-1_s390x.deb ...
223s Unpacking r-cran-cli (3.6.4-1) ...
223s Selecting previously unselected package r-cran-crayon.
223s Preparing to unpack .../50-r-cran-crayon_1.5.3-1_all.deb ...
223s Unpacking r-cran-crayon (1.5.3-1) ...
223s Selecting previously unselected package r-cran-desc.
223s Preparing to unpack .../51-r-cran-desc_1.4.3-1_all.deb ...
223s Unpacking r-cran-desc (1.4.3-1) ...
223s Selecting previously unselected package r-cran-diffobj.
223s Preparing to unpack .../52-r-cran-diffobj_0.3.5-1_s390x.deb ...
223s Unpacking r-cran-diffobj (0.3.5-1) ...
223s Selecting previously unselected package r-cran-digest.
223s Preparing to unpack .../53-r-cran-digest_0.6.37-1_s390x.deb ...
223s Unpacking r-cran-digest (0.6.37-1) ...
223s Selecting previously unselected package r-cran-evaluate.
223s Preparing to unpack .../54-r-cran-evaluate_1.0.3-1_all.deb ...
223s Unpacking r-cran-evaluate (1.0.3-1) ...
223s Selecting previously unselected package r-cran-fs.
223s Preparing to unpack .../55-r-cran-fs_1.6.5+dfsg-1_s390x.deb ...
223s Unpacking r-cran-fs (1.6.5+dfsg-1) ...
223s Selecting previously unselected package r-cran-glue.
223s Preparing to unpack .../56-r-cran-glue_1.8.0-1_s390x.deb ...
223s Unpacking r-cran-glue (1.8.0-1) ...
223s Selecting previously unselected package r-cran-jsonlite.
223s Preparing to unpack .../57-r-cran-jsonlite_1.9.1+dfsg-1_s390x.deb ...
223s Unpacking r-cran-jsonlite (1.9.1+dfsg-1) ...
223s Selecting previously unselected package r-cran-rlang.
223s Preparing to unpack .../58-r-cran-rlang_1.1.5-1_s390x.deb ...
223s Unpacking r-cran-rlang (1.1.5-1) ...
223s Selecting previously unselected package r-cran-lifecycle.
223s Preparing to unpack .../59-r-cran-lifecycle_1.0.4+dfsg-1_all.deb ...
223s Unpacking r-cran-lifecycle (1.0.4+dfsg-1) ...
223s Selecting previously unselected package r-cran-magrittr.
223s Preparing to unpack .../60-r-cran-magrittr_2.0.3-1_s390x.deb ...
223s Unpacking r-cran-magrittr (2.0.3-1) ...
223s Selecting previously unselected package r-cran-pkgbuild.
223s Preparing to unpack .../61-r-cran-pkgbuild_1.4.6-1_all.deb ...
223s Unpacking r-cran-pkgbuild (1.4.6-1) ...
223s Selecting previously unselected package r-cran-rprojroot.
223s Preparing to unpack .../62-r-cran-rprojroot_2.0.4-2_all.deb ...
223s Unpacking r-cran-rprojroot (2.0.4-2) ...
223s Selecting previously unselected package r-cran-withr.
223s Preparing to unpack .../63-r-cran-withr_3.0.2+dfsg-1_all.deb ...
223s Unpacking r-cran-withr (3.0.2+dfsg-1) ...
223s Selecting previously unselected package r-cran-pkgload.
223s Preparing to unpack .../64-r-cran-pkgload_1.4.0-1_all.deb ...
223s Unpacking r-cran-pkgload (1.4.0-1) ...
223s Selecting previously unselected package r-cran-praise.
223s Preparing to unpack .../65-r-cran-praise_1.0.0-4build1_all.deb ...
223s Unpacking r-cran-praise (1.0.0-4build1) ...
223s Selecting previously unselected package r-cran-waldo.
223s Preparing to unpack .../66-r-cran-waldo_0.6.1-2_all.deb ...
223s Unpacking r-cran-waldo (0.6.1-2) ...
223s Selecting previously unselected package r-cran-testthat.
223s Preparing to unpack .../67-r-cran-testthat_3.2.3-1_s390x.deb ...
223s Unpacking r-cran-testthat (3.2.3-1) ...
223s Setting up libgraphite2-3:s390x (1.3.14-2ubuntu1) ...
223s Setting up libpixman-1-0:s390x (0.44.0-3) ...
223s Setting up libsharpyuv0:s390x (1.5.0-0.1) ...
223s Setting up libxrender1:s390x (1:0.9.10-1.1build1) ...
223s Setting up libdatrie1:s390x (0.2.13-3build1) ...
223s Setting up libxcb-render0:s390x (1.17.0-2) ...
223s Setting up unzip (6.0-28ubuntu6) ...
223s Setting up x11-common (1:7.7+23ubuntu3) ...
223s Setting up libdeflate0:s390x (1.23-1) ...
223s Setting up libxcb-shm0:s390x (1.17.0-2) ...
223s Setting up libgomp1:s390x (15-20250222-0ubuntu1) ...
223s Setting up libjbig0:s390x (2.1-6.1ubuntu2) ...
223s Setting up zip (3.0-14ubuntu2) ...
223s Setting up libblas3:s390x (3.12.1-2) ...
223s update-alternatives: using /usr/lib/s390x-linux-gnu/blas/libblas.so.3 to provide /usr/lib/s390x-linux-gnu/libblas.so.3 (libblas.so.3-s390x-linux-gnu) in auto mode
223s Setting up libfreetype6:s390x (2.13.3+dfsg-1) ...
223s Setting up fonts-dejavu-mono (2.37-8) ...
223s Setting up libtcl8.6:s390x (8.6.16+dfsg-1) ...
223s Setting up fonts-dejavu-core (2.37-8) ...
223s Setting up libjpeg-turbo8:s390x (2.1.5-3ubuntu2) ...
223s Setting up libgfortran5:s390x (15-20250222-0ubuntu1) ...
223s Setting up libwebp7:s390x (1.5.0-0.1) ...
223s Setting up libharfbuzz0b:s390x (10.2.0-1) ...
223s Setting up libthai-data (0.1.29-2build1) ...
223s Setting up libxss1:s390x (1:1.2.3-1build3) ...
223s Setting up libpaper2:s390x (2.2.5-0.3) ...
223s Setting up xdg-utils (1.2.1-2ubuntu1) ...
223s update-alternatives: using /usr/bin/xdg-open to provide /usr/bin/open (open) in auto mode
223s Setting up libjpeg8:s390x (8c-2ubuntu11) ...
223s Setting up libice6:s390x (2:1.1.1-1) ...
223s Setting up liblapack3:s390x (3.12.1-2) ...
223s update-alternatives: using /usr/lib/s390x-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/s390x-linux-gnu/liblapack.so.3 (liblapack.so.3-s390x-linux-gnu) in auto mode
223s Setting up fontconfig-config (2.15.0-2ubuntu1) ...
224s Setting up libpaper-utils (2.2.5-0.3) ...
224s Setting up libthai0:s390x (0.1.29-2build1) ...
224s Setting up libtiff6:s390x (4.5.1+git230720-4ubuntu4) ...
224s Setting up libfontconfig1:s390x (2.15.0-2ubuntu1) ...
224s Setting up libsm6:s390x (2:1.2.4-1) ...
224s Setting up fontconfig (2.15.0-2ubuntu1) ...
226s Regenerating fonts cache... done.
226s Setting up libxft2:s390x (2.3.6-1build1) ...
226s Setting up libtk8.6:s390x (8.6.16-1) ...
226s Setting up libpango-1.0-0:s390x (1.56.2-1) ...
226s Setting up libcairo2:s390x (1.18.2-2) ...
226s Setting up libxt6t64:s390x (1:1.2.1-1.2build1) ...
226s Setting up libpangoft2-1.0-0:s390x (1.56.2-1) ...
226s Setting up libpangocairo-1.0-0:s390x (1.56.2-1) ...
226s Setting up r-base-core (4.4.3-1) ...
226s Creating config file /etc/R/Renviron with new version
226s Setting up r-cran-crayon (1.5.3-1) ...
226s Setting up r-cran-ps (1.9.0-1) ...
226s Setting up r-cran-r6 (2.6.1-1) ...
226s Setting up r-cran-magrittr (2.0.3-1) ...
226s Setting up r-cran-fs (1.6.5+dfsg-1) ...
226s Setting up r-cran-brio (1.1.5-1) ...
226s Setting up r-cran-diffobj (0.3.5-1) ...
226s Setting up r-cran-rlang (1.1.5-1) ...
226s Setting up r-cran-withr (3.0.2+dfsg-1) ...
226s Setting up r-cran-processx (3.8.6-1) ...
226s Setting up r-cran-praise (1.0.0-4build1) ...
226s Setting up r-cran-digest (0.6.37-1) ...
226s Setting up r-cran-evaluate (1.0.3-1) ...
226s Setting up r-cran-glue (1.8.0-1) ...
226s Setting up r-cran-cli (3.6.4-1) ...
226s Setting up r-cran-lifecycle (1.0.4+dfsg-1) ...
226s Setting up r-cran-rprojroot (2.0.4-2) ...
226s Setting up r-cran-jsonlite (1.9.1+dfsg-1) ...
226s Setting up r-cran-waldo (0.6.1-2) ...
226s Setting up r-cran-callr (3.7.6-1) ...
226s Setting up r-cran-desc (1.4.3-1) ...
226s Setting up r-cran-pkgbuild (1.4.6-1) ...
226s Setting up r-cran-pkgload (1.4.0-1) ...
226s Setting up r-cran-testthat (3.2.3-1) ...
226s Processing triggers for libc-bin (2.41-1ubuntu2) ...
226s Processing triggers for man-db (2.13.0-1) ...
227s Processing triggers for install-info (7.1.1-1) ...
228s autopkgtest [18:01:32]: test run-unit-test: [-----------------------
228s Begin testing test-atomic.R
228s
228s R version 4.4.3 (2025-02-28) -- "Trophy Case"
228s Copyright (C) 2025 The R Foundation for Statistical Computing
228s Platform: s390x-ibm-linux-gnu
228s
228s R is free software and comes with ABSOLUTELY NO WARRANTY.
228s You are welcome to redistribute it under certain conditions.
228s Type 'license()' or 'licence()' for distribution details.
228s
228s R is a collaborative project with many contributors.
228s Type 'contributors()' for more information and
228s 'citation()' on how to cite R or R packages in publications.
228s
228s Type 'demo()' for some demos, 'help()' for on-line help, or
228s 'help.start()' for an HTML browser interface to help.
228s Type 'q()' to quit R.
228s
228s > NAME <- "atomic"
228s > source(file.path('_helper', 'init.R'))
228s >
228s > # - Basic Tests
228s >
228s > all.equal(as.character(diffPrint(chr.1, chr.2)), rdsf(100))
228s [1] TRUE
228s > all.equal(
228s + as.character(diffPrint(chr.1, chr.2, mode="unified")), rdsf(200)
228s + )
228s [1] TRUE
228s > all.equal(
228s + as.character(diffPrint(chr.1, chr.2, mode="context")), rdsf(400)
228s + )
228s [1] TRUE
228s > all.equal(
228s + as.character(diffPrint(chr.1[2:3], chr.2[2], mode="sidebyside")), rdsf(500)
228s + )
228s [1] TRUE
228s > # Check that `extra` works
228s >
228s > all.equal(
228s + as.character(
228s + diffPrint(chr.1, chr.2, mode="unified", extra=list(quote=FALSE))
228s + ),
228s + rdsf(600)
228s + )
228s [1] TRUE
228s > # make sure blanks line up correctly
228s >
228s > all.equal(
228s + as.character(diffPrint(chr.3, chr.4)), rdsf(700)
228s + )
228s [1] TRUE
228s > all.equal(
228s + as.character(diffPrint(chr.3, chr.4, mode="unified")), rdsf(800)
228s + )
229s [1] TRUE
229s >
229s > # - Word wrap in atomic
229s >
229s > A <- A.1 <- B <- c(letters, LETTERS)
229s > B[15] <- "Alabama"
229s > A.1[5] <- "Ee"
229s > C <- A[-15]
229s > D <- C
229s > E <- B[-45]
229s >
229s > # Test simple changes to vectors; at 80 columns removing 1:8 corresponds to
229s > # row deletion
229s >
229s > all.equal(as.character(diffPrint(A[-(1:8)], A)), rdsf(900))
229s [1] TRUE
229s > all.equal(as.character(diffPrint(A, A[-(1:8)])), rdsf(1000))
229s [1] TRUE
229s >
229s > all.equal(as.character(diffPrint(A[-1], A[-2])), rdsf(1100))
229s [1] TRUE
229s >
229s > # Replace single word
229s >
229s > all.equal(as.character(diffPrint(A, B)), rdsf(1200))
229s [1] TRUE
229s > all.equal(as.character(diffPrint(B, A)), rdsf(1250))
229s [1] TRUE
229s >
229s > # Make sure turning off word.diff also turns of unwrapping, but that we can
229s > # turn off unwrapping without turning off word diff
229s >
229s > all.equal(
229s + as.character(diffPrint(A, B, word.diff=FALSE)), rdsf(1300)
229s + )
229s [1] TRUE
229s > all.equal(
229s + as.character(diffPrint(A, B, unwrap.atomic=FALSE)), rdsf(1400)
229s + )
229s [1] TRUE
229s > # Different wrap frequency and removed words that span lines
229s >
229s > all.equal(
229s + as.character(diffPrint(A, A.1[-(13:18)])), rdsf(1425)
229s + )
229s [1] TRUE
229s > # Removing words
229s >
229s > all.equal(as.character(diffPrint(C, B)), rdsf(1450))
229s [1] TRUE
229s >
229s > # Two hunks
229s >
229s > all.equal(as.character(diffPrint(D, E)), rdsf(1500))
229s [1] TRUE
229s > all.equal(as.character(diffPrint(E, D)), rdsf(1600))
229s [1] TRUE
229s >
229s > # Vignette example
229s >
229s > state.abb.2 <- state.abb
229s > state.abb.2[38] <- "Pennsylvania"
229s >
229s > all.equal(
229s + as.character(diffPrint(state.abb, state.abb.2)), rdsf(1700)
229s + )
229s [1] TRUE
229s > # Number corner cases
229s >
229s > all.equal(as.character(diffPrint(1:100, 2:101)), rdsf(1800))
229s [1] TRUE
229s > all.equal(as.character(diffPrint(2:101, 1:100)), rdsf(1900))
229s [1] TRUE
229s > all.equal(
229s + as.character(diffPrint(2:101, (1:100)[-9])), rdsf(2000)
229s + )
229s [1] TRUE
229s > all.equal(
229s + as.character(diffPrint((2:101)[-98], (1:100)[-9])), rdsf(2100)
229s + )
229s [1] TRUE
229s > # This is one of those that a better in-hunk align algorithm would benefit
229s >
229s > int.1 <- int.2 <- 1:100
229s > int.2[c(8, 20, 60)] <- 99
229s > int.2 <- c(50:1, int.2)
229s > all.equal(as.character(diffPrint(int.1, int.2)), rdsf(2200))
229s [1] TRUE
229s >
229s > # - with names
229s > rand.chrs <- do.call(paste0, expand.grid(LETTERS, LETTERS))
229s > F <- F1 <- F2 <- (2:105)[-98]
229s > G <- G2 <- G3 <- G4 <- G5 <- (1:100)[-9]
229s > nm.1 <- rand.chrs[seq_along(F)]
229s > nm.2 <- rand.chrs[seq_along(G)]
229s > names(F1) <- names(F2) <- nm.1
229s > names(G3) <- names(G2) <- names(G3) <- names(G4) <- names(G5) <- nm.2
229s > names(G3)[c(5, 25, 60)] <- c("XXXXX", rand.chrs[c(300, 350)])
229s > names(G4)[c(5, 25, 60)] <- names(G5)[c(5, 25, 60)] <-
229s + c("XX", rand.chrs[c(300, 350)])
229s > attr(F2, "blah") <- 1:5
229s > attr(G5, "blah") <- 3:8
229s >
229s > all.equal(as.character(diffPrint(F, G)), rdsf(2300))
229s [1] TRUE
229s > all.equal(as.character(diffPrint(F1, G2)), rdsf(2400))
229s [1] TRUE
229s >
229s > # Challenging case b/c the names wrap with values, and you have to pick one or
229s > # the other to match when the wrap frequencies are different
229s >
229s > all.equal(as.character(diffPrint(F1, G3)), rdsf(2500))
229s [1] TRUE
229s > all.equal(as.character(diffPrint(F1, G4)), rdsf(2520))
229s [1] TRUE
229s >
229s > # Attributes
229s >
229s > all.equal(as.character(diffPrint(F2, G5)), rdsf(2530))
229s [1] TRUE
229s > all.equal(as.character(diffPrint(F1, G5)), rdsf(2540))
229s [1] TRUE
229s >
229s > # - Original tests
229s > set.seed(2)
229s > w1 <- sample(
229s + c(
229s + "carrot", "cat", "cake", "eat", "rabbit", "holes", "the", "a", "pasta",
229s + "boom", "noon", "sky", "hat", "blah", "paris", "dog", "snake"
229s + ), 25, replace=TRUE
229s + )
229s > w4 <- w3 <- w2 <- w1
229s > w2[sample(seq_along(w1), 5)] <- LETTERS[1:5]
229s > w3 <- w1[8:15]
229s > w4 <- c(w1[1:5], toupper(w1[1:5]), w1[6:15], toupper(w1[1:5]))
229s >
229s > all.equal(as.character(diffPrint(w1, w2)), rdsf(2600))
229s [1] TRUE
229s > all.equal(as.character(diffPrint(w1, w3)), rdsf(2700))
230s [1] TRUE
230s > all.equal(as.character(diffPrint(w1, w4)), rdsf(2800))
230s [1] TRUE
230s >
230s > # - Simple word diffs
230s > a <- c("a", "b", "c", "d")
230s > b <- c("b", "c", "d", "e")
230s > all.equal(as.character(diffPrint(a, b)), rdsf(2900))
230s [1] TRUE
230s >
230s > a <- c("x", "a", "b", "c", "d", "z")
230s > b <- c("x", "b", "c", "d", "e", "z")
230s > all.equal(as.character(diffPrint(a, b)), rdsf(3000))
230s [1] TRUE
230s >
230s > a <- c("x", "a", "b", "c", "d", "z")
230s > b <- c("z", "b", "c", "d", "e", "x")
230s > all.equal(as.character(diffPrint(a, b)), rdsf(3100))
230s [1] TRUE
230s >
230s > # - Alignment edge cases
230s > all.equal(
230s + as.character(diffPrint(20:50, 30:62)), rdsf(3200)
230s + )
230s [1] TRUE
230s > # below is off; should be aligning matching context line, part of the problem
230s > # might be that we're doing the realignment without thinking about what the
230s > # other hunk has.
230s > #
230s > # Possible encode each line as hunk#:diff/mix/cont
230s >
230s > # all.equal(
230s > # as.character(diffPrint(20:50, 35:62)), rdsf(3300)
230s > # )
230s >
230s > # another interesting example where the existing algo seems to lead to a
230s > # reasonable outcome
230s >
230s > all.equal(
230s + as.character(diffPrint(c(1:24,35:45), c(1:8, 17:45))), rdsf(3400)
230s + )
230s [1] TRUE
230s >
230s PASS
230s Begin testing test-banner.R
230s
230s R version 4.4.3 (2025-02-28) -- "Trophy Case"
230s Copyright (C) 2025 The R Foundation for Statistical Computing
230s Platform: s390x-ibm-linux-gnu
230s
230s R is free software and comes with ABSOLUTELY NO WARRANTY.
230s You are welcome to redistribute it under certain conditions.
230s Type 'license()' or 'licence()' for distribution details.
230s
230s R is a collaborative project with many contributors.
230s Type 'contributors()' for more information and
230s 'citation()' on how to cite R or R packages in publications.
230s
230s Type 'demo()' for some demos, 'help()' for on-line help, or
230s 'help.start()' for an HTML browser interface to help.
230s Type 'q()' to quit R.
230s
230s > NAME <- "banner"
230s > source(file.path('_helper', 'init.R'))
230s >
230s > # - Banner Capture ------------------------------------------------------------
230s >
230s > ref <- as.character(
230s + diffPrint(1 + 2, letters, tar.banner="1 + 2", cur.banner="letters")
230s + )
230s > identical(as.character(diffPrint(1 + 2, letters)), ref)
230s [1] TRUE
230s > invisible(
230s + setMethod(
230s + "diffPrint", c("numeric", "character"),
230s + function(target, current, ...) callNextMethod()
230s + ) )
230s > identical(as.character(diffPrint(1 + 2, letters)), ref)
230s [1] TRUE
230s > isTRUE(
230s + !identical(as.character(diffPrint(1 + 2, LETTERS)), ref)
230s + )
230s [1] TRUE
230s >
230s PASS
230s Begin testing test-capture.R
230s
230s R version 4.4.3 (2025-02-28) -- "Trophy Case"
230s Copyright (C) 2025 The R Foundation for Statistical Computing
230s Platform: s390x-ibm-linux-gnu
230s
230s R is free software and comes with ABSOLUTELY NO WARRANTY.
230s You are welcome to redistribute it under certain conditions.
230s Type 'license()' or 'licence()' for distribution details.
230s
230s R is a collaborative project with many contributors.
230s Type 'contributors()' for more information and
230s 'citation()' on how to cite R or R packages in publications.
230s
230s Type 'demo()' for some demos, 'help()' for on-line help, or
230s 'help.start()' for an HTML browser interface to help.
230s Type 'q()' to quit R.
230s
230s > NAME <- "capture"
230s > source(file.path('_helper', 'init.R'))
230s >
230s > # - capture width issues -------------------------------------------------------
230s >
230s > local({
230s + old.opt <- options(width=40L)
230s + on.exit(options(old.opt))
230s + etc <- new("Settings", style=StyleRaw(), text.width=5L) # impossible width
230s + # warn: "Unable to set desired "
230s + res <- diffobj:::capture(letters, etc, function(...) do.call(cat, list(...)))
230s + all.equal(nchar(res), c(40L, 40L, 36L))
230s + })
231s [1] TRUE
231s Warning message:
231s In diffobj:::capture(letters, etc, function(...) do.call(cat, list(...))) :
231s Unable to set desired width 5, (invalid 'width' parameter, allowed 10...10000);proceeding with existing setting.
231s >
231s > # - errors in capture ----------------------------------------------------------
231s >
231s > etc <- new("Settings", style=StyleRaw())
231s > try(diffobj:::capture(stop('boom'), etc, function(...) stop(...))) # boom
231s Error in eval(x, etc@frame) : boom
231s Error in err("Failed attempting to get text representation of object: ", :
231s Failed attempting to get text representation of object: boom
231s > print <- function() NULL
231s > str <- function() NULL
231s > etc@mode <- "auto"
231s > etc@frame <- environment()
231s > try(diffobj:::capt_print(1, 2, etc, function(...) stop(...), list())) # compose
231s Error in match.call(definition, call, expand.dots, envir) :
231s unused argument (x = NULL)
231s Error in err("Unable to compose `print` call") :
231s Unable to compose `print` call
231s > # spec object
231s > try(diffobj:::capt_str(1, 2, etc, function(...) stop(...), list(object=1)))
231s Error in err("You may not specify `object` as part of `extra`") :
231s You may not specify `object` as part of `extra`
231s > try( # attempting to deparse
231s + diffobj:::capt_deparse(
231s + stop('a'), stop('b'), etc, function(...) stop(...), list()
231s + )
231s + )
231s Error in do.call(deparse, c(list(target), extra), quote = TRUE) : a
231s Error in err("Error attempting to deparse object(s)") :
231s Error attempting to deparse object(s)
231s > try( # target
231s + suppressWarnings(
231s + diffobj:::capt_file(
231s + tempfile(), tempfile(), etc, function(...) stop(...), list()
231s + ) )
231s + )
231s Error in file(con, "r") : cannot open the connection
231s Error in err("Unable to read `target` file.") :
231s Unable to read `target` file.
231s > local({
231s + f <- tempfile()
231s + on.exit(unlink(f), add=TRUE)
231s + writeLines(letters, f)
231s + try( # "`current`"
231s + suppressWarnings(
231s + diffobj:::capt_file(f, tempfile(), etc, function(...) stop(...), list())
231s + )
231s + )
231s + try( # "`target`"
231s + suppressWarnings(
231s + diffobj:::capt_csv(
231s + tempfile(), tempfile(), etc, function(...) stop(...), list()
231s + ) )
231s + )
231s + try( # "`current`"
231s + suppressWarnings(
231s + diffobj:::capt_csv(
231s + f, tempfile(), etc, function(...) stop(...), list()
231s + ) )
231s + )
231s + })
231s Error in file(con, "r") : cannot open the connection
231s Error in err("Unable to read `current` file.") :
231s Unable to read `current` file.
231s Error in file(file, "rt") : cannot open the connection
231s Error in err("Unable to read `target` file.") :
231s Unable to read `target` file.
231s Error in file(file, "rt") : cannot open the connection
231s Error in err("Unable to read `current` file.") :
231s Unable to read `current` file.
231s > bad_obj <- structure(list(NULL), class='diffobj_ogewlhgiadfl3')
231s > try( # "Coercion of `target`"
231s + diffobj:::capt_chr(bad_obj, letters, etc, function(...) stop(...), list())
231s + )
231s Error in diffobj:::capt_chr(bad_obj, letters, etc, function(...) stop(...), :
231s Coercion of `target` did not produce character object (list).
231s > try( # "Coercion of `current`"
231s + diffobj:::capt_chr(letters, bad_obj, etc, function(...) stop(...), list())
231s + )
231s Error in diffobj:::capt_chr(letters, bad_obj, etc, function(...) stop(...), :
231s Coercion of `current` did not produce character object (list).
231s >
231s PASS
231s Begin testing test-check.R
231s
231s R version 4.4.3 (2025-02-28) -- "Trophy Case"
231s Copyright (C) 2025 The R Foundation for Statistical Computing
231s Platform: s390x-ibm-linux-gnu
231s
231s R is free software and comes with ABSOLUTELY NO WARRANTY.
231s You are welcome to redistribute it under certain conditions.
231s Type 'license()' or 'licence()' for distribution details.
231s
231s R is a collaborative project with many contributors.
231s Type 'contributors()' for more information and
231s 'citation()' on how to cite R or R packages in publications.
231s
231s Type 'demo()' for some demos, 'help()' for on-line help, or
231s 'help.start()' for an HTML browser interface to help.
231s Type 'q()' to quit R.
231s
231s > NAME <- "check"
231s > source(file.path('_helper', 'init.R'))
231s >
231s > # - is.less_flags --------------------------------------------------------------
231s >
231s > isTRUE(diffobj:::is.less_flags("RVXF"))
231s [1] TRUE
231s > isTRUE(diffobj:::is.less_flags("rvxF"))
231s [1] TRUE
231s > identical(diffobj:::is.less_flags(c("rvxF", "RVXF")), FALSE)
231s [1] TRUE
231s > identical(diffobj:::is.less_flags(23), FALSE)
231s [1] TRUE
231s > identical(diffobj:::is.less_flags("rv xF"), FALSE)
231s [1] TRUE
231s >
231s > # - is.int.2L ------------------------------------------------------------------
231s >
231s > isTRUE(diffobj:::is.int.2L(1:2))
231s [1] TRUE
231s > isTRUE(diffobj:::is.int.2L(as.numeric(1:2)))
231s [1] TRUE
231s > identical(diffobj:::is.int.2L(c(1.3, 2.2)), FALSE)
231s [1] TRUE
231s > identical(diffobj:::is.int.2L(1:3), FALSE)
231s [1] TRUE
231s > identical(diffobj:::is.int.2L(c(1, NA)), FALSE)
231s [1] TRUE
231s >
231s > # - arg.funs -------------------------------------------------------------------
231s >
231s > isTRUE(diffobj:::is.one.arg.fun(function(x) NULL))
231s [1] TRUE
231s > isTRUE(diffobj:::is.one.arg.fun(function(x, y=5) NULL))
231s [1] TRUE
231s >
231s > diffobj:::is.one.arg.fun(function(..., x) NULL) # "cannot have `...` as "
231s [1] "cannot have `...` as the first argument"
231s > diffobj:::is.one.arg.fun(NULL) # "is not a fun"
231s [1] "is not a function"
231s > diffobj:::is.one.arg.fun(function() NULL) # "have at least"
231s [1] "does not have at least one arguments"
231s > diffobj:::is.one.arg.fun(function(x, y) NULL) # "cannot have any"
231s [1] "cannot have any non-optional arguments other than first one"
231s >
231s > isTRUE(diffobj:::is.two.arg.fun(function(x, y) NULL))
231s [1] TRUE
231s > isTRUE(diffobj:::is.two.arg.fun(function(x, y=5) NULL))
231s [1] TRUE
231s >
231s > diffobj:::is.two.arg.fun(function(x, ..., y) NULL) # "cannot have `...` as "
231s [1] "cannot have `...` as one of the first two arguments"
231s > diffobj:::is.two.arg.fun(NULL) # "is not a fun"
231s [1] "is not a function"
231s > diffobj:::is.two.arg.fun(function(x) NULL) # "have at least")
231s [1] "does not have at least two arguments"
231s > diffobj:::is.two.arg.fun(function(x, y, z) NULL) # "cannot have any"
231s [1] "cannot have any non-optional arguments other than first two"
231s >
231s > # - valid_object ---------------------------------------------------------------
231s >
231s > s.h <- StyleHtml()
231s > s.h@wrap <- TRUE
231s > try(diffobj:::valid_object(s.h, "style", stop)) #an invalid `StyleHtml` object
231s Error in diffobj:::valid_object(s.h, "style", stop) :
231s Argument `style` is an invalid `StyleHtml` object because: - slot `wrap` must be FALSE for `styleHtml` objects.
231s >
231s > pal <- PaletteOfStyles()
231s > pal["html", "light", "yb"] <- list(s.h)
231s > try(# "`palette.of.styles` is an invalid"
231s + diffChr(
231s + "A", "B", palette.of.styles=pal, style="auto", format="html",
231s + brightness="light", color.mode="yb"
231s + )
231s + )
231s Error in diffChr(target = "A", current = "B", palette.of.styles = pal, :
231s Argument `palette.of.styles` is an invalid `StyleHtml` because it contains and invalid `Style` object: - slot `wrap` must be FALSE for `styleHtml` objects.
231s > # - brightness -----------------------------------------------------------------
231s >
231s > try(diffPrint(1:3, 3:6, brightness=NA)) # "must be character"
231s Error in diffPrint(target = 1:3, current = 3:6, brightness = NA) :
231s Argument `brightness` must be character and not contain NAs
231s > try(diffPrint(1:3, 3:6, brightness="red")) # "may only contain values"
231s Error in diffPrint(target = 1:3, current = 3:6, brightness = "red") :
231s Argument `brightness` may only contain values in `c("neutral", "light", "dark")`
231s > try(diffPrint(1:3, 3:6, brightness=c(raw='light'))) # "one empty name"
231s Error in diffPrint(target = 1:3, current = 3:6, brightness = c(raw = "light")) :
231s Argument `brightness` must include at least one empty name `""` if it has names.
231s > try(diffPrint(1:3, 3:6, brightness=c('light', 'dark'))) # have names
231s Error in diffPrint(target = 1:3, current = 3:6, brightness = c("light", :
231s Argument `brightness` must have names if it has length > 1, and those names must include at least an empty name `""` as well as names only from `c("raw", "ansi8", "ansi256", "html")`.
231s >
231s > # - misc -----------------------------------------------------------------------
231s >
231s > diffobj:::is.one.file.name(1) # "must be character"
231s [1] "must be character(1L) and not NA"
231s > try(diffPrint(1:3, 2:6, extra="hello")) # "must be a list"
231s Error in diffPrint(target = 1:3, current = 2:6, extra = "hello") :
231s Argument `extra` must be a list.
231s > try(diffPrint(1:3, 2:6, context=TRUE)) # "Argument `context` must"
231s Error in diffPrint(target = 1:3, current = 2:6, context = TRUE) :
231s Argument `context` must be integer(1L) and not NA, an object produced by `auto_context`, or "auto".
231s > try(diffPrint(1:3, 2:6, mode=1)) # "must be character"
231s Error in diffPrint(target = 1:3, current = 2:6, mode = 1) :
231s Argument `mode` must be character(1L) and in `c("auto", "unified", "context", "sidebyside")`.
231s > try(diffPrint(1:3, 2:6, tab.stops=-1)) # "strictly positive"
231s Error in diffPrint(target = 1:3, current = 2:6, tab.stops = -1) :
231s Argument `tab.stops` must be integer containing at least one value and with all values strictly positive
231s > try(diffPrint(1:3, 2:6, hunk.limit='hello')) # "integer vector"
231s Error in diffPrint(target = 1:3, current = 2:6, hunk.limit = "hello") :
231s Argument `hunk.limit` must be an integer vector of length 1 or 2 and if length 2, with the first value larger than or equal to the second.
231s > try(diffPrint(1:3, 2:6, guides='hello')) # "or a function"
231s Error in diffPrint(target = 1:3, current = 2:6, guides = "hello") :
231s Argument `guides` must be TRUE, FALSE, or a function
231s > try(diffPrint(1:3, 2:6, guides=function(x, y, z) NULL))# "cannot have any non"
231s Error in diffPrint(target = 1:3, current = 2:6, guides = function(x, y, :
231s Argument `guides` cannot have any non-optional arguments other than first two
231s > try(diffPrint(1:3, 2:6, trim='hello')) # "TRUE, FALSE, or a function"
231s Error in diffPrint(target = 1:3, current = 2:6, trim = "hello") :
231s Argument `trim` must be TRUE, FALSE, or a function
231s > try(diffPrint(1:3, 2:6, trim=function(x, y, z) NULL)) # "cannot have any non"
231s Error in diffPrint(target = 1:3, current = 2:6, trim = function(x, y, :
231s Argument `trim` cannot have any non-optional arguments other than first two
231s > try(diffPrint(1:3, 2:6, interactive='hello')) # "must be TRUE or"
231s Error in diffPrint(target = 1:3, current = 2:6, interactive = "hello") :
231s Argument `interactive` must be TRUE or FALSE.
231s > try(diffPrint(1:3, 2:6, max.diffs=1:10)) # "must be integer"
231s Error in diffPrint(target = 1:3, current = 2:6, max.diffs = 1:10) :
231s Argument `max.diffs` must be integer(1L) and not NA.
231s > try(diffPrint(1:3, 2:6, tar.banner=1:10)) # "must be atomic"
231s Error in diffPrint(target = 1:3, current = 2:6, tar.banner = 1:10) :
231s Argument `tar.banner` must be atomic and length(1L), NULL, a symbol, or a call
231s > try(diffPrint(1:3, 2:6, style=1:10)) # "must be \"auto\", a"
231s Error in diffPrint(target = 1:3, current = 2:6, style = 1:10) :
231s Argument `style` must be "auto", a `Style` object, or a list.
231s > try(diffPrint(1:3, 2:6, pager=1:10)) # "must be one of"
231s Error in diffPrint(target = 1:3, current = 2:6, pager = 1:10) :
231s Argument `pager` must be one of `c("auto", "off", "on")`, a `Pager` object, or a list.
231s > try(diffPrint(1:3, 2:6, format=1:10)) # "must be character"
231s Error in diffPrint(target = 1:3, current = 2:6, format = 1:10) :
231s Argument `format` must be character(1L) and not NA
231s > try(diffPrint(1:3, 2:6, palette.of.styles=1:10)) # "must be a `PaletteOfStyles`"
231s Error in diffPrint(target = 1:3, current = 2:6, palette.of.styles = 1:10) :
231s Argument `palette.of.styles` must be a `PaletteOfStyles` object.
231s > try(diffChr(letters, LETTERS, context=NA)) # "must be integer"
231s Error in diffChr(target = letters, current = LETTERS, context = NA) :
231s Argument `context` must be integer(1L) and not NA, an object produced by `auto_context`, or "auto".
231s >
231s >
231s >
231s PASS
231s Begin testing test-context.R
231s
231s R version 4.4.3 (2025-02-28) -- "Trophy Case"
231s Copyright (C) 2025 The R Foundation for Statistical Computing
231s Platform: s390x-ibm-linux-gnu
231s
231s R is free software and comes with ABSOLUTELY NO WARRANTY.
231s You are welcome to redistribute it under certain conditions.
231s Type 'license()' or 'licence()' for distribution details.
231s
231s R is a collaborative project with many contributors.
231s Type 'contributors()' for more information and
231s 'citation()' on how to cite R or R packages in publications.
231s
231s Type 'demo()' for some demos, 'help()' for on-line help, or
231s 'help.start()' for an HTML browser interface to help.
231s Type 'q()' to quit R.
231s
231s > NAME <- "context"
231s > source(file.path('_helper', 'init.R'))
231s >
231s > # - interesting context values -------------------------------------------------
231s >
231s > all.equal(
231s + as.character(diffChr(chr.9, chr.10, context=0)),
231s + rdsf(100)
231s + )
231s [1] TRUE
231s > all.equal(
231s + as.character(diffChr(chr.9, chr.10, context=-1L)),
231s + rdsf(150)
231s + )
231s [1] TRUE
231s > all.equal(
231s + as.character(diffChr(chr.9, chr.10, context="auto")),
231s + rdsf(200)
231s + )
231s [1] TRUE
231s > all.equal(
231s + as.character(diffChr(chr.9, chr.10, context=0, mode="context")), rdsf(300)
231s + )
232s [1] TRUE
232s > # - with line limit ------------------------------------------------------------
232s >
232s > all.equal(
232s + as.character(diffChr(chr.9, chr.10, context="auto", line.limit=18)),
232s + rdsf(400)
232s + )
232s [1] TRUE
232s > all.equal(
232s + as.character(diffChr(chr.9, chr.10, context="auto", line.limit=25)),
232s + rdsf(500)
232s + )
232s [1] TRUE
232s > # default to min context
232s >
232s > a <- b <- letters
232s > b[c(3, 20)] <- LETTERS[c(3,20)]
232s > all.equal(
232s + capture.output(
232s + show(diffChr(a, b, line.limit=c(20, 10), context='auto', format='raw'))
232s + ),
232s + txtf(100)
232s + )
232s [1] TRUE
232s > # trim hunks in auto-context mode
232s >
232s > a <- b <- letters
232s > b[c(3, 10, 20)] <- LETTERS[c(3,10,20)]
232s > all.equal(
232s + capture.output(show(
232s + diffChr(
232s + a, b, hunk.limit=c(2, 1), context=auto_context(1, 5), line.limit=20,
232s + format='raw'
232s + )
232s + )),
232s + txtf(200)
232s + )
232s [1] TRUE
232s > # - error handling -------------------------------------------------------------
232s >
232s > try(auto_context(min=-1, max=1:3)) # "`min` must be"
232s Error in auto_context(min = -1, max = 1:3) :
232s Argument `min` must be integer(1L) and greater than zero
232s > try(auto_context(min=1, max=1:3)) # "`max` must be"
232s Error in auto_context(min = 1, max = 1:3) :
232s Argument `max` must be integer(1L) and not NA
232s >
232s >
232s PASS
232s Begin testing test-core.R
232s
232s R version 4.4.3 (2025-02-28) -- "Trophy Case"
232s Copyright (C) 2025 The R Foundation for Statistical Computing
232s Platform: s390x-ibm-linux-gnu
232s
232s R is free software and comes with ABSOLUTELY NO WARRANTY.
232s You are welcome to redistribute it under certain conditions.
232s Type 'license()' or 'licence()' for distribution details.
232s
232s R is a collaborative project with many contributors.
232s Type 'contributors()' for more information and
232s 'citation()' on how to cite R or R packages in publications.
232s
232s Type 'demo()' for some demos, 'help()' for on-line help, or
232s 'help.start()' for an HTML browser interface to help.
232s Type 'q()' to quit R.
232s
232s > NAME <- "core"
232s > source(file.path('_helper', 'init.R'))
232s >
232s > # The Myers paper strings
232s >
232s > A <- c("a", "b", "c", "a", "b", "b", "a")
232s > B <- c("c", "b", "a", "b", "a", "c")
232s >
232s > # - diff myers simple ----------------------------------------------------------
232s >
232s > identical(
232s + diffobj:::myers_simple(character(), character()),
232s + list(target = integer(0), current = integer(0))
232s + )
232s [1] TRUE
232s > identical(
232s + diffobj:::myers_simple("a", character()),
232s + list(target = NA_integer_, current = integer(0))
232s + )
232s [1] TRUE
232s > identical(
232s + diffobj:::myers_simple(character(), "a"),
232s + list(target = integer(0), current = NA_integer_)
232s + )
232s [1] TRUE
232s > identical(
232s + diffobj:::myers_simple("a", "a"), list(target = 0L, current = 0L)
232s + )
232s [1] TRUE
232s > identical(
232s + diffobj:::myers_simple("a", "b"),
232s + list(target = 1L, current = 1L)
232s + )
232s [1] TRUE
232s > identical(
232s + diffobj:::myers_simple(c("a", "b"), "b"),
232s + list(target = c(NA, 0L), current = 0L)
232s + )
232s [1] TRUE
232s > identical(
232s + diffobj:::myers_simple(c("a", "b"), "a"),
232s + list(target = c(0L, NA), current = 0L)
232s + )
232s [1] TRUE
232s > identical(
232s + diffobj:::myers_simple("a", c("a", "b")),
232s + list(target = 0L, current = c(0L, NA))
232s + )
232s [1] TRUE
232s > identical(
232s + diffobj:::myers_simple("b", c("a", "b")),
232s + list(target = 0L, current = c(NA, 0L))
232s + )
232s [1] TRUE
232s > identical(
232s + diffobj:::myers_simple(c("a", "b"), c("b", "c")),
232s + list(target = c(NA, 0L), current = c(0L, NA))
232s + )
232s [1] TRUE
232s > identical(
232s + diffobj:::myers_simple(c("a", "b", "c", "d"), c("a", "c", "d", "b")),
232s + list(target = c(0L, NA, 0L, 0L), current = c(0L, 0L, 0L, NA))
232s + )
232s [1] TRUE
232s > # Actual Myers sample string
232s > identical(
232s + diffobj:::myers_simple(A, B),
232s + list(target = c(NA, NA, 0L, 0L, 0L, NA, 0L), current = c(0L, NA, 0L, 0L, 0L, NA))
232s + )
232s [1] TRUE
232s > # - diff myers mba -------------------------------------------------------------
232s >
232s > identical(ses(character(), character()), character())
232s [1] TRUE
232s > identical(ses("a", character()), "1d0")
232s [1] TRUE
232s > identical(ses(character(), "a"), "0a1")
232s [1] TRUE
232s > identical(ses("a", "a"), character())
232s [1] TRUE
232s > identical(ses("a", "b"), "1c1")
232s [1] TRUE
232s > identical(ses(c("a", "b"), "b"), "1d0")
232s [1] TRUE
232s > identical(ses(c("a", "b"), "a"), "2d1")
232s [1] TRUE
232s > identical(ses("a", c("a", "b")), "1a2")
232s [1] TRUE
232s > identical(ses("b", c("a", "b")), "0a1")
232s [1] TRUE
232s > identical(ses(c("a", "b"), c("b", "c")), c("1d0", "2a2"))
232s [1] TRUE
232s > identical(
232s + ses(c("a", "b", "c", "d"), c("a", "c", "d", "b")), c("2d1", "4a4")
232s + )
232s [1] TRUE
232s > # Actual Myers sample string
232s > identical(ses(A, B), c("1,2d0", "4d1", "5a3", "7a6"))
232s [1] TRUE
232s > # This used to cause errors due to under-allocated buffer vector
232s > identical(ses(letters[1:10], LETTERS[1:2]), "1,10c1,2")
232s [1] TRUE
232s >
232s > # A little more complex with changes, this was a problem at some point
232s >
232s > A2 <- c("A", "B", "C")
232s > B2 <- c("X", "A", "Y", "C")
232s > identical(ses(A2, B2), c("0a1", "2c3"))
232s [1] TRUE
232s >
232s > # More complicated strings; intended for use with contexts for hunks,
232s > # but making sure the diffs are correct
232s >
232s > A1 <- c("A", "AA", "B", "C", "D", "E", "F", "G", "H")
232s > B1 <- c("A", "B", "X", "W", "D", "DD", "E", "Y", "Z")
232s > C1 <- c("X", "D", "E", "Y", "Z", "H")
232s >
232s > identical(ses(A1, B1), c("2d1", "4c3,4", "5a6", "7,9c8,9"))
232s [1] TRUE
232s > identical(ses(A1, C1), c("1,4c1", "7,8c4,5"))
232s [1] TRUE
232s >
232s > A5 <- c("A", "AA", "B", "C", "D", "E", "F", "G", "H")
232s > B5 <- c("A", "B", "X", "W", "D", "E", "F", "W", "G")
232s > identical(ses(A5, B5), c("2d1", "4c3,4", "7a8", "9d9"))
232s [1] TRUE
232s >
232s > # NAs treated as strings
232s >
232s > identical(ses(c(NA, "a", "b"), c("a", "b", NA)), c("1d0", "3a3"))
232s [1] TRUE
232s >
232s > # Coersion to character
232s >
232s > identical(ses(1:5, 4:6), c("1,3d0", "5a3"))
232s [1] TRUE
232s >
232s > # - print/summary --------------------------------------------------------------
232s > capture.output(
232s + res.1 <- summary(diffobj:::diff_myers(A, B), with.match=TRUE)
232s + )
232s [1] " type string len offset" "1 Delete ab 2 1"
232s [3] "2 Match c 1 3" "3 Delete a 1 4"
232s [5] "4 Match b 1 5" "5 Insert a 1 3"
232s [7] "6 Match ba 2 6" "7 Insert c 1 6"
232s > identical(
232s + res.1,
232s + structure(list(type = structure(c(3L, 1L, 3L, 1L, 2L, 1L, 2L), .Label = c("Match",
232s + "Insert", "Delete"), class = "factor"), string = c("ab", "c",
232s + "a", "b", "a", "ba", "c"), len = c(2L, 1L, 1L, 1L, 1L, 2L, 1L
232s + ), offset = c(1L, 3L, 4L, 5L, 3L, 6L, 6L)), class = "data.frame", row.names = c(NA,
232s + -7L))
232s + )
232s [1] TRUE
232s > capture.output(
232s + res.2 <- summary(diffobj:::diff_myers(A, B), with.match=FALSE)
232s + )
232s [1] " type len offset" "1 Delete 2 1" "2 Match 1 3"
232s [4] "3 Delete 1 4" "4 Match 1 5" "5 Insert 1 3"
232s [7] "6 Match 2 6" "7 Insert 1 6"
232s > identical(
232s + res.2,
232s + structure(list(type = structure(c(3L, 1L, 3L, 1L, 2L, 1L, 2L), .Label = c("Match", "Insert", "Delete"), class = "factor"), len = c(2L, 1L, 1L, 1L, 1L, 2L, 1L), offset = c(1L, 3L, 4L, 5L, 3L, 6L, 6L)), .Names = c("type", "len", "offset"), row.names = c(NA, -7L), class = "data.frame")
232s + )
232s [1] TRUE
232s > identical(
232s + capture.output(print(diffobj:::diff_myers(A, B))), ses(A, B)
232s + )
232s [1] TRUE
232s > # # - translate
232s > # aa <- c("a", "b", "b", "c", "e")
232s > # bb <- c("x", "y", "c", "f", "e")
232s > # identical(
232s > # diffobj:::diffObjCompact(diffobj:::diff_myers(A, B)),
232s > # list(target = c(NA, NA, 0L, NA, 0L, 0L, 0L), current = c(0L, 0L, NA, 0L, 0L, NA))
232s > # )
232s > # identical(
232s > # diffobj:::diffObjCompact(diffobj:::diff_myers(aa, bb)),
232s > # list(target = c(1L, 2L, NA, 0L, 0L), current = c(1L, 2L, 0L, NA, 0L))
232s > # )
232s > #
232s > # } )
232s >
232s PASS
232s Begin testing test-diffChr.R
232s
232s R version 4.4.3 (2025-02-28) -- "Trophy Case"
232s Copyright (C) 2025 The R Foundation for Statistical Computing
232s Platform: s390x-ibm-linux-gnu
232s
232s R is free software and comes with ABSOLUTELY NO WARRANTY.
232s You are welcome to redistribute it under certain conditions.
232s Type 'license()' or 'licence()' for distribution details.
232s
232s R is a collaborative project with many contributors.
232s Type 'contributors()' for more information and
232s 'citation()' on how to cite R or R packages in publications.
232s
232s Type 'demo()' for some demos, 'help()' for on-line help, or
232s 'help.start()' for an HTML browser interface to help.
232s Type 'q()' to quit R.
232s
232s > NAME <- "diffChr"
232s > source(file.path('_helper', 'init.R'))
232s >
232s > # - Corner Cases ---------------------------------------------------------------
232s >
232s > # Corner cases from https://neil.fraser.name/writing/diff/
232s > # Both of these appear handled correctly by the algorithm here
232s > # first one: suboptimal edit script due to two sided approach
232s >
232s > A1 <- c("X", "A", "X", "C", "X", "A", "B", "C")
232s > B1 <- c("A", "B", "C", "Y")
232s > all.equal(as.character(diffChr(A1, B1)), rdsf(100))
233s [1] TRUE
233s >
233s > # second one: failure to find intersection at ends of paths (paths run into
233s > # each other eventually)
233s >
233s > A2 <- c("A", "B", "X", "A", "B")
233s > B2 <- c("A", "Y", "B")
233s > all.equal(as.character(diffChr(A2, B2)), rdsf(200))
233s [1] TRUE
233s >
233s > # Simple corner cases
233s >
233s > all.equal(
233s + as.character(diffChr(character(), character())), rdsf(225)
233s + )
233s [1] TRUE
233s > all.equal(as.character(diffChr("", "")), rdsf(250))
233s [1] TRUE
233s >
233s > # - Larger strings -------------------------------------------------------------
233s >
233s > # diffChr(X[1:2000], X[2001:4000])
233s >
233s > all.equal(as.character(diffChr(chr.7, chr.8)), rdsf(300))
233s [1] TRUE
233s >
233s > # Too slow to run; useful for benchmarking though
233s >
233s > # X1 <- X[1:2e4]
233s > # X2 <- X1[-sample(seq_along(X1), 2e3)]
233s > # X2[sample(seq_along(X2), 4e3)] <- "XXXXXX"
233s > # res <- diffChr(X1, X2)
233s > # res <- diffChr(X[1:10000], X[7500:17500])
233s > # res <- ses(X[1:10000], X[7500:17500])
233s > # res <- diffChr(X[1:25000], X[10001:50000], max.diffs=65000)
233s >
233s > # - Sentences
233s > chr.5 <- c(
233s + "hello there how are you doing",
233s + "humpty dumpty took a big fall",
233s + "lorem ipsum dolor sic est boom",
233s + "a computer once wrote a phrase"
233s + )
233s > chr.6 <- c(
233s + "hello THERE how are you doing",
233s + "and another SENTENCE blah blah",
233s + "humpty dumpty TOOK a big fall",
233s + "a COMPUTER once wrote a phrase"
233s + )
233s > all.equal(as.character(diffChr(chr.5, chr.6)), rdsf(400))
233s [1] TRUE
233s > all.equal(
233s + as.character(diffChr(chr.5, chr.6, mode="unified")), rdsf(500)
233s + )
233s [1] TRUE
233s > all.equal(
233s + as.character(diffChr(chr.5, chr.6, mode="context")), rdsf(600)
233s + )
233s [1] TRUE
233s > # - Whitespace -----------------------------------------------------------------
233s >
233s > all.equal(
233s + as.character(diffChr(c("a", "b", "c"), c("a ", "b", "c"))), rdsf(800)
233s + )
233s [1] TRUE
233s > all.equal(
233s + as.character(
233s + diffChr(c("a", "b", "c"), c("a ", "b", "c"), ignore.white.space=FALSE)
233s + ),
233s + rdsf(900)
233s + )
233s [1] TRUE
233s > # New lines count as new elements
233s > all.equal(
233s + as.character(diffChr("woo\nhoo\nfoo", c("woo", "foo"))), rdsf(1000)
233s + )
233s [1] TRUE
233s > all.equal(
233s + capture.output(diffChr("hello . world", "hello. world", format='raw')),
233s + txtf(100)
233s + )
233s [1] TRUE
233s > # - SGR ------------------------------------------------------------------------
233s >
233s > a <- c("hello \033[31mworld\033[m", "umbrellas", "tomatoes")
233s > b <- c("hello world", "umbrellas", "tomatoes")
233s >
233s > local({
233s + old.opt <- options(diffobj.sgr.supported=TRUE)
233s + on.exit(options(old.opt))
233s + diff <- diffChr(a, b) # warn: 'contained ANSI CSI SGR'
233s + try(diffChr(a, b, strip.sgr=1:3)) # "TRUE, FALSE, or NULL"
233s + try(diffChr(a, b, sgr.supported=1:3)) # "TRUE, FALSE, or NULL"
233s +
233s + c(
233s + all.equal(capture.output(show(diff)), txtf(200)),
233s + all.equal(capture.output(show(diffChr(a, b, strip.sgr=FALSE))), txtf(300)),
233s + all.equal(capture.output(show(diffChr(a, b, format='raw'))), txtf(400))
233s + )
233s + })
233s Error in diffChr(target = a, current = b, strip.sgr = 1:3) :
233s Argument `strip.sgr` must be TRUE, FALSE, or NULL
233s In addition: Warning message:
233s In diffChr(target = a, current = b) :
233s `target` or `current` contained ANSI CSI SGR when rendered; these were stripped. Use `strip.sgr=FALSE` to preserve them in the diffs.
233s Error in diffChr(target = a, current = b, sgr.supported = 1:3) :
233s Argument `sgr.supported` must be TRUE, FALSE, or NULL
233s [1] TRUE TRUE TRUE
233s > # - Alignment ------------------------------------------------------------------
233s >
233s > chr.7 <- c("a b c d e", "F G h i j k", "xxx", "yyy", "k l m n o")
233s > chr.8 <- c("f g h i j k", "hello", "goodbye", "yo", "k l m n o")
233s >
233s > all.equal(as.character(diffChr(chr.7, chr.8)), rdsf(1100))
233s [1] TRUE
233s > all.equal(
233s + as.character(diffChr(chr.7, chr.8, align=4/6)), rdsf(1100) # same as above
233s + )
233s [1] TRUE
233s > # No longer aligns
233s > all.equal(
233s + as.character(diffChr(chr.7, chr.8, align=4.01/6)), rdsf(1200)
233s + )
233s [1] TRUE
233s > all.equal(
233s + as.character(diffChr(chr.7, chr.8, align=AlignThreshold(min.chars=4))),
233s + rdsf(1100) # same as earlier
233s + )
233s [1] TRUE
233s > all.equal(
233s + as.character(diffChr(chr.7, chr.8, align=AlignThreshold(min.chars=5))),
233s + rdsf(1200) # same as above
233s + )
233s [1] TRUE
233s >
233s > ## Normally this would not align, but we allow symbols to count towards
233s > ## alignment
233s > chr.7a <- c("a b c e", "d [ f g")
233s > chr.7b <- "D [ f g"
233s > a1 <- AlignThreshold(threshold=0, min.chars=2, count.alnum.only=FALSE)
233s > all.equal(
233s + as.character(diffChr(chr.7a, chr.7b, align=a1, format='raw')),
233s + structure(
233s + c("< chr.7a > chr.7b ", "@@ 1,2 @@ @@ 1 @@ ",
233s + "< a b c e ~ ", "< d [ f g > D [ f g "), len = 4L)
233s + )
233s [1] TRUE
233s > # corner case where alignment alog exits early because it runs out of B values
233s > # to match A values to.
233s >
233s > b <- c('a b c e', 'x w z f', 'e f g h')
233s > a <- c('z o o o', 'p o o o', 'A b c e')
233s > al <- AlignThreshold(threshold=0, min.chars=0)
233s > all.equal(
233s + capture.output(show(diffChr(b, a, align=al, format='raw'))), txtf(500)
233s + )
233s [1] TRUE
233s > # - NAs ------------------------------------------------------------------------
233s >
233s > all.equal(
233s + as.character(
233s + diffChr(c(NA, letters[1:3]), c(letters[1:3], LETTERS[1:2], NA))
233s + ),
233s + rdsf(1300)
233s + )
233s [1] TRUE
233s > all.equal(
233s + as.character(
233s + diffChr(c(letters[1:3]), c(letters[1:3], LETTERS[1:2], NA))
233s + ),
233s + rdsf(1400)
233s + )
233s [1] TRUE
233s > all.equal(
233s + as.character(
233s + diffChr(c(NA, letters[1:3]), c(letters[1:3], LETTERS[1:2]))
233s + ),
233s + rdsf(1500)
233s + )
233s [1] TRUE
233s > # - Nested dots issue 134, h/t Noam Ross ---------------------------------------
233s >
233s > fn <- function(target, current, ...) {
233s + diffChr(target, current, ...)
233s + }
233s > all.equal(
233s + as.character(fn("a", "b", format = "raw")),
233s + structure(
233s + c(
233s + "< target > current ",
233s + "@@ 1 @@ @@ 1 @@ ",
233s + "< a > b "), len = 3L
233s + )
233s + )
233s [1] TRUE
233s >
233s > # - Newlines in input, issue 135, h/t Flying Sheep -----------------------------
233s >
233s > a <- 'A Time Series:\n[1] 1 2 3 4'
233s > b <- 'A Time Series:\n[1] 9 4 1 4'
233s > all.equal(
233s + c(as.character(diffobj::diffChr(a, b, format = 'raw'))),
233s + c("< a > b ",
233s + "@@ 1,2 @@ @@ 1,2 @@ ",
233s + " A Time Series: A Time Series:",
233s + "< [1] 1 2 3 4 > [1] 9 4 1 4 ")
233s + )
233s [1] TRUE
233s >
233s > # - Attributes causing dispatch in guides, issue 142 ---------------------------
233s >
233s > zlold <- c("0x0000, 0x001F", "0x007F, 0x009F", "0x0300, 0x036F")
233s > zlnew <- structure(
233s + c("0x0000, 0x001F", "0x008F, 0x009F", "0x0300, 0x036F"), .Dim = 3L
233s + )
233s > diffChr(zlold, zlnew) # no warning
233s [33m<[39m [33mzlold[39m [34m>[39m [34mzlnew[39m
233s [36m@@ 1,3 @@ [39m [36m@@ 1,3 @@ [39m
233s [90m[39m0x0000, 0x001F[90m[39m [90m[39m0x0000, 0x001F[90m[39m
233s [33m<[39m [90m[39m[33m0x007F,[39m 0x009F[90m[39m [34m>[39m [90m[39m[34m0x008F,[39m 0x009F[90m[39m
233s [90m[39m0x0300, 0x036F[90m[39m [90m[39m0x0300, 0x036F[90m[39m
233s >
233s > # - do.call, issue 158 ---------------------------------------------------------
233s >
233s > do.call(diffChr, list(1:2, 3:4, format='raw'))
233s < 1:2 > 3:4
233s @@ 1,2 @@ @@ 1,2 @@
233s < 1 > 3
233s < 2 > 4
233s >
233s >
233s PASS
233s Begin testing test-diffDeparse.R
233s
233s R version 4.4.3 (2025-02-28) -- "Trophy Case"
233s Copyright (C) 2025 The R Foundation for Statistical Computing
233s Platform: s390x-ibm-linux-gnu
233s
233s R is free software and comes with ABSOLUTELY NO WARRANTY.
233s You are welcome to redistribute it under certain conditions.
233s Type 'license()' or 'licence()' for distribution details.
233s
233s R is a collaborative project with many contributors.
233s Type 'contributors()' for more information and
233s 'citation()' on how to cite R or R packages in publications.
233s
233s Type 'demo()' for some demos, 'help()' for on-line help, or
233s 'help.start()' for an HTML browser interface to help.
233s Type 'q()' to quit R.
233s
233s > NAME <- "diffDeparse"
233s > source(file.path('_helper', 'init.R'))
234s >
234s > # - deparse --------------------------------------------------------------------
234s >
234s > # First one will be done in unified mode since `deparse` disregards
234s > # option(width=), second will be done side by side
234s >
234s > all.equal(as.character(diffDeparse(letters, LETTERS)), rdsf(100))
234s [1] TRUE
234s > all.equal(
234s + as.character(
234s + diffDeparse(letters, LETTERS, extra=list(width.cutoff=20))
234s + ),
234s + rdsf(200)
234s + )
234s [1] TRUE
234s >
234s PASS
234s Begin testing test-diffObj.R
234s
234s R version 4.4.3 (2025-02-28) -- "Trophy Case"
234s Copyright (C) 2025 The R Foundation for Statistical Computing
234s Platform: s390x-ibm-linux-gnu
234s
234s R is free software and comes with ABSOLUTELY NO WARRANTY.
234s You are welcome to redistribute it under certain conditions.
234s Type 'license()' or 'licence()' for distribution details.
234s
234s R is a collaborative project with many contributors.
234s Type 'contributors()' for more information and
234s 'citation()' on how to cite R or R packages in publications.
234s
234s Type 'demo()' for some demos, 'help()' for on-line help, or
234s 'help.start()' for an HTML browser interface to help.
234s Type 'q()' to quit R.
234s
234s > NAME <- "diffObj"
234s > source(file.path('_helper', 'init.R'))
234s >
234s > # - simple diffobj -------------------------------------------------------------
234s >
234s > # no diff for print
234s > all.equal(as.character(diffObj(iris.s, iris.c)), rdsf(100))
234s [1] TRUE
234s > # no diff for str
234s > all.equal(
234s + as.character(diffObj(1:100, c(1:99, 200L))), rdsf(200)
234s + )
234s [1] TRUE
234s > # diffs for both and must pick one, first one is str, second is print
234s > all.equal(
234s + as.character(diffObj(mdl1[7], mdl2[7])), rdsf(300)
234s + )
234s [1] TRUE
234s > all.equal(as.character(diffObj(mdl1, mdl2)), rdsf(400))
235s [1] TRUE
235s >
235s > # - fits or doesn't ------------------------------------------------------------
235s >
235s > # Note, the first test used to favor str until we handicapped print
235s > all.equal(
235s + diffObj(matrix(1:20, ncol=2), matrix(2:21, ncol=2), line.limit=5)@capt.mode,
235s + "str"
235s + )
235s [1] TRUE
235s > # test kinda slow, would be better to have one with smaller objects with print
235s > # methods
235s >
235s > all.equal(
235s + diffObj(mdl1, mdl2, line.limit=15, mode='unified')@capt.mode, "print"
235s + )
235s [1] TRUE
235s > all.equal(diffObj(1:1000, 1000:1, line.limit=5)@capt.mode, "str")
235s [1] TRUE
235s >
235s > # - misc -----------------------------------------------------------------------
235s >
235s > try(diffObj(1, 2, extra=list(TRUE))) # "extra"
235s Error in .local(target, current, ...) :
235s Argument `extra` must be empty in `diffObj`.
235s >
235s > # - print error ----------------------------------------------------------------
235s >
235s > x <- structure("hello", class="diffobj_ogewlhgiadfl")
235s > y <- structure("goodbye", class="diffobj_ogewlhgiadfl")
235s > try(diffObj(x, y)) # "Error in calling .diffPrint."
235s Error in print.diffobj_ogewlhgiadfl(structure("goodbye", class = "diffobj_ogewlhgiadfl")) :
235s failure
235s Error in diffObj(target = x, current = y) :
235s Error in calling `diffPrint`: Failed attempting to get text representation of object: failure
235s >
235s > # Random exmaples to think through `diffObj` output
235s >
235s > diffObj(
235s + pairlist("`logical(2L)` should be length 2 (is 3)"),
235s + pairlist("be length 2 (is 3)")
235s + )
235s [33m<[39m [33mpairlist("`logical(2L)` should be l..[39m [34m>[39m [34mpairlist("be length 2 (is 3)")[39m
235s [36m@@ 1,3 @@ [39m [36m@@ 1,3 @@ [39m
235s [90m[39m[[1]][90m[39m [90m[39m[[1]][90m[39m
235s [33m<[39m [90m[1] [39m[33m"`logical(2L)` should be length 2[39m[90m[39m [34m>[39m [90m[1] [39m[34m"be length 2 (is 3)"[39m[90m[39m
235s [33m:[39m [90m[39m[33m (is 3)"[39m[90m[39m [90m~[39m
235s
235s >
235s > diffObj(
235s + pairlist("`matrix(integer(), nrow = 3)` should be matrix (is list)", "`list(character(1L), 1L)[[2]]` should be type \"integer-like\" (is \"character\")"),
235s + pairlist("be class \"matrix\" (is \"list\")", "be type \"integer-like\" (is \"character\") at index [[2]]")
235s + )
235s [33m<[39m [33mpairlist("`matrix(integer(), nrow =..[39m [34m>[39m [34mpairlist("be class \"matrix\" (is \..[39m
235s [36m@@ 1,6 @@ [39m [36m@@ 1,6 @@ [39m
235s [90m[39m[[1]][90m[39m [90m[39m[[1]][90m[39m
235s [33m<[39m [90m[1] [39m[33m"`matrix(integer(), nrow = 3)` sh[39m[90m[39m [34m>[39m [90m[1] [39m[34m"be class \"matrix\"[39m [34m(is[39m [34m\[39m[34m"[39m[34mlist[39m[34m\[39m[34m"[39m[34m[39m[34m[39m[90m[39m
235s [33m:[39m [90m[39m[33mould be matrix (is list)"[39m[90m[39m [34m:[39m [90m[39m[34m[39m[34m[39m[34m[39m[34m[39m[34m[39m[34m[39m[34m[39m[34m)[39m[34m"[39m[90m[39m
235s
235s [90m[39m[[2]][90m[39m [90m[39m[[2]][90m[39m
235s [33m<[39m [90m[1] [39m[33m"`list(character(1L), 1L)[[2]]` s[39m[90m[39m [34m>[39m [90m[1] [39m[34m"be type \"integer-like\"[39m (is \"c[34m[39m[34m[39m[34m[39m[90m[39m
235s [33m:[39m [90m[39m[33mhould be type \"integer-like\"[39m (is \"[90m[39m [34m:[39m [90m[39m[34m[39mharacter\") [34mat[39m [34mindex[39m [34m[[2]][39m"[90m[39m
235s [33m:[39m [90m[39m[33m[39mcharacter\")"[90m[39m [90m~[39m
235s
235s >
235s PASS
235s Begin testing test-diffStr.R
235s
235s R version 4.4.3 (2025-02-28) -- "Trophy Case"
235s Copyright (C) 2025 The R Foundation for Statistical Computing
235s Platform: s390x-ibm-linux-gnu
235s
235s R is free software and comes with ABSOLUTELY NO WARRANTY.
235s You are welcome to redistribute it under certain conditions.
235s Type 'license()' or 'licence()' for distribution details.
235s
235s R is a collaborative project with many contributors.
235s Type 'contributors()' for more information and
235s 'citation()' on how to cite R or R packages in publications.
235s
235s Type 'demo()' for some demos, 'help()' for on-line help, or
235s 'help.start()' for an HTML browser interface to help.
235s Type 'q()' to quit R.
235s
235s > NAME <- "diffStr"
235s > source(file.path('_helper', 'init.R'))
235s >
235s > # - lm models ------------------------------------------------------------------
235s >
235s > # formula display changed
235s > if(
235s + R.Version()$major >= 3 && R.Version()$minor >= "3.1" || R.Version()$major > 3
235s + )
235s + all.equal(as.character(diffStr(mdl1, mdl2)), rdsf(100))
236s [1] TRUE
236s >
236s > # Too strict a line limit, can't get under
236s > all.equal(
236s + as.character(diffStr(mdl1[7], mdl2[7], line.limit=10)), rdsf(200)
236s + )
236s [1] TRUE
236s > # Now we can get under
236s > all.equal(
236s + as.character(diffStr(mdl1[7], mdl2[7], line.limit=15)), rdsf(300)
236s + )
236s [1] TRUE
236s >
236s > # - Simple structure -----------------------------------------------------------
236s > #
236s > # Character types
236s >
236s > all.equal(as.character(diffStr(iris.c, iris.s)), rdsf(400))
236s [1] TRUE
236s >
236s > # - Strict width ---------------------------------------------------------------
236s > # formula display changed
236s > if(
236s + R.Version()$major >= 3 && R.Version()$minor >= "3.1" || R.Version()$major > 3
236s + ) {
236s + c(
236s + all.equal(
236s + as.character(
236s + diffStr(mdl1, mdl2, extra=list(strict.width="wrap"), line.limit=30)
236s + ),
236s + rdsf(500)
236s + ),
236s + all.equal(
236s + as.character(
236s + diffStr(mdl1, mdl2, extra=list(strict.width="cut"), line.limit=30)
236s + ),
236s + rdsf(550)
236s + ) )
236s + }
237s [1] TRUE TRUE
237s > # - max.diffs ------------------------------------------------------------------
237s >
237s > invisible(diffStr(iris, mtcars, max.diffs=2)) # warn: "Exceeded diff limit"
237s Warning message:
237s Exceeded diff limit during diff computation (18 vs. 2 allowed); overall diff is likely not optimal
237s >
237s > # - max.level ------------------------------------------------------------------
237s >
237s > all.equal(
237s + as.character(diffStr(mdl1[7], mdl2[7], extra=list(max.level="auto"))),
237s + rdsf(600)
237s + )
237s [1] TRUE
237s > all.equal(
237s + as.character(diffStr(mdl1[7], mdl2[7], extra=list(max.level=2))),
237s + rdsf(700)
237s + )
237s [1] TRUE
237s > # Has a difference, but can't get under; the second is just for reference
237s >
237s > lst.1 <- lst.2 <- lst.3 <- list(a=list(b=list(c=list(d=list(e=list(25))))))
237s > names(lst.2) <- "A"
237s >
237s > all.equal(
237s + as.character(diffStr(lst.1, lst.2, line.limit=2)), rdsf(800)
237s + )
237s [1] TRUE
237s > all.equal(
237s + as.character(diffStr(lst.1, lst.2, line.limit=2)), rdsf(900)
237s + )
237s [1] TRUE
237s > # Test that initial run shows difference, but too big, but next one down
237s > # doesn't so have to increase level
237s >
237s > names(lst.3$a$b$c$d) <- "E"
237s > all.equal(
237s + as.character(diffStr(lst.1, lst.3, line.limit=6)), rdsf(1000)
237s + )
237s [1] TRUE
237s >
237s > # - No visible differences -----------------------------------------------------
237s >
237s > all.equal(
237s + as.character(diffStr(1:100, c(1:99, 101L))), rdsf(1100)
237s + )
237s [1] TRUE
237s >
237s > # - Quoted Objects -------------------------------------------------------------
237s >
237s > all.equal(
237s + as.character(diffStr(quote(zz + 1), quote(zz + 3))),
237s + structure(
237s + c("\033[33m<\033[39m \033[33mstr(quote(zz +..\033[39m \033[34m>\033[39m \033[34mstr(quote(zz +..\033[39m", "\033[36m@@ 1 @@ \033[39m \033[36m@@ 1 @@ \033[39m", "\033[33m<\033[39m \033[90m\033[39m language zz + \033[33m1\033[39m\033[90m\033[39m \033[34m>\033[39m \033[90m\033[39m language zz + \033[34m3\033[39m\033[90m\033[39m"
237s + ), len = 3L
237s + ) )
237s [1] TRUE
237s >
237s > all.equal(
237s + as.character(diffStr(quote(x), quote(y))),
237s + structure(c("\033[33m<\033[39m \033[33mstr(quo..\033[39m \033[34m>\033[39m \033[34mstr(quo..\033[39m", "\033[36m@@ 1 @@ \033[39m \033[36m@@ 1 @@ \033[39m", "\033[33m<\033[39m \033[90m\033[39m symbol \033[33mx\033[39m\033[90m\033[39m \033[34m>\033[39m \033[90m\033[39m symbol \033[34my\033[39m\033[90m\033[39m"), len = 3L)
237s + )
237s [1] TRUE
237s >
237s > # - Spaces with punctuation ----------------------------------------------------
237s >
237s > all.equal(
237s + capture.output(show(diffStr(list(a=1), list(a=1, cabera=3), format='raw'))),
237s + txtf(100)
237s + )
237s [1] TRUE
237s >
237s >
237s PASS
237s Begin testing test-file.R
237s
237s R version 4.4.3 (2025-02-28) -- "Trophy Case"
237s Copyright (C) 2025 The R Foundation for Statistical Computing
237s Platform: s390x-ibm-linux-gnu
237s
237s R is free software and comes with ABSOLUTELY NO WARRANTY.
237s You are welcome to redistribute it under certain conditions.
237s Type 'license()' or 'licence()' for distribution details.
237s
237s R is a collaborative project with many contributors.
237s Type 'contributors()' for more information and
237s 'citation()' on how to cite R or R packages in publications.
237s
237s Type 'demo()' for some demos, 'help()' for on-line help, or
237s 'help.start()' for an HTML browser interface to help.
237s Type 'q()' to quit R.
237s
237s > NAME <- "diffFile"
237s > source(file.path('_helper', 'init.R'))
237s >
237s > # - Code File ------------------------------------------------------------------
237s >
237s > # # compare two crayon file versions
237s > # # These should eventually just be downloaded and made into diffFile tests
237s >
237s > f.p.1 <- file.path("_helper", "objs", "diffFile", "s.o.3f1f68.R")
237s > f.p.2 <- file.path("_helper", "objs", "diffFile", "s.o.30dbe0.R")
237s >
237s > # url.1 <- "https://raw.githubusercontent.com/gaborcsardi/crayon/3f1f68ab177b82a27e754a58264af801f7194820/R/string_operations.r"
237s > # url.2 <- "https://raw.githubusercontent.com/gaborcsardi/crayon/30dbe0d4d92157350af3cb3aeebd6d9a9cdf5c0e/R/string_operations.r"
237s > # f.1 <- readLines(url.1)
237s > # f.2 <- readLines(url.2)
237s > # writeLines(f.1, f.p.1)
237s > # writeLines(f.2, f.p.2)
237s >
237s > all.equal(as.character(diffFile(f.p.1, f.p.2)), rdsf(100))
237s [1] TRUE
237s >
237s > # - RDS ------------------------------------------------------------------------
237s >
237s > f1 <- tempfile()
237s > f2 <- tempfile()
237s >
237s > mx1 <- mx2 <- matrix(1:9, 3)
237s > mx2[5] <- 99
237s > saveRDS(mx1, f1)
237s > saveRDS(mx2, f2)
237s >
237s > is(diffobj:::get_rds(f1), "matrix")
237s [1] TRUE
237s > is(diffobj:::get_rds(f2), "matrix")
237s [1] TRUE
237s >
237s > ref <- as.character(diffPrint(mx1, mx2))
237s > identical(as.character(diffPrint(mx1, f2, cur.banner="mx2")), ref)
237s [1] TRUE
237s > identical(as.character(diffPrint(f1, mx2, tar.banner="mx1")), ref)
237s [1] TRUE
237s > identical(
237s + as.character(diffPrint(f1, f2, tar.banner="mx1", cur.banner="mx2")), ref
237s + )
237s [1] TRUE
237s > isTRUE(!identical(as.character(diffPrint(mx1, f2, rds=FALSE)), ref))
237s [1] TRUE
237s > unlink(c(f1, f2))
237s >
237s > # - file -----------------------------------------------------------------------
237s >
237s > f1 <- tempfile()
237s > f2 <- tempfile()
237s > letters2 <- letters
237s > letters2[15] <- "HELLO"
237s >
237s > writeLines(letters, f1)
237s > writeLines(letters2, f2)
237s >
237s > identical(
237s + as.character(diffChr(letters, letters2, tar.banner="f1", cur.banner="f2")),
237s + as.character(diffFile(f1, f2))
237s + )
237s [1] TRUE
237s > unlink(c(f1, f2))
237s >
237s > # issue 133 h/t Noam Ross, thanks for the test
237s >
237s > x <- tempfile()
237s > y <- tempfile()
237s > cat("Hello\nthere\n", file = x)
237s > file.copy(x, y)
237s [1] TRUE
237s > identical(
237s + as.character(diffFile(x, y, format = "raw")),
237s + structure(
237s + c("No visible differences between objects.",
237s + "< x > y ",
237s + "@@ 1,2 @@ @@ 1,2 @@ ",
237s + " Hello Hello ",
237s + " there there "), len = 5L)
237s + )
237s [1] TRUE
237s > unlink(c(x, y))
237s >
237s > # - CSV ------------------------------------------------------------------------
237s >
237s > f1 <- tempfile()
237s > f2 <- tempfile()
237s >
237s > iris2 <- iris
237s > iris2$Sepal.Length[25] <- 9.9
237s >
237s > write.csv(iris, f1, row.names=FALSE)
237s > write.csv(iris2, f2, row.names=FALSE)
237s >
237s > identical(
237s + as.character(diffPrint(iris, iris2, tar.banner="f1", cur.banner="f2")),
237s + as.character(diffCsv(f1, f2))
237s + )
238s [1] TRUE
238s > unlink(c(f1, f2))
238s >
238s >
238s PASS
238s Begin testing test-guide.R
238s
238s R version 4.4.3 (2025-02-28) -- "Trophy Case"
238s Copyright (C) 2025 The R Foundation for Statistical Computing
238s Platform: s390x-ibm-linux-gnu
238s
238s R is free software and comes with ABSOLUTELY NO WARRANTY.
238s You are welcome to redistribute it under certain conditions.
238s Type 'license()' or 'licence()' for distribution details.
238s
238s R is a collaborative project with many contributors.
238s Type 'contributors()' for more information and
238s 'citation()' on how to cite R or R packages in publications.
238s
238s Type 'demo()' for some demos, 'help()' for on-line help, or
238s 'help.start()' for an HTML browser interface to help.
238s Type 'q()' to quit R.
238s
238s > NAME <- "guides"
238s > source(file.path('_helper', 'init.R'))
238s >
238s > # - detect_2d_guides -----------------------------------------------------------
238s >
238s > iris.dply <- c("Source: local data frame [150 x 5]", "Groups: Species [3]", "", " Sepal.Length Sepal.Width", " (dbl) (dbl)", "1 5.1 3.5", "2 4.9 3.0", "3 4.7 3.2", "4 4.6 3.1", "5 5.0 3.6", "6 5.4 3.9", "7 4.6 3.4", "8 5.0 3.4", "9 4.4 2.9", "10 4.9 3.1", ".. ... ...", "Variables not shown: Petal.Length", " (dbl), Petal.Width (dbl), Species", " (fctr)")
238s >
238s > all.equal(diffobj:::detect_2d_guides(iris.dply), 4:5)
238s [1] TRUE
238s > # wrapping data table with separator (#96)
238s >
238s > DT.txt <- c(
238s + " V1 V2 V3",
238s + " 1: 0.3201122 0.6907066 0.5004968",
238s + " --- ",
238s + "1000: 0.3547379 0.2836985 0.8121208",
238s + " V4 V5",
238s + " 1: 0.331665 0.6788726",
238s + " --- ",
238s + "1000: 0.553012 0.7789110"
238s + )
238s > all.equal(
238s + diffobj:::detect_2d_guides(DT.txt),
238s + c(1L, 5L)
238s + )
238s [1] TRUE
238s > # Narrow width
238s >
238s > old.opt <- options(width=40)
238s > all.equal(diffobj:::detect_2d_guides(capture.output(iris)), c(1, 152))
238s [1] TRUE
238s > all.equal(
238s + diffobj:::detect_2d_guides(capture.output(USAccDeaths)), c(1, 8, 15)
238s + )
238s [1] TRUE
238s > # Time series
238s > all.equal(diffobj:::detect_2d_guides(capture.output(UKgas)), 1)
238s [1] TRUE
238s > # no row.names (#111)
238s >
238s > df1 <- capture.output(print(data.frame(a=1:3), row.names=FALSE))
238s > no.rn.guide <- diffobj:::detect_2d_guides(df1) # no warning
238s > all.equal(no.rn.guide, 1L)
238s [1] TRUE
238s >
238s > df2 <- capture.output(print(data.frame(x="A"), row.names=FALSE))
238s > no.rn.guide.2 <- diffobj:::detect_2d_guides(df2) # no warning
238s > all.equal(no.rn.guide.2, 1L)
238s [1] TRUE
238s > options(old.opt)
238s >
238s > # - detect_list_guides ---------------------------------------------------------
238s >
238s > l.1 <- list(1, 1:3, matrix(1:3, 1))
238s > l.2 <- list(a=1, list(1:3, b=4, c=list(1, b=2)), matrix(1:3, 1))
238s > c.l.1 <- capture.output(l.1)
238s > c.l.2 <- capture.output(l.2)
238s > # cbind(c.l.2, seq_along(c.l.2) %in% diffobj:::detect_list_guides(c.l.2))
238s > all.equal(diffobj:::detect_list_guides(capture.output(l.1)), c(1, 4, 7))
238s [1] TRUE
238s > all.equal(
238s + diffobj:::detect_list_guides(capture.output(l.2)),
238s + c(1, 5, 8, 12, 15, 20)
238s + )
238s [1] TRUE
238s >
238s > # - detect_matrix_guides -------------------------------------------------------
238s > mx3 <- mx4 <- mx5 <- mx5a <- mx11 <- matrix(
238s + c(
238s + "averylongwordthatcanlahblah", "causeasinglewidecolumnblah",
238s + "matrixtowrapseveraltimes", "inarrowscreen", "onceuponatime",
238s + "agreenduckflew", "overthemountains", "inalongofantelopes",
238s + "ineedthreemore", "entriesactually", "nowonlytwomore", "iwaswrongearlier"
238s + ),
238s + nrow=3, ncol=4
238s + )
238s > mx3.c <- capture.output(mx3)
238s > all.equal(diffobj:::detect_matrix_guides(mx3.c, NULL), c(1, 5))
238s [1] TRUE
238s >
238s > dimnames(mx4) <- list(A=NULL, B=NULL)
238s > mx4.c <- capture.output(mx4)
238s > all.equal(
238s + diffobj:::detect_matrix_guides(mx4.c, dimnames(mx4)), c(1, 2, 6, 7)
238s + )
238s [1] TRUE
238s > attr(mx5, "blah") <- letters[1:10]
238s > mx5.c <- capture.output(mx5)
238s > all.equal(
238s + diffobj:::detect_matrix_guides(mx5.c, dimnames(mx5)), c(1, 5)
238s + )
238s [1] TRUE
238s > # Simple matrices that don't wrap
238s >
238s > mx6 <- mx7 <- mx7.1 <- matrix(1:4, 2)
238s >
238s > mx6.c <- capture.output(mx6)
238s > all.equal(diffobj:::detect_matrix_guides(mx6.c, dimnames(mx6)), 1)
238s [1] TRUE
238s >
238s > dimnames(mx7) <- list(A=letters[1:2], B=LETTERS[25:26])
238s > mx7.c <- capture.output(mx7)
238s > all.equal(diffobj:::detect_matrix_guides(mx7.c, dimnames(mx7)), c(1, 2))
238s [1] TRUE
238s >
238s > dimnames(mx7.1) <- list(letters[1:2], B=LETTERS[25:26])
238s > mx7.1.c <- capture.output(mx7.1)
238s > all.equal(diffobj:::detect_matrix_guides(mx7.1.c, dimnames(mx7.1)), c(1, 2))
238s [1] TRUE
238s >
238s > # Single col matrix
238s >
238s > mx8 <- matrix(1:2, 2)
238s >
238s > mx8.c <- capture.output(mx8)
238s > all.equal(diffobj:::detect_matrix_guides(mx8.c, dimnames(mx8)), 1)
238s [1] TRUE
238s >
238s > # Wrapping matrices with colnames
238s >
238s > mx9 <- mx3
238s > dimnames(mx9) <- list(A=letters[1:3], B=LETTERS[20:23])
238s > mx9.c <- capture.output(mx9)
238s > all.equal(
238s + diffobj:::detect_matrix_guides(mx9.c, dimnames(mx9)), c(1:2, 6:7)
238s + )
238s [1] TRUE
238s >
238s > mx10 <- mx9
238s > attr(mx10, "blah") <- matrix(1:4, 2)
238s > mx10.c <- capture.output(mx10)
238s > all.equal(
238s + diffobj:::detect_matrix_guides(mx10.c, dimnames(mx10)), c(1:2, 6:7)
238s + )
238s [1] TRUE
238s > local({
238s + old.opt <- options(width=30L)
238s + on.exit(options(old.opt))
238s + attr(mx11, "blah") <- letters[1:15]
238s + mx11.c <- capture.output(mx11)
238s +
238s + all.equal(
238s + diffobj:::detect_matrix_guides(mx11.c, dimnames(mx11)), c(1, 5, 9, 13)
238s + )
238s + })
238s [1] TRUE
238s > # - detect_array_guides --------------------------------------------------------
238s >
238s > a.1 <- array(1:6, dim=c(2, 1, 3))
238s > a.2 <- array(1:6, dim=c(2, 1, 3), dimnames=list(NULL, "X", LETTERS[1:3]))
238s > a.3 <- array(
238s + 1:6, dim=c(2, 1, 3),
238s + dimnames=list(rows=NULL, cols="X", LETTERS[1:3])
238s + )
238s > a.4 <- `attr<-`(a.3, "hello", "random attribute")
238s > a.5 <- array(1:36, dim=c(6, 2, 3))
238s > a.6 <- array(1:2, c(2, 1, 1))
238s > c.a.1 <- capture.output(a.1)
238s > c.a.2 <- capture.output(a.2)
238s > c.a.3 <- capture.output(a.3)
238s > c.a.4 <- capture.output(a.4)
238s > c.a.5 <- capture.output(a.5)
238s > c.a.6 <- capture.output(a.6)
238s > # helper funs to vizualize the guide line detection
238s > # viz_dag <- function(capt, obj)
238s > # cbind(
238s > # capt,
238s > # seq_along(capt) %in% diffobj:::detect_array_guides(capt, dimnames(obj))
238s > # )
238s > # viz_dag(c.a.1, a.1)
238s > # viz_dag(c.a.2, a.2)
238s > # viz_dag(c.a.3, a.3)
238s > # viz_dag(c.a.4, a.4)
238s > # viz_dag(c.a.5, a.5)
238s > # viz_dag(c.a.6, a.6)
238s > all.equal(
238s + diffobj:::detect_array_guides(c.a.1, dimnames(a.1)),
238s + c(1L, 2L, 7L, 8L, 13L, 14L)
238s + )
238s [1] TRUE
238s > all.equal(
238s + diffobj:::detect_array_guides(c.a.2, dimnames(a.2)),
238s + c(1L, 2L, 7L, 8L, 13L, 14L)
238s + )
238s [1] TRUE
238s > all.equal(
238s + diffobj:::detect_array_guides(c.a.3, dimnames(a.3)),
238s + c(1L, 2L, 8L, 9L, 15L, 16L)
238s + )
238s [1] TRUE
238s > all.equal(
238s + diffobj:::detect_array_guides(c.a.4, dimnames(a.4)),
238s + c(1L, 2L, 8L, 9L, 15L, 16L)
238s + )
238s [1] TRUE
238s > all.equal(
238s + diffobj:::detect_array_guides(c.a.5, dimnames(a.5)),
238s + c(1L, 2L, 11L, 12L, 21L, 22L)
238s + )
238s [1] TRUE
238s > all.equal(
238s + diffobj:::detect_array_guides(c.a.6, dimnames(a.6)),
238s + c(1L, 2L)
238s + )
238s [1] TRUE
238s > # - detect_s4_guides -----------------------------------------------------------
238s >
238s > setClass("gtest2", slots=c(hello="integer", `good bye`="list"))
238s > setClass("gtest1",
238s + slots=c(
238s + sub.class="gtest2", blah="character", gah="list", sub.class.2="gtest2"
238s + ) )
238s > obj <- new(
238s + "gtest1",
238s + sub.class=new(
238s + "gtest2", hello=1:3, `good bye`=list("a", list(l1=5, l2="wow"))
238s + ),
238s + blah=letters, gah=list(one=1:10, two=LETTERS),
238s + sub.class.2=new(
238s + "gtest2", hello=3:1, `good bye`=list("B", list(l1=5, l2="wow"))
238s + )
238s + )
238s > # note at this point the nested stuff doesn't work, so we're just shooting for
238s > # the simple match
238s >
238s > c.1 <- capture.output(obj)
238s > identical(
238s + diffobj:::detect_s4_guides(c.1, obj),
238s + c(1L, 2L, 21L, 25L, 34L)
238s + )
238s [1] TRUE
238s > # small diff as that has a non-default show method
238s >
238s > diff <- diffChr("a", "b", format='raw')
238s > diff.out <- capture.output(show(diff))
238s > all.equal(
238s + diffobj:::detect_s4_guides(diff.out, diff),
238s + integer()
238s + )
238s [1] TRUE
238s > # - custom guide fun -----------------------------------------------------------
238s >
238s > a <- b <- matrix(1:100)
238s > b[50] <- -99L
238s >
238s > fun1 <- function(x, y) c(1L, 14L, 53L)
238s >
238s > all.equal(as.character(diffPrint(a, b, guides=fun1)), rdsf(100))
238s [1] TRUE
238s > if(getRversion() >= "3.2.2") {
238s + capture.output( # warn: "If you did not specify a `guides`"
238s + trim.err <-
238s + as.character(diffPrint(a, b, guides=function(x, y) stop("boom"))),
238s + type="message"
238s + )
238s + all.equal(trim.err, rdsf(200))
238s + }
238s [1] TRUE
238s Warning message:
238s In apply_guides(current, cur.capt, guide_fun) :
238s `guides*` method produced an error when attempting to compute guide lines ; If you did not specify a `guides` function or define custom `guides*` methods contact maintainer (see `?guides`). Proceeding without guides.
238s > # "must produce an integer vector"
238s > try(diffobj:::apply_guides(1:26, LETTERS, function(x, y) 35L))
238s Error in diffobj:::apply_guides(1:26, LETTERS, function(x, y) 35L) :
238s `guides*` method must produce an integer vector containing unique index values for the `obj.as.chr` vector; If you did not specify a `guides` function or define custom `guides*` methods contact maintainer (see `?guides`). Proceeding without guides.
238s >
238s > # - errors ---------------------------------------------------------------------
238s >
238s > try(guidesStr(1:26, rep(NA_character_, 26)))# "Cannot compute guides"
238s Error in guidesStr(1:26, rep(NA_character_, 26)) :
238s Cannot compute guides if `obj.as.chr` contains NAs
238s > try(guidesPrint(1:26, rep(NA_character_, 26)))# "Cannot compute guides"
238s Error in guidesPrint(1:26, rep(NA_character_, 26)) :
238s Cannot compute guides if `obj.as.chr` contains NAs
238s >
238s > # - corner cases ---------------------------------------------------------------
238s >
238s > all.equal(
238s + diffobj:::split_by_guides(letters, integer()),
238s + list(structure(letters, idx=seq_along(letters)))
238s + )
238s [1] TRUE
238s > try(guidesStr(1:26, rep(NA_character_, 26))) # "Cannot compute guides"
238s Error in guidesStr(1:26, rep(NA_character_, 26)) :
238s Cannot compute guides if `obj.as.chr` contains NAs
238s > try(guidesPrint(1:26, rep(NA_character_, 26))) # "Cannot compute guides"
238s Error in guidesPrint(1:26, rep(NA_character_, 26)) :
238s Cannot compute guides if `obj.as.chr` contains NAs
238s >
238s > # - issue 117 - 2d guide failure -----------------------------------------------
238s >
238s > # Thanks to Sebastian Meyer (@bastician) for MRE
238s > a <- b <- data.frame(ID = 0, value = 1)
238s > b$value <- 2
238s > a <- a[c(rep(1, 86), 2)]
238s > b <- b[c(rep(1, 86), 2)]
238s > diffPrint(a, b, mode = "unified", format='raw', context=0)
238s < a
238s > b
238s @@ 16 / 16 @@
238s ~ value
238s < 1 1
238s > 1 2
238s >
238s PASS
238s Begin testing test-html.R
238s
238s R version 4.4.3 (2025-02-28) -- "Trophy Case"
238s Copyright (C) 2025 The R Foundation for Statistical Computing
238s Platform: s390x-ibm-linux-gnu
238s
238s R is free software and comes with ABSOLUTELY NO WARRANTY.
238s You are welcome to redistribute it under certain conditions.
238s Type 'license()' or 'licence()' for distribution details.
238s
238s R is a collaborative project with many contributors.
238s Type 'contributors()' for more information and
238s 'citation()' on how to cite R or R packages in publications.
238s
238s Type 'demo()' for some demos, 'help()' for on-line help, or
238s 'help.start()' for an HTML browser interface to help.
238s Type 'q()' to quit R.
238s
238s > NAME <- "html"
238s > source(file.path('_helper', 'init.R'))
238s >
238s > # Verify that internal css works
238s >
238s > # - HTML Output Modes ----------------------------------------------------------
238s >
238s > all.equal(
238s + as.character(
238s + diffPrint(
238s + letters[1:3], LETTERS[1:3],
238s + style=StyleHtmlLightYb(html.output="diff.only")
238s + ) ),
238s + rdsf(100)
238s + )
238s [1] TRUE
238s > all.equal(
238s + as.character(
238s + diffPrint(
238s + letters[1:6], LETTERS[1:6],
238s + style=StyleHtmlLightYb(html.output="diff.w.style")
238s + ) ),
238s + rdsf(200)
238s + )
239s [1] TRUE
239s > all.equal(
239s + as.character(
239s + diffPrint(
239s + letters[1:6], LETTERS[1:6],
239s + style=StyleHtmlLightYb(html.output="page")
239s + ) ),
239s + rdsf(300)
239s + )
239s [1] TRUE
239s > all.equal(
239s + as.character(
239s + diffPrint(
239s + letters[1:6], LETTERS[1:6], mode="unified",
239s + style=StyleHtmlLightYb(html.output="page")
239s + ) ),
239s + rdsf(350)
239s + )
239s [1] TRUE
239s > # - Sub CSS --------------------------------------------------------------------
239s >
239s > # Mess up the CSS to test that we can change CSS file
239s >
239s > local({
239s + f <- tempfile()
239s + on.exit(unlink(f))
239s + cat("div.row {background-color: red;}\n", file=f)
239s + all.equal(
239s + as.character(
239s + diffPrint(
239s + letters, LETTERS,
239s + style=StyleHtmlLightYb(css=f, html.output="diff.w.style")
239s + )
239s + ),
239s + rdsf(400)
239s + )
239s + })
239s [1] TRUE
239s > # - Tag funs -------------------------------------------------------------------
239s >
239s > div_a <- div_f("A", c(color="red"))
239s > all.equal(
239s + div_a(c("a", "b")),
239s + c(
239s + "
a
",
239s + "b
"
239s + )
239s + )
239s [1] TRUE
239s > span_a <- span_f()
239s > all.equal(span_a(c("a", "b")), c("a", "b"))
239s [1] TRUE
239s >
239s > try(div_a(TRUE)) # "must be character"
239s Error in div_a(TRUE) : Argument `x` must be character.
239s > all.equal(div_a(character()),character())
239s [1] TRUE
239s >
239s > # - nchar ----------------------------------------------------------------------
239s >
239s > all.equal(nchar_html("25"), 2)
239s [1] TRUE
239s > all.equal(nchar_html("25 "), 3)
239s [1] TRUE
239s >
239s > # - cont_f ---------------------------------------------------------------------
239s >
239s > try(cont_f("hello")(1:3)) # "must be character"
239s Error in cont_f("hello")(1:3) : Argument `x` must be character.
239s >
239s PASS
239s Begin testing test-limit.R
239s
239s R version 4.4.3 (2025-02-28) -- "Trophy Case"
239s Copyright (C) 2025 The R Foundation for Statistical Computing
239s Platform: s390x-ibm-linux-gnu
239s
239s R is free software and comes with ABSOLUTELY NO WARRANTY.
239s You are welcome to redistribute it under certain conditions.
239s Type 'license()' or 'licence()' for distribution details.
239s
239s R is a collaborative project with many contributors.
239s Type 'contributors()' for more information and
239s 'citation()' on how to cite R or R packages in publications.
239s
239s Type 'demo()' for some demos, 'help()' for on-line help, or
239s 'help.start()' for an HTML browser interface to help.
239s Type 'q()' to quit R.
239s
239s > NAME <- "limit"
239s > source(file.path('_helper', 'init.R'))
239s >
239s > # - Simple limit ---------------------------------------------------------------
239s >
239s > A <- B <- letters[1:5]
239s > B[2] <- "B"
239s > B[6] <- "F"
239s > # diffChr(A, B)
239s > all.equal(as.character(diffChr(A, B, line.limit=2)), rdsf(100))
239s [1] TRUE
239s > all.equal(as.character(diffChr(A, B, line.limit=3)), rdsf(200))
239s [1] TRUE
239s >
239s > # - More Extensive Limits ------------------------------------------------------
239s >
239s > Puromycin2 <- Puromycin
239s > set.seed(1)
239s > Puromycin2$conc[c(8, 15:19, 22)] <- round(runif(7), 2)
239s > Puromycin2$state[17] <- "treated"
239s >
239s > all.equal(
239s + as.character(
239s + diffPrint(Puromycin, Puromycin2, line.limit=15, mode="sidebyside")
239s + ),
239s + rdsf(300)
239s + )
239s [1] TRUE
239s >
239s > # # Not working right
239s > # diffPrint(Puromycin, Puromycin2, line.limit=15, mode="context")
239s > all.equal(
239s + as.character(
239s + diffPrint(Puromycin, Puromycin2, line.limit=15, mode="unified")
239s + ),
239s + rdsf(500)
239s + )
239s [1] TRUE
239s >
239s > all.equal(
239s + as.character(
239s + diffPrint(Puromycin, Puromycin2, line.limit=5, mode="sidebyside")
239s + ),
239s + rdsf(600)
239s + )
239s [1] TRUE
239s > all.equal(
239s + as.character(
239s + diffPrint(Puromycin, Puromycin2, line.limit=5, mode="context")
239s + ),
239s + rdsf(700)
239s + )
239s [1] TRUE
239s > all.equal(
239s + as.character(
239s + diffPrint(Puromycin, Puromycin2, line.limit=5, mode="unified")
239s + ),
239s + rdsf(800)
239s + )
239s [1] TRUE
239s >
239s > Puromycin3 <- Puromycin2
239s > names(Puromycin3)[3L] <- "blargh"
239s > all.equal(
239s + as.character(
239s + diffPrint(Puromycin, Puromycin3, line.limit=7, mode="sidebyside")
239s + ),
239s + rdsf(900)
239s + )
239s [1] TRUE
239s > all.equal(
239s + as.character(
239s + diffPrint(Puromycin, Puromycin3, line.limit=6, mode="context")
239s + ),
239s + rdsf(1000)
239s + )
239s [1] TRUE
239s > # - Dual limit values ----------------------------------------------------------
239s >
239s > A <- letters[1:10]
239s > B <- LETTERS[1:10]
239s > all.equal(
239s + as.character(diffChr(A, B, line.limit=c(10, 3))), rdsf(1100)
239s + )
239s [1] TRUE
239s > all.equal(
239s + as.character(diffChr(A, B, line.limit=c(13, 3))), rdsf(1200)
239s + )
239s [1] TRUE
239s > try(diffChr(A, B, line.limit=c(3, 13))) # "larger than or"
239s Error in diffChr(target = A, current = B, line.limit = c(3, 13)) :
239s Argument `line.limit` must be an integer vector of length 1 or 2 and if length 2, with the first value larger than or equal to the second, or "auto" or the result of calling `auto_line_limit`
239s >
239s > # - Cause errors ---------------------------------------------------------------
239s >
239s > try(diffChr(letters, LETTERS, line.limit=1:3)) # "vector of length"
239s Error in diffChr(target = letters, current = LETTERS, line.limit = 1:3) :
239s Argument `line.limit` must be an integer vector of length 1 or 2 and if length 2, with the first value larger than or equal to the second, or "auto" or the result of calling `auto_line_limit`
239s >
239s > # - Vanishing header -----------------------------------------------------------
239s >
239s > # issue 64
239s > all.equal(
239s + as.character(
239s + diffChr(
239s + letters, letters[-13], context=auto_context(0, 10), line.limit=1L,
239s + pager="off"
239s + ) ),
239s + rdsf(1300)
239s + )
240s [1] TRUE
240s >
240s >
240s PASS
240s Begin testing test-methods.R
240s
240s R version 4.4.3 (2025-02-28) -- "Trophy Case"
240s Copyright (C) 2025 The R Foundation for Statistical Computing
240s Platform: s390x-ibm-linux-gnu
240s
240s R is free software and comes with ABSOLUTELY NO WARRANTY.
240s You are welcome to redistribute it under certain conditions.
240s Type 'license()' or 'licence()' for distribution details.
240s
240s R is a collaborative project with many contributors.
240s Type 'contributors()' for more information and
240s 'citation()' on how to cite R or R packages in publications.
240s
240s Type 'demo()' for some demos, 'help()' for on-line help, or
240s 'help.start()' for an HTML browser interface to help.
240s Type 'q()' to quit R.
240s
240s > NAME <- "methods"
240s > source(file.path('_helper', 'init.R'))
240s >
240s > # try implementing methods that change default behavior outside of package
240s >
240s > # - Force unified --------------------------------------------------------------
240s >
240s > par.env <- new.env()
240s > local(
240s + envir=par.env, {
240s + suppressWarnings(
240s + setClass(
240s + "testdiffobj", slots=c(a="integer"), where=par.env
240s + ) )
240s + # First check that we do actually output in side by side mode
240s +
240s + print(
240s + all.equal(
240s + as.character(diffObj(new("testdiffobj", a=1L), new("testdiffobj", a=2L))),
240s + rdsf(100)
240s + ) )
240s + # Now verify that with our new method, we get unified
240s +
240s + setMethod("diffObj", c("testdiffobj", "testdiffobj"),
240s + function(target, current, ...) {
240s + dots <- match.call(expand.dots=FALSE)[["..."]]
240s + if("mode" %in% names(dots))
240s + callNextMethod()
240s + else
240s + callNextMethod(target=target, current=current, ..., mode="unified")
240s + },
240s + where=par.env
240s + )
240s + on.exit(
240s + removeMethod("diffObj", c("testdiffobj", "testdiffobj"), where=par.env)
240s + )
240s + print(
240s + all.equal(
240s + as.character(diffObj(new("testdiffobj", a=1L), new("testdiffobj", a=2L))),
240s + rdsf(200)
240s + ) )
240s + # Make sure we can still get side by side?
240s + print(
240s + all.equal(
240s + as.character(
240s + diffObj(
240s + new("testdiffobj", a=1L), new("testdiffobj", a=2L), mode="sidebyside"
240s + ) ),
240s + rdsf(100)
240s + ) )
240s + try( #"Argument `mode` must be"
240s + diffObj(new("testdiffobj", a=1L), new("testdiffobj", a=2L), mode="hello")
240s + )
240s + })
240s [1] TRUE
240s [1] TRUE
240s [1] TRUE
240s Error in diffObj(target = new("testdiffobj", a = 1L), current = new("testdiffobj", :
240s Error in calling `diffStr`: Argument `mode` must be character(1L) and in `c("auto", "unified", "context", "sidebyside")`.
240s >
240s PASS
240s Begin testing test-misc.R
240s
240s R version 4.4.3 (2025-02-28) -- "Trophy Case"
240s Copyright (C) 2025 The R Foundation for Statistical Computing
240s Platform: s390x-ibm-linux-gnu
240s
240s R is free software and comes with ABSOLUTELY NO WARRANTY.
240s You are welcome to redistribute it under certain conditions.
240s Type 'license()' or 'licence()' for distribution details.
240s
240s R is a collaborative project with many contributors.
240s Type 'contributors()' for more information and
240s 'citation()' on how to cite R or R packages in publications.
240s
240s Type 'demo()' for some demos, 'help()' for on-line help, or
240s 'help.start()' for an HTML browser interface to help.
240s Type 'q()' to quit R.
240s
240s > NAME <- "misc"
240s > source(file.path('_helper', 'init.R'))
240s >
240s > # - trim_str -------------------------------------------------------------------
240s >
240s > a <- structure("hello", class="A", xx="B")
240s > b <- structure(1:10, yy=a)
240s > long.string <- "I'm a string long enough to force wrapping under most cases so that I may be useful for tests andiamareallylongwordtoseehowwrappingbreakslongwordsthatexceed"
240s > obj <- list(
240s + a=a, b=b, c=1:50,
240s + d=long.string,
240s + e=list(1, structure(2, zz=list(a=1, b=list("a", ls=long.string))), e=letters)
240s + )
240s > # conditional because of issue113
240s > str.txt <- capture.output(str(obj))
240s > str.txt.w <- capture.output(str(obj, width=30L, strict.width="wrap"))
240s >
240s > if(
240s + getRversion() >= '3.5.0' && as.numeric(R.Version()[['svn rev']]) >= 73780
240s + ) {
240s + c(
240s + all.equal(
240s + diffobj:::str_levels(str.txt, wrap=FALSE),
240s + c(0L, 1L, 2L, 1L, 2L, 3L, 1L, 1L, 1L, 2L, 2L, 3L, 4L, 4L, 5L, 5L, 2L)
240s + ),
240s + all.equal(
240s + diffobj:::str_levels(str.txt.w, wrap=TRUE),
240s + c(0L, 1L, 2L, 1L, 1L, 2L, 2L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
240s + 1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
240s + 2L, 2L
240s + )
240s + ) )
240s + } else {
240s + c(
240s + all.equal(
240s + diffobj:::str_levels(str.txt, wrap=FALSE),
240s + c(0L, 1L, 3L, 1L, 2L, 4L, 1L, 1L, 1L, 2L, 2L, 3L, 4L, 4L, 5L, 5L, 2L)
240s + ),
240s + all.equal(
240s + diffobj:::str_levels(str.txt.w, wrap=TRUE),
240s + c(0L, 1L, 1L, 3L, 1L, 1L, 2L, 2L, 4L, 4L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 2L)
240s + ) )
240s + }
240s [1] TRUE TRUE
240s > # cat(
240s > # paste(
240s > # format(substr(str.txt.w, 1, 20)), diffobj:::str_levels(str.txt.w, TRUE),
240s > # sep=": "
240s > # ),
240s > # sep="\n"
240s > # )
240s >
240s > # - rle_sub --------------------------------------------------------------------
240s >
240s > x <- c(1, 1, 1, 2, 2, 1, 1, 3, 3, 4, 4, 4, 5, 2, 2)
240s > r <- rle(x)
240s > all.equal(diffobj:::rle_sub(r, r$values == 1L), list(1:3, 6:7))
240s [1] TRUE
240s > all.equal(diffobj:::rle_sub(r, r$values == 2L), list(4:5, 14:15))
240s [1] TRUE
240s > isTRUE(all(x[unlist(diffobj:::rle_sub(r, r$values == 1L))] == 1))
240s [1] TRUE
240s > isTRUE(all(x[unlist(diffobj:::rle_sub(r, r$values == 2L))] == 2))
240s [1] TRUE
240s > isTRUE(all(x[unlist(diffobj:::rle_sub(r, r$values == 3L))] == 3))
240s [1] TRUE
240s >
240s > # - call funs ------------------------------------------------------------------
240s >
240s > # Failure case; assumes no S4 dispatch in testthat
240s > calls <- list(quote(a()), quote(b()), quote(notafunctionblah()))
240s > all.equal(diffobj:::which_top(calls), length(calls))
240s [1] TRUE
240s > diffobj:::extract_call(calls, new.env()) # warn: "Unable to find")
240s $call
240s NULL
240s
240s $tar
240s NULL
240s
240s $cur
240s NULL
240s
240s Warning message:
240s In get_fun(found.call[[1L]], env = par.env) :
240s Unable to find function `notafunctionblah` to match call with.
240s >
240s > # missing param works
240s >
240s > calls2 <- pairlist(
240s + quote(diffChr("a")), quote(diffChr("a")), quote(.local(target, current, ...))
240s + )
240s > all.equal(
240s + diffobj:::extract_call(calls2, new.env()),
240s + list(call = quote(diffChr(target = "a", NULL)), tar = "a", cur = NULL)
240s + )
240s [1] TRUE
240s > # fallback parent frame; can't think of a good way to actually cause this to
240s > # happen
240s >
240s > # all.equal(diffobj:::par_frame(), .GlobalEnv)
240s >
240s > # - lines ----------------------------------------------------------------------
240s >
240s > old.val <- Sys.getenv("LINES", unset=NA)
240s > Sys.setenv(LINES="25")
240s > all.equal(console_lines(), 25L)
240s [1] TRUE
240s > Sys.setenv(LINES="-25")
240s > all.equal(console_lines(), 48L)
240s [1] TRUE
240s > Sys.unsetenv("LINES")
240s > all.equal(console_lines(), 48L)
240s [1] TRUE
240s >
240s > # - get_funs -------------------------------------------------------------------
240s >
240s > identical(
240s + diffobj:::get_fun(quote(diffobj::diffPrint), .BaseNamespaceEnv),
240s + diffobj::diffPrint
240s + )
240s [1] TRUE
240s > identical(
240s + diffobj:::get_fun(quote(diffobj:::diffPrint), .BaseNamespaceEnv),
240s + diffobj::diffPrint
240s + )
240s [1] TRUE
240s > identical(
240s + diffobj:::get_fun(quote(diffPrint), getNamespace("diffobj")),
240s + diffobj::diffPrint
240s + )
240s [1] TRUE
240s > gf <- diffobj:::get_fun(quote(notAFunction), getNamespace("diffobj")) # warn
240s Warning message:
240s In diffobj:::get_fun(quote(notAFunction), getNamespace("diffobj")) :
240s Unable to find function `notAFunction` to match call with.
240s >
240s > identical(gf, NULL)
240s [1] TRUE
240s >
240s > # - trimws2 --------------------------------------------------------------------
240s >
240s > all.equal(diffobj:::trimws2("hello world"), "hello world")
240s [1] TRUE
240s > all.equal(diffobj:::trimws2(" hello world"), "hello world")
240s [1] TRUE
240s > all.equal(diffobj:::trimws2(" hello world "), "hello world")
240s [1] TRUE
240s > all.equal(diffobj:::trimws2(" hello world ", 'left'), "hello world ")
240s [1] TRUE
240s > all.equal(diffobj:::trimws2(" hello world ", 'right'), " hello world")
240s [1] TRUE
240s >
240s > try(diffobj:::trimws2(" hello world ", 'banana')) # "is wrong"
240s Error in diffobj:::trimws2(" hello world ", "banana") :
240s Argument which is wrong
240s >
240s > # - string ---------------------------------------------------------------------
240s >
240s > try(diffobj:::substr2("hello world", 1, 1:2)) # "same length"
240s Error in diffobj:::substr2("hello world", 1, 1:2) :
240s `start` and `stop` must be length 1 or the same length as `x`.
240s >
240s > # - Gutters --------------------------------------------------------------------
240s >
240s > etc <- new("Settings")
240s > etc@style <- StyleRaw()
240s > etc@style@funs@gutter <- function(x) stop("bad gutters")
240s > try(diffobj:::gutter_dat(etc)) # "Failed attempting to apply gutter."
240s Error in funs@gutter(paste0(gutt.dat.format, funs@gutter.pad(text@gutter.pad))) :
240s bad gutters
240s Error in diffobj:::gutter_dat(etc) :
240s Failed attempting to apply gutter formatting functions; if you did not customize them, contact maintainer. See `?StyleFuns`.
240s >
240s > # - Finalizer error handling ---------------------------------------------------
240s >
240s > try(finalizeHtml(letters, NULL)) # "must be character"
240s Error in .local(x, ...) : Argument `x.chr` must be character
240s > try(finalizeHtml(letters, letters, letters)) # "must be character\\(1L"
241s Error in .local(x, ...) : Argument `js` must be character(1L) and not NA.
241s >
241s > # - c.factor -------------------------------------------------------------------
241s >
241s > all.equal(diffobj:::c.factor(), factor(character()))
241s [1] TRUE
241s >
241s > # - strip_hz -------------------------------------------------------------------
241s >
241s > # Can't trigger this directly because wrapper doesn't let this case through
241s > diffobj:::strip_hz_c_int(character(), 8L, TRUE)
241s character(0)
241s >
241s >
241s >
241s PASS
241s Begin testing test-pager.R
241s
241s R version 4.4.3 (2025-02-28) -- "Trophy Case"
241s Copyright (C) 2025 The R Foundation for Statistical Computing
241s Platform: s390x-ibm-linux-gnu
241s
241s R is free software and comes with ABSOLUTELY NO WARRANTY.
241s You are welcome to redistribute it under certain conditions.
241s Type 'license()' or 'licence()' for distribution details.
241s
241s R is a collaborative project with many contributors.
241s Type 'contributors()' for more information and
241s 'citation()' on how to cite R or R packages in publications.
241s
241s Type 'demo()' for some demos, 'help()' for on-line help, or
241s 'help.start()' for an HTML browser interface to help.
241s Type 'q()' to quit R.
241s
241s > NAME <- "pager"
241s > source(file.path('_helper', 'init.R'))
241s > source(file.path('_helper', 'tools.R'))
241s >
241s > # void pager, doesn't do anything, just to test side effect of writing to file
241s >
241s > void <- function(x) NULL
241s >
241s > # - Specifying pager -----------------------------------------------------------
241s >
241s > style <- gdo("diffobj.style")
241s > if(is.null(style)) style <- StyleAnsi8NeutralYb()
241s > style@pager@file.ext <- "xyz" # make pager identifiable
241s > all.equal(
241s + diffChr(
241s + letters, LETTERS, style=style, pager="auto", interactive=TRUE
241s + )@etc@style@pager@file.ext,
241s + "xyz"
241s + )
241s [1] TRUE
241s > all.equal(
241s + diffChr(
241s + letters, LETTERS, style=style, pager="off", interactive=TRUE
241s + )@etc@style@pager,
241s + PagerOff()
241s + )
241s [1] TRUE
241s > identical(
241s + diffChr(
241s + letters, LETTERS, style=style, pager="auto", interactive=FALSE
241s + )@etc@style@pager,
241s + PagerOff()
241s + )
241s [1] TRUE
241s >
241s > # - System Pagers --------------------------------------------------------------
241s >
241s > less.orig <- Sys.getenv("LESS")
241s > pager_mock <- function(...) {
241s + warning(Sys.getenv("LESS"))
241s + 42
241s + }
241s > is(PagerSystem(), "PagerSystem")
241s [1] TRUE
241s > is(
241s + pg.less <- PagerSystemLess(pager=pager_mock, flags="VWF"),
241s + "PagerSystemLess"
241s + )
241s [1] TRUE
241s > res <- pg.less@pager() # warning: "VWF$"
241s Warning message:
241s In pager.old(x) : -VWF
241s > all.equal(res, 42)
241s [1] TRUE
241s > all.equal(less.orig, Sys.getenv("LESS"))
241s [1] TRUE
241s > all.equal(PagerSystemLess(pager=pager_mock)@flags, "R")
241s [1] TRUE
241s >
241s > try(PagerSystemLess(pager=pager_mock, flags=letters))
241s Error in initialize(value, ...) :
241s Argument `flags` must be character(1L) and not NA
241s >
241s > # - use_pager ------------------------------------------------------------------
241s >
241s > local({
241s + suppressMessages(mock(diffobj:::console_lines, 10L))
241s + on.exit(suppressMessages(untrace(diffobj:::console_lines)))
241s + c(
241s + isTRUE(diffobj:::use_pager(PagerSystem(threshold=0L), 1L)),
241s + identical(diffobj:::use_pager(PagerSystem(threshold=50L), 25L), FALSE),
241s + isTRUE(diffobj:::use_pager(PagerSystem(threshold=-1L), 25L))
241s + )
241s + })
241s [1] TRUE TRUE TRUE
241s >
241s > # - Setting LESS var -----------------------------------------------------------
241s >
241s > local({
241s + less.orig <- Sys.getenv("LESS", unset=NA)
241s + old.opt <- options(crayon.enabled=FALSE) # problems with crayon and LESS
241s + on.exit({
241s + diffobj:::reset_less_var(less.orig) # should be tested..., but super simple
241s + options(old.opt)
241s + })
241s +
241s + # Here we change the LESS variable even though we're mocking getenv
241s +
241s + Sys.unsetenv("LESS")
241s + a0 <- isTRUE(is.na(diffobj:::set_less_var("XF")))
241s + a <- all.equal(Sys.getenv("LESS"), "-XF")
241s + Sys.setenv(LESS="-X -F")
241s + b <- all.equal(diffobj:::set_less_var("VP"), "-X -F")
241s + c <- all.equal(Sys.getenv("LESS"), "-X -FVP")
241s + diffobj:::reset_less_var("-XF")
241s + d <- all.equal(Sys.getenv("LESS"), "-XF")
241s + diffobj:::reset_less_var(NA_character_)
241s + e <- all.equal(Sys.getenv("LESS"), "")
241s + Sys.setenv(LESS="-XF")
241s + f <- all.equal(diffobj:::set_less_var("V"), "-XF")
241s + g <- all.equal(Sys.getenv("LESS"), "-XFV")
241s + c(a0, a, b, c, d, e, f, g)
241s + })
241s [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
241s >
241s > # - viewer vs browser ----------------------------------------------------------
241s >
241s > local({
241s + viewer <- function(x) "viewer"
241s + old.external <- options(viewer=viewer, browser=function(url) "browser")
241s + on.exit(options(old.external))
241s + suppressMessages(mock(diffobj::make_blocking, quote(fun)))
241s + on.exit(suppressMessages(untrace(diffobj::make_blocking)), add=TRUE)
241s + pager <- PagerBrowser()
241s + a <- all.equal(pager@pager("blah"), "viewer")
241s + options(viewer=NULL)
241s + b <- all.equal(pager@pager("blah"), "browser")
241s + options(viewer=function(x) stop("viewer error"))
241s + res <- pager@pager("blah") # warning: "IDE viewer"
241s + c <- all.equal(res, "browser")
241s + c(a, b, c)
241s + })
241s [1] TRUE TRUE TRUE
241s Warning message:
241s In pager@pager("blah") :
241s IDE viewer failed with error viewer error; falling back to `browseURL`
241s >
241s > # - blocking -------------------------------------------------------------------
241s >
241s > # Note that readline just proceeds in non-interactive mode, which is why we
241s > # need the mock here
241s >
241s > local({
241s + suppressMessages(mock(diffobj:::interactive, FALSE))
241s + on.exit(suppressMessages(untrace(diffobj:::interactive)))
241s + suppressMessages(mock(diffobj:::readline, quote(warning("readline"))))
241s + on.exit(suppressMessages(untrace(diffobj:::readline)), add=TRUE)
241s + try(make_blocking("hello")) # "must be a function"
241s + try(make_blocking(identity, letters)) # "must be character\\(1L")
241s + try(make_blocking(identity, "a", "a")) # "must be TRUE"
241s +
241s + res <- make_blocking(sum)(1:10) # warn: "readline"
241s + a <- all.equal(sum(1:10), res)
241s + b <- isTRUE(
241s + withVisible(
241s + suppressWarnings(make_blocking(sum, invisible=FALSE)(1:10))
241s + )[['visible']]
241s + )
241s + c(a, b)
241s + })
241s Error in make_blocking("hello") : Argument `fun` must be a function
241s Error in make_blocking(identity, letters) :
241s Argument `msg` must be character(1L) and not NA
241s Error in make_blocking(identity, "a", "a") :
241s Argument `invisible.res` must be TRUE or FALSE
241s [1] TRUE TRUE
241s Warning message:
241s In readline(msg) : readline
241s > local({
241s + suppressMessages(mock(diffobj:::interactive, TRUE))
241s + on.exit(suppressMessages(untrace(diffobj:::interactive)))
241s + suppressMessages(mock(diffobj:::readline, quote(warning("readline"))))
241s + on.exit(suppressMessages(untrace(diffobj:::readline)), add=TRUE)
241s + show( # warn "readline"
241s + diffChr(
241s + "a", "b", format='raw',
241s + pager=list(pager=void, make.blocking=TRUE, threshold=0)
241s + )
241s + )
241s + show( # warn "readline"
241s + diffChr(
241s + "a", "b", format='html',
241s + pager=list(pager=void, make.blocking=NA, threshold=0)
241s + ) )
241s + show(diffChr("a", "b", format='html', pager=list(pager=void)))
241s + })
241s Warning messages:
241s 1: In readline(msg) : readline
241s 2: In readline(msg) : readline
241s 3: In readline(msg) : readline
241s > # There should be no warnings in this lot
241s >
241s > local({
241s + suppressMessages(mock(diffobj:::interactive, TRUE))
241s + on.exit(suppressMessages(untrace(diffobj:::interactive)))
241s + suppressMessages(mock(diffobj:::readline, quote(warning("readline"))))
241s + on.exit(suppressMessages(untrace(diffobj:::readline)), add=TRUE)
241s + f <- tempfile()
241s + on.exit(unlink(f), add=TRUE)
241s + show( # no warning
241s + diffChr(
241s + "a", "b", format='html',
241s + pager=list(pager=void, make.blocking=NA, file.path=f)
241s + ) )
241s + show( # no warning
241s + diffChr(
241s + "a", "b", format='html',
241s + pager=list(pager=void, make.blocking=FALSE, file.path=f)
241s + ) )
241s + show( # no warning
241s + diffChr("a", "b", format='html', pager=list(pager=void, file.path=f))
241s + )
241s + })
241s >
241s > # - html page output -----------------------------------------------------------
241s >
241s > pager <- PagerBrowser(
241s + pager=function(x) cat(readLines(x), sep="\n"), make.blocking=FALSE
241s + )
241s > all.equal(
241s + capture.output(show(diffChr("A", "B", pager=pager, style=StyleRaw()))),
241s + c("< \"A\" > \"B\" ", "@@ 1 @@ @@ 1 @@ ", "< A > B ")
241s + )
241s [1] TRUE
241s > pager.warn <- PagerBrowser(
241s + pager=function(x) cat(readLines(x), sep="\n"), make.blocking=FALSE
241s + )
241s > try( # "Unable to instantiate `Style` object: Argument `js` .* is not a file"
241s + diffChr(
241s + "A", "B", pager=pager.warn, format="html", style=list(js="notafile")
241s + ) )
241s Error in diffChr(target = "A", current = "B", pager = pager.warn, format = "html", :
241s Unable to instantiate `Style` object: Argument `js` ("notafile") is not a file
241s > try( # "Unable to instantiate `Style` object: Argument `css` .* is not a file"
241s + diffChr(
241s + "A", "B", pager=pager.warn, format="html", style=list(css="notafile")
241s + )
241s + )
241s Error in diffChr(target = "A", current = "B", pager = pager.warn, format = "html", :
241s Unable to instantiate `Style` object: Argument `css` ("notafile") is not a file
241s > # Create objects that bypass the validation
241s >
241s > style.obj.1 <- style.obj.2 <- StyleHtmlLightYb()
241s > style.obj.1@css <- "notafile"
241s > style.obj.2@js <- "notafile"
241s >
241s > invisible(
241s + capture.output( # warn: "Unable to read provided css file"
241s + show(diffChr("A", "B", pager=pager.warn, style=style.obj.1))
241s + ) )
241s Warning messages:
241s 1: In file(con, "r") :
241s cannot open file 'notafile': No such file or directory
241s 2: In .local(x, ...) :
241s Unable to read provided css file "notafile" (error: cannot open the connection).
241s > invisible(
241s + capture.output( # "Unable to read provided js file"
241s + show(diffChr("A", "B", pager=pager.warn, style=style.obj.2))
241s + ) )
241s Warning messages:
241s 1: In file(con, "r") :
241s cannot open file 'notafile': No such file or directory
241s 2: In .local(x, ...) :
241s Unable to read provided js file "notafile" (error: cannot open the connection).
241s > # - pager_is_less --------------------------------------------------------------
241s >
241s > is.less <- pager_is_less()
241s > isTRUE(diffobj:::is.TF(is.less))
241s [1] TRUE
241s >
241s > less <- tryCatch(
241s + system2("which", "less", stdout=TRUE, stderr=TRUE),
241s + error=function(e) NULL, warning=function(e) NULL
241s + )
241s > sys.cat <- tryCatch(
241s + system2("which", "cat", stdout=TRUE, stderr=TRUE),
241s + error=function(e) NULL, warning=function(e) NULL
241s + )
241s > if(diffobj:::is.chr.1L(less) && file_test("-x", less)) {
241s + local({
241s + old.opt <- options(pager=less)
241s + on.exit(options(old.opt))
241s +
241s + # has to be stopifnot as we can't return TRUE for systems that don't
241s + # meet these requirements
241s + stopifnot(
241s + identical(diffobj:::pager_opt_default(), FALSE),
241s + isTRUE(pager_is_less())
241s + )
241s + })
241s + }
241s > if(diffobj:::is.chr.1L(sys.cat) && file_test("-x", sys.cat)) {
241s + local({
241s + old.opt <- options(pager=sys.cat)
241s + on.exit(options(old.opt))
241s +
241s + # has to be stopifnot as we can't return TRUE for systems that don't
241s + # meet these requirements
241s + stopifnot(
241s + identical(diffobj:::pager_opt_default(), FALSE),
241s + identical(pager_is_less(), FALSE)
241s + )
241s + })
241s + }
241s > ## force some checks
241s >
241s > local({
241s + old.opt <- options(pager=NULL)
241s + on.exit(options(old.opt))
241s + identical(pager_is_less(), FALSE)
241s + })
241s [1] TRUE
241s > identical(diffobj:::file_is_less(tempfile()), FALSE)
241s [1] TRUE
241s >
241s > # - file.path ------------------------------------------------------------------
241s >
241s > f <- tempfile()
241s > show(
241s + diffChr(
241s + "A", "B", format='raw',
241s + pager=list(pager=void, file.path=f, threshold=0L)
241s + ) )
241s > all.equal(
241s + readLines(f),
241s + c("< \"A\" > \"B\" ", "@@ 1 @@ @@ 1 @@ ",
241s + "< A > B ")
241s + )
241s [1] TRUE
241s > show( # No error on this one
241s + diffChr(
241s + "A", "B", format='raw',
241s + pager=list(pager=void, file.path=NA, threshold=0L)
241s + ) )
241s > try(Pager(file.path=letters)) # "must be length 1"
241s Error in initialize(value, ...) : Argument `file.path` must be length 1.
241s > try(Pager(file.path=1)) # "must be character"
241s Error in initialize(value, ...) : Argument `file.path` must be character.
241s >
241s > # - basic pager ----------------------------------------------------------------
241s >
241s > local({
241s + f <- tempfile()
241s + on.exit(unlink(f))
241s + c(
241s + all.equal(
241s + capture.output(
241s + show(
241s + diffChr(
241s + 1, 2, pager=Pager(file.path=f, threshold=0L),
241s + format='raw'
241s + )
241s + ) ),
241s + txtf(100)
241s + ),
241s + all.equal(txtf(100), readLines(f))
241s + )
241s + })
241s [1] TRUE TRUE
241s >
241s > # - format-pager interaction ---------------------------------------------------
241s >
241s > local({
241s + old.opt <- options(crayon.colors=7)
241s + crayon::num_colors(TRUE)
241s + on.exit({
241s + options(old.opt)
241s + crayon::num_colors(TRUE)
241s + })
241s + c(
241s + is(
241s + diffChr(1, 2, format='auto', pager="on", interactive=TRUE)@etc@style,
241s + "StyleHtml"
241s + ),
241s + is(
241s + diffChr(1, 2, format='auto', pager="on", interactive=FALSE)@etc@style,
241s + "StyleRaw"
241s + ),
241s + is(
241s + diffChr(
241s + 1, 2, format='auto', pager=PagerBrowser(), interactive=FALSE
241s + )@etc@style,
241s + "StyleHtml"
241s + )
241s + )
241s + })
241s [1] TRUE TRUE TRUE
241s > # - format-pager interaction 2 -------------------------------------------------
241s >
241s > local({
241s + old.rs <- Sys.getenv('RSTUDIO', unset=NA)
241s + old.rsterm <- Sys.getenv('RSTUDIO_TERM', unset=NA)
241s + on.exit({
241s + if(is.na(old.rs)) {
241s + Sys.unsetenv('RSTUDIO')
241s + } else Sys.setenv('RSTUDIO'=old.rs)
241s +
241s + if(is.na(old.rsterm)) {
241s + Sys.unsetenv('RSTUDIO_TERM')
241s + } else Sys.setenv('RSTUDIO_TERM'=old.rsterm)
241s + })
241s + Sys.unsetenv('RSTUDIO')
241s + Sys.unsetenv('RSTUDIO_TERM')
241s + old.opt <- options(crayon.colors=8)
241s + crayon::num_colors(TRUE)
241s + on.exit({options(old.opt); crayon::num_colors(TRUE)}, add=TRUE)
241s +
241s + Sys.setenv(RSTUDIO='1')
241s +
241s + a <- c(
241s + is(
241s + diffChr(1, 2, format='auto', pager='on', interactive=TRUE)@etc@style,
241s + "StyleHtml"
241s + ),
241s + is(
241s + diffChr(1, 2, format='auto', interactive=FALSE)@etc@style,
241s + "StyleAnsi"
241s + ) )
241s + Sys.setenv(RSTUDIO_TERM='HELLO')
241s + crayon::num_colors(TRUE)
241s +
241s + c(
241s + a,
241s + is(
241s + diffChr(1, 2, format='auto', pager='on', interactive=TRUE)@etc@style,
241s + "StyleAnsi"
241s + ) )
241s + })
241s [1] TRUE TRUE TRUE
241s >
241s > # - format-pager interaction 3 -------------------------------------------------
241s >
241s > is(
241s + diffPrint(1:3, 3:1, format='auto', interactive=FALSE, term.colors=1)@etc@style,
241s + "StyleRaw"
241s + )
241s [1] TRUE
241s > is(
241s + diffPrint(1:3, 3:1, format='auto', interactive=FALSE, term.colors=8)@etc@style,
241s + "StyleAnsi"
241s + )
241s [1] TRUE
241s >
241s > # - Default pager writes to screen ---------------------------------------------
241s >
241s > # issue132 thanks Bill Dunlap
241s >
241s > local({
241s + f <- tempfile()
241s + on.exit(unlink(f))
241s + writeLines("hello world", f)
241s +
241s + all.equal(capture.output(new("Pager")@pager(f)), "hello world")
241s + })
241s [1] TRUE
241s >
241s >
241s PASS
241s Begin testing test-rdiff.R
242s
242s R version 4.4.3 (2025-02-28) -- "Trophy Case"
242s Copyright (C) 2025 The R Foundation for Statistical Computing
242s Platform: s390x-ibm-linux-gnu
242s
242s R is free software and comes with ABSOLUTELY NO WARRANTY.
242s You are welcome to redistribute it under certain conditions.
242s Type 'license()' or 'licence()' for distribution details.
242s
242s R is a collaborative project with many contributors.
242s Type 'contributors()' for more information and
242s 'citation()' on how to cite R or R packages in publications.
242s
242s Type 'demo()' for some demos, 'help()' for on-line help, or
242s 'help.start()' for an HTML browser interface to help.
242s Type 'q()' to quit R.
242s
242s > NAME <- "rdiff"
242s > source(file.path('_helper', 'init.R'))
242s >
242s > # - diff util detection --------------------------------------------------------
242s >
242s > identical(has_Rdiff(function(...) warning("test warning")), FALSE)
242s [1] TRUE
242s > isTRUE(has_Rdiff(function(...) NULL))
242s [1] TRUE
242s >
242s > # - errors ---------------------------------------------------------------------
242s >
242s > try(Rdiff_chr(stop('hello'), 'goodbye')) # "Unable to coerce"
242s Error in try(as.character(from)) : hello
242s Error in Rdiff_chr(stop("hello"), "goodbye") :
242s Unable to coerce `target` to character.
242s > try(Rdiff_chr('hello', stop('goodbye'))) # "Unable to coerce"
242s Error in try(as.character(to)) : goodbye
242s Error in Rdiff_chr("hello", stop("goodbye")) :
242s Unable to coerce `current` to character.
242s > try(Rdiff_obj(stop('hello'), 'goodbye')) # "Unable to store"
242s Error in vapply(list(from, to), function(x) { : hello
242s Error in Rdiff_obj(stop("hello"), "goodbye") :
242s Unable to store text representation of objects
242s >
242s > # - Rdiff_chr/obj --------------------------------------------------------------
242s >
242s > # Only run tests on machines that are likely to have diff utility
242s >
242s > if(identical(.Platform$OS.type, "unix") && has_Rdiff()) {
242s + local({
242s + A2 <- c("A", "B", "C")
242s + B2 <- c("X", "A", "Y", "C")
242s + A3 <- 1:3
242s + B3 <- c(100L, 1L, 200L, 3L)
242s +
242s + # Rdiff_chr
242s +
242s + ref.res <- c("0a1", "2c3")
242s + ref.res.1 <- c("0a1", "> X", "2c3", "< B", "---", "> Y")
242s +
242s + a <- identical(Rdiff_chr(A2, B2, silent=TRUE, minimal=TRUE), ref.res)
242s + capt <- capture.output(res <- Rdiff_chr(A2, B2, silent=FALSE, minimal=TRUE))
242s + b <- identical(res, ref.res)
242s + c <- identical(capt, res)
242s + capt.1 <- capture.output(
242s + res.1 <- Rdiff_chr(A2, B2, silent=FALSE, minimal=FALSE)
242s + )
242s + d <- identical(capt.1, ref.res.1)
242s + e <- identical(res.1, ref.res.1)
242s +
242s + # test coersion
242s + f <- identical(Rdiff_chr(A3, B3, minimal=TRUE, silent=TRUE), ref.res)
242s +
242s + # Rdiff_obj
242s +
242s + ref.res2 <- c("1c1", "< [1] \"A\" \"B\" \"C\"", "---", "> [1] \"X\" \"A\" \"Y\" \"C\"" )
242s + ref.res3 <- c("1c1")
242s +
242s + g <- identical(Rdiff_obj(A2, B2, silent=TRUE), ref.res2)
242s + h <- identical(Rdiff_obj(A2, B2, minimal=TRUE, silent=TRUE), ref.res3)
242s +
242s + # with rds
242s + f1 <- tempfile()
242s + f2 <- tempfile()
242s + saveRDS(A2, f1)
242s + saveRDS(B2, f2)
242s + on.exit(unlink(c(f1, f2)))
242s +
242s + i <- identical(Rdiff_obj(f1, B2, silent=TRUE), ref.res2)
242s + j <- identical(Rdiff_obj(A2, f2, silent=TRUE), ref.res2)
242s + k <- identical(Rdiff_obj(f1, f2, silent=TRUE), ref.res2)
242s +
242s + res <- c(a, b, c, d, e, f, g, h, i, k)
242s + if(!all(res)) stop("Failed: ", deparse(which(!res)))
242s + })
242s + }
242s >
242s PASS
242s Begin testing test-s4.R
242s
242s R version 4.4.3 (2025-02-28) -- "Trophy Case"
242s Copyright (C) 2025 The R Foundation for Statistical Computing
242s Platform: s390x-ibm-linux-gnu
242s
242s R is free software and comes with ABSOLUTELY NO WARRANTY.
242s You are welcome to redistribute it under certain conditions.
242s Type 'license()' or 'licence()' for distribution details.
242s
242s R is a collaborative project with many contributors.
242s Type 'contributors()' for more information and
242s 'citation()' on how to cite R or R packages in publications.
242s
242s Type 'demo()' for some demos, 'help()' for on-line help, or
242s 'help.start()' for an HTML browser interface to help.
242s Type 'q()' to quit R.
242s
242s > NAME <- "s4"
242s > source(file.path('_helper', 'init.R'))
242s >
242s > # - diff data validation works
242s > #
242s > # These are not currently in use
242s > # expect_match(diffobj:::valid_dat("hello"), "should be a list")
242s > # D0 <- D1 <- D2 <- D3 <- D4 <- D5 <- D6 <- D7 <-
242s > # diffPrint(letters, LETTERS)@tar.dat
242s >
242s > # expect_match(diffobj:::valid_dat(unname(D0)), "should have names")
242s >
242s > # length(D1[[1L]]) <- 1L
242s > # expect_match(diffobj:::valid_dat(D1), "should have equal length")
242s >
242s > # D2$orig <- integer(length(D2$orig))
242s > # expect_match(diffobj:::valid_dat(D2), "should be character")
242s >
242s > # D3$trim.ind.start <- character(length(D3$trim.ind.start))
242s > # expect_match(diffobj:::valid_dat(D3), "should be integer")
242s >
242s > # D4$word.ind <- integer(length(D4$word.ind))
242s > # expect_match(diffobj:::valid_dat(D4), "should be list")
242s >
242s > # D5$word.ind <- vector("list", length(D5$word.ind))
242s > # expect_match(diffobj:::valid_dat(D5), "not in expected format")
242s >
242s > # D6$tok.rat <- D6$tok.rat + 2
242s > # expect_match(diffobj:::valid_dat(D6), "with all values between")
242s >
242s > # D7$fill <- integer(length(D7$fill))
242s > # expect_match(diffobj:::valid_dat(D7), "should be logical")
242s >
242s > # - any ------------------------------------------------------------------------
242s >
242s > isTRUE(any(diffChr('a', 'b')))
242s [1] TRUE
242s > identical(any(diffChr('a', 'a')), FALSE)
242s [1] TRUE
242s > try(any(diffChr('a', 'a'), 2)) # "supports only one argument"
242s Error : `any` method for `Diff` supports only one argument
242s >
242s PASS
242s Begin testing test-scaling.R
242s
242s R version 4.4.3 (2025-02-28) -- "Trophy Case"
242s Copyright (C) 2025 The R Foundation for Statistical Computing
242s Platform: s390x-ibm-linux-gnu
242s
242s R is free software and comes with ABSOLUTELY NO WARRANTY.
242s You are welcome to redistribute it under certain conditions.
242s Type 'license()' or 'licence()' for distribution details.
242s
242s R is a collaborative project with many contributors.
242s Type 'contributors()' for more information and
242s 'citation()' on how to cite R or R packages in publications.
242s
242s Type 'demo()' for some demos, 'help()' for on-line help, or
242s 'help.start()' for an HTML browser interface to help.
242s Type 'q()' to quit R.
242s
243s > NAME <- "scaling"
243s > source(file.path('_helper', 'init.R'))
243s >
243s > # These tests are not actually run since they require manual intervention to
243s > # check for browser rendering
243s >
243s > # These tests should be run on as many browsers as possible as well as in
243s > # RStudio, and consist of running the code and resizing the windows to see
243s > # what happens
243s >
243s > if(FALSE) { # prevent running
243s + # Text should be allowed to unfurl beyond native width
243s +
243s + diffStr(mdl1, mdl2, format="html")
243s + diffStr(mdl1, mdl2, format="html", style=list(scale=FALSE))
243s +
243s + diffPrint(c(mdl1), c(mdl2), format="html")
243s +
243s + # Revealed problems with pixel rounding in scaling
243s +
243s + diffPrint(letters[1:6], LETTERS[1:6], format="html")
243s + diffPrint(letters[1:6], LETTERS[1:6], format="html", style=list(scale=FALSE))
243s +
243s + # Revealed problems with gutter width computations; and scaling
243s +
243s + mx.2 <- matrix(1:100, ncol=4)
243s + mx.4 <- mx.3 <- mx.2
243s + mx.3[15, 2] <- 111L
243s + mx.3a <- mx.3[-5, ]
243s + diffPrint(mx.2, mx.3a, format="html")
243s +
243s + # summary stuff
243s +
243s + summary(diffPrint(letters, LETTERS, format="html"))
243s + summary(diffStr(mdl1, mdl2, format="html"))
243s + summary(diffPrint(c(mdl1), c(mdl2), format="html"))
243s +
243s + # Long banners
243s +
243s + diffPrint(
243s + 1:20 + 100 + 100 + 100 + 100 + 100 + 100 + 100,
243s + 2:20 + 100 + 100 + 100 + 100 + 100 + 100 + 100,
243s + format="html", style=list(scale=FALSE)
243s + )
243s + diffPrint(
243s + 1:20 + 100 + 100 + 100 + 100 + 100 + 100 + 100,
243s + 2:20 + 100 + 100 + 100 + 100 + 100 + 100 + 100,
243s + format="html"
243s + )
243s + # context
243s +
243s + diffPrint(
243s + 1:20 + 100 + 100 + 100 + 100 + 100 + 100 + 100,
243s + 2:20 + 100 + 100 + 100 + 100 + 100 + 100 + 100,
243s + format="html", mode="context"
243s + )
243s + }
243s >
243s PASS
243s Begin testing test-ses.R
243s
243s R version 4.4.3 (2025-02-28) -- "Trophy Case"
243s Copyright (C) 2025 The R Foundation for Statistical Computing
243s Platform: s390x-ibm-linux-gnu
243s
243s R is free software and comes with ABSOLUTELY NO WARRANTY.
243s You are welcome to redistribute it under certain conditions.
243s Type 'license()' or 'licence()' for distribution details.
243s
243s R is a collaborative project with many contributors.
243s Type 'contributors()' for more information and
243s 'citation()' on how to cite R or R packages in publications.
243s
243s Type 'demo()' for some demos, 'help()' for on-line help, or
243s 'help.start()' for an HTML browser interface to help.
243s Type 'q()' to quit R.
243s
243s > NAME <- "ses"
243s > source(file.path('_helper', 'init.R'))
243s >
243s > # Any tests added here should also be added to the valgrind test file
243s >
243s > # - basic ----------------------------------------------------------------------
243s >
243s > all.equal(ses(letters[1:10], letters[1:10]), character())
243s [1] TRUE
243s > all.equal(ses(letters[1:10], LETTERS[1:10]), "1,10c1,10")
243s [1] TRUE
243s > all.equal(ses(letters[1:5], LETTERS[1:10]), "1,5c1,10")
243s [1] TRUE
243s > all.equal(ses(letters[1:10], LETTERS[1:5]), "1,10c1,5")
243s [1] TRUE
243s > all.equal(ses(letters[2:10], letters[1:7]), c("0a1", "7,9d7"))
243s [1] TRUE
243s > all.equal(
243s + ses(letters[c(1:5, 1:5, 1:5)], c("e", "d", "a", "b", "c")),
243s + c("1,4d0", "6,8d1", "10d2", "14,15d5")
243s + )
243s [1] TRUE
243s > all.equal(
243s + ses(c("e", "d", "a", "b", "c"), letters[c(1:5, 1:5, 1:5)]),
243s + c("0a1,4", "1a6,8", "2a10", "5a14,15")
243s + )
243s [1] TRUE
243s > # edit distance = 1
243s >
243s > # - trigger edit distance 1 branches -------------------------------------------
243s >
243s > all.equal(ses("a", c("a", "b")), "1a2")
243s [1] TRUE
243s > all.equal(ses(c("a", "b"), "a"), "2d1")
243s [1] TRUE
243s > all.equal(ses("c", c("b", "c")), "0a1")
243s [1] TRUE
243s > all.equal(ses(c("b", "c"), "c"), "1d0")
243s [1] TRUE
243s >
243s > all.equal(ses("a", character()), "1d0")
243s [1] TRUE
243s > all.equal(ses(character(), "a"), "0a1")
243s [1] TRUE
243s > all.equal(ses(character(), character()), character())
243s [1] TRUE
243s >
243s > ## this is from the atomic tests, haven't dug into why they actually trigger
243s > ## the desired branches, but it is fairly complex
243s > set.seed(2)
243s > w1 <- sample(
243s + c(
243s + "carrot", "cat", "cake", "eat", "rabbit", "holes", "the", "a", "pasta",
243s + "boom", "noon", "sky", "hat", "blah", "paris", "dog", "snake"
243s + ), 25, replace=TRUE
243s + )
243s > w4 <- w3 <- w2 <- w1
243s > w2[sample(seq_along(w1), 5)] <- LETTERS[1:5]
243s > w3 <- w1[8:15]
243s > w4 <- c(w1[1:5], toupper(w1[1:5]), w1[6:15], toupper(w1[1:5]))
243s >
243s > all.equal(ses(w1, w4), c("5a6,10", "15,21d19", "23,25c21,25"))
243s [1] TRUE
243s >
243s > # - longer strings -------------------------------------------------------------
243s >
243s > # A bigger string
243s >
243s > string <- do.call(paste0, expand.grid(LETTERS, LETTERS, LETTERS))
243s >
243s > all.equal(
243s + ses(string, c("hello", string[-c(5, 500, 1000)], "goodbye")),
243s + c("0a1", "5d5", "500d499", "1000d998", "17576a17575")
243s + )
243s [1] TRUE
243s > all.equal(
243s + ses(c(string[200:500], "hello", string[-(1:400)][-c(5, 500, 1000)]), string),
243s + c("0a1,199", "207,306d405", "800a900", "1299a1400")
243s + )
243s [1] TRUE
243s >
243s > # - max diffs ------------------------------------------------------------------
243s >
243s > ses(letters[1:10], LETTERS[1:10], max.diffs=5) # "Exceeded `max.diffs`"
243s [1] "1,10c1,10"
243s Warning message:
243s In diff_myers(args[["a"]], args[["b"]], max.diffs = args[["max.diffs"]], :
243s Exceeded `max.diffs`: 20 vs 5 allowed. Diff is probably suboptimal.
243s > all.equal(
243s + ses(letters[1:10], LETTERS[1:10], max.diffs=5, warn=FALSE),
243s + "1,10c1,10"
243s + )
243s [1] TRUE
243s > all.equal(
243s + ses(
243s + letters[1:10],
243s + c(letters[1], LETTERS[2:5], letters[6:10]), max.diffs=5, warn=FALSE
243s + ),
243s + "2,5c2,5"
243s + )
243s [1] TRUE
243s > all.equal(
243s + ses(
243s + letters[1:10],
243s + c(letters[1], LETTERS[2:5], letters[6:8], LETTERS[9], letters[10]),
243s + max.diffs=5, warn=FALSE
243s + ),
243s + c("2,5c2,5", "9c9")
243s + )
243s [1] TRUE
243s > # - Issue 152 --------------------------------------------------------------
243s >
243s > # h/t @hadley, used to error, now warns
243s >
243s > all.equal(ses(letters[1:4], letters[1:3]), "4d3")
243s [1] TRUE
243s > all.equal(ses(letters[1:3], letters[1:4]), "3a4")
243s [1] TRUE
243s > ses(1, 2:9, max.diffs = 8)
243s [1] "1c1,8"
243s Warning message:
243s In diff_myers(args[["a"]], args[["b"]], max.diffs = args[["max.diffs"]], :
243s Exceeded `max.diffs`: 9 vs 8 allowed. Diff is probably suboptimal.
243s >
243s > # h/t @gadenbui, data is extracted from palmerpenguins@0.1.0::penguins
243s > #
243s > # comparison <- subset(penguins, year == 2007 | flipper_length_mm > 220)
243s > # test <- subset(penguins, year == 2008)
243s > # a <- test$bill_length_mm
243s > # b <- comparison$bill_length_mm
243s >
243s > a <- c(39.6, 40.1, 35, 42, 34.5, 41.4, 39, 40.6, 36.5, 37.6, 35.7,
243s + 41.3, 37.6, 41.1, 36.4, 41.6, 35.5, 41.1, 35.9, 41.8, 33.5, 39.7,
243s + 39.6, 45.8, 35.5, 42.8, 40.9, 37.2, 36.2, 42.1, 34.6, 42.9, 36.7,
243s + 35.1, 37.3, 41.3, 36.3, 36.9, 38.3, 38.9, 35.7, 41.1, 34, 39.6,
243s + 36.2, 40.8, 38.1, 40.3, 33.1, 43.2, 49.1, 48.4, 42.6, 44.4, 44,
243s + 48.7, 42.7, 49.6, 45.3, 49.6, 50.5, 43.6, 45.5, 50.5, 44.9, 45.2,
243s + 46.6, 48.5, 45.1, 50.1, 46.5, 45, 43.8, 45.5, 43.2, 50.4, 45.3,
243s + 46.2, 45.7, 54.3, 45.8, 49.8, 46.2, 49.5, 43.5, 50.7, 47.7, 46.4,
243s + 48.2, 46.5, 46.4, 48.6, 47.5, 51.1, 45.2, 45.2, 50.5, 49.5, 46.4,
243s + 52.8, 40.9, 54.2, 42.5, 51, 49.7, 47.5, 47.6, 52, 46.9, 53.5,
243s + 49, 46.2, 50.9, 45.5)
243s > b <- c(39.1, 39.5, 40.3, NA, 36.7, 39.3, 38.9, 39.2, 34.1, 42, 37.8,
243s + 37.8, 41.1, 38.6, 34.6, 36.6, 38.7, 42.5, 34.4, 46, 37.8, 37.7,
243s + 35.9, 38.2, 38.8, 35.3, 40.6, 40.5, 37.9, 40.5, 39.5, 37.2, 39.5,
243s + 40.9, 36.4, 39.2, 38.8, 42.2, 37.6, 39.8, 36.5, 40.8, 36, 44.1,
243s + 37, 39.6, 41.1, 37.5, 36, 42.3, 46.1, 50, 48.7, 50, 47.6, 46.5,
243s + 45.4, 46.7, 43.3, 46.8, 40.9, 49, 45.5, 48.4, 45.8, 49.3, 42,
243s + 49.2, 46.2, 48.7, 50.2, 45.1, 46.5, 46.3, 42.9, 46.1, 44.5, 47.8,
243s + 48.2, 50, 47.3, 42.8, 45.1, 59.6, 49.6, 50.5, 50.5, 50.1, 50.4,
243s + 46.2, 54.3, 49.8, 49.5, 50.7, 46.4, 48.2, 48.6, 45.2, 52.5, 50,
243s + 50.8, 52.1, 52.2, 49.5, 50.8, 46.9, 51.1, 55.9, 49.1, 49.8, 51.5,
243s + 55.1, 48.8, 50.4, 46.5, 50, 51.3, 45.4, 52.7, 45.2, 46.1, 51.3,
243s + 46, 51.3, 46.6, 51.7, 47, 52, 45.9, 50.5, 50.3, 58, 46.4, 49.2,
243s + 42.4, 48.5, 43.2, 50.6, 46.7, 52)
243s >
243s > # In <0.3.4: Exceeded buffer for finding fake snake
243s > ses(a[-c(15:38, 50:90)], b[-c(40:85, 100:125)], max.diffs=80)
243s [1] "1,3c1,9" "5,13c11,12" "15,25c14,48" "26a50" "28,29d51"
243s [6] "31c53,57" "33c59,60" "35,42c62,67" "44,49d68"
243s Warning message:
243s In diff_myers(args[["a"]], args[["b"]], max.diffs = args[["max.diffs"]], :
243s Exceeded `max.diffs`: 101 vs 80 allowed. Diff is probably suboptimal.
243s >
243s > # In <0.3.4: Faux Snake Process Failed
243s > ses(a[-(18:38)], b[-(50:80)], max.diffs=115)
243s [1] "1,3c1,9" "5,7c11,26" "9,12c28,38" "13a40,46"
243s [5] "15,54c48,82" "56,68d83" "70,74c85,88" "75a90,98"
243s [9] "77c100,101" "79,86c103,108" "88,93d109"
243s Warning message:
243s In diff_myers(args[["a"]], args[["b"]], max.diffs = args[["max.diffs"]], :
243s Exceeded `max.diffs`: 182 vs 115 allowed. Diff is probably suboptimal.
243s >
243s > # - issue 157 ------------------------------------------------------------------
243s >
243s > # Arguably could match on 'A' instead of 'X' and be more compact
243s > a <- c('a', 'b', 'c', 'A', 'X', 'Y', 'Z', 'W')
243s > b <- c('X', 'C', 'A', 'U', 1, 2, 3)
243s > ses(a, b, max.diffs=13)
243s [1] "1,4d0" "6,8c2,7"
243s >
243s > # segfault (but may have beend debugging code)
243s > ses(letters[1:2], LETTERS[1:2], max.diffs = 4)
243s [1] "1,2c1,2"
243s >
243s > # snake overrun
243s > ses(c("G", "C", "T", "C", "A", "C", "G", "C"), c("T", "G"), max.diffs=2)
243s [1] "0a1" "2,8d2"
243s Warning message:
243s In diff_myers(args[["a"]], args[["b"]], max.diffs = args[["max.diffs"]], :
243s Exceeded `max.diffs`: 8 vs 2 allowed. Diff is probably suboptimal.
243s >
243s > # effect of max.diffs on compactness (waldo logical comparison)
243s > ses(c('A','A','A','A','A'), c('B','A','B','A','B'), max.diffs=0)
243s [1] "1c1" "3c3" "5c5"
243s Warning message:
243s In diff_myers(args[["a"]], args[["b"]], max.diffs = args[["max.diffs"]], :
243s Exceeded `max.diffs`: 6 vs 0 allowed. Diff is probably suboptimal.
243s > ses(c('A','A','A','A','A'), c('B','A','B','A','B'), max.diffs=1)
243s [1] "0a1" "2c3" "4,5c5"
243s Warning message:
243s In diff_myers(args[["a"]], args[["b"]], max.diffs = args[["max.diffs"]], :
243s Exceeded `max.diffs`: 6 vs 1 allowed. Diff is probably suboptimal.
243s > ses(c('A','A','A','A','A'), c('B','A','B','A','B'), max.diffs=2)
243s [1] "0a1" "2,4c3" "5a5"
243s Warning message:
243s In diff_myers(args[["a"]], args[["b"]], max.diffs = args[["max.diffs"]], :
243s Exceeded `max.diffs`: 6 vs 2 allowed. Diff is probably suboptimal.
243s >
243s > # back snake all matches before faux snake triggered
243s > ses_dat(
243s + a=c("T", "A", "A", "C", "C", "A"),
243s + b=c("A", "G", "A", "A"), max.diffs = 0
243s + )
243s "ses_dat" object (Match: 3, Delete: 3, Insert: 1):
243s
243s D: T C C
243s M: A A A
243s I: G
243s Warning message:
243s In diff_myers(args[["a"]], args[["b"]], max.diffs = args[["max.diffs"]], :
243s Exceeded `max.diffs`: 4 vs 0 allowed. Diff is probably suboptimal.
243s >
243s > # - errors ---------------------------------------------------------------------
243s >
243s > try(ses('a', 'b', max.diffs='hello')) # "must be scalar integer"
243s Error in ses_prep(a = a, b = b, max.diffs = max.diffs, warn = warn) :
243s Argument `max.diffs` must be scalar integer.
243s > try(ses('a', 'b', warn='hello')) # "must be TRUE or FALSE"
243s Error in ses_prep(a = a, b = b, max.diffs = max.diffs, warn = warn) :
243s Argument `warn` must be TRUE or FALSE.
243s >
243s > a <- structure(1, class='diffobj_ogewlhgiadfl2')
243s > try(ses(a, 1)) # "could not be coerced")
243s Error in as.character.diffobj_ogewlhgiadfl2(a) : failure2
243s Error in ses_prep(a = a, b = b, max.diffs = max.diffs, warn = warn) :
243s Argument `a` is not character and could not be coerced to such
243s > try(ses(1, a)) # "could not be coerced"
243s Error in as.character.diffobj_ogewlhgiadfl2(b) : failure2
243s Error in ses_prep(a = a, b = b, max.diffs = max.diffs, warn = warn) :
243s Argument `b` is not character and could not be coerced to such
243s >
243s > # We want to have a test file that fully covers the C code in order to run
243s > # valgrind with just that one. We were unable to isolate simple diffs that
243s > # triggered all the code, but we were able to do it with the below in addition
243s > # to the above.
243s >
243s > # - Repeat tests for full coverage in SES file ---------------------------------
243s > # From test.diffStr.R
243s > # formula display changed
243s > if(
243s + R.Version()$major >= 3 && R.Version()$minor >= "3.1" ||
243s + R.Version()$major >= 4) {
243s + rdsf1 <- function(x)
243s + readRDS(file.path("_helper", "objs", "diffStr", sprintf("%s.rds", x)))
243s + all.equal(
243s + as.character(
243s + diffStr(mdl1, mdl2, extra=list(strict.width="wrap"), line.limit=30)
243s + ),
243s + rdsf1(500)
243s + )
243s + }
243s [1] TRUE
243s > # from testthat.warnings.R
243s >
243s > A3 <- c("a b c", "d e f A B C D", "g h i", "f")
243s > B3 <- c("a b c", "xd e f E Q L S", "g h i", "q")
243s >
243s > diffChr(A3, B3, max.diffs=2) # warn: "Exceeded diff"
243s [33m<[39m [33mA3[39m [34m>[39m [34mB3[39m
243s [36m@@ 1,4 @@ [39m [36m@@ 1,4 @@ [39m
243s [90m[39ma b c[90m[39m [90m[39ma b c[90m[39m
243s [33m<[39m [90m[39m[33md[39m [33me[39m [33mf[39m [33mA[39m [33mB[39m [33mC[39m [33mD[39m[90m[39m [34m>[39m [90m[39m[34mxd[39m [34me[39m [34mf[39m [34mE[39m [34mQ[39m [34mL[39m [34mS[39m[90m[39m
243s [33m<[39m [90m[39m[33mg[39m [33mh[39m [33mi[39m[90m[39m [34m>[39m [90m[39m[34mg[39m [34mh[39m [34mi[39m[90m[39m
243s [33m<[39m [90m[39m[33mf[39m[90m[39m [34m>[39m [90m[39m[34mq[39m[90m[39m
243s Warning message:
243s Exceeded diff limit during diff computation (6 vs. 2 allowed); overall diff is likely not optimal
243s >
243s > # - ses_dat --------------------------------------------------------------------
243s >
243s > a <- b <- do.call(paste0, expand.grid(LETTERS, LETTERS))
243s > set.seed(2)
243s > b <- b[-sample(length(b), 100)]
243s > a <- a[-sample(length(b), 100)]
243s >
243s > dat <- ses_dat(a, b)
243s > all.equal(dat[['val']][dat[['op']] != 'Delete'], b)
243s [1] TRUE
243s > all.equal(dat[['val']][dat[['op']] != 'Insert'], a)
243s [1] TRUE
243s > all.equal(a[dat[['id.a']][!is.na(dat[['id.a']])]], a)
243s [1] TRUE
243s >
243s > dat2 <- ses_dat(a, b, extra=FALSE)
243s > all.equal(dat[1:2], dat2)
243s [1] TRUE
243s > all.equal(length(dat2), 2L)
243s [1] TRUE
243s >
243s > try(ses_dat(a, b, extra=NA)) # 'TRUE or FALSE'
243s Error in ses_dat(a, b, extra = NA) :
243s Argument `extra` must be TRUE or FALSE.
243s >
243s > # - encoding agnostic #144 -----------------------------------------------------
243s >
243s > # h/t @hadley, these are different in string cache, but should compare equal
243s > # as per ?identical
243s > x <- c("fa\xE7ile", "fa\ue7ile")
243s > Encoding(x) <- c("latin1", "UTF-8")
243s > y <- rev(x)
243s > all.equal(diffobj::ses(x, y), character())
243s [1] TRUE
243s >
243s PASS
243s Begin testing test-style.R
243s
243s R version 4.4.3 (2025-02-28) -- "Trophy Case"
243s Copyright (C) 2025 The R Foundation for Statistical Computing
243s Platform: s390x-ibm-linux-gnu
243s
243s R is free software and comes with ABSOLUTELY NO WARRANTY.
243s You are welcome to redistribute it under certain conditions.
243s Type 'license()' or 'licence()' for distribution details.
243s
243s R is a collaborative project with many contributors.
243s Type 'contributors()' for more information and
243s 'citation()' on how to cite R or R packages in publications.
243s
243s Type 'demo()' for some demos, 'help()' for on-line help, or
243s 'help.start()' for an HTML browser interface to help.
243s Type 'q()' to quit R.
243s
244s > NAME <- "style"
244s > source(file.path('_helper', 'init.R'))
244s >
244s > ## - Style Palette ------------------------------------------------------------
244s >
244s > all.equal(
244s + capture.output(diffobj:::display_ansi_256_styles()),
244s + rdsf(100)
244s + )
244s [1] TRUE
244s > ## - crayon settings -----------------------------------------------------------
244s >
244s > # make sure crayon options are appropriately overriden
244s > local({
244s + old.opt <- options(crayon.enabled=FALSE)
244s + on.exit(options(old.opt))
244s + print(identical(crayon::green("green"), "green"))
244s + # should have ANSI coloring despite crayon disabled
244s + print(
244s + all.equal(
244s + as.character(diffChr(letters[1:3], LETTERS[1:3])), rdsf(200)
244s + )
244s + )
244s + identical(crayon::green("green"), "green")
244s + })
244s [1] TRUE
244s [1] TRUE
244s [1] TRUE
244s > ## - Palette of Styles ---------------------------------------------------------
244s >
244s > pos <- PaletteOfStyles()
244s > identical(
244s + pos[["ansi256", "light", "rgb"]],
244s + getClassDef("StyleAnsi256LightRgb", package="diffobj", inherits=FALSE)
244s + )
244s [1] TRUE
244s > all.equal(
244s + capture.output(show(pos)), rdsf(300)
244s + )
245s [1] TRUE
245s > all.equal(
245s + capture.output(summary(pos)), rdsf(400)
245s + )
245s [1] TRUE
245s >
245s > pos["ansi256", "light", "yb"] <- list(StyleRaw())
245s > all.equal(
245s + c(pos["ansi256", "light", "yb"]@data), list(StyleRaw()),
245s + check.environment=FALSE
245s + )
245s [1] TRUE
245s > all.equal(
245s + pos[["ansi256", "light", "yb"]], StyleRaw(),
245s + check.environment=FALSE
245s + )
245s [1] TRUE
245s >
245s > ## - Auto Styles ---------------------------------------------------------------
245s >
245s > try(diffChr(letters, LETTERS, style="auto", format="xml"))
245s Error in diffChr(target = letters, current = LETTERS, style = "auto", :
245s Argument `format` must be one of `c("auto", "raw", "ansi8", "ansi256", "html")`.
245s > is(
245s + diffChr(
245s + letters, LETTERS, style="auto", format="auto", brightness="light",
245s + term.colors=256
245s + )@etc@style,
245s + "StyleAnsi256LightYb"
245s + )
245s [1] TRUE
245s > is(
245s + diffChr(
245s + letters, LETTERS, style="auto", format="auto", brightness="light",
245s + term.colors=8
245s + )@etc@style,
245s + "StyleAnsi8NeutralYb"
245s + )
245s [1] TRUE
245s > is(
245s + diffChr(
245s + letters, LETTERS, style="auto", format="auto", interactive=FALSE,
245s + term.colors=1
245s + )@etc@style,
245s + "StyleRaw"
245s + )
245s [1] TRUE
245s > is(
245s + diffChr(
245s + letters, LETTERS, style="auto", format="auto", interactive=TRUE,
245s + term.colors=1 # note pager off by default in tests
245s + )@etc@style,
245s + "StyleRaw"
245s + )
245s [1] TRUE
245s > is(
245s + diffChr(
245s + letters, LETTERS, style="auto", format="auto", interactive=TRUE,
245s + pager="auto", term.colors=1
245s + )@etc@style,
245s + "StyleHtml"
245s + )
245s [1] TRUE
245s > is(
245s + diffChr(
245s + letters, LETTERS, style="auto", format="auto", interactive=TRUE,
245s + pager="auto", term.colors=9
245s + )@etc@style,
245s + "StyleAnsi8NeutralYb"
245s + )
245s [1] TRUE
245s > is(
245s + diffChr(
245s + letters, LETTERS, style="auto", format="auto", interactive=TRUE,
245s + pager="auto", brightness='light', term.colors=500
245s + )@etc@style,
245s + "StyleAnsi256LightYb"
245s + )
245s [1] TRUE
245s > is(
245s + diffChr(
245s + letters, LETTERS, style="auto", format="html", interactive=TRUE,
245s + pager="auto", color.mode=c("rgb", ansi8="yb")
245s + )@etc@style,
245s + "StyleHtmlLightRgb"
245s + )
245s [1] TRUE
245s > is(
245s + diffChr(
245s + letters, LETTERS, style="auto", format="html", interactive=TRUE,
245s + pager="auto", color.mode=c("rgb", html="yb")
245s + )@etc@style,
245s + "StyleHtmlLightYb"
245s + )
245s [1] TRUE
245s > ## - Palette Params ------------------------------------------------------------
245s >
245s > all.equal(
245s + as.character(
245s + diffChr(
245s + letters, LETTERS, style="auto", format="ansi256",
245s + brightness=c("light", ansi256="dark")
245s + ) ),
245s + rdsf(500)
245s + )
245s [1] TRUE
245s > all.equal(
245s + as.character(
245s + diffChr(
245s + letters, LETTERS, style="auto", format="ansi256", brightness=c("dark")
245s + ) ),
245s + rdsf(500)
245s + )
245s [1] TRUE
245s > ## - Style Validation ----------------------------------------------------------
245s >
245s > s.f <- StyleFuns()
245s > isTRUE(validObject(s.f))
245s [1] TRUE
245s > s.f@word.insert <- function(x, y) NULL
245s > try(validObject(s.f)) # word.insert
245s Error in validObject(s.f) :
245s invalid class "StyleFuns" object: Argument `word.insert` may not have non-default formals argument after the first.
245s >
245s > try(diffChr(1,2, format='html', style=list(scale=1:3)))
245s Error in diffChr(target = 1, current = 2, format = "html", style = list(scale = 1:3)) :
245s Unable to instantiate `Style` object: Argument `scale` must be TRUE or FALSE
245s > try(diffChr(1,2, format='html', style=list(html.output="a")))
245s Error in diffChr(target = 1, current = 2, format = "html", style = list(html.output = "a")) :
245s Unable to instantiate `Style` object: Argument `html.output` must be in `c("auto", "page", "diff.only", "diff.w.style")`.
245s >
245s > ## - Pallette w/ Objs ----------------------------------------------------------
245s >
245s > pal <- PaletteOfStyles()
245s > pal["raw", "neutral", "rgb"] <- list(new(pal[["raw", "neutral", "rgb"]]))
245s >
245s > suppressWarnings(
245s + withCallingHandlers(
245s + invisible(diffChr(
245s + letters, LETTERS, format="raw", brightness="neutral", color.mode="rgb",
245s + palette.of.styles=pal, style=list(na.sub="NA")
245s + )),
245s + warning=function(e) writeLines(conditionMessage(e))
245s + )
245s + )
245s Extra `style` arguments cannot be applied because selected object `palette.of.styles` is a `Style` instance rather than a `Style` "classRepresentation". See documentation for the `style` parameter for details.
245s > ## - External Files ------------------------------------------------------------
245s >
245s > isTRUE(file_test("-f", diffobj_css()))
245s [1] TRUE
245s > isTRUE(file_test("-f", diffobj_js()))
245s [1] TRUE
245s >
245s PASS
245s Begin testing test-subset.R
245s
245s R version 4.4.3 (2025-02-28) -- "Trophy Case"
245s Copyright (C) 2025 The R Foundation for Statistical Computing
245s Platform: s390x-ibm-linux-gnu
245s
245s R is free software and comes with ABSOLUTELY NO WARRANTY.
245s You are welcome to redistribute it under certain conditions.
245s Type 'license()' or 'licence()' for distribution details.
245s
245s R is a collaborative project with many contributors.
245s Type 'contributors()' for more information and
245s 'citation()' on how to cite R or R packages in publications.
245s
245s Type 'demo()' for some demos, 'help()' for on-line help, or
245s 'help.start()' for an HTML browser interface to help.
245s Type 'q()' to quit R.
245s
245s > NAME <- "subset"
245s > source(file.path('_helper', 'init.R'))
245s >
245s > A <- B <- letters[1:5]
245s > B[2] <- "B"
245s > B[6] <- "F"
245s >
245s > # - subset ---------------------------------------------------------------------
245s >
245s > local({
245s + old.opt <- options(diffobj.style=StyleRaw())
245s + on.exit(options(old.opt))
245s + a0 <- all.equal(
245s + c(as.character(diffChr(A, B)[1:3])),
245s + c("< A > B ", "@@ 1,5 @@ @@ 1,6 @@ ", " a a ")
245s +
245s + )
245s + a <- all.equal(
245s + c(as.character(diffChr(A, B)[1])), c(as.character(head(diffChr(A, B), 1)))
245s + )
245s + b <- all.equal(
245s + c(as.character(diffChr(A, B)[7:8])), c(as.character(tail(diffChr(A, B), 2)))
245s + )
245s + c(a0, a, b)
245s + })
246s [1] TRUE TRUE TRUE
246s > # - subset errors --------------------------------------------------------------
246s >
246s > diff <- diffChr(A, B)
246s > try(diff[NA_real_]) # "contain NAs or both positive"
246s Error in .local(x, i, ...) :
246s `i` may not contain NAs or both positive and negative indices
246s > try(diff[c(-1, 1)]) # "contain NAs or both positive"
246s Error in .local(x, i, ...) :
246s `i` may not contain NAs or both positive and negative indices
246s > try(head(diff, 1, 2)) # "does not support arguments"
246s Error in .local(x, ...) :
246s This method does not support arguments other than `x` or `n`
246s > try(head(diff, NA)) # "must be integer"
246s Error in .local(x, ...) : `n` must be integer(1L) and not NA
246s > try(head(diff, 1:3)) # "must be integer"
246s Error in .local(x, ...) : `n` must be integer(1L) and not NA
246s > try(tail(diff, 1:3)) # "must be integer"
246s Error in .local(x, ...) : `n` must be integer(1L) and not NA
246s > try(tail(diff, 1, 2)) # "does not support arguments"
246s Error in .local(x, ...) :
246s This method does not support arguments other than `x` or `n`
246s >
246s >
246s >
246s PASS
246s Begin testing test-summary.R
246s
246s R version 4.4.3 (2025-02-28) -- "Trophy Case"
246s Copyright (C) 2025 The R Foundation for Statistical Computing
246s Platform: s390x-ibm-linux-gnu
246s
246s R is free software and comes with ABSOLUTELY NO WARRANTY.
246s You are welcome to redistribute it under certain conditions.
246s Type 'license()' or 'licence()' for distribution details.
246s
246s R is a collaborative project with many contributors.
246s Type 'contributors()' for more information and
246s 'citation()' on how to cite R or R packages in publications.
246s
246s Type 'demo()' for some demos, 'help()' for on-line help, or
246s 'help.start()' for an HTML browser interface to help.
246s Type 'q()' to quit R.
246s
246s > NAME <- "summary"
246s > source(file.path('_helper', 'init.R'))
246s >
246s > # Note, atomic prints happen in different test file
246s >
246s > # - Any ------------------------------------------------------------------------
246s >
246s > identical(any(diffPrint(iris.s, iris.s)), FALSE)
246s [1] TRUE
246s > res <- any(diffPrint(iris.s, iris.c)) # warn: "objects are NOT"
246s Warning message:
246s No visible differences, but objects are NOT `all.equal`.
246s > identical(res, FALSE)
246s [1] TRUE
246s > isTRUE(any(diffPrint(iris.s, iris.4)))
246s [1] TRUE
246s >
246s >
246s > # - Small Summary --------------------------------------------------------------
246s >
246s > all.equal(
246s + as.character(summary(diffPrint(iris.s, iris.4))), rdsf(100)
246s + )
246s [1] TRUE
246s > all.equal(
246s + as.character(summary(diffPrint(iris.s, iris.2))), rdsf(200)
246s + )
246s [1] TRUE
246s > all.equal(
246s + as.character(summary(diffPrint(iris.s, iris.3))), rdsf(300)
246s + )
246s [1] TRUE
246s > all.equal(
246s + as.character(summary(diffPrint(iris.s, iris.c))), rdsf(400)
246s + )
246s [1] TRUE
246s > # All equal
246s >
246s > all.equal(
246s + as.character(summary(diffChr(letters, letters))), rdsf(450)
246s + )
246s [1] TRUE
246s >
246s > # - Big Summary ----------------------------------------------------------------
246s >
246s > # Make sure we test summary reduction, wrapping
246s >
246s > all.equal(
246s + as.character(summary(diffChr(chr.7, chr.8))), rdsf(500)
246s + )
247s [1] TRUE
247s > all.equal(
247s + as.character(summary(diffChr(chr.7, chr.8), scale.threshold=1)), rdsf(600)
247s + )
247s [1] TRUE
247s > all.equal(
247s + as.character(summary(diffChr(chr.7, chr.8), scale.threshold=0)), rdsf(700)
247s + )
247s [1] TRUE
247s > # Force truncation of summary
247s > all.equal(
247s + as.character(
247s + summary(diffChr(chr.7, chr.8), scale.threshold=0, max.lines=2)
247s + ),
247s + rdsf(800)
247s + )
247s [1] TRUE
247s >
247s > # - Show -----------------------------------------------------------------------
247s >
247s > isTRUE(
247s + paste0(capture.output(summary(diffChr(chr.7, chr.8))), collapse="\n") ==
247s + as.character(summary(diffChr(chr.7, chr.8)))
247s + )
247s [1] TRUE
247s >
247s > # - HTML summary ---------------------------------------------------------------
247s >
247s > all.equal(
247s + as.character(
247s + summary(
247s + diffPrint(
247s + iris.s, iris.4, format="html", style=list(html.output="page")
247s + ) ) ),
247s + rdsf(900)
247s + )
247s [1] TRUE
247s >
247s > # - errors ---------------------------------------------------------------------
247s >
247s > diff <- diffChr("hello green world", "hello red world")
247s > try(summary(diff, max.lines=0)) # "strictly positive"
247s Error in .local(object, ...) :
247s Argument `max.lines` must be integer(1L) and strictly positive
247s > try(summary(diff, width=1:3)) # "integer\\(1L\\)"
247s Error in .local(object, ...) :
247s Argument `width` must be integer(1L) and positive
247s > try(summary(diff, scale.threshold=5)) # "between 0 and 1"
247s Error in .local(object, ...) :
247s Argument `scale.threshold` must be numeric(1L) between 0 and 1
247s >
247s > # - width wrap -----------------------------------------------------------------
247s >
247s > diff <- diffChr("hello green world", "hello red world", format='raw')
247s > all.equal(capture.output(show(summary(diff, width=5))), txtf(100))
247s [1] TRUE
247s >
247s >
247s PASS
247s Begin testing test-text.R
247s
247s R version 4.4.3 (2025-02-28) -- "Trophy Case"
247s Copyright (C) 2025 The R Foundation for Statistical Computing
247s Platform: s390x-ibm-linux-gnu
247s
247s R is free software and comes with ABSOLUTELY NO WARRANTY.
247s You are welcome to redistribute it under certain conditions.
247s Type 'license()' or 'licence()' for distribution details.
247s
247s R is a collaborative project with many contributors.
247s Type 'contributors()' for more information and
247s 'citation()' on how to cite R or R packages in publications.
247s
247s Type 'demo()' for some demos, 'help()' for on-line help, or
247s 'help.start()' for an HTML browser interface to help.
247s Type 'q()' to quit R.
247s
248s > NAME <- "text"
248s > source(file.path('_helper', 'init.R'))
248s >
248s > # - simple wrap
248s >
248s > txt1 <- c(
248s + "humpty dumpty sat on a wall and had a big fall",
248s + "humpty sat on a wall and dumped a big fall"
248s + )
248s > res1 <- diffobj:::wrap(txt1, 10, TRUE, sgr.supported=TRUE)
248s >
248s > identical(
248s + gsub(" *$", "", vapply(res1, paste0, character(1L), collapse="")), txt1
248s + )
248s [1] TRUE
248s > all.equal(lapply(res1, nchar), list(rep(10L, 5L), rep(10L, 5L)))
248s [1] TRUE
248s >
248s > txt2 <- "hello world!"
248s > identical(
248s + unlist(diffobj:::wrap(txt2, nchar(txt2), TRUE, sgr.supported=TRUE)),
248s + txt2
248s + )
248s [1] TRUE
248s > identical(
248s + paste0(
248s + unlist(diffobj:::wrap(txt2, nchar(txt2) / 2, TRUE, sgr.supported=TRUE)),
248s + collapse=""
248s + ),
248s + txt2
248s + )
248s [1] TRUE
248s >
248s > # - wrap with escape sequences
248s >
248s > txt3 <- c(
248s + paste0(
248s + "humpty dumpty ", crayon::style("sat on a wall", "red"),
248s + " and had a big fall",
248s + crayon::style(
248s + crayon::style(
248s + "humpty sat on a wall and dumped a big fall",
248s + "green"
248s + ),
248s + "bgRed"
248s + ), "woohoo"
248s + ),
248s + paste0(
248s + crayon::style("hello ", "inverse"), "beautiful ",
248s + crayon::style("world", "blue")
248s + )
248s + )
248s > res3 <- diffobj:::wrap(txt3, 10, TRUE, sgr.supported=TRUE)
248s >
248s > identical(
248s + crayon::strip_style(
248s + gsub(" *$", "", vapply(res3, paste0, character(1L), collapse=""))
248s + ),
248s + crayon::strip_style(txt3)
248s + )
248s [1] TRUE
248s > all.equal(
248s + lapply(res3, crayon::col_nchar),
248s + list(rep(10L, 10L), rep(10L, 3L))
248s + )
248s [1] TRUE
248s >
248s > # - strip hz whitespace
248s >
248s > options(crayon.enabled=FALSE)
248s > all.equal(
248s + diffobj:::strip_hz_control("a\tb", stops=4L, sgr.supported=TRUE), "a b")
248s [1] TRUE
248s > all.equal(
248s + diffobj:::strip_hz_control("ab\t", stops=4L, sgr.supported=TRUE), "ab ")
248s [1] TRUE
248s > all.equal(
248s + diffobj:::strip_hz_control("a\tb\t", stops=4L, sgr.supported=TRUE), "a b ")
248s [1] TRUE
248s > all.equal(
248s + diffobj:::strip_hz_control("\ta\tb\t", stops=4L, sgr.supported=TRUE),
248s + " a b "
248s + )
248s [1] TRUE
248s > all.equal(
248s + diffobj:::strip_hz_control("\ta\tb\t", stops=c(2L, 4L), sgr.supported=TRUE),
248s + " a b "
248s + )
248s [1] TRUE
248s > all.equal(
248s + diffobj:::strip_hz_control(
248s + c("ab\t", "\ta\tb\t"), sgr.supported=TRUE, stops=4L
248s + ),
248s + c("ab ", " a b ")
248s + )
248s [1] TRUE
248s > # recall that nchar("\033") == 1
248s > all.equal(
248s + diffobj:::strip_hz_control(
248s + "\033[31ma\t\033[39mhello\tb", stops=10L, sgr.supported=FALSE
248s + ),
248s + "\033[31ma \033[39mhello b"
248s + )
248s [1] TRUE
248s > all.equal(
248s + diffobj:::strip_hz_control(
248s + "\033[31ma\t\033[39mhello\tb", stops=10L, sgr.supported=TRUE
248s + ),
248s + "\033[31ma\033[39m \033[31m\033[39mhello \033[31m\033[39mb"
248s + )
248s [1] TRUE
248s > # carriage returns
248s >
248s > all.equal(
248s + diffobj:::strip_hz_control("hellothere\rHELLO", sgr.supported=TRUE),
248s + "HELLOthere"
248s + )
248s [1] TRUE
248s > all.equal(
248s + diffobj:::strip_hz_control(
248s + c("hellothere\rHELLO", "000\r12345678\rabcdef\rABC"), sgr.supported=TRUE
248s + ),
248s + c("HELLOthere", "ABCdef78")
248s + )
248s [1] TRUE
248s > all.equal(
248s + diffobj:::strip_hz_control("hellothere\r", sgr.supported=TRUE),
248s + "hellothere"
248s + )
248s [1] TRUE
248s > all.equal(
248s + diffobj:::strip_hz_control(character(), sgr.supported=TRUE), character()
248s + )
248s [1] TRUE
248s > # newlines
248s >
248s > all.equal(
248s + diffobj:::strip_hz_control(c("a", "", "\n", "a\nb"), sgr.supported=TRUE),
248s + c("a", "", "", "a", "b")
248s + )
248s [1] TRUE
248s > # with colors
248s >
248s > options(crayon.enabled=TRUE)
248s >
248s > all.equal(
248s + crayon::strip_style(
248s + diffobj:::strip_hz_control(
248s + "\033[31ma\t\033[39mhello\tb", stops=10L, sgr.supported=TRUE)
248s + ),
248s + "a hello b"
248s + )
248s [1] TRUE
248s > test.chr <- paste0(
248s + crayon::red(crayon::`%+%`("000", crayon::bgBlue("\r12345678"))),
248s + "\rabcdef", crayon::green("\rABC")
248s + )
248s > # visually inspect these
248s >
248s > # cat("\n")
248s > # cat(test.chr, sep="\n")
248s > res <- diffobj:::strip_hz_control(test.chr, sgr.supported=TRUE)
248s > # cat(res, sep="\n")
248s > all.equal(crayon::strip_style(res), "ABCdef78")
248s [1] TRUE
248s >
248s > # Mix tabs and carriage returns, visual inspection assumes terminal tab
248s > # stops at 8L; note output not exactly the same since it seems tabs don't
248s > # ovewrite prior screen state whereas spaces do
248s >
248s > test.chr.2 <- paste0(
248s + crayon::red(crayon::`%+%`("000", crayon::bgBlue("\r123\t456\t78"))),
248s + "\rab\tcd f", crayon::green("\rABC")
248s + )
248s > # cat("\n")
248s > # cat(test.chr.2, sep="\n")
248s > res.2 <- diffobj:::strip_hz_control(test.chr.2, stops=8L, sgr.supported=TRUE)
248s > # cat(res.2, sep="\n")
248s >
248s > all.equal(crayon::strip_style(res.2), "ABC cd f 78")
248s [1] TRUE
248s >
248s > # multi line
248s >
248s > test.chr.3 <- c(test.chr, test.chr.2)
248s > # cat("\n")
248s > res.3 <- diffobj:::strip_hz_control(test.chr.3, sgr.supported=TRUE)
248s > # cat(res.3, sep="\n")
248s > # cat(test.chr.3, sep="\n")
248s >
248s > all.equal(crayon::strip_style(res.3), c("ABCdef78", "ABC cd f 78"))
248s [1] TRUE
248s >
248s >
248s PASS
248s Begin testing test-trim.R
248s
248s R version 4.4.3 (2025-02-28) -- "Trophy Case"
248s Copyright (C) 2025 The R Foundation for Statistical Computing
248s Platform: s390x-ibm-linux-gnu
248s
248s R is free software and comes with ABSOLUTELY NO WARRANTY.
248s You are welcome to redistribute it under certain conditions.
248s Type 'license()' or 'licence()' for distribution details.
248s
248s R is a collaborative project with many contributors.
248s Type 'contributors()' for more information and
248s 'citation()' on how to cite R or R packages in publications.
248s
248s Type 'demo()' for some demos, 'help()' for on-line help, or
248s 'help.start()' for an HTML browser interface to help.
248s Type 'q()' to quit R.
248s
248s > NAME <- "trim"
248s > source(file.path('_helper', 'init.R'))
248s >
248s > .mx.base <- matrix(
248s + c(
248s + "averylongwordthatcanlahblah", "causeasinglewidecolumnblah",
248s + "matrixtowrapseveraltimes", "inarrowscreen", "onceuponatime",
248s + "agreenduckflew", "overthemountains", "inalongofantelopes",
248s + "ineedthreemore", "entriesactually", "nowonlytwomore", "iwaswrongearlier"
248s + ),
248s + nrow=3, ncol=4
248s + )
248s >
248s > # - Atomic ---------------------------------------------------------------------
248s >
248s > set.seed(1)
248s > x <- capture.output(1:50)
248s > y <- capture.output(factor(sample(letters, 50, replace=TRUE)))
248s >
248s > all.equal(
248s + diffobj:::strip_atomic_rh(x),
248s + c(" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25", "26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50")
248s + )
248s [1] TRUE
248s > all.equal(
248s + diffobj:::strip_atomic_rh(y),
248s + c("g j o x f x y r q b f e r j u m s z j u y f q d g k a j w i m p m e v r u c", "s k v q u o n u a m t s", "Levels: a b c d e f g i j k m n o p q r s t u v w x y z")
248s + )
248s [1] TRUE
248s > all.equal(diffobj:::which_atomic_rh(capture.output(1:5)), 1)
248s [1] TRUE
248s >
248s > all.equal(as.character(diffPrint(1:3, 2:6, trim=FALSE)), rdsf(50))
248s [1] TRUE
248s >
248s > # bad headers
248s >
248s > bh <- c("[1] a b c", "[4] d e f", "[5] h")
248s > all.equal(diffobj:::which_atomic_rh(bh), integer())
248s [1] TRUE
248s >
248s > # - Matrix
248s > mx1 <- mx2 <- matrix(1:3, 3)
248s > all.equal(
248s + diffobj:::strip_matrix_rh(capture.output(mx1), dimnames(mx1)),
248s + c(" [,1]", " 1", " 2", " 3")
248s + )
248s [1] TRUE
248s > # shouldn't strip headers from attributes
248s > attr(mx2, "blah") <- matrix(1:2, 2)
248s > all.equal(
248s + diffobj:::strip_matrix_rh(capture.output(mx2), dimnames(mx2)),
248s + c(" [,1]", " 1", " 2", " 3", "attr(,\"blah\")", " [,1]", "[1,] 1", "[2,] 2")
248s + )
248s [1] TRUE
248s > # Matrices that wrap
248s >
248s > mx3 <- mx4 <- mx5 <- mx6 <- .mx.base
248s > old.opt <- options(width=30)
248s >
248s > all.equal(
248s + diffobj:::strip_matrix_rh(capture.output(mx3), dimnames(mx3)),
248s + c(" [,1] ", "\"averylongwordthatcanlahblah\"", "\"causeasinglewidecolumnblah\" ", "\"matrixtowrapseveraltimes\" ", " [,2] ", "\"inarrowscreen\" ", "\"onceuponatime\" ", "\"agreenduckflew\"", " [,3] ", "\"overthemountains\" ", "\"inalongofantelopes\"", "\"ineedthreemore\" ", " [,4] ", "\"entriesactually\" ", "\"nowonlytwomore\" ", "\"iwaswrongearlier\"")
248s + )
248s [1] TRUE
248s > # Add rownames; should no longer strip
248s >
248s > rownames(mx4) <- 2:4
248s > all.equal(
248s + diffobj:::strip_matrix_rh(capture.output(mx4), dimnames(mx4)),
248s + capture.output(mx4)
248s + )
248s [1] TRUE
248s > # Attributes don't have stuff stripped
248s >
248s > attr(mx6, "blah") <- letters[1:15]
248s >
248s > all.equal(
248s + diffobj:::strip_matrix_rh(capture.output(mx6), dimnames(mx6)),
248s + c(" [,1] ", "\"averylongwordthatcanlahblah\"", "\"causeasinglewidecolumnblah\" ", "\"matrixtowrapseveraltimes\" ", " [,2] ", "\"inarrowscreen\" ", "\"onceuponatime\" ", "\"agreenduckflew\"", " [,3] ", "\"overthemountains\" ", "\"inalongofantelopes\"", "\"ineedthreemore\" ", " [,4] ", "\"entriesactually\" ", "\"nowonlytwomore\" ", "\"iwaswrongearlier\"", "attr(,\"blah\")", " [1] \"a\" \"b\" \"c\" \"d\" \"e\" \"f\"", " [7] \"g\" \"h\" \"i\" \"j\" \"k\" \"l\"", "[13] \"m\" \"n\" \"o\"")
248s + )
248s [1] TRUE
248s > # Single row matrix
248s >
248s > all.equal(
248s + diffobj:::which_matrix_rh(capture.output(matrix(1:2, nrow=1)), NULL), 2
248s + )
248s [1] TRUE
248s > options(width=80)
248s >
248s > # - Table ----------------------------------------------------------------------
248s >
248s > old.opt <- options(width=30)
248s >
248s > # Data frames
248s >
248s > df1 <- as.data.frame(.mx.base)
248s > all.equal(
248s + diffobj:::strip_table_rh(capture.output(df1)),
248s + c(" V1", "averylongwordthatcanlahblah", " causeasinglewidecolumnblah", " matrixtowrapseveraltimes", " V2", " inarrowscreen", " onceuponatime", "agreenduckflew", " V3", " overthemountains", "inalongofantelopes", " ineedthreemore", " V4", " entriesactually", " nowonlytwomore", "iwaswrongearlier")
248s + )
248s [1] TRUE
248s > df2 <- df1[c(2, 1, 3), ]
248s >
248s > all.equal(
248s + diffobj:::strip_table_rh(capture.output(df2)),
248s + capture.output(df2)
248s + )
248s [1] TRUE
248s > # Rownames that start from one and sequential, should get stripped; also,
248s > # colon allowed
248s >
248s > df3 <- df1
248s > rownames(df3) <- paste0(1:3, ":")
248s > all.equal(
248s + diffobj:::strip_table_rh(capture.output(df3)),
248s + c(" V1", "averylongwordthatcanlahblah", " causeasinglewidecolumnblah", " matrixtowrapseveraltimes", " V2", " inarrowscreen", " onceuponatime", "agreenduckflew", " V3", " overthemountains", "inalongofantelopes", " ineedthreemore", " V4", " entriesactually", " nowonlytwomore", "iwaswrongearlier")
248s + )
248s [1] TRUE
248s > # Try ts
248s >
248s > all.equal(
248s + diffobj:::strip_table_rh(capture.output(USAccDeaths)),
248s + capture.output(USAccDeaths)
248s + )
248s [1] TRUE
248s > # Set it so first year is 1
248s >
248s > USAD2 <- USAccDeaths
248s > tsp(USAD2)[1:2] <- tsp(USAD2)[1:2] - 1972
248s >
248s > all.equal(
248s + diffobj:::strip_table_rh(capture.output(USAD2)),
248s + c(" Jan Feb Mar Apr", " 9007 8106 8928 9137", " 7750 6981 8038 8422", " 8162 7306 8124 7870", " 7717 7461 7767 7925", " 7792 6957 7726 8106", " 7836 6892 7791 8192", " May Jun Jul Aug", "10017 10826 11317 10744", " 8714 9512 10120 9823", " 9387 9556 10093 9620", " 8623 8945 10078 9179", " 8890 9299 10625 9302", " 9115 9434 10484 9827", " Sep Oct Nov Dec", " 9713 9938 9161 8927", " 8743 9129 8710 8680", " 8285 8466 8160 8034", " 8037 8488 7874 8647", " 8314 8850 8265 8796", " 9110 9070 8633 9240")
248s + )
248s [1] TRUE
248s > # single row data frame
248s >
248s > all.equal(c(diffobj:::which_table_rh(capture.output(data.frame(1, 2)))), 2)
248s [1] TRUE
248s >
248s > # More than 10 rows data.frame
248s >
248s > all.equal(
248s + c(diffobj:::which_table_rh(capture.output(head(Puromycin, 10L)))),
248s + 2:11
248s + )
248s [1] TRUE
248s > # Bad wrap
248s >
248s > bw <- c(
248s + " bad", "1 123", "2 456",
248s + " dab", "1 123", "2 456",
248s + " abd", "1 123")
248s >
248s > all.equal(
248s + diffobj:::wtr_help(bw, diffobj:::.pat.tbl),
248s + c(2L, 3L, 5L, 6L)
248s + )
248s [1] TRUE
248s >
248s > # - Array
248s > a <- array(1:6, c(3, 1, 2))
248s > a.c <- capture.output(a)
248s > all.equal(
248s + diffobj:::strip_array_rh(a.c, dimnames(a)),
248s + c(", , 1", "", " [,1]", " 1", " 2", " 3", "", ", , 2", "", " [,1]", " 4", " 5", " 6", "")
248s + )
248s [1] TRUE
248s > viz_sarh <- function(capt, obj)
248s + cbind(
248s + capt,
248s + as.integer(
248s + seq_along(capt) %in% diffobj:::which_array_rh(capt, dimnames(obj))
248s + )
248s + )
248s > a1 <- a2 <- a3 <- a4 <- array(
248s + "averylongphrasethatwillforcemytwocolumnarraytowrapblahblah", c(2, 2, 2)
248s + )
248s > ca1 <- capture.output(a1)
248s > viz_sarh(ca1, a1)
248s capt
248s [1,] ", , 1"
248s [2,] ""
248s [3,] " [,1] "
248s [4,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [5,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [6,] " [,2] "
248s [7,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [8,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [9,] ""
248s [10,] ", , 2"
248s [11,] ""
248s [12,] " [,1] "
248s [13,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [14,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [15,] " [,2] "
248s [16,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [17,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [18,] ""
248s
248s [1,] "0"
248s [2,] "0"
248s [3,] "0"
248s [4,] "1"
248s [5,] "1"
248s [6,] "0"
248s [7,] "1"
248s [8,] "1"
248s [9,] "0"
248s [10,] "0"
248s [11,] "0"
248s [12,] "0"
248s [13,] "1"
248s [14,] "1"
248s [15,] "0"
248s [16,] "1"
248s [17,] "1"
248s [18,] "0"
248s > all.equal(
248s + diffobj:::which_array_rh(ca1, dimnames(a1)),
248s + c(4L, 5L, 7L, 8L, 13L, 14L, 16L, 17L)
248s + )
248s [1] TRUE
248s > colnames(a2) <- c("ABC", "DEF")
248s > ca2 <- capture.output(a2)
248s > viz_sarh(ca2, a2)
248s capt
248s [1,] ", , 1"
248s [2,] ""
248s [3,] " ABC "
248s [4,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [5,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [6,] " DEF "
248s [7,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [8,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [9,] ""
248s [10,] ", , 2"
248s [11,] ""
248s [12,] " ABC "
248s [13,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [14,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [15,] " DEF "
248s [16,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [17,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [18,] ""
248s
248s [1,] "0"
248s [2,] "0"
248s [3,] "0"
248s [4,] "1"
248s [5,] "1"
248s [6,] "0"
248s [7,] "1"
248s [8,] "1"
248s [9,] "0"
248s [10,] "0"
248s [11,] "0"
248s [12,] "0"
248s [13,] "1"
248s [14,] "1"
248s [15,] "0"
248s [16,] "1"
248s [17,] "1"
248s [18,] "0"
248s > all.equal(
248s + diffobj:::which_array_rh(ca2, dimnames(a2)),
248s + c(4L, 5L, 7L, 8L, 13L, 14L, 16L, 17L)
248s + )
248s [1] TRUE
248s > rownames(a3) <- 1:2
248s > ca3 <- capture.output(a3)
248s > viz_sarh(ca3, a3)
248s capt
248s [1,] ", , 1"
248s [2,] ""
248s [3,] " [,1] "
248s [4,] "1 \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [5,] "2 \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [6,] " [,2] "
248s [7,] "1 \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [8,] "2 \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [9,] ""
248s [10,] ", , 2"
248s [11,] ""
248s [12,] " [,1] "
248s [13,] "1 \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [14,] "2 \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [15,] " [,2] "
248s [16,] "1 \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [17,] "2 \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [18,] ""
248s
248s [1,] "0"
248s [2,] "0"
248s [3,] "0"
248s [4,] "0"
248s [5,] "0"
248s [6,] "0"
248s [7,] "0"
248s [8,] "0"
248s [9,] "0"
248s [10,] "0"
248s [11,] "0"
248s [12,] "0"
248s [13,] "0"
248s [14,] "0"
248s [15,] "0"
248s [16,] "0"
248s [17,] "0"
248s [18,] "0"
248s > all.equal(diffobj:::which_array_rh(ca3, dimnames(a3)), integer(0L))
248s [1] TRUE
248s >
248s > attr(a4, "blahblah") <- matrix(1:4, 2)
248s > ca4 <- capture.output(a4)
248s > viz_sarh(ca4, a4)
248s capt
248s [1,] ", , 1"
248s [2,] ""
248s [3,] " [,1] "
248s [4,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [5,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [6,] " [,2] "
248s [7,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [8,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [9,] ""
248s [10,] ", , 2"
248s [11,] ""
248s [12,] " [,1] "
248s [13,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [14,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [15,] " [,2] "
248s [16,] "[1,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [17,] "[2,] \"averylongphrasethatwillforcemytwocolumnarraytowrapblahblah\""
248s [18,] ""
248s [19,] "attr(,\"blahblah\")"
248s [20,] " [,1] [,2]"
248s [21,] "[1,] 1 3"
248s [22,] "[2,] 2 4"
248s
248s [1,] "0"
248s [2,] "0"
248s [3,] "0"
248s [4,] "1"
248s [5,] "1"
248s [6,] "0"
248s [7,] "1"
248s [8,] "1"
248s [9,] "0"
248s [10,] "0"
248s [11,] "0"
248s [12,] "0"
248s [13,] "1"
248s [14,] "1"
248s [15,] "0"
248s [16,] "1"
248s [17,] "1"
248s [18,] "0"
248s [19,] "0"
248s [20,] "0"
248s [21,] "0"
248s [22,] "0"
248s > all.equal(
248s + diffobj:::which_array_rh(ca4, dimnames(a4)),
248s + c(4L, 5L, 7L, 8L, 13L, 14L, 16L, 17L)
248s + )
248s [1] TRUE
248s > options(width=80)
248s >
248s > # - List -----------------------------------------------------------------------
248s >
248s > l1 <- list(
248s + matrix(1:4, 2), b=list(abc=c(letters, LETTERS), list(matrix(4:1, 2)))
248s + )
248s > l1.c <- capture.output(l1)
248s > all.equal(
248s + diffobj:::strip_list_rh(l1.c, l1),
248s + c("[[1]]", " [,1] [,2]", " 1 3", " 2 4", "", "$b", "$b$abc", "\"a\" \"b\" \"c\" \"d\" \"e\" \"f\" \"g\" \"h\" \"i\" \"j\" \"k\" \"l\" \"m\" \"n\" \"o\" \"p\" \"q\" \"r\" \"s\"", "\"t\" \"u\" \"v\" \"w\" \"x\" \"y\" \"z\" \"A\" \"B\" \"C\" \"D\" \"E\" \"F\" \"G\" \"H\" \"I\" \"J\" \"K\" \"L\"", "\"M\" \"N\" \"O\" \"P\" \"Q\" \"R\" \"S\" \"T\" \"U\" \"V\" \"W\" \"X\" \"Y\" \"Z\"", "", "$b[[2]]", "$b[[2]][[1]]", " [,1] [,2]", " 4 2", " 3 1", "", "", "")
248s + )
248s [1] TRUE
248s >
248s > a <- list(list())
248s > aa <- list(list(), "a")
248s > b <- list("a", list())
248s > c <- list(list("a"), "b")
248s > d <- list("a", "b", "c")
248s >
248s > identical(
248s + diffobj:::strip_list_rh(capture.output(d), d),
248s + c("[[1]]", "\"a\"", "", "[[2]]", "\"b\"", "", "[[3]]", "\"c\"", "")
248s + )
248s [1] TRUE
248s > identical(
248s + diffobj:::strip_list_rh(capture.output(a), a),
248s + c("[[1]]", "list()", "")
248s + )
248s [1] TRUE
248s > identical(
248s + diffobj:::strip_list_rh(capture.output(aa), aa),
248s + c("[[1]]", "list()", "", "[[2]]", "\"a\"", "")
248s + )
248s [1] TRUE
248s > identical(
248s + diffobj:::strip_list_rh(capture.output(b), b),
248s + c("[[1]]", "\"a\"", "", "[[2]]", "list()", "")
248s + )
248s [1] TRUE
248s > identical(
248s + diffobj:::strip_list_rh(capture.output(c), c),
248s + c("[[1]]", "[[1]][[1]]", "\"a\"", "", "", "[[2]]", "\"b\"", "")
248s + )
248s [1] TRUE
248s >
248s > # - custom trim fun ------------------------------------------------------------
248s >
248s > a <- matrix(100:102)
248s > b <- matrix(101:103)
248s > fun1 <- function(x, y) cbind(rep(1L, 4), rep(5L, 4))
248s >
248s > all.equal(as.character(diffPrint(a, b, trim=fun1)), rdsf(100))
249s [1] TRUE
249s > if(getRversion() >= "3.2.2") {
249s + capture.output(
249s + trim.err <- as.character(diffPrint(a, b, trim=function(x, y) stop("boom"))),
249s + type="message"
249s + ) # warn: "If you did not specify a `trim`"
249s + all.equal(trim.err, rdsf(200))
249s + }
249s [1] TRUE
249s Warning message:
249s In apply_trim(current, cur.capt.p, etc@trim) :
249s `trim*` method produced an error when attempting to trim ; If you did not specify a `trim` function or define custom `trim*` methods contact maintainer (see `?trim`). Proceeding without trimming.
249s > # purposefully bad trim fun
249s >
249s > try( # "method return value must be a two "
249s + diffPrint(1:100, 2:100, trim=function(x, y) TRUE)
249s + )
249s Error in apply_trim(target, tar.capt.p, etc@trim) :
249s `trim*` method return value must be a two column integer matrix with no NAs; If you did not specify a `trim` function or define custom `trim*` methods contact maintainer (see `?trim`). Proceeding without trimming.
249s > try( # "Invalid trim function"
249s + diffobj:::apply_trim(letters, letters, function(x) TRUE),
249s + )
249s Error in diffobj:::apply_trim(letters, letters, function(x) TRUE) :
249s Invalid trim function (does not have at least two arguments). If you did not customize the trim function contact maintainer; see `?trim`
249s > try(# "must have as many rows"
249s + diffobj:::apply_trim(
249s + letters, letters, function(x, y) cbind(1:25, 1:25)
249s + )
249s + )
249s Error in diffobj:::apply_trim(letters, letters, function(x, y) cbind(1:25, :
249s `trim*` method output matrix must have as many rows as object character representation has elements; If you did not specify a `trim` function or define custom `trim*` methods contact maintainer (see `?trim`). Proceeding without trimming.
249s >
249s > # - s4 -------------------------------------------------------------------------
249s >
249s > setClass("DOTrimTest", slots=c(a="numeric", b="list", c="matrix"))
249s > obj <- new(
249s + "DOTrimTest", a=1:40, b=list(a=1, letters, NULL), c=matrix(1:9, 3)
249s + )
249s > all.equal(
249s + diffobj:::strip_s4_rh(capture.output(obj), obj), rdsf(300)
249s + )
249s [1] TRUE
249s >
249s >
249s PASS
249s Begin testing test-warnings.R
249s
249s R version 4.4.3 (2025-02-28) -- "Trophy Case"
249s Copyright (C) 2025 The R Foundation for Statistical Computing
249s Platform: s390x-ibm-linux-gnu
249s
249s R is free software and comes with ABSOLUTELY NO WARRANTY.
249s You are welcome to redistribute it under certain conditions.
249s Type 'license()' or 'licence()' for distribution details.
249s
249s R is a collaborative project with many contributors.
249s Type 'contributors()' for more information and
249s 'citation()' on how to cite R or R packages in publications.
249s
249s Type 'demo()' for some demos, 'help()' for on-line help, or
249s 'help.start()' for an HTML browser interface to help.
249s Type 'q()' to quit R.
249s
249s > NAME <- "warnings"
249s > source(file.path('_helper', 'init.R'))
249s >
249s > # tests designed to produce warnings
249s >
249s > # - Extra args for `str` -------------------------------------------------------
249s >
249s > a <- "hello"
249s > b <- "goodbye"
249s >
249s > invisible(diffStr(a, b, extra=list(comp.str="^"))) # "Specifying"
249s Warning message:
249s In capt_fun(target, current, etc = etc.proc, err = err, extra) :
249s Specifying `comp.str` may cause `str` output level folding to be incorrect
249s > invisible(diffStr(a, b, extra=list(comp="^"))) # "Specifying")
249s Warning messages:
249s 1: In match.call(definition, call, expand.dots, envir) :
249s partial argument match of 'comp' to 'comp.str'
249s 2: In capt_fun(target, current, etc = etc.proc, err = err, extra) :
249s Specifying `comp.str` may cause `str` output level folding to be incorrect
249s > invisible(diffStr(a, b, extra=list(indent.str="..."))) # "Specifying"
249s Warning message:
249s In capt_fun(target, current, etc = etc.proc, err = err, extra) :
249s Specifying `indent.str` may cause `str` output level folding to be incorrect
249s > invisible(diffStr(a, b, extra=list(indent="..."))) # "Specifying"
249s Warning messages:
249s 1: In match.call(definition, call, expand.dots, envir) :
249s partial argument match of 'indent' to 'indent.str'
249s 2: In capt_fun(target, current, etc = etc.proc, err = err, extra) :
249s Specifying `indent.str` may cause `str` output level folding to be incorrect
249s >
249s > # - Max diffs ------------------------------------------------------------------
249s >
249s > # Max limit warnings work properly; these are not fully fleshed out
249s >
249s > A3 <- c("a b c", "d e f A B C D", "g h i", "f")
249s > B3 <- c("a b c", "xd e f E Q L S", "g h i", "q")
249s >
249s > invisible(diffChr(A3, B3, max.diffs=2)) # warn: "Exceeded diff"
249s Warning message:
249s Exceeded diff limit during diff computation (6 vs. 2 allowed); overall diff is likely not optimal
249s >
249s > # - Overriden formals ----------------------------------------------------------
249s >
249s > # warn "Provided `style` argument will override the provided `format` argument"
249s > invisible(diffChr(letters, LETTERS, style=StyleRaw(), format="ansi8"))
249s Warning message:
249s In diffChr(target = letters, current = LETTERS, style = StyleRaw(), :
249s Provided `style` argument will override the provided `format` argument
249s >
249s > # warn: "Provided `style` .* `format` and `color.mode` arguments"
249s > invisible(
249s + diffChr(letters, LETTERS, style=StyleRaw(), format="ansi8", color.mode="rgb")
249s + )
249s Warning message:
249s In diffChr(target = letters, current = LETTERS, style = StyleRaw(), :
249s Provided `style` argument will override the provided `format` and `color.mode` arguments.
249s >
249s >
249s PASS
250s autopkgtest [18:01:54]: test run-unit-test: -----------------------]
250s run-unit-test PASS
250s autopkgtest [18:01:54]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - -
251s autopkgtest [18:01:55]: test pkg-r-autopkgtest: preparing testbed
372s autopkgtest [18:03:56]: testbed dpkg architecture: s390x
373s autopkgtest [18:03:57]: testbed apt version: 2.9.33
373s autopkgtest [18:03:57]: @@@@@@@@@@@@@@@@@@@@ test bed setup
373s autopkgtest [18:03:57]: testbed release detected to be: plucky
374s autopkgtest [18:03:58]: updating testbed package index (apt update)
374s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [126 kB]
374s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease
374s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease
375s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease
375s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [99.7 kB]
375s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.8 kB]
375s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [379 kB]
375s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x Packages [113 kB]
375s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x c-n-f Metadata [1824 B]
375s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/restricted s390x c-n-f Metadata [116 B]
375s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x Packages [320 kB]
375s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x c-n-f Metadata [13.4 kB]
375s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse s390x Packages [3776 B]
375s Get:14 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse s390x c-n-f Metadata [240 B]
376s Fetched 1073 kB in 2s (698 kB/s)
376s Reading package lists...
377s Reading package lists...
377s Building dependency tree...
377s Reading state information...
377s Calculating upgrade...
377s Calculating upgrade...
377s The following packages were automatically installed and are no longer required:
377s libnsl2 libpython3.12-minimal libpython3.12-stdlib libpython3.12t64
377s linux-headers-6.11.0-8 linux-headers-6.11.0-8-generic
377s linux-modules-6.11.0-8-generic linux-tools-6.11.0-8
377s linux-tools-6.11.0-8-generic
377s Use 'sudo apt autoremove' to remove them.
377s The following packages will be upgraded:
377s pinentry-curses python3-jinja2 strace
378s 3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
378s Need to get 652 kB of archives.
378s After this operation, 27.6 kB of additional disk space will be used.
378s Get:1 http://ftpmaster.internal/ubuntu plucky/main s390x strace s390x 6.13+ds-1ubuntu1 [500 kB]
378s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x pinentry-curses s390x 1.3.1-2ubuntu3 [42.9 kB]
378s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x python3-jinja2 all 3.1.5-2ubuntu1 [109 kB]
379s Fetched 652 kB in 1s (614 kB/s)
379s (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 ... 81428 files and directories currently installed.)
379s Preparing to unpack .../strace_6.13+ds-1ubuntu1_s390x.deb ...
379s Unpacking strace (6.13+ds-1ubuntu1) over (6.11-0ubuntu1) ...
379s Preparing to unpack .../pinentry-curses_1.3.1-2ubuntu3_s390x.deb ...
379s Unpacking pinentry-curses (1.3.1-2ubuntu3) over (1.3.1-2ubuntu2) ...
379s Preparing to unpack .../python3-jinja2_3.1.5-2ubuntu1_all.deb ...
379s Unpacking python3-jinja2 (3.1.5-2ubuntu1) over (3.1.5-2) ...
379s Setting up pinentry-curses (1.3.1-2ubuntu3) ...
379s Setting up python3-jinja2 (3.1.5-2ubuntu1) ...
379s Setting up strace (6.13+ds-1ubuntu1) ...
379s Processing triggers for man-db (2.13.0-1) ...
380s Reading package lists...
380s Building dependency tree...
380s Reading state information...
380s Solving dependencies...
380s The following packages will be REMOVED:
380s libnsl2* libpython3.12-minimal* libpython3.12-stdlib* libpython3.12t64*
380s linux-headers-6.11.0-8* linux-headers-6.11.0-8-generic*
380s linux-modules-6.11.0-8-generic* linux-tools-6.11.0-8*
380s linux-tools-6.11.0-8-generic*
380s 0 upgraded, 0 newly installed, 9 to remove and 5 not upgraded.
380s After this operation, 167 MB disk space will be freed.
380s (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 ... 81428 files and directories currently installed.)
380s Removing linux-tools-6.11.0-8-generic (6.11.0-8.8) ...
380s Removing linux-tools-6.11.0-8 (6.11.0-8.8) ...
380s Removing libpython3.12t64:s390x (3.12.9-1) ...
380s Removing libpython3.12-stdlib:s390x (3.12.9-1) ...
381s Removing libnsl2:s390x (1.3.0-3build3) ...
381s Removing libpython3.12-minimal:s390x (3.12.9-1) ...
381s Removing linux-headers-6.11.0-8-generic (6.11.0-8.8) ...
381s Removing linux-headers-6.11.0-8 (6.11.0-8.8) ...
381s Removing linux-modules-6.11.0-8-generic (6.11.0-8.8) ...
382s Processing triggers for libc-bin (2.41-1ubuntu1) ...
382s (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 ... 56328 files and directories currently installed.)
382s Purging configuration files for libpython3.12-minimal:s390x (3.12.9-1) ...
382s Purging configuration files for linux-modules-6.11.0-8-generic (6.11.0-8.8) ...
382s autopkgtest [18:04:06]: upgrading testbed (apt dist-upgrade and autopurge)
382s Reading package lists...
382s Building dependency tree...
382s Reading state information...
382s Calculating upgrade...Starting pkgProblemResolver with broken count: 0
382s Starting 2 pkgProblemResolver with broken count: 0
382s Done
383s Entering ResolveByKeep
383s
383s Calculating upgrade...
383s The following packages will be upgraded:
383s libc-bin libc-dev-bin libc6 libc6-dev locales
383s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
383s Need to get 9512 kB of archives.
383s After this operation, 8192 B of additional disk space will be used.
383s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc6-dev s390x 2.41-1ubuntu2 [1678 kB]
385s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc-dev-bin s390x 2.41-1ubuntu2 [24.3 kB]
385s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc6 s390x 2.41-1ubuntu2 [2892 kB]
388s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc-bin s390x 2.41-1ubuntu2 [671 kB]
389s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x locales all 2.41-1ubuntu2 [4246 kB]
393s Preconfiguring packages ...
394s Fetched 9512 kB in 10s (911 kB/s)
394s (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 ... 56326 files and directories currently installed.)
394s Preparing to unpack .../libc6-dev_2.41-1ubuntu2_s390x.deb ...
394s Unpacking libc6-dev:s390x (2.41-1ubuntu2) over (2.41-1ubuntu1) ...
394s Preparing to unpack .../libc-dev-bin_2.41-1ubuntu2_s390x.deb ...
394s Unpacking libc-dev-bin (2.41-1ubuntu2) over (2.41-1ubuntu1) ...
394s Preparing to unpack .../libc6_2.41-1ubuntu2_s390x.deb ...
394s Unpacking libc6:s390x (2.41-1ubuntu2) over (2.41-1ubuntu1) ...
394s Setting up libc6:s390x (2.41-1ubuntu2) ...
394s (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 ... 56326 files and directories currently installed.)
394s Preparing to unpack .../libc-bin_2.41-1ubuntu2_s390x.deb ...
394s Unpacking libc-bin (2.41-1ubuntu2) over (2.41-1ubuntu1) ...
394s Setting up libc-bin (2.41-1ubuntu2) ...
394s (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 ... 56326 files and directories currently installed.)
394s Preparing to unpack .../locales_2.41-1ubuntu2_all.deb ...
394s Unpacking locales (2.41-1ubuntu2) over (2.41-1ubuntu1) ...
394s Setting up locales (2.41-1ubuntu2) ...
395s Generating locales (this might take a while)...
395s en_US.UTF-8... done
395s Generation complete.
395s Setting up libc-dev-bin (2.41-1ubuntu2) ...
395s Setting up libc6-dev:s390x (2.41-1ubuntu2) ...
395s Processing triggers for man-db (2.13.0-1) ...
396s Processing triggers for systemd (257.3-1ubuntu3) ...
397s Reading package lists...
397s Building dependency tree...
397s Reading state information...
397s Starting pkgProblemResolver with broken count: 0
397s Starting 2 pkgProblemResolver with broken count: 0
397s Done
398s Solving dependencies...
398s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
398s autopkgtest [18:04:22]: rebooting testbed after setup commands that affected boot
422s Reading package lists...
422s Building dependency tree...
422s Reading state information...
422s Starting pkgProblemResolver with broken count: 0
422s Starting 2 pkgProblemResolver with broken count: 0
422s Done
423s The following NEW packages will be installed:
423s build-essential cpp cpp-14 cpp-14-s390x-linux-gnu cpp-s390x-linux-gnu
423s dctrl-tools fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono
423s fonts-font-awesome fonts-glyphicons-halflings fonts-mathjax g++ g++-14
423s g++-14-s390x-linux-gnu g++-s390x-linux-gnu gcc gcc-14 gcc-14-s390x-linux-gnu
423s gcc-s390x-linux-gnu gfortran gfortran-14 gfortran-14-s390x-linux-gnu
423s gfortran-s390x-linux-gnu icu-devtools javascript-common libasan8 libblas-dev
423s libblas3 libbz2-dev libcairo2 libcc1-0 libdatrie1 libdeflate-dev libdeflate0
423s libfontconfig1 libfreetype6 libgcc-14-dev libgfortran-14-dev libgfortran5
423s libgomp1 libgraphite2-3 libharfbuzz0b libice6 libicu-dev libisl23 libitm1
423s libjbig0 libjpeg-dev libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8 libjpeg8-dev
423s libjs-bootstrap libjs-bootstrap4 libjs-d3 libjs-es5-shim libjs-highlight.js
423s libjs-jquery libjs-jquery-datatables libjs-jquery-selectize.js
423s libjs-jquery-ui libjs-json libjs-mathjax libjs-microplugin.js
423s libjs-modernizr libjs-popper.js libjs-prettify libjs-sifter.js
423s libjs-twitter-bootstrap-datepicker liblapack-dev liblapack3 liblua5.4-0
423s liblzma-dev libmpc3 libncurses-dev libpango-1.0-0 libpangocairo-1.0-0
423s libpangoft2-1.0-0 libpaper-utils libpaper2 libpcre2-16-0 libpcre2-32-0
423s libpcre2-dev libpcre2-posix3 libpixman-1-0 libpkgconf3 libpng-dev
423s libreadline-dev libsharpyuv0 libsm6 libstdc++-14-dev libtcl8.6 libthai-data
423s libthai0 libtiff6 libtirpc-dev libtk8.6 libubsan1 libwebp7 libxcb-render0
423s libxcb-shm0 libxft2 libxrender1 libxss1 libxt6t64 littler
423s node-bootstrap-sass node-html5shiv node-normalize.css pandoc pandoc-data
423s pkg-r-autopkgtest pkgconf pkgconf-bin r-base-core r-base-dev
423s r-cran-base64enc r-cran-bslib r-cran-cachem r-cran-cli r-cran-commonmark
423s r-cran-crayon r-cran-diffobj r-cran-digest r-cran-evaluate r-cran-fastmap
423s r-cran-fontawesome r-cran-fs r-cran-glue r-cran-highr r-cran-htmltools
423s r-cran-httpuv r-cran-jquerylib r-cran-jsonlite r-cran-knitr r-cran-later
423s r-cran-lifecycle r-cran-littler r-cran-magrittr r-cran-memoise r-cran-mime
423s r-cran-pkgkitten r-cran-promises r-cran-r6 r-cran-rappdirs r-cran-rcpp
423s r-cran-rlang r-cran-rmarkdown r-cran-sass r-cran-shiny r-cran-sourcetools
423s r-cran-tinytex r-cran-withr r-cran-xfun r-cran-xtable r-cran-yaml unzip
423s x11-common xdg-utils zip zlib1g-dev
423s 0 upgraded, 163 newly installed, 0 to remove and 0 not upgraded.
423s Need to get 210 MB of archives.
423s After this operation, 847 MB of additional disk space will be used.
423s Get:1 http://ftpmaster.internal/ubuntu plucky/main s390x libisl23 s390x 0.27-1 [704 kB]
424s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x libmpc3 s390x 1.3.1-1build2 [57.8 kB]
424s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14-s390x-linux-gnu s390x 14.2.0-17ubuntu3 [9572 kB]
432s Get:4 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14 s390x 14.2.0-17ubuntu3 [1028 B]
432s Get:5 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-s390x-linux-gnu s390x 4:14.2.0-1ubuntu1 [5556 B]
432s Get:6 http://ftpmaster.internal/ubuntu plucky/main s390x cpp s390x 4:14.2.0-1ubuntu1 [22.4 kB]
432s Get:7 http://ftpmaster.internal/ubuntu plucky/main s390x libcc1-0 s390x 15-20250222-0ubuntu1 [49.2 kB]
432s Get:8 http://ftpmaster.internal/ubuntu plucky/main s390x libgomp1 s390x 15-20250222-0ubuntu1 [152 kB]
432s Get:9 http://ftpmaster.internal/ubuntu plucky/main s390x libitm1 s390x 15-20250222-0ubuntu1 [31.2 kB]
432s Get:10 http://ftpmaster.internal/ubuntu plucky/main s390x libasan8 s390x 15-20250222-0ubuntu1 [2970 kB]
435s Get:11 http://ftpmaster.internal/ubuntu plucky/main s390x libubsan1 s390x 15-20250222-0ubuntu1 [1212 kB]
436s Get:12 http://ftpmaster.internal/ubuntu plucky/main s390x libgcc-14-dev s390x 14.2.0-17ubuntu3 [1037 kB]
437s Get:13 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14-s390x-linux-gnu s390x 14.2.0-17ubuntu3 [18.7 MB]
456s Get:14 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14 s390x 14.2.0-17ubuntu3 [526 kB]
457s Get:15 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-s390x-linux-gnu s390x 4:14.2.0-1ubuntu1 [1204 B]
457s Get:16 http://ftpmaster.internal/ubuntu plucky/main s390x gcc s390x 4:14.2.0-1ubuntu1 [5004 B]
457s Get:17 http://ftpmaster.internal/ubuntu plucky/main s390x libstdc++-14-dev s390x 14.2.0-17ubuntu3 [2611 kB]
459s Get:18 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14-s390x-linux-gnu s390x 14.2.0-17ubuntu3 [11.0 MB]
471s Get:19 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14 s390x 14.2.0-17ubuntu3 [21.8 kB]
471s Get:20 http://ftpmaster.internal/ubuntu plucky/main s390x g++-s390x-linux-gnu s390x 4:14.2.0-1ubuntu1 [956 B]
471s Get:21 http://ftpmaster.internal/ubuntu plucky/main s390x g++ s390x 4:14.2.0-1ubuntu1 [1080 B]
471s Get:22 http://ftpmaster.internal/ubuntu plucky/main s390x build-essential s390x 12.10ubuntu1 [4930 B]
471s Get:23 http://ftpmaster.internal/ubuntu plucky/main s390x dctrl-tools s390x 2.24-3build3 [106 kB]
471s Get:24 http://ftpmaster.internal/ubuntu plucky/main s390x libfreetype6 s390x 2.13.3+dfsg-1 [431 kB]
472s Get:25 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-dejavu-mono all 2.37-8 [502 kB]
472s Get:26 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-dejavu-core all 2.37-8 [835 kB]
473s Get:27 http://ftpmaster.internal/ubuntu plucky/main s390x fontconfig-config s390x 2.15.0-2ubuntu1 [37.5 kB]
473s Get:28 http://ftpmaster.internal/ubuntu plucky/main s390x libfontconfig1 s390x 2.15.0-2ubuntu1 [150 kB]
473s Get:29 http://ftpmaster.internal/ubuntu plucky/main s390x fontconfig s390x 2.15.0-2ubuntu1 [191 kB]
473s Get:30 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB]
474s Get:31 http://ftpmaster.internal/ubuntu plucky/universe s390x fonts-glyphicons-halflings all 1.009~3.4.1+dfsg-3 [118 kB]
474s Get:32 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-mathjax all 2.7.9+dfsg-1 [2208 kB]
476s Get:33 http://ftpmaster.internal/ubuntu plucky/main s390x libgfortran5 s390x 15-20250222-0ubuntu1 [620 kB]
477s Get:34 http://ftpmaster.internal/ubuntu plucky/main s390x libgfortran-14-dev s390x 14.2.0-17ubuntu3 [654 kB]
478s Get:35 http://ftpmaster.internal/ubuntu plucky/main s390x gfortran-14-s390x-linux-gnu s390x 14.2.0-17ubuntu3 [10.3 MB]
486s Get:36 http://ftpmaster.internal/ubuntu plucky/main s390x gfortran-14 s390x 14.2.0-17ubuntu3 [13.6 kB]
487s Get:37 http://ftpmaster.internal/ubuntu plucky/main s390x gfortran-s390x-linux-gnu s390x 4:14.2.0-1ubuntu1 [1012 B]
487s Get:38 http://ftpmaster.internal/ubuntu plucky/main s390x gfortran s390x 4:14.2.0-1ubuntu1 [1160 B]
487s Get:39 http://ftpmaster.internal/ubuntu plucky/main s390x icu-devtools s390x 76.1-1ubuntu2 [225 kB]
487s Get:40 http://ftpmaster.internal/ubuntu plucky/main s390x javascript-common all 12 [5216 B]
487s Get:41 http://ftpmaster.internal/ubuntu plucky/main s390x libblas3 s390x 3.12.1-2 [252 kB]
487s Get:42 http://ftpmaster.internal/ubuntu plucky/main s390x libblas-dev s390x 3.12.1-2 [254 kB]
487s Get:43 http://ftpmaster.internal/ubuntu plucky/main s390x libbz2-dev s390x 1.0.8-6 [39.1 kB]
487s Get:44 http://ftpmaster.internal/ubuntu plucky/main s390x libpixman-1-0 s390x 0.44.0-3 [201 kB]
487s Get:45 http://ftpmaster.internal/ubuntu plucky/main s390x libxcb-render0 s390x 1.17.0-2 [17.0 kB]
487s Get:46 http://ftpmaster.internal/ubuntu plucky/main s390x libxcb-shm0 s390x 1.17.0-2 [5862 B]
487s Get:47 http://ftpmaster.internal/ubuntu plucky/main s390x libxrender1 s390x 1:0.9.10-1.1build1 [20.4 kB]
487s Get:48 http://ftpmaster.internal/ubuntu plucky/main s390x libcairo2 s390x 1.18.2-2 [580 kB]
488s Get:49 http://ftpmaster.internal/ubuntu plucky/main s390x libdatrie1 s390x 0.2.13-3build1 [20.6 kB]
488s Get:50 http://ftpmaster.internal/ubuntu plucky/main s390x libdeflate0 s390x 1.23-1 [46.1 kB]
488s Get:51 http://ftpmaster.internal/ubuntu plucky/main s390x libdeflate-dev s390x 1.23-1 [52.2 kB]
488s Get:52 http://ftpmaster.internal/ubuntu plucky/main s390x libgraphite2-3 s390x 1.3.14-2ubuntu1 [79.8 kB]
488s Get:53 http://ftpmaster.internal/ubuntu plucky/main s390x libharfbuzz0b s390x 10.2.0-1 [538 kB]
489s Get:54 http://ftpmaster.internal/ubuntu plucky/main s390x x11-common all 1:7.7+23ubuntu3 [21.7 kB]
489s Get:55 http://ftpmaster.internal/ubuntu plucky/main s390x libice6 s390x 2:1.1.1-1 [45.4 kB]
489s Get:56 http://ftpmaster.internal/ubuntu plucky/main s390x libicu-dev s390x 76.1-1ubuntu2 [12.2 MB]
500s Get:57 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg-turbo8 s390x 2.1.5-3ubuntu2 [147 kB]
500s Get:58 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg-turbo8-dev s390x 2.1.5-3ubuntu2 [281 kB]
500s Get:59 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg8 s390x 8c-2ubuntu11 [2146 B]
500s Get:60 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg8-dev s390x 8c-2ubuntu11 [1484 B]
500s Get:61 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg-dev s390x 8c-2ubuntu11 [1484 B]
500s Get:62 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-bootstrap all 3.4.1+dfsg-3 [129 kB]
500s Get:63 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-popper.js all 1.16.1+ds-6 [54.1 kB]
500s Get:64 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-bootstrap4 all 4.6.1+dfsg1-4 [537 kB]
501s Get:65 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-d3 all 3.5.17-4 [132 kB]
501s Get:66 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-es5-shim all 4.6.7-2 [39.8 kB]
501s Get:67 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB]
501s Get:68 http://ftpmaster.internal/ubuntu plucky/main s390x libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB]
501s Get:69 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-datatables all 1.11.5+dfsg-2 [146 kB]
502s Get:70 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-sifter.js all 0.6.0+dfsg-3 [12.6 kB]
502s Get:71 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-microplugin.js all 0.0.3+dfsg-1.1 [3712 B]
502s Get:72 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-selectize.js all 0.12.6+dfsg-1.1 [51.0 kB]
502s Get:73 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-ui all 1.13.2+dfsg-1 [252 kB]
502s Get:74 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-json all 0~20221030+~1.0.8-1 [20.6 kB]
502s Get:75 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-prettify all 2015.12.04+dfsg-1.1 [39.3 kB]
502s Get:76 http://ftpmaster.internal/ubuntu plucky/main s390x liblapack3 s390x 3.12.1-2 [2971 kB]
505s Get:77 http://ftpmaster.internal/ubuntu plucky/main s390x liblapack-dev s390x 3.12.1-2 [5967 kB]
511s Get:78 http://ftpmaster.internal/ubuntu plucky/main s390x liblua5.4-0 s390x 5.4.7-1 [174 kB]
511s Get:79 http://ftpmaster.internal/ubuntu plucky/main s390x libncurses-dev s390x 6.5+20250216-2 [407 kB]
512s Get:80 http://ftpmaster.internal/ubuntu plucky/main s390x libthai-data all 0.1.29-2build1 [158 kB]
512s Get:81 http://ftpmaster.internal/ubuntu plucky/main s390x libthai0 s390x 0.1.29-2build1 [20.7 kB]
512s Get:82 http://ftpmaster.internal/ubuntu plucky/main s390x libpango-1.0-0 s390x 1.56.2-1 [253 kB]
512s Get:83 http://ftpmaster.internal/ubuntu plucky/main s390x libpangoft2-1.0-0 s390x 1.56.2-1 [50.2 kB]
513s Get:84 http://ftpmaster.internal/ubuntu plucky/main s390x libpangocairo-1.0-0 s390x 1.56.2-1 [28.2 kB]
513s Get:85 http://ftpmaster.internal/ubuntu plucky/main s390x libpaper2 s390x 2.2.5-0.3 [17.2 kB]
513s Get:86 http://ftpmaster.internal/ubuntu plucky/main s390x libpaper-utils s390x 2.2.5-0.3 [15.3 kB]
513s Get:87 http://ftpmaster.internal/ubuntu plucky/main s390x libpcre2-16-0 s390x 10.45-1 [259 kB]
513s Get:88 http://ftpmaster.internal/ubuntu plucky/main s390x libpcre2-32-0 s390x 10.45-1 [245 kB]
513s Get:89 http://ftpmaster.internal/ubuntu plucky/main s390x libpcre2-posix3 s390x 10.45-1 [7080 B]
513s Get:90 http://ftpmaster.internal/ubuntu plucky/main s390x libpcre2-dev s390x 10.45-1 [899 kB]
514s Get:91 http://ftpmaster.internal/ubuntu plucky/main s390x libpkgconf3 s390x 1.8.1-4 [31.2 kB]
515s Get:92 http://ftpmaster.internal/ubuntu plucky/main s390x zlib1g-dev s390x 1:1.3.dfsg+really1.3.1-1ubuntu1 [898 kB]
515s Get:93 http://ftpmaster.internal/ubuntu plucky/main s390x libpng-dev s390x 1.6.47-1 [278 kB]
516s Get:94 http://ftpmaster.internal/ubuntu plucky/main s390x libreadline-dev s390x 8.2-6 [187 kB]
516s Get:95 http://ftpmaster.internal/ubuntu plucky/main s390x libsharpyuv0 s390x 1.5.0-0.1 [16.7 kB]
516s Get:96 http://ftpmaster.internal/ubuntu plucky/main s390x libsm6 s390x 2:1.2.4-1 [18.4 kB]
516s Get:97 http://ftpmaster.internal/ubuntu plucky/main s390x libtcl8.6 s390x 8.6.16+dfsg-1 [1034 kB]
517s Get:98 http://ftpmaster.internal/ubuntu plucky/main s390x libjbig0 s390x 2.1-6.1ubuntu2 [33.1 kB]
518s Get:99 http://ftpmaster.internal/ubuntu plucky/main s390x libwebp7 s390x 1.5.0-0.1 [210 kB]
518s Get:100 http://ftpmaster.internal/ubuntu plucky/main s390x libtiff6 s390x 4.5.1+git230720-4ubuntu4 [217 kB]
518s Get:101 http://ftpmaster.internal/ubuntu plucky/main s390x libxft2 s390x 2.3.6-1build1 [49.6 kB]
518s Get:102 http://ftpmaster.internal/ubuntu plucky/main s390x libxss1 s390x 1:1.2.3-1build3 [7396 B]
519s Get:103 http://ftpmaster.internal/ubuntu plucky/main s390x libtk8.6 s390x 8.6.16-1 [830 kB]
520s Get:104 http://ftpmaster.internal/ubuntu plucky/main s390x libxt6t64 s390x 1:1.2.1-1.2build1 [184 kB]
520s Get:105 http://ftpmaster.internal/ubuntu plucky/main s390x zip s390x 3.0-14ubuntu2 [187 kB]
520s Get:106 http://ftpmaster.internal/ubuntu plucky/main s390x unzip s390x 6.0-28ubuntu6 [186 kB]
520s Get:107 http://ftpmaster.internal/ubuntu plucky/main s390x xdg-utils all 1.2.1-2ubuntu1 [66.0 kB]
521s Get:108 http://ftpmaster.internal/ubuntu plucky/universe s390x r-base-core s390x 4.4.3-1 [28.6 MB]
551s Get:109 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-littler s390x 0.3.20-2 [95.0 kB]
552s Get:110 http://ftpmaster.internal/ubuntu plucky/universe s390x littler all 0.3.20-2 [2554 B]
552s Get:111 http://ftpmaster.internal/ubuntu plucky/universe s390x node-bootstrap-sass all 3.4.3-2 [187 kB]
552s Get:112 http://ftpmaster.internal/ubuntu plucky/universe s390x node-html5shiv all 3.7.3+dfsg-5 [13.5 kB]
552s Get:113 http://ftpmaster.internal/ubuntu plucky/universe s390x node-normalize.css all 8.0.1-5 [10.8 kB]
552s Get:114 http://ftpmaster.internal/ubuntu plucky/universe s390x pandoc-data all 3.1.11.1-3build1 [78.8 kB]
552s Get:115 http://ftpmaster.internal/ubuntu plucky/universe s390x pandoc s390x 3.1.11.1+ds-2 [52.5 MB]
609s Get:116 http://ftpmaster.internal/ubuntu plucky/main s390x liblzma-dev s390x 5.6.4-1 [183 kB]
609s Get:117 http://ftpmaster.internal/ubuntu plucky/main s390x pkgconf-bin s390x 1.8.1-4 [21.5 kB]
609s Get:118 http://ftpmaster.internal/ubuntu plucky/main s390x pkgconf s390x 1.8.1-4 [16.7 kB]
609s Get:119 http://ftpmaster.internal/ubuntu plucky/main s390x libtirpc-dev s390x 1.3.4+ds-1.3 [196 kB]
609s Get:120 http://ftpmaster.internal/ubuntu plucky/universe s390x r-base-dev all 4.4.3-1 [4176 B]
610s Get:121 http://ftpmaster.internal/ubuntu plucky/universe s390x pkg-r-autopkgtest all 20231212ubuntu1 [6448 B]
610s Get:122 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-base64enc s390x 0.1-3-3 [28.0 kB]
610s Get:123 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-rlang s390x 1.1.5-1 [1713 kB]
612s Get:124 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-fastmap s390x 1.2.0-1 [72.4 kB]
612s Get:125 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-cachem s390x 1.1.0-1 [74.0 kB]
612s Get:126 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-digest s390x 0.6.37-1 [205 kB]
613s Get:127 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-htmltools s390x 0.5.8.1-1 [372 kB]
613s Get:128 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-jquerylib all 0.1.4+dfsg-4 [13.5 kB]
615s Get:129 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-jsonlite s390x 1.9.1+dfsg-1 [447 kB]
615s Get:130 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-cli s390x 3.6.4-1 [1379 kB]
617s Get:131 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-glue s390x 1.8.0-1 [164 kB]
618s Get:132 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-lifecycle all 1.0.4+dfsg-1 [110 kB]
618s Get:133 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-memoise all 2.0.1-1 [53.9 kB]
618s Get:134 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-mime s390x 0.12-2 [35.8 kB]
619s Get:135 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-fs s390x 1.6.5+dfsg-1 [245 kB]
619s Get:136 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-r6 all 2.6.1-1 [101 kB]
619s Get:137 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-rappdirs s390x 0.3.3-1 [47.5 kB]
619s Get:138 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-sass s390x 0.4.9+dfsg-1 [1019 kB]
621s Get:139 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-bslib all 0.8.0+dfsg-1 [4294 kB]
625s Get:140 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-commonmark s390x 1.9.2-2 [142 kB]
625s Get:141 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-crayon all 1.5.3-1 [165 kB]
626s Get:142 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-diffobj s390x 0.3.5-1 [1115 kB]
627s Get:143 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-evaluate all 1.0.3-1 [114 kB]
627s Get:144 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-fontawesome all 0.5.3-1 [1331 kB]
629s Get:145 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-xfun s390x 0.51+dfsg-1 [574 kB]
629s Get:146 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-highr all 0.11+dfsg-1 [38.5 kB]
630s Get:147 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-pkgkitten all 0.2.4-1 [27.2 kB]
630s Get:148 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-rcpp s390x 1.0.14-1 [2003 kB]
632s Get:149 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-later s390x 1.4.1+dfsg-1 [148 kB]
632s Get:150 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-magrittr s390x 2.0.3-1 [154 kB]
633s Get:151 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-promises s390x 1.3.2+dfsg-1 [296 kB]
633s Get:152 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-httpuv s390x 1.6.15+dfsg-1 [507 kB]
634s Get:153 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-yaml s390x 2.3.10-1 [113 kB]
634s Get:154 http://ftpmaster.internal/ubuntu plucky/main s390x libjs-mathjax all 2.7.9+dfsg-1 [5665 kB]
641s Get:155 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-knitr all 1.49+dfsg-1 [859 kB]
642s Get:156 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-tinytex all 0.56-1 [148 kB]
642s Get:157 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-modernizr all 3.13.0-0.1 [101 kB]
642s Get:158 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-xtable all 1:1.8-4-2 [689 kB]
643s Get:159 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-sourcetools s390x 0.1.7-1-1 [47.1 kB]
643s Get:160 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-withr all 3.0.2+dfsg-1 [214 kB]
643s Get:161 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-twitter-bootstrap-datepicker all 1.3.1+dfsg1-4.1 [28.5 kB]
643s Get:162 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-shiny all 1.10.0+dfsg-2 [3124 kB]
647s Get:163 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-rmarkdown all 2.29+dfsg-1 [1501 kB]
649s Preconfiguring packages ...
649s Fetched 210 MB in 3min 46s (929 kB/s)
649s Selecting previously unselected package libisl23:s390x.
649s (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 ... 56326 files and directories currently installed.)
649s Preparing to unpack .../000-libisl23_0.27-1_s390x.deb ...
649s Unpacking libisl23:s390x (0.27-1) ...
649s Selecting previously unselected package libmpc3:s390x.
649s Preparing to unpack .../001-libmpc3_1.3.1-1build2_s390x.deb ...
649s Unpacking libmpc3:s390x (1.3.1-1build2) ...
649s Selecting previously unselected package cpp-14-s390x-linux-gnu.
649s Preparing to unpack .../002-cpp-14-s390x-linux-gnu_14.2.0-17ubuntu3_s390x.deb ...
649s Unpacking cpp-14-s390x-linux-gnu (14.2.0-17ubuntu3) ...
649s Selecting previously unselected package cpp-14.
649s Preparing to unpack .../003-cpp-14_14.2.0-17ubuntu3_s390x.deb ...
649s Unpacking cpp-14 (14.2.0-17ubuntu3) ...
649s Selecting previously unselected package cpp-s390x-linux-gnu.
649s Preparing to unpack .../004-cpp-s390x-linux-gnu_4%3a14.2.0-1ubuntu1_s390x.deb ...
649s Unpacking cpp-s390x-linux-gnu (4:14.2.0-1ubuntu1) ...
649s Selecting previously unselected package cpp.
649s Preparing to unpack .../005-cpp_4%3a14.2.0-1ubuntu1_s390x.deb ...
649s Unpacking cpp (4:14.2.0-1ubuntu1) ...
649s Selecting previously unselected package libcc1-0:s390x.
649s Preparing to unpack .../006-libcc1-0_15-20250222-0ubuntu1_s390x.deb ...
649s Unpacking libcc1-0:s390x (15-20250222-0ubuntu1) ...
649s Selecting previously unselected package libgomp1:s390x.
649s Preparing to unpack .../007-libgomp1_15-20250222-0ubuntu1_s390x.deb ...
649s Unpacking libgomp1:s390x (15-20250222-0ubuntu1) ...
649s Selecting previously unselected package libitm1:s390x.
649s Preparing to unpack .../008-libitm1_15-20250222-0ubuntu1_s390x.deb ...
649s Unpacking libitm1:s390x (15-20250222-0ubuntu1) ...
649s Selecting previously unselected package libasan8:s390x.
649s Preparing to unpack .../009-libasan8_15-20250222-0ubuntu1_s390x.deb ...
649s Unpacking libasan8:s390x (15-20250222-0ubuntu1) ...
649s Selecting previously unselected package libubsan1:s390x.
649s Preparing to unpack .../010-libubsan1_15-20250222-0ubuntu1_s390x.deb ...
649s Unpacking libubsan1:s390x (15-20250222-0ubuntu1) ...
649s Selecting previously unselected package libgcc-14-dev:s390x.
649s Preparing to unpack .../011-libgcc-14-dev_14.2.0-17ubuntu3_s390x.deb ...
649s Unpacking libgcc-14-dev:s390x (14.2.0-17ubuntu3) ...
650s Selecting previously unselected package gcc-14-s390x-linux-gnu.
650s Preparing to unpack .../012-gcc-14-s390x-linux-gnu_14.2.0-17ubuntu3_s390x.deb ...
650s Unpacking gcc-14-s390x-linux-gnu (14.2.0-17ubuntu3) ...
650s Selecting previously unselected package gcc-14.
650s Preparing to unpack .../013-gcc-14_14.2.0-17ubuntu3_s390x.deb ...
650s Unpacking gcc-14 (14.2.0-17ubuntu3) ...
650s Selecting previously unselected package gcc-s390x-linux-gnu.
650s Preparing to unpack .../014-gcc-s390x-linux-gnu_4%3a14.2.0-1ubuntu1_s390x.deb ...
650s Unpacking gcc-s390x-linux-gnu (4:14.2.0-1ubuntu1) ...
650s Selecting previously unselected package gcc.
650s Preparing to unpack .../015-gcc_4%3a14.2.0-1ubuntu1_s390x.deb ...
650s Unpacking gcc (4:14.2.0-1ubuntu1) ...
650s Selecting previously unselected package libstdc++-14-dev:s390x.
650s Preparing to unpack .../016-libstdc++-14-dev_14.2.0-17ubuntu3_s390x.deb ...
650s Unpacking libstdc++-14-dev:s390x (14.2.0-17ubuntu3) ...
650s Selecting previously unselected package g++-14-s390x-linux-gnu.
650s Preparing to unpack .../017-g++-14-s390x-linux-gnu_14.2.0-17ubuntu3_s390x.deb ...
650s Unpacking g++-14-s390x-linux-gnu (14.2.0-17ubuntu3) ...
650s Selecting previously unselected package g++-14.
650s Preparing to unpack .../018-g++-14_14.2.0-17ubuntu3_s390x.deb ...
650s Unpacking g++-14 (14.2.0-17ubuntu3) ...
650s Selecting previously unselected package g++-s390x-linux-gnu.
650s Preparing to unpack .../019-g++-s390x-linux-gnu_4%3a14.2.0-1ubuntu1_s390x.deb ...
650s Unpacking g++-s390x-linux-gnu (4:14.2.0-1ubuntu1) ...
650s Selecting previously unselected package g++.
650s Preparing to unpack .../020-g++_4%3a14.2.0-1ubuntu1_s390x.deb ...
650s Unpacking g++ (4:14.2.0-1ubuntu1) ...
650s Selecting previously unselected package build-essential.
650s Preparing to unpack .../021-build-essential_12.10ubuntu1_s390x.deb ...
650s Unpacking build-essential (12.10ubuntu1) ...
650s Selecting previously unselected package dctrl-tools.
650s Preparing to unpack .../022-dctrl-tools_2.24-3build3_s390x.deb ...
650s Unpacking dctrl-tools (2.24-3build3) ...
650s Selecting previously unselected package libfreetype6:s390x.
650s Preparing to unpack .../023-libfreetype6_2.13.3+dfsg-1_s390x.deb ...
650s Unpacking libfreetype6:s390x (2.13.3+dfsg-1) ...
650s Selecting previously unselected package fonts-dejavu-mono.
650s Preparing to unpack .../024-fonts-dejavu-mono_2.37-8_all.deb ...
650s Unpacking fonts-dejavu-mono (2.37-8) ...
650s Selecting previously unselected package fonts-dejavu-core.
650s Preparing to unpack .../025-fonts-dejavu-core_2.37-8_all.deb ...
650s Unpacking fonts-dejavu-core (2.37-8) ...
650s Selecting previously unselected package fontconfig-config.
650s Preparing to unpack .../026-fontconfig-config_2.15.0-2ubuntu1_s390x.deb ...
650s Unpacking fontconfig-config (2.15.0-2ubuntu1) ...
650s Selecting previously unselected package libfontconfig1:s390x.
650s Preparing to unpack .../027-libfontconfig1_2.15.0-2ubuntu1_s390x.deb ...
650s Unpacking libfontconfig1:s390x (2.15.0-2ubuntu1) ...
650s Selecting previously unselected package fontconfig.
650s Preparing to unpack .../028-fontconfig_2.15.0-2ubuntu1_s390x.deb ...
650s Unpacking fontconfig (2.15.0-2ubuntu1) ...
650s Selecting previously unselected package fonts-font-awesome.
650s Preparing to unpack .../029-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ...
650s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ...
650s Selecting previously unselected package fonts-glyphicons-halflings.
650s Preparing to unpack .../030-fonts-glyphicons-halflings_1.009~3.4.1+dfsg-3_all.deb ...
650s Unpacking fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ...
650s Selecting previously unselected package fonts-mathjax.
650s Preparing to unpack .../031-fonts-mathjax_2.7.9+dfsg-1_all.deb ...
650s Unpacking fonts-mathjax (2.7.9+dfsg-1) ...
651s Selecting previously unselected package libgfortran5:s390x.
651s Preparing to unpack .../032-libgfortran5_15-20250222-0ubuntu1_s390x.deb ...
651s Unpacking libgfortran5:s390x (15-20250222-0ubuntu1) ...
651s Selecting previously unselected package libgfortran-14-dev:s390x.
651s Preparing to unpack .../033-libgfortran-14-dev_14.2.0-17ubuntu3_s390x.deb ...
651s Unpacking libgfortran-14-dev:s390x (14.2.0-17ubuntu3) ...
651s Selecting previously unselected package gfortran-14-s390x-linux-gnu.
651s Preparing to unpack .../034-gfortran-14-s390x-linux-gnu_14.2.0-17ubuntu3_s390x.deb ...
651s Unpacking gfortran-14-s390x-linux-gnu (14.2.0-17ubuntu3) ...
651s Selecting previously unselected package gfortran-14.
651s Preparing to unpack .../035-gfortran-14_14.2.0-17ubuntu3_s390x.deb ...
651s Unpacking gfortran-14 (14.2.0-17ubuntu3) ...
651s Selecting previously unselected package gfortran-s390x-linux-gnu.
651s Preparing to unpack .../036-gfortran-s390x-linux-gnu_4%3a14.2.0-1ubuntu1_s390x.deb ...
651s Unpacking gfortran-s390x-linux-gnu (4:14.2.0-1ubuntu1) ...
651s Selecting previously unselected package gfortran.
651s Preparing to unpack .../037-gfortran_4%3a14.2.0-1ubuntu1_s390x.deb ...
651s Unpacking gfortran (4:14.2.0-1ubuntu1) ...
651s Selecting previously unselected package icu-devtools.
651s Preparing to unpack .../038-icu-devtools_76.1-1ubuntu2_s390x.deb ...
651s Unpacking icu-devtools (76.1-1ubuntu2) ...
651s Selecting previously unselected package javascript-common.
651s Preparing to unpack .../039-javascript-common_12_all.deb ...
651s Unpacking javascript-common (12) ...
651s Selecting previously unselected package libblas3:s390x.
651s Preparing to unpack .../040-libblas3_3.12.1-2_s390x.deb ...
651s Unpacking libblas3:s390x (3.12.1-2) ...
651s Selecting previously unselected package libblas-dev:s390x.
651s Preparing to unpack .../041-libblas-dev_3.12.1-2_s390x.deb ...
651s Unpacking libblas-dev:s390x (3.12.1-2) ...
651s Selecting previously unselected package libbz2-dev:s390x.
651s Preparing to unpack .../042-libbz2-dev_1.0.8-6_s390x.deb ...
651s Unpacking libbz2-dev:s390x (1.0.8-6) ...
651s Selecting previously unselected package libpixman-1-0:s390x.
651s Preparing to unpack .../043-libpixman-1-0_0.44.0-3_s390x.deb ...
651s Unpacking libpixman-1-0:s390x (0.44.0-3) ...
651s Selecting previously unselected package libxcb-render0:s390x.
651s Preparing to unpack .../044-libxcb-render0_1.17.0-2_s390x.deb ...
651s Unpacking libxcb-render0:s390x (1.17.0-2) ...
651s Selecting previously unselected package libxcb-shm0:s390x.
651s Preparing to unpack .../045-libxcb-shm0_1.17.0-2_s390x.deb ...
651s Unpacking libxcb-shm0:s390x (1.17.0-2) ...
651s Selecting previously unselected package libxrender1:s390x.
651s Preparing to unpack .../046-libxrender1_1%3a0.9.10-1.1build1_s390x.deb ...
651s Unpacking libxrender1:s390x (1:0.9.10-1.1build1) ...
651s Selecting previously unselected package libcairo2:s390x.
651s Preparing to unpack .../047-libcairo2_1.18.2-2_s390x.deb ...
651s Unpacking libcairo2:s390x (1.18.2-2) ...
651s Selecting previously unselected package libdatrie1:s390x.
651s Preparing to unpack .../048-libdatrie1_0.2.13-3build1_s390x.deb ...
651s Unpacking libdatrie1:s390x (0.2.13-3build1) ...
651s Selecting previously unselected package libdeflate0:s390x.
651s Preparing to unpack .../049-libdeflate0_1.23-1_s390x.deb ...
651s Unpacking libdeflate0:s390x (1.23-1) ...
651s Selecting previously unselected package libdeflate-dev:s390x.
651s Preparing to unpack .../050-libdeflate-dev_1.23-1_s390x.deb ...
651s Unpacking libdeflate-dev:s390x (1.23-1) ...
651s Selecting previously unselected package libgraphite2-3:s390x.
651s Preparing to unpack .../051-libgraphite2-3_1.3.14-2ubuntu1_s390x.deb ...
651s Unpacking libgraphite2-3:s390x (1.3.14-2ubuntu1) ...
651s Selecting previously unselected package libharfbuzz0b:s390x.
651s Preparing to unpack .../052-libharfbuzz0b_10.2.0-1_s390x.deb ...
651s Unpacking libharfbuzz0b:s390x (10.2.0-1) ...
651s Selecting previously unselected package x11-common.
651s Preparing to unpack .../053-x11-common_1%3a7.7+23ubuntu3_all.deb ...
651s Unpacking x11-common (1:7.7+23ubuntu3) ...
651s Selecting previously unselected package libice6:s390x.
651s Preparing to unpack .../054-libice6_2%3a1.1.1-1_s390x.deb ...
651s Unpacking libice6:s390x (2:1.1.1-1) ...
651s Selecting previously unselected package libicu-dev:s390x.
651s Preparing to unpack .../055-libicu-dev_76.1-1ubuntu2_s390x.deb ...
651s Unpacking libicu-dev:s390x (76.1-1ubuntu2) ...
651s Selecting previously unselected package libjpeg-turbo8:s390x.
651s Preparing to unpack .../056-libjpeg-turbo8_2.1.5-3ubuntu2_s390x.deb ...
651s Unpacking libjpeg-turbo8:s390x (2.1.5-3ubuntu2) ...
651s Selecting previously unselected package libjpeg-turbo8-dev:s390x.
651s Preparing to unpack .../057-libjpeg-turbo8-dev_2.1.5-3ubuntu2_s390x.deb ...
651s Unpacking libjpeg-turbo8-dev:s390x (2.1.5-3ubuntu2) ...
651s Selecting previously unselected package libjpeg8:s390x.
651s Preparing to unpack .../058-libjpeg8_8c-2ubuntu11_s390x.deb ...
651s Unpacking libjpeg8:s390x (8c-2ubuntu11) ...
651s Selecting previously unselected package libjpeg8-dev:s390x.
651s Preparing to unpack .../059-libjpeg8-dev_8c-2ubuntu11_s390x.deb ...
651s Unpacking libjpeg8-dev:s390x (8c-2ubuntu11) ...
651s Selecting previously unselected package libjpeg-dev:s390x.
651s Preparing to unpack .../060-libjpeg-dev_8c-2ubuntu11_s390x.deb ...
651s Unpacking libjpeg-dev:s390x (8c-2ubuntu11) ...
651s Selecting previously unselected package libjs-bootstrap.
651s Preparing to unpack .../061-libjs-bootstrap_3.4.1+dfsg-3_all.deb ...
651s Unpacking libjs-bootstrap (3.4.1+dfsg-3) ...
651s Selecting previously unselected package libjs-popper.js.
651s Preparing to unpack .../062-libjs-popper.js_1.16.1+ds-6_all.deb ...
651s Unpacking libjs-popper.js (1.16.1+ds-6) ...
651s Selecting previously unselected package libjs-bootstrap4.
651s Preparing to unpack .../063-libjs-bootstrap4_4.6.1+dfsg1-4_all.deb ...
651s Unpacking libjs-bootstrap4 (4.6.1+dfsg1-4) ...
651s Selecting previously unselected package libjs-d3.
651s Preparing to unpack .../064-libjs-d3_3.5.17-4_all.deb ...
651s Unpacking libjs-d3 (3.5.17-4) ...
651s Selecting previously unselected package libjs-es5-shim.
651s Preparing to unpack .../065-libjs-es5-shim_4.6.7-2_all.deb ...
651s Unpacking libjs-es5-shim (4.6.7-2) ...
651s Selecting previously unselected package libjs-highlight.js.
651s Preparing to unpack .../066-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ...
651s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ...
651s Selecting previously unselected package libjs-jquery.
651s Preparing to unpack .../067-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ...
651s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
651s Selecting previously unselected package libjs-jquery-datatables.
651s Preparing to unpack .../068-libjs-jquery-datatables_1.11.5+dfsg-2_all.deb ...
651s Unpacking libjs-jquery-datatables (1.11.5+dfsg-2) ...
651s Selecting previously unselected package libjs-sifter.js.
651s Preparing to unpack .../069-libjs-sifter.js_0.6.0+dfsg-3_all.deb ...
651s Unpacking libjs-sifter.js (0.6.0+dfsg-3) ...
651s Selecting previously unselected package libjs-microplugin.js.
651s Preparing to unpack .../070-libjs-microplugin.js_0.0.3+dfsg-1.1_all.deb ...
651s Unpacking libjs-microplugin.js (0.0.3+dfsg-1.1) ...
651s Selecting previously unselected package libjs-jquery-selectize.js.
651s Preparing to unpack .../071-libjs-jquery-selectize.js_0.12.6+dfsg-1.1_all.deb ...
651s Unpacking libjs-jquery-selectize.js (0.12.6+dfsg-1.1) ...
651s Selecting previously unselected package libjs-jquery-ui.
651s Preparing to unpack .../072-libjs-jquery-ui_1.13.2+dfsg-1_all.deb ...
651s Unpacking libjs-jquery-ui (1.13.2+dfsg-1) ...
651s Selecting previously unselected package libjs-json.
652s Preparing to unpack .../073-libjs-json_0~20221030+~1.0.8-1_all.deb ...
652s Unpacking libjs-json (0~20221030+~1.0.8-1) ...
652s Selecting previously unselected package libjs-prettify.
652s Preparing to unpack .../074-libjs-prettify_2015.12.04+dfsg-1.1_all.deb ...
652s Unpacking libjs-prettify (2015.12.04+dfsg-1.1) ...
652s Selecting previously unselected package liblapack3:s390x.
652s Preparing to unpack .../075-liblapack3_3.12.1-2_s390x.deb ...
652s Unpacking liblapack3:s390x (3.12.1-2) ...
652s Selecting previously unselected package liblapack-dev:s390x.
652s Preparing to unpack .../076-liblapack-dev_3.12.1-2_s390x.deb ...
652s Unpacking liblapack-dev:s390x (3.12.1-2) ...
652s Selecting previously unselected package liblua5.4-0:s390x.
652s Preparing to unpack .../077-liblua5.4-0_5.4.7-1_s390x.deb ...
652s Unpacking liblua5.4-0:s390x (5.4.7-1) ...
652s Selecting previously unselected package libncurses-dev:s390x.
652s Preparing to unpack .../078-libncurses-dev_6.5+20250216-2_s390x.deb ...
652s Unpacking libncurses-dev:s390x (6.5+20250216-2) ...
652s Selecting previously unselected package libthai-data.
652s Preparing to unpack .../079-libthai-data_0.1.29-2build1_all.deb ...
652s Unpacking libthai-data (0.1.29-2build1) ...
652s Selecting previously unselected package libthai0:s390x.
652s Preparing to unpack .../080-libthai0_0.1.29-2build1_s390x.deb ...
652s Unpacking libthai0:s390x (0.1.29-2build1) ...
652s Selecting previously unselected package libpango-1.0-0:s390x.
652s Preparing to unpack .../081-libpango-1.0-0_1.56.2-1_s390x.deb ...
652s Unpacking libpango-1.0-0:s390x (1.56.2-1) ...
652s Selecting previously unselected package libpangoft2-1.0-0:s390x.
652s Preparing to unpack .../082-libpangoft2-1.0-0_1.56.2-1_s390x.deb ...
652s Unpacking libpangoft2-1.0-0:s390x (1.56.2-1) ...
652s Selecting previously unselected package libpangocairo-1.0-0:s390x.
652s Preparing to unpack .../083-libpangocairo-1.0-0_1.56.2-1_s390x.deb ...
652s Unpacking libpangocairo-1.0-0:s390x (1.56.2-1) ...
652s Selecting previously unselected package libpaper2:s390x.
652s Preparing to unpack .../084-libpaper2_2.2.5-0.3_s390x.deb ...
652s Unpacking libpaper2:s390x (2.2.5-0.3) ...
652s Selecting previously unselected package libpaper-utils.
652s Preparing to unpack .../085-libpaper-utils_2.2.5-0.3_s390x.deb ...
652s Unpacking libpaper-utils (2.2.5-0.3) ...
652s Selecting previously unselected package libpcre2-16-0:s390x.
652s Preparing to unpack .../086-libpcre2-16-0_10.45-1_s390x.deb ...
652s Unpacking libpcre2-16-0:s390x (10.45-1) ...
652s Selecting previously unselected package libpcre2-32-0:s390x.
652s Preparing to unpack .../087-libpcre2-32-0_10.45-1_s390x.deb ...
652s Unpacking libpcre2-32-0:s390x (10.45-1) ...
652s Selecting previously unselected package libpcre2-posix3:s390x.
652s Preparing to unpack .../088-libpcre2-posix3_10.45-1_s390x.deb ...
652s Unpacking libpcre2-posix3:s390x (10.45-1) ...
652s Selecting previously unselected package libpcre2-dev:s390x.
652s Preparing to unpack .../089-libpcre2-dev_10.45-1_s390x.deb ...
652s Unpacking libpcre2-dev:s390x (10.45-1) ...
652s Selecting previously unselected package libpkgconf3:s390x.
652s Preparing to unpack .../090-libpkgconf3_1.8.1-4_s390x.deb ...
652s Unpacking libpkgconf3:s390x (1.8.1-4) ...
652s Selecting previously unselected package zlib1g-dev:s390x.
652s Preparing to unpack .../091-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu1_s390x.deb ...
652s Unpacking zlib1g-dev:s390x (1:1.3.dfsg+really1.3.1-1ubuntu1) ...
652s Selecting previously unselected package libpng-dev:s390x.
652s Preparing to unpack .../092-libpng-dev_1.6.47-1_s390x.deb ...
652s Unpacking libpng-dev:s390x (1.6.47-1) ...
652s Selecting previously unselected package libreadline-dev:s390x.
652s Preparing to unpack .../093-libreadline-dev_8.2-6_s390x.deb ...
652s Unpacking libreadline-dev:s390x (8.2-6) ...
652s Selecting previously unselected package libsharpyuv0:s390x.
652s Preparing to unpack .../094-libsharpyuv0_1.5.0-0.1_s390x.deb ...
652s Unpacking libsharpyuv0:s390x (1.5.0-0.1) ...
652s Selecting previously unselected package libsm6:s390x.
652s Preparing to unpack .../095-libsm6_2%3a1.2.4-1_s390x.deb ...
652s Unpacking libsm6:s390x (2:1.2.4-1) ...
652s Selecting previously unselected package libtcl8.6:s390x.
652s Preparing to unpack .../096-libtcl8.6_8.6.16+dfsg-1_s390x.deb ...
652s Unpacking libtcl8.6:s390x (8.6.16+dfsg-1) ...
652s Selecting previously unselected package libjbig0:s390x.
652s Preparing to unpack .../097-libjbig0_2.1-6.1ubuntu2_s390x.deb ...
652s Unpacking libjbig0:s390x (2.1-6.1ubuntu2) ...
652s Selecting previously unselected package libwebp7:s390x.
652s Preparing to unpack .../098-libwebp7_1.5.0-0.1_s390x.deb ...
652s Unpacking libwebp7:s390x (1.5.0-0.1) ...
652s Selecting previously unselected package libtiff6:s390x.
652s Preparing to unpack .../099-libtiff6_4.5.1+git230720-4ubuntu4_s390x.deb ...
652s Unpacking libtiff6:s390x (4.5.1+git230720-4ubuntu4) ...
652s Selecting previously unselected package libxft2:s390x.
652s Preparing to unpack .../100-libxft2_2.3.6-1build1_s390x.deb ...
652s Unpacking libxft2:s390x (2.3.6-1build1) ...
652s Selecting previously unselected package libxss1:s390x.
652s Preparing to unpack .../101-libxss1_1%3a1.2.3-1build3_s390x.deb ...
652s Unpacking libxss1:s390x (1:1.2.3-1build3) ...
652s Selecting previously unselected package libtk8.6:s390x.
652s Preparing to unpack .../102-libtk8.6_8.6.16-1_s390x.deb ...
652s Unpacking libtk8.6:s390x (8.6.16-1) ...
652s Selecting previously unselected package libxt6t64:s390x.
652s Preparing to unpack .../103-libxt6t64_1%3a1.2.1-1.2build1_s390x.deb ...
652s Unpacking libxt6t64:s390x (1:1.2.1-1.2build1) ...
652s Selecting previously unselected package zip.
652s Preparing to unpack .../104-zip_3.0-14ubuntu2_s390x.deb ...
652s Unpacking zip (3.0-14ubuntu2) ...
652s Selecting previously unselected package unzip.
652s Preparing to unpack .../105-unzip_6.0-28ubuntu6_s390x.deb ...
652s Unpacking unzip (6.0-28ubuntu6) ...
652s Selecting previously unselected package xdg-utils.
652s Preparing to unpack .../106-xdg-utils_1.2.1-2ubuntu1_all.deb ...
652s Unpacking xdg-utils (1.2.1-2ubuntu1) ...
652s Selecting previously unselected package r-base-core.
652s Preparing to unpack .../107-r-base-core_4.4.3-1_s390x.deb ...
652s Unpacking r-base-core (4.4.3-1) ...
652s Selecting previously unselected package r-cran-littler.
652s Preparing to unpack .../108-r-cran-littler_0.3.20-2_s390x.deb ...
652s Unpacking r-cran-littler (0.3.20-2) ...
652s Selecting previously unselected package littler.
652s Preparing to unpack .../109-littler_0.3.20-2_all.deb ...
652s Unpacking littler (0.3.20-2) ...
652s Selecting previously unselected package node-bootstrap-sass.
652s Preparing to unpack .../110-node-bootstrap-sass_3.4.3-2_all.deb ...
652s Unpacking node-bootstrap-sass (3.4.3-2) ...
652s Selecting previously unselected package node-html5shiv.
652s Preparing to unpack .../111-node-html5shiv_3.7.3+dfsg-5_all.deb ...
652s Unpacking node-html5shiv (3.7.3+dfsg-5) ...
652s Selecting previously unselected package node-normalize.css.
652s Preparing to unpack .../112-node-normalize.css_8.0.1-5_all.deb ...
652s Unpacking node-normalize.css (8.0.1-5) ...
653s Selecting previously unselected package pandoc-data.
653s Preparing to unpack .../113-pandoc-data_3.1.11.1-3build1_all.deb ...
653s Unpacking pandoc-data (3.1.11.1-3build1) ...
653s Selecting previously unselected package pandoc.
653s Preparing to unpack .../114-pandoc_3.1.11.1+ds-2_s390x.deb ...
653s Unpacking pandoc (3.1.11.1+ds-2) ...
654s Selecting previously unselected package liblzma-dev:s390x.
654s Preparing to unpack .../115-liblzma-dev_5.6.4-1_s390x.deb ...
654s Unpacking liblzma-dev:s390x (5.6.4-1) ...
654s Selecting previously unselected package pkgconf-bin.
654s Preparing to unpack .../116-pkgconf-bin_1.8.1-4_s390x.deb ...
654s Unpacking pkgconf-bin (1.8.1-4) ...
654s Selecting previously unselected package pkgconf:s390x.
654s Preparing to unpack .../117-pkgconf_1.8.1-4_s390x.deb ...
654s Unpacking pkgconf:s390x (1.8.1-4) ...
654s Selecting previously unselected package libtirpc-dev:s390x.
654s Preparing to unpack .../118-libtirpc-dev_1.3.4+ds-1.3_s390x.deb ...
654s Unpacking libtirpc-dev:s390x (1.3.4+ds-1.3) ...
654s Selecting previously unselected package r-base-dev.
654s Preparing to unpack .../119-r-base-dev_4.4.3-1_all.deb ...
654s Unpacking r-base-dev (4.4.3-1) ...
654s Selecting previously unselected package pkg-r-autopkgtest.
654s Preparing to unpack .../120-pkg-r-autopkgtest_20231212ubuntu1_all.deb ...
654s Unpacking pkg-r-autopkgtest (20231212ubuntu1) ...
654s Selecting previously unselected package r-cran-base64enc.
654s Preparing to unpack .../121-r-cran-base64enc_0.1-3-3_s390x.deb ...
654s Unpacking r-cran-base64enc (0.1-3-3) ...
654s Selecting previously unselected package r-cran-rlang.
654s Preparing to unpack .../122-r-cran-rlang_1.1.5-1_s390x.deb ...
654s Unpacking r-cran-rlang (1.1.5-1) ...
654s Selecting previously unselected package r-cran-fastmap.
654s Preparing to unpack .../123-r-cran-fastmap_1.2.0-1_s390x.deb ...
654s Unpacking r-cran-fastmap (1.2.0-1) ...
654s Selecting previously unselected package r-cran-cachem.
654s Preparing to unpack .../124-r-cran-cachem_1.1.0-1_s390x.deb ...
654s Unpacking r-cran-cachem (1.1.0-1) ...
654s Selecting previously unselected package r-cran-digest.
654s Preparing to unpack .../125-r-cran-digest_0.6.37-1_s390x.deb ...
654s Unpacking r-cran-digest (0.6.37-1) ...
654s Selecting previously unselected package r-cran-htmltools.
654s Preparing to unpack .../126-r-cran-htmltools_0.5.8.1-1_s390x.deb ...
654s Unpacking r-cran-htmltools (0.5.8.1-1) ...
654s Selecting previously unselected package r-cran-jquerylib.
654s Preparing to unpack .../127-r-cran-jquerylib_0.1.4+dfsg-4_all.deb ...
654s Unpacking r-cran-jquerylib (0.1.4+dfsg-4) ...
654s Selecting previously unselected package r-cran-jsonlite.
654s Preparing to unpack .../128-r-cran-jsonlite_1.9.1+dfsg-1_s390x.deb ...
654s Unpacking r-cran-jsonlite (1.9.1+dfsg-1) ...
654s Selecting previously unselected package r-cran-cli.
654s Preparing to unpack .../129-r-cran-cli_3.6.4-1_s390x.deb ...
654s Unpacking r-cran-cli (3.6.4-1) ...
654s Selecting previously unselected package r-cran-glue.
654s Preparing to unpack .../130-r-cran-glue_1.8.0-1_s390x.deb ...
654s Unpacking r-cran-glue (1.8.0-1) ...
654s Selecting previously unselected package r-cran-lifecycle.
654s Preparing to unpack .../131-r-cran-lifecycle_1.0.4+dfsg-1_all.deb ...
654s Unpacking r-cran-lifecycle (1.0.4+dfsg-1) ...
654s Selecting previously unselected package r-cran-memoise.
654s Preparing to unpack .../132-r-cran-memoise_2.0.1-1_all.deb ...
654s Unpacking r-cran-memoise (2.0.1-1) ...
654s Selecting previously unselected package r-cran-mime.
654s Preparing to unpack .../133-r-cran-mime_0.12-2_s390x.deb ...
654s Unpacking r-cran-mime (0.12-2) ...
654s Selecting previously unselected package r-cran-fs.
654s Preparing to unpack .../134-r-cran-fs_1.6.5+dfsg-1_s390x.deb ...
654s Unpacking r-cran-fs (1.6.5+dfsg-1) ...
654s Selecting previously unselected package r-cran-r6.
654s Preparing to unpack .../135-r-cran-r6_2.6.1-1_all.deb ...
654s Unpacking r-cran-r6 (2.6.1-1) ...
654s Selecting previously unselected package r-cran-rappdirs.
654s Preparing to unpack .../136-r-cran-rappdirs_0.3.3-1_s390x.deb ...
654s Unpacking r-cran-rappdirs (0.3.3-1) ...
654s Selecting previously unselected package r-cran-sass.
654s Preparing to unpack .../137-r-cran-sass_0.4.9+dfsg-1_s390x.deb ...
654s Unpacking r-cran-sass (0.4.9+dfsg-1) ...
654s Selecting previously unselected package r-cran-bslib.
654s Preparing to unpack .../138-r-cran-bslib_0.8.0+dfsg-1_all.deb ...
654s Unpacking r-cran-bslib (0.8.0+dfsg-1) ...
654s Selecting previously unselected package r-cran-commonmark.
654s Preparing to unpack .../139-r-cran-commonmark_1.9.2-2_s390x.deb ...
654s Unpacking r-cran-commonmark (1.9.2-2) ...
654s Selecting previously unselected package r-cran-crayon.
654s Preparing to unpack .../140-r-cran-crayon_1.5.3-1_all.deb ...
654s Unpacking r-cran-crayon (1.5.3-1) ...
654s Selecting previously unselected package r-cran-diffobj.
654s Preparing to unpack .../141-r-cran-diffobj_0.3.5-1_s390x.deb ...
654s Unpacking r-cran-diffobj (0.3.5-1) ...
654s Selecting previously unselected package r-cran-evaluate.
654s Preparing to unpack .../142-r-cran-evaluate_1.0.3-1_all.deb ...
654s Unpacking r-cran-evaluate (1.0.3-1) ...
654s Selecting previously unselected package r-cran-fontawesome.
654s Preparing to unpack .../143-r-cran-fontawesome_0.5.3-1_all.deb ...
654s Unpacking r-cran-fontawesome (0.5.3-1) ...
654s Selecting previously unselected package r-cran-xfun.
654s Preparing to unpack .../144-r-cran-xfun_0.51+dfsg-1_s390x.deb ...
654s Unpacking r-cran-xfun (0.51+dfsg-1) ...
654s Selecting previously unselected package r-cran-highr.
654s Preparing to unpack .../145-r-cran-highr_0.11+dfsg-1_all.deb ...
654s Unpacking r-cran-highr (0.11+dfsg-1) ...
654s Selecting previously unselected package r-cran-pkgkitten.
654s Preparing to unpack .../146-r-cran-pkgkitten_0.2.4-1_all.deb ...
654s Unpacking r-cran-pkgkitten (0.2.4-1) ...
654s Selecting previously unselected package r-cran-rcpp.
654s Preparing to unpack .../147-r-cran-rcpp_1.0.14-1_s390x.deb ...
654s Unpacking r-cran-rcpp (1.0.14-1) ...
655s Selecting previously unselected package r-cran-later.
655s Preparing to unpack .../148-r-cran-later_1.4.1+dfsg-1_s390x.deb ...
655s Unpacking r-cran-later (1.4.1+dfsg-1) ...
655s Selecting previously unselected package r-cran-magrittr.
655s Preparing to unpack .../149-r-cran-magrittr_2.0.3-1_s390x.deb ...
655s Unpacking r-cran-magrittr (2.0.3-1) ...
655s Selecting previously unselected package r-cran-promises.
655s Preparing to unpack .../150-r-cran-promises_1.3.2+dfsg-1_s390x.deb ...
655s Unpacking r-cran-promises (1.3.2+dfsg-1) ...
655s Selecting previously unselected package r-cran-httpuv.
655s Preparing to unpack .../151-r-cran-httpuv_1.6.15+dfsg-1_s390x.deb ...
655s Unpacking r-cran-httpuv (1.6.15+dfsg-1) ...
655s Selecting previously unselected package r-cran-yaml.
655s Preparing to unpack .../152-r-cran-yaml_2.3.10-1_s390x.deb ...
655s Unpacking r-cran-yaml (2.3.10-1) ...
655s Selecting previously unselected package libjs-mathjax.
655s Preparing to unpack .../153-libjs-mathjax_2.7.9+dfsg-1_all.deb ...
655s Unpacking libjs-mathjax (2.7.9+dfsg-1) ...
655s Selecting previously unselected package r-cran-knitr.
655s Preparing to unpack .../154-r-cran-knitr_1.49+dfsg-1_all.deb ...
655s Unpacking r-cran-knitr (1.49+dfsg-1) ...
655s Selecting previously unselected package r-cran-tinytex.
655s Preparing to unpack .../155-r-cran-tinytex_0.56-1_all.deb ...
655s Unpacking r-cran-tinytex (0.56-1) ...
655s Selecting previously unselected package libjs-modernizr.
655s Preparing to unpack .../156-libjs-modernizr_3.13.0-0.1_all.deb ...
655s Unpacking libjs-modernizr (3.13.0-0.1) ...
655s Selecting previously unselected package r-cran-xtable.
655s Preparing to unpack .../157-r-cran-xtable_1%3a1.8-4-2_all.deb ...
655s Unpacking r-cran-xtable (1:1.8-4-2) ...
655s Selecting previously unselected package r-cran-sourcetools.
655s Preparing to unpack .../158-r-cran-sourcetools_0.1.7-1-1_s390x.deb ...
655s Unpacking r-cran-sourcetools (0.1.7-1-1) ...
655s Selecting previously unselected package r-cran-withr.
655s Preparing to unpack .../159-r-cran-withr_3.0.2+dfsg-1_all.deb ...
655s Unpacking r-cran-withr (3.0.2+dfsg-1) ...
655s Selecting previously unselected package libjs-twitter-bootstrap-datepicker.
655s Preparing to unpack .../160-libjs-twitter-bootstrap-datepicker_1.3.1+dfsg1-4.1_all.deb ...
655s Unpacking libjs-twitter-bootstrap-datepicker (1.3.1+dfsg1-4.1) ...
655s Selecting previously unselected package r-cran-shiny.
655s Preparing to unpack .../161-r-cran-shiny_1.10.0+dfsg-2_all.deb ...
655s Unpacking r-cran-shiny (1.10.0+dfsg-2) ...
655s Selecting previously unselected package r-cran-rmarkdown.
655s Preparing to unpack .../162-r-cran-rmarkdown_2.29+dfsg-1_all.deb ...
655s Unpacking r-cran-rmarkdown (2.29+dfsg-1) ...
655s Setting up libjs-json (0~20221030+~1.0.8-1) ...
655s Setting up javascript-common (12) ...
655s Setting up libgraphite2-3:s390x (1.3.14-2ubuntu1) ...
655s Setting up libpixman-1-0:s390x (0.44.0-3) ...
655s Setting up libsharpyuv0:s390x (1.5.0-0.1) ...
655s Setting up libncurses-dev:s390x (6.5+20250216-2) ...
655s Setting up fonts-mathjax (2.7.9+dfsg-1) ...
655s Setting up libjs-mathjax (2.7.9+dfsg-1) ...
655s Setting up libxrender1:s390x (1:0.9.10-1.1build1) ...
655s Setting up libdatrie1:s390x (0.2.13-3build1) ...
655s Setting up libjs-popper.js (1.16.1+ds-6) ...
655s Setting up libxcb-render0:s390x (1.17.0-2) ...
655s Setting up libjs-sifter.js (0.6.0+dfsg-3) ...
655s Setting up fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ...
655s Setting up unzip (6.0-28ubuntu6) ...
655s Setting up x11-common (1:7.7+23ubuntu3) ...
656s Setting up node-html5shiv (3.7.3+dfsg-5) ...
656s Setting up libdeflate0:s390x (1.23-1) ...
656s Setting up libjs-microplugin.js (0.0.3+dfsg-1.1) ...
656s Setting up libxcb-shm0:s390x (1.17.0-2) ...
656s Setting up libreadline-dev:s390x (8.2-6) ...
656s Setting up libgomp1:s390x (15-20250222-0ubuntu1) ...
656s Setting up libjs-modernizr (3.13.0-0.1) ...
656s Setting up libjbig0:s390x (2.1-6.1ubuntu2) ...
656s Setting up libpcre2-16-0:s390x (10.45-1) ...
656s Setting up libjs-es5-shim (4.6.7-2) ...
656s Setting up zip (3.0-14ubuntu2) ...
656s Setting up libpcre2-32-0:s390x (10.45-1) ...
656s Setting up libblas3:s390x (3.12.1-2) ...
656s update-alternatives: using /usr/lib/s390x-linux-gnu/blas/libblas.so.3 to provide /usr/lib/s390x-linux-gnu/libblas.so.3 (libblas.so.3-s390x-linux-gnu) in auto mode
656s Setting up libtirpc-dev:s390x (1.3.4+ds-1.3) ...
656s Setting up libpkgconf3:s390x (1.8.1-4) ...
656s Setting up libfreetype6:s390x (2.13.3+dfsg-1) ...
656s Setting up libjs-d3 (3.5.17-4) ...
656s Setting up fonts-dejavu-mono (2.37-8) ...
656s Setting up libmpc3:s390x (1.3.1-1build2) ...
656s Setting up libtcl8.6:s390x (8.6.16+dfsg-1) ...
656s Setting up icu-devtools (76.1-1ubuntu2) ...
656s Setting up fonts-dejavu-core (2.37-8) ...
656s Setting up pkgconf-bin (1.8.1-4) ...
656s Setting up libjpeg-turbo8:s390x (2.1.5-3ubuntu2) ...
656s Setting up libgfortran5:s390x (15-20250222-0ubuntu1) ...
656s Setting up libwebp7:s390x (1.5.0-0.1) ...
656s Setting up liblzma-dev:s390x (5.6.4-1) ...
656s Setting up libubsan1:s390x (15-20250222-0ubuntu1) ...
656s Setting up zlib1g-dev:s390x (1:1.3.dfsg+really1.3.1-1ubuntu1) ...
656s Setting up libpcre2-posix3:s390x (10.45-1) ...
656s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ...
656s Setting up libasan8:s390x (15-20250222-0ubuntu1) ...
656s Setting up liblua5.4-0:s390x (5.4.7-1) ...
656s Setting up libharfbuzz0b:s390x (10.2.0-1) ...
656s Setting up libthai-data (0.1.29-2build1) ...
656s Setting up node-bootstrap-sass (3.4.3-2) ...
656s Setting up libjs-prettify (2015.12.04+dfsg-1.1) ...
656s Setting up libxss1:s390x (1:1.2.3-1build3) ...
656s Setting up libjs-bootstrap4 (4.6.1+dfsg1-4) ...
656s Setting up libpaper2:s390x (2.2.5-0.3) ...
656s Setting up pandoc-data (3.1.11.1-3build1) ...
656s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
656s Setting up libisl23:s390x (0.27-1) ...
656s Setting up libdeflate-dev:s390x (1.23-1) ...
656s Setting up node-normalize.css (8.0.1-5) ...
656s Setting up libicu-dev:s390x (76.1-1ubuntu2) ...
656s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ...
656s Setting up xdg-utils (1.2.1-2ubuntu1) ...
656s update-alternatives: using /usr/bin/xdg-open to provide /usr/bin/open (open) in auto mode
656s Setting up libcc1-0:s390x (15-20250222-0ubuntu1) ...
656s Setting up libblas-dev:s390x (3.12.1-2) ...
656s update-alternatives: using /usr/lib/s390x-linux-gnu/blas/libblas.so to provide /usr/lib/s390x-linux-gnu/libblas.so (libblas.so-s390x-linux-gnu) in auto mode
656s Setting up dctrl-tools (2.24-3build3) ...
656s Setting up libjs-bootstrap (3.4.1+dfsg-3) ...
656s Setting up libitm1:s390x (15-20250222-0ubuntu1) ...
656s Setting up libbz2-dev:s390x (1.0.8-6) ...
656s Setting up libjs-jquery-selectize.js (0.12.6+dfsg-1.1) ...
656s Setting up libjpeg8:s390x (8c-2ubuntu11) ...
656s Setting up libice6:s390x (2:1.1.1-1) ...
656s Setting up libjpeg-turbo8-dev:s390x (2.1.5-3ubuntu2) ...
656s Setting up liblapack3:s390x (3.12.1-2) ...
656s update-alternatives: using /usr/lib/s390x-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/s390x-linux-gnu/liblapack.so.3 (liblapack.so.3-s390x-linux-gnu) in auto mode
656s Setting up libpcre2-dev:s390x (10.45-1) ...
656s Setting up fontconfig-config (2.15.0-2ubuntu1) ...
656s Setting up libjs-twitter-bootstrap-datepicker (1.3.1+dfsg1-4.1) ...
656s Setting up libpng-dev:s390x (1.6.47-1) ...
656s Setting up libpaper-utils (2.2.5-0.3) ...
656s Setting up libjs-jquery-datatables (1.11.5+dfsg-2) ...
656s Setting up pkgconf:s390x (1.8.1-4) ...
656s Setting up libthai0:s390x (0.1.29-2build1) ...
656s Setting up libjs-jquery-ui (1.13.2+dfsg-1) ...
656s Setting up pandoc (3.1.11.1+ds-2) ...
656s Setting up liblapack-dev:s390x (3.12.1-2) ...
656s update-alternatives: using /usr/lib/s390x-linux-gnu/lapack/liblapack.so to provide /usr/lib/s390x-linux-gnu/liblapack.so (liblapack.so-s390x-linux-gnu) in auto mode
656s Setting up cpp-14-s390x-linux-gnu (14.2.0-17ubuntu3) ...
656s Setting up cpp-14 (14.2.0-17ubuntu3) ...
656s Setting up libtiff6:s390x (4.5.1+git230720-4ubuntu4) ...
656s Setting up libfontconfig1:s390x (2.15.0-2ubuntu1) ...
656s Setting up libgcc-14-dev:s390x (14.2.0-17ubuntu3) ...
656s Setting up libjpeg8-dev:s390x (8c-2ubuntu11) ...
656s Setting up libstdc++-14-dev:s390x (14.2.0-17ubuntu3) ...
656s Setting up libsm6:s390x (2:1.2.4-1) ...
656s Setting up libgfortran-14-dev:s390x (14.2.0-17ubuntu3) ...
656s Setting up fontconfig (2.15.0-2ubuntu1) ...
658s Regenerating fonts cache... done.
658s Setting up libxft2:s390x (2.3.6-1build1) ...
658s Setting up cpp-s390x-linux-gnu (4:14.2.0-1ubuntu1) ...
658s Setting up libtk8.6:s390x (8.6.16-1) ...
658s Setting up libpango-1.0-0:s390x (1.56.2-1) ...
658s Setting up libjpeg-dev:s390x (8c-2ubuntu11) ...
658s Setting up libcairo2:s390x (1.18.2-2) ...
658s Setting up gcc-14-s390x-linux-gnu (14.2.0-17ubuntu3) ...
658s Setting up gcc-s390x-linux-gnu (4:14.2.0-1ubuntu1) ...
658s Setting up libxt6t64:s390x (1:1.2.1-1.2build1) ...
658s Setting up g++-14-s390x-linux-gnu (14.2.0-17ubuntu3) ...
658s Setting up cpp (4:14.2.0-1ubuntu1) ...
658s Setting up libpangoft2-1.0-0:s390x (1.56.2-1) ...
658s Setting up libpangocairo-1.0-0:s390x (1.56.2-1) ...
658s Setting up gfortran-14-s390x-linux-gnu (14.2.0-17ubuntu3) ...
658s Setting up g++-s390x-linux-gnu (4:14.2.0-1ubuntu1) ...
658s Setting up gcc-14 (14.2.0-17ubuntu3) ...
658s Setting up r-base-core (4.4.3-1) ...
658s Creating config file /etc/R/Renviron with new version
658s Setting up r-cran-crayon (1.5.3-1) ...
658s Setting up r-cran-sourcetools (0.1.7-1-1) ...
658s Setting up r-cran-commonmark (1.9.2-2) ...
658s Setting up g++-14 (14.2.0-17ubuntu3) ...
658s Setting up r-cran-r6 (2.6.1-1) ...
658s Setting up r-cran-pkgkitten (0.2.4-1) ...
658s Setting up gfortran-14 (14.2.0-17ubuntu3) ...
658s Setting up r-cran-magrittr (2.0.3-1) ...
658s Setting up r-cran-rappdirs (0.3.3-1) ...
658s Setting up r-cran-littler (0.3.20-2) ...
658s Setting up r-cran-fs (1.6.5+dfsg-1) ...
658s Setting up r-cran-rcpp (1.0.14-1) ...
658s Setting up r-cran-diffobj (0.3.5-1) ...
658s Setting up r-cran-rlang (1.1.5-1) ...
658s Setting up littler (0.3.20-2) ...
658s Setting up gfortran-s390x-linux-gnu (4:14.2.0-1ubuntu1) ...
658s Setting up r-cran-xfun (0.51+dfsg-1) ...
658s Setting up r-cran-withr (3.0.2+dfsg-1) ...
658s Setting up r-cran-mime (0.12-2) ...
658s Setting up r-cran-base64enc (0.1-3-3) ...
658s Setting up r-cran-digest (0.6.37-1) ...
658s Setting up r-cran-yaml (2.3.10-1) ...
658s Setting up r-cran-evaluate (1.0.3-1) ...
658s Setting up r-cran-highr (0.11+dfsg-1) ...
658s Setting up r-cran-glue (1.8.0-1) ...
658s Setting up r-cran-xtable (1:1.8-4-2) ...
658s Setting up r-cran-cli (3.6.4-1) ...
658s Setting up r-cran-lifecycle (1.0.4+dfsg-1) ...
658s Setting up gcc (4:14.2.0-1ubuntu1) ...
658s Setting up r-cran-fastmap (1.2.0-1) ...
658s Setting up r-cran-jsonlite (1.9.1+dfsg-1) ...
658s Setting up r-cran-later (1.4.1+dfsg-1) ...
658s Setting up r-cran-htmltools (0.5.8.1-1) ...
658s Setting up r-cran-tinytex (0.56-1) ...
658s Setting up r-cran-knitr (1.49+dfsg-1) ...
658s Setting up g++ (4:14.2.0-1ubuntu1) ...
658s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
658s Setting up r-cran-cachem (1.1.0-1) ...
658s Setting up r-cran-sass (0.4.9+dfsg-1) ...
658s Setting up build-essential (12.10ubuntu1) ...
658s Setting up r-cran-fontawesome (0.5.3-1) ...
658s Setting up gfortran (4:14.2.0-1ubuntu1) ...
658s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f95 (f95) in auto mode
658s update-alternatives: warning: skip creation of /usr/share/man/man1/f95.1.gz because associated file /usr/share/man/man1/gfortran.1.gz (of link group f95) doesn't exist
658s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f77 (f77) in auto mode
658s update-alternatives: warning: skip creation of /usr/share/man/man1/f77.1.gz because associated file /usr/share/man/man1/gfortran.1.gz (of link group f77) doesn't exist
658s Setting up r-cran-jquerylib (0.1.4+dfsg-4) ...
658s Setting up r-cran-memoise (2.0.1-1) ...
658s Setting up r-cran-promises (1.3.2+dfsg-1) ...
658s Setting up r-base-dev (4.4.3-1) ...
658s Setting up r-cran-httpuv (1.6.15+dfsg-1) ...
658s Setting up r-cran-bslib (0.8.0+dfsg-1) ...
658s Setting up pkg-r-autopkgtest (20231212ubuntu1) ...
658s Setting up r-cran-shiny (1.10.0+dfsg-2) ...
658s Setting up r-cran-rmarkdown (2.29+dfsg-1) ...
658s Processing triggers for libc-bin (2.41-1ubuntu2) ...
658s Processing triggers for man-db (2.13.0-1) ...
659s Processing triggers for install-info (7.1.1-1) ...
662s autopkgtest [18:08:46]: test pkg-r-autopkgtest: /usr/share/dh-r/pkg-r-autopkgtest
662s autopkgtest [18:08:46]: test pkg-r-autopkgtest: [-----------------------
662s Test: Try to load the R library diffobj
662s
662s R version 4.4.3 (2025-02-28) -- "Trophy Case"
662s Copyright (C) 2025 The R Foundation for Statistical Computing
662s Platform: s390x-ibm-linux-gnu
662s
662s R is free software and comes with ABSOLUTELY NO WARRANTY.
662s You are welcome to redistribute it under certain conditions.
662s Type 'license()' or 'licence()' for distribution details.
662s
662s R is a collaborative project with many contributors.
662s Type 'contributors()' for more information and
662s 'citation()' on how to cite R or R packages in publications.
662s
662s Type 'demo()' for some demos, 'help()' for on-line help, or
662s 'help.start()' for an HTML browser interface to help.
662s Type 'q()' to quit R.
662s
662s > library('diffobj')
662s >
662s >
662s Other tests are currently unsupported!
662s They will be progressively added.
662s autopkgtest [18:08:46]: test pkg-r-autopkgtest: -----------------------]
663s autopkgtest [18:08:47]: test pkg-r-autopkgtest: - - - - - - - - - - results - - - - - - - - - -
663s pkg-r-autopkgtest PASS
663s autopkgtest [18:08:47]: @@@@@@@@@@@@@@@@@@@@ summary
663s run-unit-test PASS
663s pkg-r-autopkgtest PASS
680s nova [W] Using flock in prodstack6-s390x
680s Creating nova instance adt-plucky-s390x-r-cran-diffobj-20250315-175744-juju-7f2275-prod-proposed-migration-environment-20-700ff6a4-033a-4278-a938-be8a809d3bd5 from image adt/ubuntu-plucky-s390x-server-20250315.img (UUID 3d3557fa-fd0f-4bba-9b89-8d5964e09f61)...
680s nova [W] Timed out waiting for 71ac953a-1f0f-4cd0-b459-f487661dd1b8 to get deleted.
680s nova [W] Using flock in prodstack6-s390x
680s Creating nova instance adt-plucky-s390x-r-cran-diffobj-20250315-175744-juju-7f2275-prod-proposed-migration-environment-20-700ff6a4-033a-4278-a938-be8a809d3bd5 from image adt/ubuntu-plucky-s390x-server-20250315.img (UUID 3d3557fa-fd0f-4bba-9b89-8d5964e09f61)...
680s nova [W] Timed out waiting for 371c343c-f91f-452c-b98b-be1491a85893 to get deleted.