0s autopkgtest [13:21:39]: starting date and time: 2025-11-17 13:21:39+0000 0s autopkgtest [13:21:39]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [13:21:39]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.eapm6cfe/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults --apt-upgrade fscacher --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.13.7-2 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-ppc64el --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-ppc64el-1.secgroup --name adt-resolute-ppc64el-fscacher-20251117-132139-juju-7f2275-prod-proposed-migration-environment-2-f476058b-d31f-4233-8315-76b846e0e5d2 --image adt/ubuntu-resolute-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration-ppc64el -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-ppc64el-fscacher-20251117-132139-juju-7f2275-prod-proposed-migration-environment-2-f476058b-d31f-4233-8315-76b846e0e5d2 from image adt/ubuntu-resolute-ppc64el-server-20251117.img (UUID c6f5b741-c77a-45db-84cb-f00b40e77676)... 58s autopkgtest [13:22:37]: testbed dpkg architecture: ppc64el 58s autopkgtest [13:22:37]: testbed apt version: 3.1.11 58s autopkgtest [13:22:37]: @@@@@@@@@@@@@@@@@@@@ test bed setup 58s autopkgtest [13:22:37]: testbed release detected to be: None 59s autopkgtest [13:22:38]: updating testbed package index (apt update) 60s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 60s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 60s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 60s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 60s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.9 kB] 60s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 60s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [81.1 kB] 60s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [868 kB] 61s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el Packages [140 kB] 61s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted ppc64el Packages [940 B] 61s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el Packages [562 kB] 61s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse ppc64el Packages [11.0 kB] 61s Fetched 1784 kB in 1s (1269 kB/s) 62s Reading package lists... 63s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 63s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 63s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 63s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 64s Reading package lists... 64s Reading package lists... 64s Building dependency tree... 64s Reading state information... 64s Calculating upgrade... 64s The following packages will be upgraded: 64s libpython3-stdlib python3 python3-minimal usbutils 64s 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 64s Need to get 154 kB of archives. 64s After this operation, 0 B of additional disk space will be used. 64s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el python3-minimal ppc64el 3.13.7-2 [27.8 kB] 65s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el python3 ppc64el 3.13.7-2 [23.9 kB] 65s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libpython3-stdlib ppc64el 3.13.7-2 [10.6 kB] 65s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el usbutils ppc64el 1:019-1 [91.5 kB] 65s dpkg-preconfigure: unable to re-open stdin: No such file or directory 65s Fetched 154 kB in 0s (364 kB/s) 66s (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 ... 81022 files and directories currently installed.) 66s Preparing to unpack .../python3-minimal_3.13.7-2_ppc64el.deb ... 66s Unpacking python3-minimal (3.13.7-2) over (3.13.7-1) ... 66s Setting up python3-minimal (3.13.7-2) ... 66s (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 ... 81022 files and directories currently installed.) 66s Preparing to unpack .../python3_3.13.7-2_ppc64el.deb ... 66s running python pre-rtupdate hooks for python3.13... 66s Unpacking python3 (3.13.7-2) over (3.13.7-1) ... 66s Preparing to unpack .../libpython3-stdlib_3.13.7-2_ppc64el.deb ... 66s Unpacking libpython3-stdlib:ppc64el (3.13.7-2) over (3.13.7-1) ... 66s Preparing to unpack .../usbutils_1%3a019-1_ppc64el.deb ... 66s Unpacking usbutils (1:019-1) over (1:018-2) ... 66s Setting up usbutils (1:019-1) ... 66s Setting up libpython3-stdlib:ppc64el (3.13.7-2) ... 66s Setting up python3 (3.13.7-2) ... 66s running python rtupdate hooks for python3.13... 66s running python post-rtupdate hooks for python3.13... 66s Processing triggers for man-db (2.13.1-1) ... 68s autopkgtest [13:22:47]: upgrading testbed (apt dist-upgrade and autopurge) 68s Reading package lists... 68s Building dependency tree... 68s Reading state information... 68s Calculating upgrade... 68s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 69s Reading package lists... 69s Building dependency tree... 69s Reading state information... 69s Solving dependencies... 69s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 72s autopkgtest [13:22:51]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 10:02:41 UTC 2025 72s autopkgtest [13:22:51]: @@@@@@@@@@@@@@@@@@@@ apt-source fscacher 74s Get:1 http://ftpmaster.internal/ubuntu resolute/universe fscacher 0.4.3-0.3 (dsc) [2069 B] 74s Get:2 http://ftpmaster.internal/ubuntu resolute/universe fscacher 0.4.3-0.3 (tar) [35.1 kB] 74s Get:3 http://ftpmaster.internal/ubuntu resolute/universe fscacher 0.4.3-0.3 (diff) [4024 B] 74s gpgv: Signature made Wed Jan 1 15:39:12 2025 UTC 74s gpgv: using RSA key 7E7729476D87D6F11D91ACCBC293E7B461825ACE 74s gpgv: Can't check signature: No public key 74s dpkg-source: warning: cannot verify inline signature for ./fscacher_0.4.3-0.3.dsc: no acceptable signature found 74s autopkgtest [13:22:53]: testing package fscacher version 0.4.3-0.3 74s autopkgtest [13:22:53]: build not needed 75s autopkgtest [13:22:54]: test pybuild-autopkgtest: preparing testbed 75s Reading package lists... 75s Building dependency tree... 75s Reading state information... 75s Solving dependencies... 75s The following NEW packages will be installed: 75s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 75s cpp-15-powerpc64le-linux-gnu cpp-powerpc64le-linux-gnu debhelper debugedit 75s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-15 75s g++-15-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu gcc gcc-15 75s gcc-15-powerpc64le-linux-gnu gcc-powerpc64le-linux-gnu gettext 75s intltool-debian libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 75s libfile-stripnondeterminism-perl libgcc-15-dev libgomp1 libisl23 libitm1 75s libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 75s libjs-jquery-metadata libjs-jquery-tablesorter 75s libjs-jquery-throttle-debounce liblsan0 libmpc3 libpython3.14-minimal 75s libpython3.14-stdlib libquadmath0 libstdc++-15-dev libtool libtsan2 75s libubsan1 m4 po-debconf pybuild-plugin-autopkgtest pybuild-plugin-pyproject 75s python3-all python3-build python3-coverage python3-fscacher 75s python3-iniconfig python3-installer python3-joblib python3-platformdirs 75s python3-pluggy python3-pyproject-hooks python3-pytest python3-pytest-cov 75s python3-pytest-mock python3-pytest-rerunfailures python3-wheel python3.14 75s python3.14-minimal 75s 0 upgraded, 70 newly installed, 0 to remove and 0 not upgraded. 75s Need to get 74.6 MB of archives. 75s After this operation, 269 MB of additional disk space will be used. 75s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el libpython3.14-minimal ppc64el 3.14.0-4 [908 kB] 76s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3.14-minimal ppc64el 3.14.0-4 [2705 kB] 76s Get:3 http://ftpmaster.internal/ubuntu resolute/main ppc64el m4 ppc64el 1.4.20-2 [236 kB] 76s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el autoconf all 2.72-3.1ubuntu1 [384 kB] 76s Get:5 http://ftpmaster.internal/ubuntu resolute/main ppc64el autotools-dev all 20240727.1 [43.4 kB] 76s Get:6 http://ftpmaster.internal/ubuntu resolute/main ppc64el automake all 1:1.18.1-2 [581 kB] 76s Get:7 http://ftpmaster.internal/ubuntu resolute/main ppc64el autopoint all 0.23.2-1 [620 kB] 76s Get:8 http://ftpmaster.internal/ubuntu resolute/main ppc64el libisl23 ppc64el 0.27-1 [882 kB] 76s Get:9 http://ftpmaster.internal/ubuntu resolute/main ppc64el libmpc3 ppc64el 1.3.1-2 [62.5 kB] 76s Get:10 http://ftpmaster.internal/ubuntu resolute/main ppc64el cpp-15-powerpc64le-linux-gnu ppc64el 15.2.0-7ubuntu1 [11.4 MB] 77s Get:11 http://ftpmaster.internal/ubuntu resolute/main ppc64el cpp-15 ppc64el 15.2.0-7ubuntu1 [1032 B] 77s Get:12 http://ftpmaster.internal/ubuntu resolute/main ppc64el cpp-powerpc64le-linux-gnu ppc64el 4:15.2.0-4ubuntu1 [5746 B] 77s Get:13 http://ftpmaster.internal/ubuntu resolute/main ppc64el cpp ppc64el 4:15.2.0-4ubuntu1 [22.4 kB] 77s Get:14 http://ftpmaster.internal/ubuntu resolute/main ppc64el libcc1-0 ppc64el 15.2.0-7ubuntu1 [49.0 kB] 77s Get:15 http://ftpmaster.internal/ubuntu resolute/main ppc64el libgomp1 ppc64el 15.2.0-7ubuntu1 [169 kB] 77s Get:16 http://ftpmaster.internal/ubuntu resolute/main ppc64el libitm1 ppc64el 15.2.0-7ubuntu1 [32.3 kB] 77s Get:17 http://ftpmaster.internal/ubuntu resolute/main ppc64el libasan8 ppc64el 15.2.0-7ubuntu1 [3006 kB] 77s Get:18 http://ftpmaster.internal/ubuntu resolute/main ppc64el liblsan0 ppc64el 15.2.0-7ubuntu1 [1374 kB] 77s Get:19 http://ftpmaster.internal/ubuntu resolute/main ppc64el libtsan2 ppc64el 15.2.0-7ubuntu1 [2728 kB] 77s Get:20 http://ftpmaster.internal/ubuntu resolute/main ppc64el libubsan1 ppc64el 15.2.0-7ubuntu1 [1231 kB] 77s Get:21 http://ftpmaster.internal/ubuntu resolute/main ppc64el libquadmath0 ppc64el 15.2.0-7ubuntu1 [160 kB] 77s Get:22 http://ftpmaster.internal/ubuntu resolute/main ppc64el libgcc-15-dev ppc64el 15.2.0-7ubuntu1 [1670 kB] 77s Get:23 http://ftpmaster.internal/ubuntu resolute/main ppc64el gcc-15-powerpc64le-linux-gnu ppc64el 15.2.0-7ubuntu1 [22.4 MB] 78s Get:24 http://ftpmaster.internal/ubuntu resolute/main ppc64el gcc-15 ppc64el 15.2.0-7ubuntu1 [524 kB] 78s Get:25 http://ftpmaster.internal/ubuntu resolute/main ppc64el gcc-powerpc64le-linux-gnu ppc64el 4:15.2.0-4ubuntu1 [1220 B] 78s Get:26 http://ftpmaster.internal/ubuntu resolute/main ppc64el gcc ppc64el 4:15.2.0-4ubuntu1 [5032 B] 78s Get:27 http://ftpmaster.internal/ubuntu resolute/main ppc64el libstdc++-15-dev ppc64el 15.2.0-7ubuntu1 [2744 kB] 78s Get:28 http://ftpmaster.internal/ubuntu resolute/main ppc64el g++-15-powerpc64le-linux-gnu ppc64el 15.2.0-7ubuntu1 [13.0 MB] 79s Get:29 http://ftpmaster.internal/ubuntu resolute/main ppc64el g++-15 ppc64el 15.2.0-7ubuntu1 [23.7 kB] 79s Get:30 http://ftpmaster.internal/ubuntu resolute/main ppc64el g++-powerpc64le-linux-gnu ppc64el 4:15.2.0-4ubuntu1 [970 B] 79s Get:31 http://ftpmaster.internal/ubuntu resolute/main ppc64el g++ ppc64el 4:15.2.0-4ubuntu1 [1092 B] 79s Get:32 http://ftpmaster.internal/ubuntu resolute/main ppc64el build-essential ppc64el 12.12ubuntu1 [5094 B] 79s Get:33 http://ftpmaster.internal/ubuntu resolute/main ppc64el libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 79s Get:34 http://ftpmaster.internal/ubuntu resolute/main ppc64el libtool all 2.5.4-7 [169 kB] 79s Get:35 http://ftpmaster.internal/ubuntu resolute/main ppc64el dh-autoreconf all 21 [12.5 kB] 79s Get:36 http://ftpmaster.internal/ubuntu resolute/main ppc64el libarchive-zip-perl all 1.68-1 [90.2 kB] 79s Get:37 http://ftpmaster.internal/ubuntu resolute/main ppc64el libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 79s Get:38 http://ftpmaster.internal/ubuntu resolute/main ppc64el dh-strip-nondeterminism all 1.15.0-1 [5090 B] 79s Get:39 http://ftpmaster.internal/ubuntu resolute/main ppc64el debugedit ppc64el 1:5.2-3 [57.3 kB] 79s Get:40 http://ftpmaster.internal/ubuntu resolute/main ppc64el dwz ppc64el 0.16-2 [142 kB] 79s Get:41 http://ftpmaster.internal/ubuntu resolute/main ppc64el gettext ppc64el 0.23.2-1 [1177 kB] 79s Get:42 http://ftpmaster.internal/ubuntu resolute/main ppc64el intltool-debian all 0.35.0+20060710.6 [23.2 kB] 79s Get:43 http://ftpmaster.internal/ubuntu resolute/main ppc64el po-debconf all 1.0.21+nmu1 [233 kB] 79s Get:44 http://ftpmaster.internal/ubuntu resolute/main ppc64el debhelper all 13.24.2ubuntu1 [896 kB] 79s Get:45 http://ftpmaster.internal/ubuntu resolute/universe ppc64el dh-python all 6.20250414 [119 kB] 79s Get:46 http://ftpmaster.internal/ubuntu resolute/main ppc64el libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 79s Get:47 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjs-jquery-metadata all 12-4 [6582 B] 79s Get:48 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 79s Get:49 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 79s Get:50 http://ftpmaster.internal/ubuntu resolute/main ppc64el libpython3.14-stdlib ppc64el 3.14.0-4 [2446 kB] 79s Get:51 http://ftpmaster.internal/ubuntu resolute/universe ppc64el pybuild-plugin-autopkgtest all 6.20250414 [1746 B] 79s Get:52 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 79s Get:53 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-wheel all 0.46.1-2 [22.1 kB] 79s Get:54 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-build all 1.2.2-4 [31.0 kB] 79s Get:55 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 79s Get:56 http://ftpmaster.internal/ubuntu resolute/universe ppc64el pybuild-plugin-pyproject all 6.20250414 [1728 B] 79s Get:57 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3.14 ppc64el 3.14.0-4 [805 kB] 79s Get:58 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el python3-all ppc64el 3.13.7-2 [892 B] 79s Get:59 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-coverage ppc64el 7.8.2+dfsg1-1 [158 kB] 79s Get:60 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-joblib all 1.4.2-4 [205 kB] 79s Get:61 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-platformdirs all 4.3.7-1 [16.9 kB] 79s Get:62 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-fscacher all 0.4.3-0.3 [12.8 kB] 79s Get:63 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-iniconfig all 2.1.0-1 [6840 B] 79s Get:64 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pluggy all 1.6.0-1 [21.0 kB] 79s Get:65 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pytest all 8.3.5-2 [252 kB] 79s Get:66 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjs-jquery-hotkeys all 0.2.0-1 [13.3 kB] 79s Get:67 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 79s Get:68 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pytest-cov all 5.0.0-1 [21.3 kB] 79s Get:69 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pytest-mock all 3.15.1-1 [11.9 kB] 79s Get:70 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pytest-rerunfailures all 16.1-1 [14.9 kB] 80s Fetched 74.6 MB in 4s (18.9 MB/s) 80s Selecting previously unselected package libpython3.14-minimal:ppc64el. 80s (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 ... 81022 files and directories currently installed.) 80s Preparing to unpack .../00-libpython3.14-minimal_3.14.0-4_ppc64el.deb ... 80s Unpacking libpython3.14-minimal:ppc64el (3.14.0-4) ... 80s Selecting previously unselected package python3.14-minimal. 80s Preparing to unpack .../01-python3.14-minimal_3.14.0-4_ppc64el.deb ... 80s Unpacking python3.14-minimal (3.14.0-4) ... 80s Selecting previously unselected package m4. 80s Preparing to unpack .../02-m4_1.4.20-2_ppc64el.deb ... 80s Unpacking m4 (1.4.20-2) ... 80s Selecting previously unselected package autoconf. 80s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 80s Unpacking autoconf (2.72-3.1ubuntu1) ... 80s Selecting previously unselected package autotools-dev. 80s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 80s Unpacking autotools-dev (20240727.1) ... 80s Selecting previously unselected package automake. 80s Preparing to unpack .../05-automake_1%3a1.18.1-2_all.deb ... 80s Unpacking automake (1:1.18.1-2) ... 80s Selecting previously unselected package autopoint. 80s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 80s Unpacking autopoint (0.23.2-1) ... 80s Selecting previously unselected package libisl23:ppc64el. 80s Preparing to unpack .../07-libisl23_0.27-1_ppc64el.deb ... 80s Unpacking libisl23:ppc64el (0.27-1) ... 80s Selecting previously unselected package libmpc3:ppc64el. 80s Preparing to unpack .../08-libmpc3_1.3.1-2_ppc64el.deb ... 80s Unpacking libmpc3:ppc64el (1.3.1-2) ... 80s Selecting previously unselected package cpp-15-powerpc64le-linux-gnu. 80s Preparing to unpack .../09-cpp-15-powerpc64le-linux-gnu_15.2.0-7ubuntu1_ppc64el.deb ... 80s Unpacking cpp-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 80s Selecting previously unselected package cpp-15. 80s Preparing to unpack .../10-cpp-15_15.2.0-7ubuntu1_ppc64el.deb ... 80s Unpacking cpp-15 (15.2.0-7ubuntu1) ... 80s Selecting previously unselected package cpp-powerpc64le-linux-gnu. 80s Preparing to unpack .../11-cpp-powerpc64le-linux-gnu_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 80s Unpacking cpp-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 80s Selecting previously unselected package cpp. 80s Preparing to unpack .../12-cpp_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 80s Unpacking cpp (4:15.2.0-4ubuntu1) ... 80s Selecting previously unselected package libcc1-0:ppc64el. 80s Preparing to unpack .../13-libcc1-0_15.2.0-7ubuntu1_ppc64el.deb ... 80s Unpacking libcc1-0:ppc64el (15.2.0-7ubuntu1) ... 80s Selecting previously unselected package libgomp1:ppc64el. 80s Preparing to unpack .../14-libgomp1_15.2.0-7ubuntu1_ppc64el.deb ... 80s Unpacking libgomp1:ppc64el (15.2.0-7ubuntu1) ... 80s Selecting previously unselected package libitm1:ppc64el. 80s Preparing to unpack .../15-libitm1_15.2.0-7ubuntu1_ppc64el.deb ... 80s Unpacking libitm1:ppc64el (15.2.0-7ubuntu1) ... 80s Selecting previously unselected package libasan8:ppc64el. 80s Preparing to unpack .../16-libasan8_15.2.0-7ubuntu1_ppc64el.deb ... 80s Unpacking libasan8:ppc64el (15.2.0-7ubuntu1) ... 80s Selecting previously unselected package liblsan0:ppc64el. 80s Preparing to unpack .../17-liblsan0_15.2.0-7ubuntu1_ppc64el.deb ... 80s Unpacking liblsan0:ppc64el (15.2.0-7ubuntu1) ... 80s Selecting previously unselected package libtsan2:ppc64el. 80s Preparing to unpack .../18-libtsan2_15.2.0-7ubuntu1_ppc64el.deb ... 80s Unpacking libtsan2:ppc64el (15.2.0-7ubuntu1) ... 80s Selecting previously unselected package libubsan1:ppc64el. 80s Preparing to unpack .../19-libubsan1_15.2.0-7ubuntu1_ppc64el.deb ... 80s Unpacking libubsan1:ppc64el (15.2.0-7ubuntu1) ... 80s Selecting previously unselected package libquadmath0:ppc64el. 80s Preparing to unpack .../20-libquadmath0_15.2.0-7ubuntu1_ppc64el.deb ... 80s Unpacking libquadmath0:ppc64el (15.2.0-7ubuntu1) ... 80s Selecting previously unselected package libgcc-15-dev:ppc64el. 80s Preparing to unpack .../21-libgcc-15-dev_15.2.0-7ubuntu1_ppc64el.deb ... 80s Unpacking libgcc-15-dev:ppc64el (15.2.0-7ubuntu1) ... 81s Selecting previously unselected package gcc-15-powerpc64le-linux-gnu. 81s Preparing to unpack .../22-gcc-15-powerpc64le-linux-gnu_15.2.0-7ubuntu1_ppc64el.deb ... 81s Unpacking gcc-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 81s Selecting previously unselected package gcc-15. 81s Preparing to unpack .../23-gcc-15_15.2.0-7ubuntu1_ppc64el.deb ... 81s Unpacking gcc-15 (15.2.0-7ubuntu1) ... 81s Selecting previously unselected package gcc-powerpc64le-linux-gnu. 81s Preparing to unpack .../24-gcc-powerpc64le-linux-gnu_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 81s Unpacking gcc-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 81s Selecting previously unselected package gcc. 81s Preparing to unpack .../25-gcc_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 81s Unpacking gcc (4:15.2.0-4ubuntu1) ... 81s Selecting previously unselected package libstdc++-15-dev:ppc64el. 81s Preparing to unpack .../26-libstdc++-15-dev_15.2.0-7ubuntu1_ppc64el.deb ... 81s Unpacking libstdc++-15-dev:ppc64el (15.2.0-7ubuntu1) ... 81s Selecting previously unselected package g++-15-powerpc64le-linux-gnu. 81s Preparing to unpack .../27-g++-15-powerpc64le-linux-gnu_15.2.0-7ubuntu1_ppc64el.deb ... 81s Unpacking g++-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 81s Selecting previously unselected package g++-15. 81s Preparing to unpack .../28-g++-15_15.2.0-7ubuntu1_ppc64el.deb ... 81s Unpacking g++-15 (15.2.0-7ubuntu1) ... 81s Selecting previously unselected package g++-powerpc64le-linux-gnu. 81s Preparing to unpack .../29-g++-powerpc64le-linux-gnu_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 81s Unpacking g++-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 81s Selecting previously unselected package g++. 81s Preparing to unpack .../30-g++_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 81s Unpacking g++ (4:15.2.0-4ubuntu1) ... 81s Selecting previously unselected package build-essential. 81s Preparing to unpack .../31-build-essential_12.12ubuntu1_ppc64el.deb ... 81s Unpacking build-essential (12.12ubuntu1) ... 81s Selecting previously unselected package libdebhelper-perl. 81s Preparing to unpack .../32-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 81s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 81s Selecting previously unselected package libtool. 81s Preparing to unpack .../33-libtool_2.5.4-7_all.deb ... 81s Unpacking libtool (2.5.4-7) ... 81s Selecting previously unselected package dh-autoreconf. 81s Preparing to unpack .../34-dh-autoreconf_21_all.deb ... 81s Unpacking dh-autoreconf (21) ... 81s Selecting previously unselected package libarchive-zip-perl. 81s Preparing to unpack .../35-libarchive-zip-perl_1.68-1_all.deb ... 81s Unpacking libarchive-zip-perl (1.68-1) ... 82s Selecting previously unselected package libfile-stripnondeterminism-perl. 82s Preparing to unpack .../36-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 82s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 82s Selecting previously unselected package dh-strip-nondeterminism. 82s Preparing to unpack .../37-dh-strip-nondeterminism_1.15.0-1_all.deb ... 82s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 82s Selecting previously unselected package debugedit. 82s Preparing to unpack .../38-debugedit_1%3a5.2-3_ppc64el.deb ... 82s Unpacking debugedit (1:5.2-3) ... 82s Selecting previously unselected package dwz. 82s Preparing to unpack .../39-dwz_0.16-2_ppc64el.deb ... 82s Unpacking dwz (0.16-2) ... 82s Selecting previously unselected package gettext. 82s Preparing to unpack .../40-gettext_0.23.2-1_ppc64el.deb ... 82s Unpacking gettext (0.23.2-1) ... 82s Selecting previously unselected package intltool-debian. 82s Preparing to unpack .../41-intltool-debian_0.35.0+20060710.6_all.deb ... 82s Unpacking intltool-debian (0.35.0+20060710.6) ... 82s Selecting previously unselected package po-debconf. 82s Preparing to unpack .../42-po-debconf_1.0.21+nmu1_all.deb ... 82s Unpacking po-debconf (1.0.21+nmu1) ... 82s Selecting previously unselected package debhelper. 82s Preparing to unpack .../43-debhelper_13.24.2ubuntu1_all.deb ... 82s Unpacking debhelper (13.24.2ubuntu1) ... 82s Selecting previously unselected package dh-python. 82s Preparing to unpack .../44-dh-python_6.20250414_all.deb ... 82s Unpacking dh-python (6.20250414) ... 82s Selecting previously unselected package libjs-jquery. 82s Preparing to unpack .../45-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 82s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 82s Selecting previously unselected package libjs-jquery-metadata. 82s Preparing to unpack .../46-libjs-jquery-metadata_12-4_all.deb ... 82s Unpacking libjs-jquery-metadata (12-4) ... 82s Selecting previously unselected package libjs-jquery-tablesorter. 82s Preparing to unpack .../47-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 82s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 82s Selecting previously unselected package libjs-jquery-throttle-debounce. 82s Preparing to unpack .../48-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 82s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 82s Selecting previously unselected package libpython3.14-stdlib:ppc64el. 82s Preparing to unpack .../49-libpython3.14-stdlib_3.14.0-4_ppc64el.deb ... 82s Unpacking libpython3.14-stdlib:ppc64el (3.14.0-4) ... 82s Selecting previously unselected package pybuild-plugin-autopkgtest. 82s Preparing to unpack .../50-pybuild-plugin-autopkgtest_6.20250414_all.deb ... 82s Unpacking pybuild-plugin-autopkgtest (6.20250414) ... 82s Selecting previously unselected package python3-pyproject-hooks. 82s Preparing to unpack .../51-python3-pyproject-hooks_1.2.0-1_all.deb ... 82s Unpacking python3-pyproject-hooks (1.2.0-1) ... 82s Selecting previously unselected package python3-wheel. 82s Preparing to unpack .../52-python3-wheel_0.46.1-2_all.deb ... 82s Unpacking python3-wheel (0.46.1-2) ... 82s Selecting previously unselected package python3-build. 82s Preparing to unpack .../53-python3-build_1.2.2-4_all.deb ... 82s Unpacking python3-build (1.2.2-4) ... 82s Selecting previously unselected package python3-installer. 82s Preparing to unpack .../54-python3-installer_0.7.0+dfsg1-3_all.deb ... 82s Unpacking python3-installer (0.7.0+dfsg1-3) ... 82s Selecting previously unselected package pybuild-plugin-pyproject. 82s Preparing to unpack .../55-pybuild-plugin-pyproject_6.20250414_all.deb ... 82s Unpacking pybuild-plugin-pyproject (6.20250414) ... 82s Selecting previously unselected package python3.14. 82s Preparing to unpack .../56-python3.14_3.14.0-4_ppc64el.deb ... 82s Unpacking python3.14 (3.14.0-4) ... 82s Selecting previously unselected package python3-all. 82s Preparing to unpack .../57-python3-all_3.13.7-2_ppc64el.deb ... 82s Unpacking python3-all (3.13.7-2) ... 82s Selecting previously unselected package python3-coverage. 82s Preparing to unpack .../58-python3-coverage_7.8.2+dfsg1-1_ppc64el.deb ... 82s Unpacking python3-coverage (7.8.2+dfsg1-1) ... 82s Selecting previously unselected package python3-joblib. 82s Preparing to unpack .../59-python3-joblib_1.4.2-4_all.deb ... 82s Unpacking python3-joblib (1.4.2-4) ... 82s Selecting previously unselected package python3-platformdirs. 82s Preparing to unpack .../60-python3-platformdirs_4.3.7-1_all.deb ... 82s Unpacking python3-platformdirs (4.3.7-1) ... 82s Selecting previously unselected package python3-fscacher. 82s Preparing to unpack .../61-python3-fscacher_0.4.3-0.3_all.deb ... 82s Unpacking python3-fscacher (0.4.3-0.3) ... 82s Selecting previously unselected package python3-iniconfig. 82s Preparing to unpack .../62-python3-iniconfig_2.1.0-1_all.deb ... 82s Unpacking python3-iniconfig (2.1.0-1) ... 82s Selecting previously unselected package python3-pluggy. 82s Preparing to unpack .../63-python3-pluggy_1.6.0-1_all.deb ... 82s Unpacking python3-pluggy (1.6.0-1) ... 82s Selecting previously unselected package python3-pytest. 82s Preparing to unpack .../64-python3-pytest_8.3.5-2_all.deb ... 82s Unpacking python3-pytest (8.3.5-2) ... 82s Selecting previously unselected package libjs-jquery-hotkeys. 82s Preparing to unpack .../65-libjs-jquery-hotkeys_0.2.0-1_all.deb ... 82s Unpacking libjs-jquery-hotkeys (0.2.0-1) ... 82s Selecting previously unselected package libjs-jquery-isonscreen. 82s Preparing to unpack .../66-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 82s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 82s Selecting previously unselected package python3-pytest-cov. 82s Preparing to unpack .../67-python3-pytest-cov_5.0.0-1_all.deb ... 82s Unpacking python3-pytest-cov (5.0.0-1) ... 82s Selecting previously unselected package python3-pytest-mock. 82s Preparing to unpack .../68-python3-pytest-mock_3.15.1-1_all.deb ... 82s Unpacking python3-pytest-mock (3.15.1-1) ... 82s Selecting previously unselected package python3-pytest-rerunfailures. 82s Preparing to unpack .../69-python3-pytest-rerunfailures_16.1-1_all.deb ... 82s Unpacking python3-pytest-rerunfailures (16.1-1) ... 83s Setting up dh-python (6.20250414) ... 83s Setting up python3-iniconfig (2.1.0-1) ... 83s Setting up python3-joblib (1.4.2-4) ... 83s Setting up libarchive-zip-perl (1.68-1) ... 83s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 83s Setting up libpython3.14-minimal:ppc64el (3.14.0-4) ... 83s Setting up m4 (1.4.20-2) ... 84s Setting up python3-coverage (7.8.2+dfsg1-1) ... 84s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 84s Setting up libgomp1:ppc64el (15.2.0-7ubuntu1) ... 84s Setting up python3-wheel (0.46.1-2) ... 84s Setting up python3-platformdirs (4.3.7-1) ... 84s Setting up python3-fscacher (0.4.3-0.3) ... 84s Setting up autotools-dev (20240727.1) ... 84s Setting up python3-pyproject-hooks (1.2.0-1) ... 85s Setting up libquadmath0:ppc64el (15.2.0-7ubuntu1) ... 85s Setting up libmpc3:ppc64el (1.3.1-2) ... 85s Setting up autopoint (0.23.2-1) ... 85s Setting up python3-installer (0.7.0+dfsg1-3) ... 85s Setting up autoconf (2.72-3.1ubuntu1) ... 85s Setting up python3-pluggy (1.6.0-1) ... 85s Setting up libubsan1:ppc64el (15.2.0-7ubuntu1) ... 85s Setting up dwz (0.16-2) ... 85s Setting up libasan8:ppc64el (15.2.0-7ubuntu1) ... 85s Setting up debugedit (1:5.2-3) ... 85s Setting up libtsan2:ppc64el (15.2.0-7ubuntu1) ... 85s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 85s Setting up libjs-jquery-hotkeys (0.2.0-1) ... 85s Setting up libisl23:ppc64el (0.27-1) ... 85s Setting up python3-build (1.2.2-4) ... 85s Setting up python3.14-minimal (3.14.0-4) ... 86s Setting up libcc1-0:ppc64el (15.2.0-7ubuntu1) ... 86s Setting up liblsan0:ppc64el (15.2.0-7ubuntu1) ... 86s Setting up libitm1:ppc64el (15.2.0-7ubuntu1) ... 86s Setting up automake (1:1.18.1-2) ... 86s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 86s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 86s Setting up gettext (0.23.2-1) ... 86s Setting up libgcc-15-dev:ppc64el (15.2.0-7ubuntu1) ... 86s Setting up libpython3.14-stdlib:ppc64el (3.14.0-4) ... 86s Setting up pybuild-plugin-pyproject (6.20250414) ... 86s Setting up python3-pytest (8.3.5-2) ... 87s Setting up intltool-debian (0.35.0+20060710.6) ... 87s Setting up cpp-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 87s Setting up libstdc++-15-dev:ppc64el (15.2.0-7ubuntu1) ... 87s Setting up libjs-jquery-metadata (12-4) ... 87s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 87s Setting up dh-strip-nondeterminism (1.15.0-1) ... 87s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 87s Setting up python3-pytest-mock (3.15.1-1) ... 87s Setting up cpp-15 (15.2.0-7ubuntu1) ... 87s Setting up python3.14 (3.14.0-4) ... 88s Setting up cpp-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 88s Setting up python3-pytest-rerunfailures (16.1-1) ... 88s Setting up gcc-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 88s Setting up po-debconf (1.0.21+nmu1) ... 88s Setting up python3-all (3.13.7-2) ... 88s Setting up python3-pytest-cov (5.0.0-1) ... 88s Setting up gcc-15 (15.2.0-7ubuntu1) ... 88s Setting up gcc-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 88s Setting up cpp (4:15.2.0-4ubuntu1) ... 88s Setting up g++-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 88s Setting up libtool (2.5.4-7) ... 88s Setting up gcc (4:15.2.0-4ubuntu1) ... 88s Setting up dh-autoreconf (21) ... 88s Setting up g++-15 (15.2.0-7ubuntu1) ... 88s Setting up g++-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 88s Setting up debhelper (13.24.2ubuntu1) ... 88s Setting up g++ (4:15.2.0-4ubuntu1) ... 88s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 88s Setting up build-essential (12.12ubuntu1) ... 88s Setting up pybuild-plugin-autopkgtest (6.20250414) ... 88s Processing triggers for man-db (2.13.1-1) ... 90s Processing triggers for install-info (7.2-5) ... 90s Processing triggers for libc-bin (2.42-2ubuntu2) ... 90s Processing triggers for systemd (257.9-0ubuntu2) ... 91s autopkgtest [13:23:10]: test pybuild-autopkgtest: pybuild-autopkgtest 91s autopkgtest [13:23:10]: test pybuild-autopkgtest: [----------------------- 91s pybuild-autopkgtest 92s I: pybuild base:311: cd /tmp/autopkgtest.cppITS/autopkgtest_tmp/build; python3.14 -m pytest 92s ============================= test session starts ============================== 92s platform linux -- Python 3.14.0, pytest-8.3.5, pluggy-1.6.0 92s rootdir: /tmp/autopkgtest.cppITS/autopkgtest_tmp/build 92s plugins: mock-3.15.1, cov-5.0.0, rerunfailures-16.1, typeguard-4.4.2 92s collected 27 items 92s 94s tests/test_cache.py FFFFFF..........sF.FFF [ 81%] 94s tests/test_util.py ..... [100%] 94s 94s =================================== FAILURES =================================== 94s _________________________________ test_memoize _________________________________ 94s 94s cache = 94s 94s def test_memoize(cache): 94s # Simplest testing to start with, not relying on persisting across 94s # independent processes 94s _comp = [] 94s 94s @cache.memoize 94s def f1(flag=False): 94s if flag: 94s raise ValueError("Got flag") 94s if _comp: 94s raise RuntimeError("Must not be recomputed") 94s _comp.append(1) 94s return 1 94s 94s > assert f1() == 1 94s 94s tests/test_cache.py:51: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 94s return self._cached_call(args, kwargs, shelving=False)[0] 94s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 94s args_id = self._get_args_id(*args, **kwargs) 94s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 94s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 94s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 94s return hasher.hash(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 94s self.dump(obj) 94s /usr/lib/python3.14/pickle.py:498: in dump 94s self.save(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 94s Pickler.save(self, obj) 94s /usr/lib/python3.14/pickle.py:572: in save 94s f(self, obj) # Call unbound method with explicit self 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = , obj = {'flag': False} 94s 94s def save_dict(self, obj): 94s if self.bin: 94s self.write(EMPTY_DICT) 94s else: # proto 0 -- can't use EMPTY_DICT 94s self.write(MARK + DICT) 94s 94s self.memoize(obj) 94s > self._batch_setitems(obj.items(), obj) 94s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 94s 94s /usr/lib/python3.14/pickle.py:1064: TypeError 94s ____________________________ test_memoize_multiple _____________________________ 94s 94s cache = 94s 94s def test_memoize_multiple(cache): 94s # Make sure that with the same cache can cover multiple functions 94s @cache.memoize 94s def f1(): 94s return 1 94s 94s @cache.memoize 94s def f2(): 94s return 2 94s 94s @cache.memoize 94s def f3(): # nesting call into f2 94s return f2() + 1 94s 94s for _ in range(3): 94s > assert f1() == 1 94s 94s tests/test_cache.py:86: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 94s return self._cached_call(args, kwargs, shelving=False)[0] 94s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 94s args_id = self._get_args_id(*args, **kwargs) 94s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 94s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 94s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 94s return hasher.hash(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 94s self.dump(obj) 94s /usr/lib/python3.14/pickle.py:498: in dump 94s self.save(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 94s Pickler.save(self, obj) 94s /usr/lib/python3.14/pickle.py:572: in save 94s f(self, obj) # Call unbound method with explicit self 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = , obj = {} 94s 94s def save_dict(self, obj): 94s if self.bin: 94s self.write(EMPTY_DICT) 94s else: # proto 0 -- can't use EMPTY_DICT 94s self.write(MARK + DICT) 94s 94s self.memoize(obj) 94s > self._batch_setitems(obj.items(), obj) 94s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 94s 94s /usr/lib/python3.14/pickle.py:1064: TypeError 94s ______________________________ test_memoize_path _______________________________ 94s 94s cache = 94s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0') 94s 94s def test_memoize_path(cache, tmp_path): 94s calls = [] 94s 94s @cache.memoize_path 94s def memoread(path, arg, kwarg=None): 94s calls.append([path, arg, kwarg]) 94s with open(path) as f: 94s return f.read() 94s 94s def check_new_memoread(arg, content, expect_new=False): 94s ncalls = len(calls) 94s assert memoread(path, arg) == content 94s assert len(calls) == ncalls + 1 94s assert memoread(path, arg) == content 94s assert len(calls) == ncalls + 1 + int(expect_new) 94s 94s fname = "file.dat" 94s path = str(tmp_path / fname) 94s 94s with pytest.raises(IOError): 94s memoread(path, 0) 94s # and again 94s with pytest.raises(IOError): 94s memoread(path, 0) 94s assert len(calls) == 2 94s 94s with open(path, "w") as f: 94s f.write("content") 94s 94s t0 = time.time() 94s try: 94s # unless this computer is too slow -- there should be less than 94s # cache._min_dtime between our creating the file and testing, 94s # so we would force a direct read: 94s check_new_memoread(0, "content", True) 94s except AssertionError: # pragma: no cover 94s # if computer is indeed slow (happens on shared CIs) we might fail 94s # because distance is too short 94s if time.time() - t0 < cache._min_dtime: 94s raise # if we were quick but still failed -- legit 94s assert calls[-1] == [path, 0, None] 94s 94s # but if we sleep - should memoize 94s time.sleep(cache._min_dtime * 1.1) 94s > check_new_memoread(1, "content") 94s 94s tests/test_cache.py:135: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s tests/test_cache.py:102: in check_new_memoread 94s assert memoread(path, arg) == content 94s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 94s ret = fingerprinted(*args, **kwargs_) 94s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 94s return self._cached_call(args, kwargs, shelving=False)[0] 94s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 94s args_id = self._get_args_id(*args, **kwargs) 94s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 94s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 94s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 94s return hasher.hash(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 94s self.dump(obj) 94s /usr/lib/python3.14/pickle.py:498: in dump 94s self.save(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 94s Pickler.save(self, obj) 94s /usr/lib/python3.14/pickle.py:572: in save 94s f(self, obj) # Call unbound method with explicit self 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat', 1763385791903821249, 1763385791903821249, 7, 251105), 'arg': 1, 'kwarg': None} 94s 94s def save_dict(self, obj): 94s if self.bin: 94s self.write(EMPTY_DICT) 94s else: # proto 0 -- can't use EMPTY_DICT 94s self.write(MARK + DICT) 94s 94s self.memoize(obj) 94s > self._batch_setitems(obj.items(), obj) 94s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 94s 94s /usr/lib/python3.14/pickle.py:1064: TypeError 94s ------------------------------ Captured log call ------------------------------- 94s DEBUG fscacher.cache:cache.py:182 Cannot fingerprint /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat: [Errno 2] No such file or directory: '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat' 94s DEBUG fscacher.cache:cache.py:145 Calling .memoread at 0x7875f8378e00> directly since no fingerprint for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat' 94s DEBUG fscacher.cache:cache.py:182 Cannot fingerprint /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat: [Errno 2] No such file or directory: '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat' 94s DEBUG fscacher.cache:cache.py:145 Calling .memoread at 0x7875f8378e00> directly since no fingerprint for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat' 94s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat: FileFingerprint(mtime_ns=1763385791903821249, ctime_ns=1763385791903821249, size=7, inode=251105) 94s DEBUG fscacher.cache:cache.py:153 Calling .memoread at 0x7875f8378e00> directly since too short for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat' 94s Level 1 fscacher.cache:cache.py:165 Returning value 'content' 94s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat: FileFingerprint(mtime_ns=1763385791903821249, ctime_ns=1763385791903821249, size=7, inode=251105) 94s DEBUG fscacher.cache:cache.py:153 Calling .memoread at 0x7875f8378e00> directly since too short for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat' 94s Level 1 fscacher.cache:cache.py:165 Returning value 'content' 94s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat: FileFingerprint(mtime_ns=1763385791903821249, ctime_ns=1763385791903821249, size=7, inode=251105) 94s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .memoread at 0x7875f8378e00> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat 94s ____________________________ test_memoize_path_dir _____________________________ 94s 94s cache = 94s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0') 94s 94s @pytest.mark.flaky(reruns=5, condition=on_windows) 94s def test_memoize_path_dir(cache, tmp_path): 94s calls = [] 94s 94s @cache.memoize_path 94s def memoread(path, arg, kwarg=None): 94s calls.append([path, arg, kwarg]) 94s total_size = 0 94s with os.scandir(path) as entries: 94s for e in entries: 94s if e.is_file(): 94s total_size += e.stat().st_size 94s return total_size 94s 94s def check_new_memoread(arg, content, expect_new=False): 94s ncalls = len(calls) 94s assert memoread(path, arg) == content 94s assert len(calls) == ncalls + 1 94s assert memoread(path, arg) == content 94s assert len(calls) == ncalls + 1 + int(expect_new) 94s 94s fname = "foo" 94s path = tmp_path / fname 94s 94s with pytest.raises(IOError): 94s memoread(path, 0) 94s # and again 94s with pytest.raises(IOError): 94s memoread(path, 0) 94s assert len(calls) == 2 94s 94s path.mkdir() 94s (path / "a.txt").write_text("Alpha") 94s (path / "b.txt").write_text("Beta") 94s 94s t0 = time.time() 94s try: 94s # unless this computer is too slow -- there should be less than 94s # cache._min_dtime between our creating the file and testing, 94s # so we would force a direct read: 94s check_new_memoread(0, 9, True) 94s except AssertionError: # pragma: no cover 94s # if computer is indeed slow (happens on shared CIs) we might fail 94s # because distance is too short 94s t_now = time.time() 94s if t_now - t0 < cache._min_dtime: 94s # Log more information to troubleshoot 94s lgr.error(f"Failing test with t0={t0}, t_now={t_now}, " 94s f"dt={t_now - t0}, min_dtime={cache._min_dtime}") 94s for p in ("a.txt", "b.txt"): 94s lgr.error(f" {p}: {op.getmtime(path / p)}") 94s raise # if we were quick but still failed -- legit 94s assert calls[-1] == [path, 0, None] 94s 94s # but if we sleep - should memoize 94s time.sleep(cache._min_dtime * 1.1) 94s > check_new_memoread(1, 9) 94s 94s tests/test_cache.py:225: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s tests/test_cache.py:185: in check_new_memoread 94s assert memoread(path, arg) == content 94s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 94s ret = fingerprinted(*args, **kwargs_) 94s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 94s return self._cached_call(args, kwargs, shelving=False)[0] 94s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 94s args_id = self._get_args_id(*args, **kwargs) 94s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 94s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 94s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 94s return hasher.hash(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 94s self.dump(obj) 94s /usr/lib/python3.14/pickle.py:498: in dump 94s self.save(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 94s Pickler.save(self, obj) 94s /usr/lib/python3.14/pickle.py:572: in save 94s f(self, obj) # Call unbound method with explicit self 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo', '50ea1cbeff69531d9b85c514e58de805'), 'arg': 1, 'kwarg': None} 94s 94s def save_dict(self, obj): 94s if self.bin: 94s self.write(EMPTY_DICT) 94s else: # proto 0 -- can't use EMPTY_DICT 94s self.write(MARK + DICT) 94s 94s self.memoize(obj) 94s > self._batch_setitems(obj.items(), obj) 94s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 94s 94s /usr/lib/python3.14/pickle.py:1064: TypeError 94s ------------------------------ Captured log call ------------------------------- 94s Level 5 fscacher.cache:cache.py:139 Dereferenced PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo') into '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 94s DEBUG fscacher.cache:cache.py:182 Cannot fingerprint /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo: [Errno 2] No such file or directory: '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 94s DEBUG fscacher.cache:cache.py:145 Calling .memoread at 0x7875f9bcc300> directly since no fingerprint for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 94s Level 5 fscacher.cache:cache.py:139 Dereferenced PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo') into '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 94s DEBUG fscacher.cache:cache.py:182 Cannot fingerprint /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo: [Errno 2] No such file or directory: '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 94s DEBUG fscacher.cache:cache.py:145 Calling .memoread at 0x7875f9bcc300> directly since no fingerprint for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 94s Level 5 fscacher.cache:cache.py:139 Dereferenced PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo') into '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 94s DEBUG fscacher.cache:cache.py:153 Calling .memoread at 0x7875f9bcc300> directly since too short for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 94s Level 1 fscacher.cache:cache.py:165 Returning value 9 94s Level 5 fscacher.cache:cache.py:139 Dereferenced PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo') into '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 94s DEBUG fscacher.cache:cache.py:153 Calling .memoread at 0x7875f9bcc300> directly since too short for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 94s Level 1 fscacher.cache:cache.py:165 Returning value 9 94s Level 5 fscacher.cache:cache.py:139 Dereferenced PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo') into '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 94s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .memoread at 0x7875f9bcc300> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo 94s __________________________ test_memoize_path_persist ___________________________ 94s 94s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_persist0') 94s 94s def test_memoize_path_persist(tmp_path): 94s from subprocess import PIPE, run 94s 94s script = tmp_path / "script.py" 94s cachedir = tmp_path / "cache" 94s script.write_text( 94s "from os.path import basename\n" 94s "from fscacher import PersistentCache\n" 94s f"cache = PersistentCache(path={str(cachedir)!r})\n" 94s "\n" 94s "@cache.memoize_path\n" 94s "def func(path):\n" 94s " print('Running %s.' % basename(path), end='')\n" 94s " return 'DONE'\n" 94s "\n" 94s f"print(func({str(script)!r}))\n" 94s ) 94s 94s outputs = [ 94s run([sys.executable, str(script)], stdout=PIPE, stderr=PIPE) for i in range(3) 94s ] 94s print("Full outputs: %s" % repr(outputs)) 94s if b"File name too long" in outputs[0].stderr: 94s # must be running during conda build which blows up paths with 94s # _placehold_ers 94s pytest.skip("seems to be running on conda and hitting the limits") 94s > assert outputs[0].stdout.strip().decode() == "Running script.py.DONE" 94s E AssertionError: assert '' == 'Running script.py.DONE' 94s E 94s E - Running script.py.DONE 94s 94s tests/test_cache.py:284: AssertionError 94s ----------------------------- Captured stdout call ----------------------------- 94s Full outputs: [CompletedProcess(args=['/usr/bin/python3.14', '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_persist0/script.py'], returncode=1, stdout=b'', stderr=b'Traceback (most recent call last):\n File "/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_persist0/script.py", line 10, in \n print(func(\'/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_persist0/script.py\'))\n ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/fscacher/cache.py", line 164, in fingerprinter\n ret = fingerprinted(*args, **kwargs_)\n File "/usr/lib/python3/dist-packages/joblib/memory.py", line 577, in __call__\n return self._cached_call(args, kwargs, shelving=False)[0]\n ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/joblib/memory.py", line 483, in _cached_call\n args_id = self._get_args_id(*args, **kwargs)\n File "/usr/lib/python3/dist-packages/joblib/memory.py", line 616, in _get_args_id\n return hashing.hash(filter_args(self.func, self.ignore, args, kwargs),\n ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n coerce_mmap=self.mmap_mode is not None)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/joblib/hashing.py", line 265, in hash\n return hasher.hash(obj)\n ~~~~~~~~~~~^^^^^\n File "/usr/lib/python3/dist-packages/joblib/hashing.py", line 63, in hash\n self.dump(obj)\n ~~~~~~~~~^^^^^\n File "/usr/lib/python3.14/pickle.py", line 498, in dump\n self.save(obj)\n ~~~~~~~~~^^^^^\n File "/usr/lib/python3/dist-packages/joblib/hashing.py", line 89, in save\n Pickler.save(self, obj)\n ~~~~~~~~~~~~^^^^^^^^^^^\n File "/usr/lib/python3.14/pickle.py", line 572, in save\n f(self, obj) # Call unbound method with explicit self\n ~^^^^^^^^^^^\n File "/usr/lib/python3.14/pickle.py", line 1064, in save_dict\n self._batch_setitems(obj.items(), obj)\n ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\nTypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given\n'), CompletedProcess(args=['/usr/bin/python3.14', '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_persist0/script.py'], returncode=1, stdout=b'', stderr=b'Traceback (most recent call last):\n File "/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_persist0/script.py", line 10, in \n print(func(\'/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_persist0/script.py\'))\n ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/fscacher/cache.py", line 164, in fingerprinter\n ret = fingerprinted(*args, **kwargs_)\n File "/usr/lib/python3/dist-packages/joblib/memory.py", line 577, in __call__\n return self._cached_call(args, kwargs, shelving=False)[0]\n ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/joblib/memory.py", line 483, in _cached_call\n args_id = self._get_args_id(*args, **kwargs)\n File "/usr/lib/python3/dist-packages/joblib/memory.py", line 616, in _get_args_id\n return hashing.hash(filter_args(self.func, self.ignore, args, kwargs),\n ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n coerce_mmap=self.mmap_mode is not None)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/joblib/hashing.py", line 265, in hash\n return hasher.hash(obj)\n ~~~~~~~~~~~^^^^^\n File "/usr/lib/python3/dist-packages/joblib/hashing.py", line 63, in hash\n self.dump(obj)\n ~~~~~~~~~^^^^^\n File "/usr/lib/python3.14/pickle.py", line 498, in dump\n self.save(obj)\n ~~~~~~~~~^^^^^\n File "/usr/lib/python3/dist-packages/joblib/hashing.py", line 89, in save\n Pickler.save(self, obj)\n ~~~~~~~~~~~~^^^^^^^^^^^\n File "/usr/lib/python3.14/pickle.py", line 572, in save\n f(self, obj) # Call unbound method with explicit self\n ~^^^^^^^^^^^\n File "/usr/lib/python3.14/pickle.py", line 1064, in save_dict\n self._batch_setitems(obj.items(), obj)\n ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\nTypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given\n'), CompletedProcess(args=['/usr/bin/python3.14', '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_persist0/script.py'], returncode=1, stdout=b'', stderr=b'Traceback (most recent call last):\n File "/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_persist0/script.py", line 10, in \n print(func(\'/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_persist0/script.py\'))\n ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/fscacher/cache.py", line 164, in fingerprinter\n ret = fingerprinted(*args, **kwargs_)\n File "/usr/lib/python3/dist-packages/joblib/memory.py", line 577, in __call__\n return self._cached_call(args, kwargs, shelving=False)[0]\n ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/joblib/memory.py", line 483, in _cached_call\n args_id = self._get_args_id(*args, **kwargs)\n File "/usr/lib/python3/dist-packages/joblib/memory.py", line 616, in _get_args_id\n return hashing.hash(filter_args(self.func, self.ignore, args, kwargs),\n ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n coerce_mmap=self.mmap_mode is not None)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/joblib/hashing.py", line 265, in hash\n return hasher.hash(obj)\n ~~~~~~~~~~~^^^^^\n File "/usr/lib/python3/dist-packages/joblib/hashing.py", line 63, in hash\n self.dump(obj)\n ~~~~~~~~~^^^^^\n File "/usr/lib/python3.14/pickle.py", line 498, in dump\n self.save(obj)\n ~~~~~~~~~^^^^^\n File "/usr/lib/python3/dist-packages/joblib/hashing.py", line 89, in save\n Pickler.save(self, obj)\n ~~~~~~~~~~~~^^^^^^^^^^^\n File "/usr/lib/python3.14/pickle.py", line 572, in save\n f(self, obj) # Call unbound method with explicit self\n ~^^^^^^^^^^^\n File "/usr/lib/python3.14/pickle.py", line 1064, in save_dict\n self._batch_setitems(obj.items(), obj)\n ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\nTypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given\n')] 94s ___________________________ test_memoize_path_tokens ___________________________ 94s 94s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_tokens0') 94s cache = 94s cache_tokens = 94s 94s def test_memoize_path_tokens(tmp_path, cache, cache_tokens): 94s calls = [] 94s 94s @cache.memoize_path 94s def memoread(path, arg, kwarg=None): 94s calls.append(["cache", path, arg, kwarg]) 94s with open(path) as f: 94s return f.read() 94s 94s @cache_tokens.memoize_path 94s def memoread_tokens(path, arg, kwarg=None): 94s calls.append(["cache_tokens", path, arg, kwarg]) 94s with open(path) as f: 94s return f.read() 94s 94s def check_new_memoread(call, arg, content, expect_first=True, expect_new=False): 94s ncalls = len(calls) 94s assert call(path, arg) == content 94s assert len(calls) == ncalls + int(expect_first) 94s assert call(path, arg) == content 94s assert len(calls) == ncalls + int(expect_first) + int(expect_new) 94s 94s path = str(tmp_path / "file.dat") 94s 94s with open(path, "w") as f: 94s f.write("content") 94s 94s time.sleep(cache._min_dtime * 1.1) 94s # They both are independent, so both will cause a new readout 94s > check_new_memoread(memoread, 0, "content") 94s 94s tests/test_cache.py:318: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s tests/test_cache.py:306: in check_new_memoread 94s assert call(path, arg) == content 94s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 94s ret = fingerprinted(*args, **kwargs_) 94s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 94s return self._cached_call(args, kwargs, shelving=False)[0] 94s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 94s args_id = self._get_args_id(*args, **kwargs) 94s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 94s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 94s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 94s return hasher.hash(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 94s self.dump(obj) 94s /usr/lib/python3.14/pickle.py:498: in dump 94s self.save(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 94s Pickler.save(self, obj) 94s /usr/lib/python3.14/pickle.py:572: in save 94s f(self, obj) # Call unbound method with explicit self 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_tokens0/file.dat', 1763385792952295245, 1763385792952295245, 7, 254197), 'arg': 0, 'kwarg': None} 94s 94s def save_dict(self, obj): 94s if self.bin: 94s self.write(EMPTY_DICT) 94s else: # proto 0 -- can't use EMPTY_DICT 94s self.write(MARK + DICT) 94s 94s self.memoize(obj) 94s > self._batch_setitems(obj.items(), obj) 94s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 94s 94s /usr/lib/python3.14/pickle.py:1064: TypeError 94s ------------------------------ Captured log call ------------------------------- 94s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_tokens0/file.dat: FileFingerprint(mtime_ns=1763385792952295245, ctime_ns=1763385792952295245, size=7, inode=254197) 94s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .memoread at 0x7875f9bcc880> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_tokens0/file.dat 94s ________________________ test_memoize_path_nonpath_arg _________________________ 94s 94s cache = 94s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_nonpath_arg0') 94s 94s def test_memoize_path_nonpath_arg(cache, tmp_path): 94s calls = [] 94s 94s @cache.memoize_path 94s def memoread(filepath, arg, kwarg=None): 94s calls.append([filepath, arg, kwarg]) 94s with open(filepath) as f: 94s return f.read() 94s 94s path = str(tmp_path / "file.dat") 94s with open(path, "w") as f: 94s f.write("content") 94s 94s time.sleep(cache._min_dtime * 1.1) 94s 94s ncalls = len(calls) 94s > assert memoread(path, 1) == "content" 94s 94s tests/test_cache.py:414: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 94s ret = fingerprinted(*args, **kwargs_) 94s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 94s return self._cached_call(args, kwargs, shelving=False)[0] 94s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 94s args_id = self._get_args_id(*args, **kwargs) 94s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 94s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 94s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 94s return hasher.hash(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 94s self.dump(obj) 94s /usr/lib/python3.14/pickle.py:498: in dump 94s self.save(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 94s Pickler.save(self, obj) 94s /usr/lib/python3.14/pickle.py:572: in save 94s f(self, obj) # Call unbound method with explicit self 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_nonpath_arg0/file.dat', 1763385793096365348, 1763385793096365348, 7, 254217), 'arg': 1, 'kwarg': None} 94s 94s def save_dict(self, obj): 94s if self.bin: 94s self.write(EMPTY_DICT) 94s else: # proto 0 -- can't use EMPTY_DICT 94s self.write(MARK + DICT) 94s 94s self.memoize(obj) 94s > self._batch_setitems(obj.items(), obj) 94s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 94s 94s /usr/lib/python3.14/pickle.py:1064: TypeError 94s ------------------------------ Captured log call ------------------------------- 94s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_nonpath_arg0/file.dat: FileFingerprint(mtime_ns=1763385793096365348, ctime_ns=1763385793096365348, size=7, inode=254217) 94s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .memoread at 0x7875f837bcc0> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_nonpath_arg0/file.dat 94s ________________________ test_memoize_non_pathlike_arg _________________________ 94s 94s cache = 94s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_non_pathlike_arg0') 94s 94s def test_memoize_non_pathlike_arg(cache, tmp_path): 94s calls = [] 94s 94s @cache.memoize_path 94s def strify(x): 94s calls.append(x) 94s return str(x) 94s 94s path = tmp_path / "foo" 94s path.touch() 94s time.sleep(cache._min_dtime * 1.1) 94s 94s > assert strify(path) == str(path) 94s 94s tests/test_cache.py:458: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 94s ret = fingerprinted(*args, **kwargs_) 94s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 94s return self._cached_call(args, kwargs, shelving=False)[0] 94s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 94s args_id = self._get_args_id(*args, **kwargs) 94s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 94s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 94s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 94s return hasher.hash(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 94s self.dump(obj) 94s /usr/lib/python3.14/pickle.py:498: in dump 94s self.save(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 94s Pickler.save(self, obj) 94s /usr/lib/python3.14/pickle.py:572: in save 94s f(self, obj) # Call unbound method with explicit self 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_non_pathlike_arg0/foo', 1763385793209462047, 1763385793209462047, 0, 254231)} 94s 94s def save_dict(self, obj): 94s if self.bin: 94s self.write(EMPTY_DICT) 94s else: # proto 0 -- can't use EMPTY_DICT 94s self.write(MARK + DICT) 94s 94s self.memoize(obj) 94s > self._batch_setitems(obj.items(), obj) 94s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 94s 94s /usr/lib/python3.14/pickle.py:1064: TypeError 94s ------------------------------ Captured log call ------------------------------- 94s Level 5 fscacher.cache:cache.py:139 Dereferenced PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_non_pathlike_arg0/foo') into '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_non_pathlike_arg0/foo' 94s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_non_pathlike_arg0/foo: FileFingerprint(mtime_ns=1763385793209462047, ctime_ns=1763385793209462047, size=0, inode=254231) 94s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .strify at 0x7875f837ab90> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_non_pathlike_arg0/foo 94s __________________________ test_memoize_pathlike_arg ___________________________ 94s 94s cache = 94s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_pathlike_arg0') 94s 94s def test_memoize_pathlike_arg(cache, tmp_path): 94s calls = [] 94s 94s @cache.memoize_path 94s def strify(x): 94s calls.append(x) 94s return str(x) 94s 94s path = tmp_path / "foo" 94s path.touch() 94s foo = PathWrapper(path) 94s 94s path2 = tmp_path / "bar" 94s path2.touch() 94s bar = PathWrapper(path2) 94s 94s time.sleep(cache._min_dtime * 1.1) 94s 94s > assert strify(path) == str(path) 94s 94s tests/test_cache.py:500: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 94s ret = fingerprinted(*args, **kwargs_) 94s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 94s return self._cached_call(args, kwargs, shelving=False)[0] 94s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 94s args_id = self._get_args_id(*args, **kwargs) 94s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 94s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 94s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 94s return hasher.hash(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 94s self.dump(obj) 94s /usr/lib/python3.14/pickle.py:498: in dump 94s self.save(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 94s Pickler.save(self, obj) 94s /usr/lib/python3.14/pickle.py:572: in save 94s f(self, obj) # Call unbound method with explicit self 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_pathlike_arg0/foo', 1763385793323302667, 1763385793323302667, 0, 254240)} 94s 94s def save_dict(self, obj): 94s if self.bin: 94s self.write(EMPTY_DICT) 94s else: # proto 0 -- can't use EMPTY_DICT 94s self.write(MARK + DICT) 94s 94s self.memoize(obj) 94s > self._batch_setitems(obj.items(), obj) 94s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 94s 94s /usr/lib/python3.14/pickle.py:1064: TypeError 94s ------------------------------ Captured log call ------------------------------- 94s Level 5 fscacher.cache:cache.py:139 Dereferenced PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_pathlike_arg0/foo') into '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_pathlike_arg0/foo' 94s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_pathlike_arg0/foo: FileFingerprint(mtime_ns=1763385793323302667, ctime_ns=1763385793323302667, size=0, inode=254240) 94s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .strify at 0x7875f837a140> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_pathlike_arg0/foo 94s _______________________ test_memoize_path_exclude_kwargs _______________________ 94s 94s cache = 94s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_exclude_kwar0') 94s 94s def test_memoize_path_exclude_kwargs(cache, tmp_path): 94s calls = [] 94s 94s @cache.memoize_path(exclude_kwargs=["extra"]) 94s def memoread_extra(path, arg, kwarg=None, extra=None): 94s calls.append((path, arg, kwarg, extra)) 94s with open(path) as f: 94s return f.read() 94s 94s path = tmp_path / "file.dat" 94s path.write_text("content") 94s 94s time.sleep(cache._min_dtime * 1.1) 94s 94s > assert memoread_extra(path, 1, extra="foo") == "content" 94s 94s tests/test_cache.py:533: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 94s ret = fingerprinted(*args, **kwargs_) 94s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 94s return self._cached_call(args, kwargs, shelving=False)[0] 94s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 94s args_id = self._get_args_id(*args, **kwargs) 94s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 94s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 94s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 94s return hasher.hash(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 94s self.dump(obj) 94s /usr/lib/python3.14/pickle.py:498: in dump 94s self.save(obj) 94s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 94s Pickler.save(self, obj) 94s /usr/lib/python3.14/pickle.py:572: in save 94s f(self, obj) # Call unbound method with explicit self 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_exclude_kwar0/file.dat', 1763385793436750785, 1763385793436750785, 7, 254250), 'arg': 1, 'kwarg': None} 94s 94s def save_dict(self, obj): 94s if self.bin: 94s self.write(EMPTY_DICT) 94s else: # proto 0 -- can't use EMPTY_DICT 94s self.write(MARK + DICT) 94s 94s self.memoize(obj) 94s > self._batch_setitems(obj.items(), obj) 94s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 94s 94s /usr/lib/python3.14/pickle.py:1064: TypeError 94s ------------------------------ Captured log call ------------------------------- 94s Level 5 fscacher.cache:cache.py:139 Dereferenced PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_exclude_kwar0/file.dat') into '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_exclude_kwar0/file.dat' 94s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_exclude_kwar0/file.dat: FileFingerprint(mtime_ns=1763385793436750785, ctime_ns=1763385793436750785, size=7, inode=254250) 94s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .memoread_extra at 0x7875f8379900> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_exclude_kwar0/file.dat 94s =============================== warnings summary =============================== 94s tests/test_cache.py: 12 warnings 94s /usr/lib/python3/dist-packages/joblib/memory.py:1053: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead 94s if asyncio.iscoroutinefunction(func) 94s 94s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 94s =========================== short test summary info ============================ 94s FAILED tests/test_cache.py::test_memoize - TypeError: Hasher._batch_setitems(... 94s FAILED tests/test_cache.py::test_memoize_multiple - TypeError: Hasher._batch_... 94s FAILED tests/test_cache.py::test_memoize_path - TypeError: Hasher._batch_seti... 94s FAILED tests/test_cache.py::test_memoize_path_dir - TypeError: Hasher._batch_... 94s FAILED tests/test_cache.py::test_memoize_path_persist - AssertionError: asser... 94s FAILED tests/test_cache.py::test_memoize_path_tokens - TypeError: Hasher._bat... 94s FAILED tests/test_cache.py::test_memoize_path_nonpath_arg - TypeError: Hasher... 94s FAILED tests/test_cache.py::test_memoize_non_pathlike_arg - TypeError: Hasher... 94s FAILED tests/test_cache.py::test_memoize_pathlike_arg - TypeError: Hasher._ba... 94s FAILED tests/test_cache.py::test_memoize_path_exclude_kwargs - TypeError: Has... 94s ============ 10 failed, 16 passed, 1 skipped, 12 warnings in 1.98s ============= 94s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.cppITS/autopkgtest_tmp/build; python3.14 -m pytest 94s I: pybuild base:311: cd /tmp/autopkgtest.cppITS/autopkgtest_tmp/build; python3.13 -m pytest 95s ============================= test session starts ============================== 95s platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 95s rootdir: /tmp/autopkgtest.cppITS/autopkgtest_tmp/build 95s plugins: mock-3.15.1, cov-5.0.0, rerunfailures-16.1, typeguard-4.4.2 95s collected 27 items 95s 95s tests/test_cache.py ................s..... [ 81%] 95s tests/test_util.py ..... [100%] 95s 95s ======================== 26 passed, 1 skipped in 0.73s ========================= 95s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 95s make: *** [/tmp/6kflxZu9ou/run:4: pybuild-autopkgtest] Error 25 95s pybuild-autopkgtest: error: /tmp/6kflxZu9ou/run pybuild-autopkgtest returned exit code 2 96s autopkgtest [13:23:15]: test pybuild-autopkgtest: -----------------------] 96s pybuild-autopkgtest FAIL non-zero exit status 25 96s autopkgtest [13:23:15]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 97s autopkgtest [13:23:16]: @@@@@@@@@@@@@@@@@@@@ summary 97s pybuild-autopkgtest FAIL non-zero exit status 25