0s autopkgtest [11:55:07]: starting date and time: 2025-11-17 11:55:07+0000 0s autopkgtest [11:55:07]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [11:55:07]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.rm9e19l7/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-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@sto01-9.secgroup --name adt-resolute-amd64-fscacher-20251117-115507-juju-7f2275-prod-proposed-migration-environment-20-69eb7ff2-f482-4d79-9760-a56ac2767368 --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-amd64-fscacher-20251117-115507-juju-7f2275-prod-proposed-migration-environment-20-69eb7ff2-f482-4d79-9760-a56ac2767368 from image adt/ubuntu-resolute-amd64-server-20251117.img (UUID 9762b0cc-7c5b-4854-acd5-cc74ad0de8c6)... 47s autopkgtest [11:55:54]: testbed dpkg architecture: amd64 47s autopkgtest [11:55:54]: testbed apt version: 3.1.11 47s autopkgtest [11:55:54]: @@@@@@@@@@@@@@@@@@@@ test bed setup 47s autopkgtest [11:55:54]: testbed release detected to be: None 48s autopkgtest [11:55:55]: updating testbed package index (apt update) 48s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 48s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 48s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 48s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 48s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.9 kB] 48s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [868 kB] 48s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 48s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [81.1 kB] 49s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [118 kB] 49s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [159 kB] 49s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [3096 B] 49s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [64.6 kB] 49s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [3744 B] 49s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [336 B] 49s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [607 kB] 49s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [279 kB] 49s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [21.2 kB] 49s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [6516 B] 49s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [13.4 kB] 49s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [680 B] 50s Fetched 2346 kB in 1s (2511 kB/s) 51s Reading package lists... 51s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 51s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 52s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 52s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 52s Reading package lists... 52s Reading package lists... 52s Building dependency tree... 52s Reading state information... 52s Calculating upgrade... 52s The following packages will be upgraded: 52s libpython3-stdlib python3 python3-minimal usbutils 52s 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 52s Need to get 146 kB of archives. 52s After this operation, 0 B of additional disk space will be used. 52s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-minimal amd64 3.13.7-2 [27.8 kB] 52s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3 amd64 3.13.7-2 [23.9 kB] 52s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libpython3-stdlib amd64 3.13.7-2 [10.6 kB] 52s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 usbutils amd64 1:019-1 [83.9 kB] 53s dpkg-preconfigure: unable to re-open stdin: No such file or directory 53s Fetched 146 kB in 0s (0 B/s) 53s (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 ... 83372 files and directories currently installed.) 53s Preparing to unpack .../python3-minimal_3.13.7-2_amd64.deb ... 53s Unpacking python3-minimal (3.13.7-2) over (3.13.7-1) ... 53s Setting up python3-minimal (3.13.7-2) ... 53s (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 ... 83372 files and directories currently installed.) 53s Preparing to unpack .../python3_3.13.7-2_amd64.deb ... 53s running python pre-rtupdate hooks for python3.13... 53s Unpacking python3 (3.13.7-2) over (3.13.7-1) ... 53s Preparing to unpack .../libpython3-stdlib_3.13.7-2_amd64.deb ... 53s Unpacking libpython3-stdlib:amd64 (3.13.7-2) over (3.13.7-1) ... 53s Preparing to unpack .../usbutils_1%3a019-1_amd64.deb ... 53s Unpacking usbutils (1:019-1) over (1:018-2) ... 53s Setting up usbutils (1:019-1) ... 53s Setting up libpython3-stdlib:amd64 (3.13.7-2) ... 53s Setting up python3 (3.13.7-2) ... 53s running python rtupdate hooks for python3.13... 53s running python post-rtupdate hooks for python3.13... 53s Processing triggers for man-db (2.13.1-1) ... 54s autopkgtest [11:56:01]: upgrading testbed (apt dist-upgrade and autopurge) 54s Reading package lists... 54s Building dependency tree... 54s Reading state information... 54s Calculating upgrade... 54s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 54s Reading package lists... 55s Building dependency tree... 55s Reading state information... 55s Solving dependencies... 55s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 57s autopkgtest [11:56:04]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 10:00:33 UTC 2025 57s autopkgtest [11:56:04]: @@@@@@@@@@@@@@@@@@@@ apt-source fscacher 58s Get:1 http://ftpmaster.internal/ubuntu resolute/universe fscacher 0.4.3-0.3 (dsc) [2069 B] 58s Get:2 http://ftpmaster.internal/ubuntu resolute/universe fscacher 0.4.3-0.3 (tar) [35.1 kB] 58s Get:3 http://ftpmaster.internal/ubuntu resolute/universe fscacher 0.4.3-0.3 (diff) [4024 B] 58s gpgv: Signature made Wed Jan 1 15:39:12 2025 UTC 58s gpgv: using RSA key 7E7729476D87D6F11D91ACCBC293E7B461825ACE 58s gpgv: Can't check signature: No public key 58s dpkg-source: warning: cannot verify inline signature for ./fscacher_0.4.3-0.3.dsc: no acceptable signature found 58s autopkgtest [11:56:05]: testing package fscacher version 0.4.3-0.3 58s autopkgtest [11:56:05]: build not needed 58s autopkgtest [11:56:05]: test pybuild-autopkgtest: preparing testbed 58s Reading package lists... 59s Building dependency tree... 59s Reading state information... 59s Solving dependencies... 59s The following NEW packages will be installed: 59s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 59s cpp-15-x86-64-linux-gnu cpp-x86-64-linux-gnu debhelper debugedit 59s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-15 59s g++-15-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-15 59s gcc-15-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext intltool-debian 59s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 59s libfile-stripnondeterminism-perl libgcc-15-dev libgomp1 libhwasan0 libisl23 59s libitm1 libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 59s libjs-jquery-metadata libjs-jquery-tablesorter 59s libjs-jquery-throttle-debounce liblsan0 libmpc3 libpython3.14-minimal 59s libpython3.14-stdlib libquadmath0 libstdc++-15-dev libtool libtsan2 59s libubsan1 m4 po-debconf pybuild-plugin-autopkgtest pybuild-plugin-pyproject 59s python3-all python3-build python3-coverage python3-fscacher 59s python3-iniconfig python3-installer python3-joblib python3-platformdirs 59s python3-pluggy python3-pyproject-hooks python3-pytest python3-pytest-cov 59s python3-pytest-mock python3-pytest-rerunfailures python3-wheel python3.14 59s python3.14-minimal 59s 0 upgraded, 71 newly installed, 0 to remove and 0 not upgraded. 59s Need to get 82.7 MB of archives. 59s After this operation, 281 MB of additional disk space will be used. 59s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-minimal amd64 3.14.0-4 [906 kB] 59s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.0-4 [2559 kB] 59s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 m4 amd64 1.4.20-2 [217 kB] 59s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 autoconf all 2.72-3.1ubuntu1 [384 kB] 59s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 autotools-dev all 20240727.1 [43.4 kB] 59s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 automake all 1:1.18.1-2 [581 kB] 59s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 autopoint all 0.23.2-1 [620 kB] 59s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libisl23 amd64 0.27-1 [685 kB] 59s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libmpc3 amd64 1.3.1-2 [54.8 kB] 59s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15-x86-64-linux-gnu amd64 15.2.0-7ubuntu1 [12.9 MB] 59s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15 amd64 15.2.0-7ubuntu1 [1026 B] 59s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [5746 B] 59s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp amd64 4:15.2.0-4ubuntu1 [22.4 kB] 59s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 libcc1-0 amd64 15.2.0-7ubuntu1 [47.4 kB] 59s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-7ubuntu1 [151 kB] 59s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 libitm1 amd64 15.2.0-7ubuntu1 [29.7 kB] 59s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 libasan8 amd64 15.2.0-7ubuntu1 [3071 kB] 59s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 liblsan0 amd64 15.2.0-7ubuntu1 [1360 kB] 59s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 libtsan2 amd64 15.2.0-7ubuntu1 [2757 kB] 60s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 libubsan1 amd64 15.2.0-7ubuntu1 [1210 kB] 60s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 libhwasan0 amd64 15.2.0-7ubuntu1 [1685 kB] 60s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 libquadmath0 amd64 15.2.0-7ubuntu1 [153 kB] 60s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 libgcc-15-dev amd64 15.2.0-7ubuntu1 [2864 kB] 60s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15-x86-64-linux-gnu amd64 15.2.0-7ubuntu1 [25.4 MB] 60s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15 amd64 15.2.0-7ubuntu1 [524 kB] 60s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [1208 B] 60s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc amd64 4:15.2.0-4ubuntu1 [5024 B] 60s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 libstdc++-15-dev amd64 15.2.0-7ubuntu1 [2573 kB] 60s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15-x86-64-linux-gnu amd64 15.2.0-7ubuntu1 [14.4 MB] 60s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15 amd64 15.2.0-7ubuntu1 [23.7 kB] 60s Get:31 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [966 B] 60s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 g++ amd64 4:15.2.0-4ubuntu1 [1100 B] 60s Get:33 http://ftpmaster.internal/ubuntu resolute/main amd64 build-essential amd64 12.12ubuntu1 [5080 B] 60s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 60s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 libtool all 2.5.4-7 [169 kB] 60s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-autoreconf all 21 [12.5 kB] 60s Get:37 http://ftpmaster.internal/ubuntu resolute/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 60s Get:38 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 60s Get:39 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-strip-nondeterminism all 1.15.0-1 [5090 B] 60s Get:40 http://ftpmaster.internal/ubuntu resolute/main amd64 debugedit amd64 1:5.2-3 [49.9 kB] 60s Get:41 http://ftpmaster.internal/ubuntu resolute/main amd64 dwz amd64 0.16-2 [115 kB] 60s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.2-1 [1019 kB] 60s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 60s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 po-debconf all 1.0.21+nmu1 [233 kB] 60s Get:45 http://ftpmaster.internal/ubuntu resolute/main amd64 debhelper all 13.24.2ubuntu1 [896 kB] 60s Get:46 http://ftpmaster.internal/ubuntu resolute/universe amd64 dh-python all 6.20250414 [119 kB] 60s Get:47 http://ftpmaster.internal/ubuntu resolute/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 60s Get:48 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-jquery-metadata all 12-4 [6582 B] 60s Get:49 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 60s Get:50 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 60s Get:51 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-stdlib amd64 3.14.0-4 [2397 kB] 60s Get:52 http://ftpmaster.internal/ubuntu resolute/universe amd64 pybuild-plugin-autopkgtest all 6.20250414 [1746 B] 60s Get:53 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 60s Get:54 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-wheel all 0.46.1-2 [22.1 kB] 60s Get:55 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-build all 1.2.2-4 [31.0 kB] 60s Get:56 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 60s Get:57 http://ftpmaster.internal/ubuntu resolute/universe amd64 pybuild-plugin-pyproject all 6.20250414 [1728 B] 60s Get:58 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.0-4 [805 kB] 60s Get:59 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-all amd64 3.13.7-2 [890 B] 60s Get:60 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-coverage amd64 7.8.2+dfsg1-1 [157 kB] 60s Get:61 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-joblib all 1.4.2-4 [205 kB] 60s Get:62 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-platformdirs all 4.3.7-1 [16.9 kB] 60s Get:63 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-fscacher all 0.4.3-0.3 [12.8 kB] 60s Get:64 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniconfig all 2.1.0-1 [6840 B] 60s Get:65 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pluggy all 1.6.0-1 [21.0 kB] 60s Get:66 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest all 8.3.5-2 [252 kB] 60s Get:67 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-jquery-hotkeys all 0.2.0-1 [13.3 kB] 60s Get:68 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 60s Get:69 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest-cov all 5.0.0-1 [21.3 kB] 60s Get:70 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest-mock all 3.15.1-1 [11.9 kB] 60s Get:71 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest-rerunfailures all 16.1-1 [14.9 kB] 61s Fetched 82.7 MB in 2s (48.7 MB/s) 61s Selecting previously unselected package libpython3.14-minimal:amd64. 61s (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 ... 83372 files and directories currently installed.) 61s Preparing to unpack .../00-libpython3.14-minimal_3.14.0-4_amd64.deb ... 61s Unpacking libpython3.14-minimal:amd64 (3.14.0-4) ... 61s Selecting previously unselected package python3.14-minimal. 61s Preparing to unpack .../01-python3.14-minimal_3.14.0-4_amd64.deb ... 61s Unpacking python3.14-minimal (3.14.0-4) ... 61s Selecting previously unselected package m4. 61s Preparing to unpack .../02-m4_1.4.20-2_amd64.deb ... 61s Unpacking m4 (1.4.20-2) ... 61s Selecting previously unselected package autoconf. 61s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 61s Unpacking autoconf (2.72-3.1ubuntu1) ... 61s Selecting previously unselected package autotools-dev. 61s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 61s Unpacking autotools-dev (20240727.1) ... 61s Selecting previously unselected package automake. 61s Preparing to unpack .../05-automake_1%3a1.18.1-2_all.deb ... 61s Unpacking automake (1:1.18.1-2) ... 61s Selecting previously unselected package autopoint. 61s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 61s Unpacking autopoint (0.23.2-1) ... 61s Selecting previously unselected package libisl23:amd64. 61s Preparing to unpack .../07-libisl23_0.27-1_amd64.deb ... 61s Unpacking libisl23:amd64 (0.27-1) ... 61s Selecting previously unselected package libmpc3:amd64. 61s Preparing to unpack .../08-libmpc3_1.3.1-2_amd64.deb ... 61s Unpacking libmpc3:amd64 (1.3.1-2) ... 61s Selecting previously unselected package cpp-15-x86-64-linux-gnu. 61s Preparing to unpack .../09-cpp-15-x86-64-linux-gnu_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking cpp-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package cpp-15. 61s Preparing to unpack .../10-cpp-15_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking cpp-15 (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package cpp-x86-64-linux-gnu. 61s Preparing to unpack .../11-cpp-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 61s Unpacking cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 61s Selecting previously unselected package cpp. 61s Preparing to unpack .../12-cpp_4%3a15.2.0-4ubuntu1_amd64.deb ... 61s Unpacking cpp (4:15.2.0-4ubuntu1) ... 61s Selecting previously unselected package libcc1-0:amd64. 61s Preparing to unpack .../13-libcc1-0_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking libcc1-0:amd64 (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package libgomp1:amd64. 61s Preparing to unpack .../14-libgomp1_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking libgomp1:amd64 (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package libitm1:amd64. 61s Preparing to unpack .../15-libitm1_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking libitm1:amd64 (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package libasan8:amd64. 61s Preparing to unpack .../16-libasan8_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking libasan8:amd64 (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package liblsan0:amd64. 61s Preparing to unpack .../17-liblsan0_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking liblsan0:amd64 (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package libtsan2:amd64. 61s Preparing to unpack .../18-libtsan2_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking libtsan2:amd64 (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package libubsan1:amd64. 61s Preparing to unpack .../19-libubsan1_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking libubsan1:amd64 (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package libhwasan0:amd64. 61s Preparing to unpack .../20-libhwasan0_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking libhwasan0:amd64 (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package libquadmath0:amd64. 61s Preparing to unpack .../21-libquadmath0_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking libquadmath0:amd64 (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package libgcc-15-dev:amd64. 61s Preparing to unpack .../22-libgcc-15-dev_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking libgcc-15-dev:amd64 (15.2.0-7ubuntu1) ... 61s Selecting previously unselected package gcc-15-x86-64-linux-gnu. 61s Preparing to unpack .../23-gcc-15-x86-64-linux-gnu_15.2.0-7ubuntu1_amd64.deb ... 61s Unpacking gcc-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 62s Selecting previously unselected package gcc-15. 62s Preparing to unpack .../24-gcc-15_15.2.0-7ubuntu1_amd64.deb ... 62s Unpacking gcc-15 (15.2.0-7ubuntu1) ... 62s Selecting previously unselected package gcc-x86-64-linux-gnu. 62s Preparing to unpack .../25-gcc-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 62s Unpacking gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 62s Selecting previously unselected package gcc. 62s Preparing to unpack .../26-gcc_4%3a15.2.0-4ubuntu1_amd64.deb ... 62s Unpacking gcc (4:15.2.0-4ubuntu1) ... 62s Selecting previously unselected package libstdc++-15-dev:amd64. 62s Preparing to unpack .../27-libstdc++-15-dev_15.2.0-7ubuntu1_amd64.deb ... 62s Unpacking libstdc++-15-dev:amd64 (15.2.0-7ubuntu1) ... 62s Selecting previously unselected package g++-15-x86-64-linux-gnu. 62s Preparing to unpack .../28-g++-15-x86-64-linux-gnu_15.2.0-7ubuntu1_amd64.deb ... 62s Unpacking g++-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 62s Selecting previously unselected package g++-15. 62s Preparing to unpack .../29-g++-15_15.2.0-7ubuntu1_amd64.deb ... 62s Unpacking g++-15 (15.2.0-7ubuntu1) ... 62s Selecting previously unselected package g++-x86-64-linux-gnu. 62s Preparing to unpack .../30-g++-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 62s Unpacking g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 62s Selecting previously unselected package g++. 62s Preparing to unpack .../31-g++_4%3a15.2.0-4ubuntu1_amd64.deb ... 62s Unpacking g++ (4:15.2.0-4ubuntu1) ... 62s Selecting previously unselected package build-essential. 62s Preparing to unpack .../32-build-essential_12.12ubuntu1_amd64.deb ... 62s Unpacking build-essential (12.12ubuntu1) ... 62s Selecting previously unselected package libdebhelper-perl. 62s Preparing to unpack .../33-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 62s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 62s Selecting previously unselected package libtool. 62s Preparing to unpack .../34-libtool_2.5.4-7_all.deb ... 62s Unpacking libtool (2.5.4-7) ... 62s Selecting previously unselected package dh-autoreconf. 62s Preparing to unpack .../35-dh-autoreconf_21_all.deb ... 62s Unpacking dh-autoreconf (21) ... 62s Selecting previously unselected package libarchive-zip-perl. 62s Preparing to unpack .../36-libarchive-zip-perl_1.68-1_all.deb ... 62s Unpacking libarchive-zip-perl (1.68-1) ... 62s Selecting previously unselected package libfile-stripnondeterminism-perl. 62s Preparing to unpack .../37-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 62s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 62s Selecting previously unselected package dh-strip-nondeterminism. 62s Preparing to unpack .../38-dh-strip-nondeterminism_1.15.0-1_all.deb ... 62s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 62s Selecting previously unselected package debugedit. 62s Preparing to unpack .../39-debugedit_1%3a5.2-3_amd64.deb ... 62s Unpacking debugedit (1:5.2-3) ... 62s Selecting previously unselected package dwz. 62s Preparing to unpack .../40-dwz_0.16-2_amd64.deb ... 62s Unpacking dwz (0.16-2) ... 62s Selecting previously unselected package gettext. 62s Preparing to unpack .../41-gettext_0.23.2-1_amd64.deb ... 62s Unpacking gettext (0.23.2-1) ... 62s Selecting previously unselected package intltool-debian. 62s Preparing to unpack .../42-intltool-debian_0.35.0+20060710.6_all.deb ... 62s Unpacking intltool-debian (0.35.0+20060710.6) ... 62s Selecting previously unselected package po-debconf. 62s Preparing to unpack .../43-po-debconf_1.0.21+nmu1_all.deb ... 62s Unpacking po-debconf (1.0.21+nmu1) ... 62s Selecting previously unselected package debhelper. 62s Preparing to unpack .../44-debhelper_13.24.2ubuntu1_all.deb ... 62s Unpacking debhelper (13.24.2ubuntu1) ... 62s Selecting previously unselected package dh-python. 62s Preparing to unpack .../45-dh-python_6.20250414_all.deb ... 62s Unpacking dh-python (6.20250414) ... 62s Selecting previously unselected package libjs-jquery. 62s Preparing to unpack .../46-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 62s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 62s Selecting previously unselected package libjs-jquery-metadata. 62s Preparing to unpack .../47-libjs-jquery-metadata_12-4_all.deb ... 62s Unpacking libjs-jquery-metadata (12-4) ... 62s Selecting previously unselected package libjs-jquery-tablesorter. 62s Preparing to unpack .../48-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 62s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 62s Selecting previously unselected package libjs-jquery-throttle-debounce. 62s Preparing to unpack .../49-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 62s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 62s Selecting previously unselected package libpython3.14-stdlib:amd64. 62s Preparing to unpack .../50-libpython3.14-stdlib_3.14.0-4_amd64.deb ... 62s Unpacking libpython3.14-stdlib:amd64 (3.14.0-4) ... 62s Selecting previously unselected package pybuild-plugin-autopkgtest. 62s Preparing to unpack .../51-pybuild-plugin-autopkgtest_6.20250414_all.deb ... 62s Unpacking pybuild-plugin-autopkgtest (6.20250414) ... 62s Selecting previously unselected package python3-pyproject-hooks. 62s Preparing to unpack .../52-python3-pyproject-hooks_1.2.0-1_all.deb ... 62s Unpacking python3-pyproject-hooks (1.2.0-1) ... 62s Selecting previously unselected package python3-wheel. 62s Preparing to unpack .../53-python3-wheel_0.46.1-2_all.deb ... 62s Unpacking python3-wheel (0.46.1-2) ... 62s Selecting previously unselected package python3-build. 62s Preparing to unpack .../54-python3-build_1.2.2-4_all.deb ... 62s Unpacking python3-build (1.2.2-4) ... 62s Selecting previously unselected package python3-installer. 62s Preparing to unpack .../55-python3-installer_0.7.0+dfsg1-3_all.deb ... 62s Unpacking python3-installer (0.7.0+dfsg1-3) ... 62s Selecting previously unselected package pybuild-plugin-pyproject. 62s Preparing to unpack .../56-pybuild-plugin-pyproject_6.20250414_all.deb ... 62s Unpacking pybuild-plugin-pyproject (6.20250414) ... 62s Selecting previously unselected package python3.14. 62s Preparing to unpack .../57-python3.14_3.14.0-4_amd64.deb ... 62s Unpacking python3.14 (3.14.0-4) ... 62s Selecting previously unselected package python3-all. 62s Preparing to unpack .../58-python3-all_3.13.7-2_amd64.deb ... 62s Unpacking python3-all (3.13.7-2) ... 62s Selecting previously unselected package python3-coverage. 62s Preparing to unpack .../59-python3-coverage_7.8.2+dfsg1-1_amd64.deb ... 62s Unpacking python3-coverage (7.8.2+dfsg1-1) ... 62s Selecting previously unselected package python3-joblib. 62s Preparing to unpack .../60-python3-joblib_1.4.2-4_all.deb ... 62s Unpacking python3-joblib (1.4.2-4) ... 62s Selecting previously unselected package python3-platformdirs. 62s Preparing to unpack .../61-python3-platformdirs_4.3.7-1_all.deb ... 62s Unpacking python3-platformdirs (4.3.7-1) ... 62s Selecting previously unselected package python3-fscacher. 62s Preparing to unpack .../62-python3-fscacher_0.4.3-0.3_all.deb ... 62s Unpacking python3-fscacher (0.4.3-0.3) ... 62s Selecting previously unselected package python3-iniconfig. 62s Preparing to unpack .../63-python3-iniconfig_2.1.0-1_all.deb ... 62s Unpacking python3-iniconfig (2.1.0-1) ... 62s Selecting previously unselected package python3-pluggy. 62s Preparing to unpack .../64-python3-pluggy_1.6.0-1_all.deb ... 62s Unpacking python3-pluggy (1.6.0-1) ... 62s Selecting previously unselected package python3-pytest. 62s Preparing to unpack .../65-python3-pytest_8.3.5-2_all.deb ... 62s Unpacking python3-pytest (8.3.5-2) ... 62s Selecting previously unselected package libjs-jquery-hotkeys. 62s Preparing to unpack .../66-libjs-jquery-hotkeys_0.2.0-1_all.deb ... 62s Unpacking libjs-jquery-hotkeys (0.2.0-1) ... 62s Selecting previously unselected package libjs-jquery-isonscreen. 62s Preparing to unpack .../67-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 62s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 62s Selecting previously unselected package python3-pytest-cov. 62s Preparing to unpack .../68-python3-pytest-cov_5.0.0-1_all.deb ... 62s Unpacking python3-pytest-cov (5.0.0-1) ... 62s Selecting previously unselected package python3-pytest-mock. 62s Preparing to unpack .../69-python3-pytest-mock_3.15.1-1_all.deb ... 62s Unpacking python3-pytest-mock (3.15.1-1) ... 62s Selecting previously unselected package python3-pytest-rerunfailures. 62s Preparing to unpack .../70-python3-pytest-rerunfailures_16.1-1_all.deb ... 62s Unpacking python3-pytest-rerunfailures (16.1-1) ... 62s Setting up dh-python (6.20250414) ... 63s Setting up python3-iniconfig (2.1.0-1) ... 63s Setting up python3-joblib (1.4.2-4) ... 63s Setting up libarchive-zip-perl (1.68-1) ... 63s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 63s Setting up libpython3.14-minimal:amd64 (3.14.0-4) ... 63s Setting up m4 (1.4.20-2) ... 63s Setting up python3-coverage (7.8.2+dfsg1-1) ... 63s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 63s Setting up libgomp1:amd64 (15.2.0-7ubuntu1) ... 63s Setting up python3-wheel (0.46.1-2) ... 63s Setting up python3-platformdirs (4.3.7-1) ... 64s Setting up python3-fscacher (0.4.3-0.3) ... 64s Setting up autotools-dev (20240727.1) ... 64s Setting up python3-pyproject-hooks (1.2.0-1) ... 64s Setting up libquadmath0:amd64 (15.2.0-7ubuntu1) ... 64s Setting up libmpc3:amd64 (1.3.1-2) ... 64s Setting up autopoint (0.23.2-1) ... 64s Setting up python3-installer (0.7.0+dfsg1-3) ... 64s Setting up autoconf (2.72-3.1ubuntu1) ... 64s Setting up python3-pluggy (1.6.0-1) ... 64s Setting up libubsan1:amd64 (15.2.0-7ubuntu1) ... 64s Setting up dwz (0.16-2) ... 64s Setting up libhwasan0:amd64 (15.2.0-7ubuntu1) ... 64s Setting up libasan8:amd64 (15.2.0-7ubuntu1) ... 64s Setting up debugedit (1:5.2-3) ... 64s Setting up libtsan2:amd64 (15.2.0-7ubuntu1) ... 64s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 64s Setting up libjs-jquery-hotkeys (0.2.0-1) ... 64s Setting up libisl23:amd64 (0.27-1) ... 64s Setting up python3-build (1.2.2-4) ... 64s Setting up python3.14-minimal (3.14.0-4) ... 65s Setting up libcc1-0:amd64 (15.2.0-7ubuntu1) ... 65s Setting up liblsan0:amd64 (15.2.0-7ubuntu1) ... 65s Setting up libitm1:amd64 (15.2.0-7ubuntu1) ... 65s Setting up automake (1:1.18.1-2) ... 65s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 65s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 65s Setting up gettext (0.23.2-1) ... 65s Setting up libgcc-15-dev:amd64 (15.2.0-7ubuntu1) ... 65s Setting up libpython3.14-stdlib:amd64 (3.14.0-4) ... 65s Setting up pybuild-plugin-pyproject (6.20250414) ... 65s Setting up python3-pytest (8.3.5-2) ... 65s Setting up cpp-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 65s Setting up intltool-debian (0.35.0+20060710.6) ... 65s Setting up gcc-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 65s Setting up libstdc++-15-dev:amd64 (15.2.0-7ubuntu1) ... 65s Setting up libjs-jquery-metadata (12-4) ... 65s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 65s Setting up dh-strip-nondeterminism (1.15.0-1) ... 65s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 65s Setting up python3-pytest-mock (3.15.1-1) ... 65s Setting up cpp-15 (15.2.0-7ubuntu1) ... 65s Setting up python3.14 (3.14.0-4) ... 66s Setting up cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 66s Setting up g++-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 66s Setting up python3-pytest-rerunfailures (16.1-1) ... 66s Setting up gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 66s Setting up po-debconf (1.0.21+nmu1) ... 66s Setting up python3-all (3.13.7-2) ... 66s Setting up python3-pytest-cov (5.0.0-1) ... 66s Setting up gcc-15 (15.2.0-7ubuntu1) ... 66s Setting up cpp (4:15.2.0-4ubuntu1) ... 66s Setting up g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 66s Setting up g++-15 (15.2.0-7ubuntu1) ... 66s Setting up libtool (2.5.4-7) ... 66s Setting up gcc (4:15.2.0-4ubuntu1) ... 66s Setting up dh-autoreconf (21) ... 66s Setting up g++ (4:15.2.0-4ubuntu1) ... 66s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 66s Setting up build-essential (12.12ubuntu1) ... 66s Setting up debhelper (13.24.2ubuntu1) ... 66s Setting up pybuild-plugin-autopkgtest (6.20250414) ... 66s Processing triggers for man-db (2.13.1-1) ... 67s Processing triggers for install-info (7.2-5) ... 67s Processing triggers for libc-bin (2.42-2ubuntu2) ... 67s Processing triggers for systemd (257.9-0ubuntu2) ... 67s autopkgtest [11:56:14]: test pybuild-autopkgtest: pybuild-autopkgtest 67s autopkgtest [11:56:14]: test pybuild-autopkgtest: [----------------------- 68s pybuild-autopkgtest 68s I: pybuild base:311: cd /tmp/autopkgtest.RL3ksy/autopkgtest_tmp/build; python3.14 -m pytest 68s ============================= test session starts ============================== 68s platform linux -- Python 3.14.0, pytest-8.3.5, pluggy-1.6.0 68s rootdir: /tmp/autopkgtest.RL3ksy/autopkgtest_tmp/build 68s plugins: cov-5.0.0, rerunfailures-16.1, mock-3.15.1, typeguard-4.4.2 68s collected 27 items 68s 69s tests/test_cache.py FFFFFF..........sF.FFF [ 81%] 69s tests/test_util.py ..... [100%] 69s 69s =================================== FAILURES =================================== 69s _________________________________ test_memoize _________________________________ 69s 69s cache = 69s 69s def test_memoize(cache): 69s # Simplest testing to start with, not relying on persisting across 69s # independent processes 69s _comp = [] 69s 69s @cache.memoize 69s def f1(flag=False): 69s if flag: 69s raise ValueError("Got flag") 69s if _comp: 69s raise RuntimeError("Must not be recomputed") 69s _comp.append(1) 69s return 1 69s 69s > assert f1() == 1 69s 69s tests/test_cache.py:51: 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 69s return self._cached_call(args, kwargs, shelving=False)[0] 69s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 69s args_id = self._get_args_id(*args, **kwargs) 69s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 69s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 69s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 69s return hasher.hash(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 69s self.dump(obj) 69s /usr/lib/python3.14/pickle.py:498: in dump 69s self.save(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 69s Pickler.save(self, obj) 69s /usr/lib/python3.14/pickle.py:572: in save 69s f(self, obj) # Call unbound method with explicit self 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s 69s self = , obj = {'flag': False} 69s 69s def save_dict(self, obj): 69s if self.bin: 69s self.write(EMPTY_DICT) 69s else: # proto 0 -- can't use EMPTY_DICT 69s self.write(MARK + DICT) 69s 69s self.memoize(obj) 69s > self._batch_setitems(obj.items(), obj) 69s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 69s 69s /usr/lib/python3.14/pickle.py:1064: TypeError 69s ____________________________ test_memoize_multiple _____________________________ 69s 69s cache = 69s 69s def test_memoize_multiple(cache): 69s # Make sure that with the same cache can cover multiple functions 69s @cache.memoize 69s def f1(): 69s return 1 69s 69s @cache.memoize 69s def f2(): 69s return 2 69s 69s @cache.memoize 69s def f3(): # nesting call into f2 69s return f2() + 1 69s 69s for _ in range(3): 69s > assert f1() == 1 69s 69s tests/test_cache.py:86: 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 69s return self._cached_call(args, kwargs, shelving=False)[0] 69s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 69s args_id = self._get_args_id(*args, **kwargs) 69s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 69s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 69s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 69s return hasher.hash(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 69s self.dump(obj) 69s /usr/lib/python3.14/pickle.py:498: in dump 69s self.save(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 69s Pickler.save(self, obj) 69s /usr/lib/python3.14/pickle.py:572: in save 69s f(self, obj) # Call unbound method with explicit self 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s 69s self = , obj = {} 69s 69s def save_dict(self, obj): 69s if self.bin: 69s self.write(EMPTY_DICT) 69s else: # proto 0 -- can't use EMPTY_DICT 69s self.write(MARK + DICT) 69s 69s self.memoize(obj) 69s > self._batch_setitems(obj.items(), obj) 69s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 69s 69s /usr/lib/python3.14/pickle.py:1064: TypeError 69s ______________________________ test_memoize_path _______________________________ 69s 69s cache = 69s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0') 69s 69s def test_memoize_path(cache, tmp_path): 69s calls = [] 69s 69s @cache.memoize_path 69s def memoread(path, arg, kwarg=None): 69s calls.append([path, arg, kwarg]) 69s with open(path) as f: 69s return f.read() 69s 69s def check_new_memoread(arg, content, expect_new=False): 69s ncalls = len(calls) 69s assert memoread(path, arg) == content 69s assert len(calls) == ncalls + 1 69s assert memoread(path, arg) == content 69s assert len(calls) == ncalls + 1 + int(expect_new) 69s 69s fname = "file.dat" 69s path = str(tmp_path / fname) 69s 69s with pytest.raises(IOError): 69s memoread(path, 0) 69s # and again 69s with pytest.raises(IOError): 69s memoread(path, 0) 69s assert len(calls) == 2 69s 69s with open(path, "w") as f: 69s f.write("content") 69s 69s t0 = time.time() 69s try: 69s # unless this computer is too slow -- there should be less than 69s # cache._min_dtime between our creating the file and testing, 69s # so we would force a direct read: 69s check_new_memoread(0, "content", True) 69s except AssertionError: # pragma: no cover 69s # if computer is indeed slow (happens on shared CIs) we might fail 69s # because distance is too short 69s if time.time() - t0 < cache._min_dtime: 69s raise # if we were quick but still failed -- legit 69s assert calls[-1] == [path, 0, None] 69s 69s # but if we sleep - should memoize 69s time.sleep(cache._min_dtime * 1.1) 69s > check_new_memoread(1, "content") 69s 69s tests/test_cache.py:135: 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s tests/test_cache.py:102: in check_new_memoread 69s assert memoread(path, arg) == content 69s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 69s ret = fingerprinted(*args, **kwargs_) 69s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 69s return self._cached_call(args, kwargs, shelving=False)[0] 69s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 69s args_id = self._get_args_id(*args, **kwargs) 69s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 69s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 69s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 69s return hasher.hash(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 69s self.dump(obj) 69s /usr/lib/python3.14/pickle.py:498: in dump 69s self.save(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 69s Pickler.save(self, obj) 69s /usr/lib/python3.14/pickle.py:572: in save 69s f(self, obj) # Call unbound method with explicit self 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s 69s self = 69s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat', 1763380575493847212, 1763380575493847212, 7, 257201), 'arg': 1, 'kwarg': None} 69s 69s def save_dict(self, obj): 69s if self.bin: 69s self.write(EMPTY_DICT) 69s else: # proto 0 -- can't use EMPTY_DICT 69s self.write(MARK + DICT) 69s 69s self.memoize(obj) 69s > self._batch_setitems(obj.items(), obj) 69s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 69s 69s /usr/lib/python3.14/pickle.py:1064: TypeError 69s ------------------------------ Captured log call ------------------------------- 69s 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' 69s DEBUG fscacher.cache:cache.py:145 Calling .memoread at 0x7f7f41c88ca0> directly since no fingerprint for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat' 69s 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' 69s DEBUG fscacher.cache:cache.py:145 Calling .memoread at 0x7f7f41c88ca0> directly since no fingerprint for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat' 69s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat: FileFingerprint(mtime_ns=1763380575493847212, ctime_ns=1763380575493847212, size=7, inode=257201) 69s DEBUG fscacher.cache:cache.py:153 Calling .memoread at 0x7f7f41c88ca0> directly since too short for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat' 69s Level 1 fscacher.cache:cache.py:165 Returning value 'content' 69s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat: FileFingerprint(mtime_ns=1763380575493847212, ctime_ns=1763380575493847212, size=7, inode=257201) 69s DEBUG fscacher.cache:cache.py:153 Calling .memoread at 0x7f7f41c88ca0> directly since too short for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat' 69s Level 1 fscacher.cache:cache.py:165 Returning value 'content' 69s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat: FileFingerprint(mtime_ns=1763380575493847212, ctime_ns=1763380575493847212, size=7, inode=257201) 69s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .memoread at 0x7f7f41c88ca0> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path0/file.dat 69s ____________________________ test_memoize_path_dir _____________________________ 69s 69s cache = 69s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0') 69s 69s @pytest.mark.flaky(reruns=5, condition=on_windows) 69s def test_memoize_path_dir(cache, tmp_path): 69s calls = [] 69s 69s @cache.memoize_path 69s def memoread(path, arg, kwarg=None): 69s calls.append([path, arg, kwarg]) 69s total_size = 0 69s with os.scandir(path) as entries: 69s for e in entries: 69s if e.is_file(): 69s total_size += e.stat().st_size 69s return total_size 69s 69s def check_new_memoread(arg, content, expect_new=False): 69s ncalls = len(calls) 69s assert memoread(path, arg) == content 69s assert len(calls) == ncalls + 1 69s assert memoread(path, arg) == content 69s assert len(calls) == ncalls + 1 + int(expect_new) 69s 69s fname = "foo" 69s path = tmp_path / fname 69s 69s with pytest.raises(IOError): 69s memoread(path, 0) 69s # and again 69s with pytest.raises(IOError): 69s memoread(path, 0) 69s assert len(calls) == 2 69s 69s path.mkdir() 69s (path / "a.txt").write_text("Alpha") 69s (path / "b.txt").write_text("Beta") 69s 69s t0 = time.time() 69s try: 69s # unless this computer is too slow -- there should be less than 69s # cache._min_dtime between our creating the file and testing, 69s # so we would force a direct read: 69s check_new_memoread(0, 9, True) 69s except AssertionError: # pragma: no cover 69s # if computer is indeed slow (happens on shared CIs) we might fail 69s # because distance is too short 69s t_now = time.time() 69s if t_now - t0 < cache._min_dtime: 69s # Log more information to troubleshoot 69s lgr.error(f"Failing test with t0={t0}, t_now={t_now}, " 69s f"dt={t_now - t0}, min_dtime={cache._min_dtime}") 69s for p in ("a.txt", "b.txt"): 69s lgr.error(f" {p}: {op.getmtime(path / p)}") 69s raise # if we were quick but still failed -- legit 69s assert calls[-1] == [path, 0, None] 69s 69s # but if we sleep - should memoize 69s time.sleep(cache._min_dtime * 1.1) 69s > check_new_memoread(1, 9) 69s 69s tests/test_cache.py:225: 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s tests/test_cache.py:185: in check_new_memoread 69s assert memoread(path, arg) == content 69s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 69s ret = fingerprinted(*args, **kwargs_) 69s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 69s return self._cached_call(args, kwargs, shelving=False)[0] 69s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 69s args_id = self._get_args_id(*args, **kwargs) 69s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 69s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 69s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 69s return hasher.hash(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 69s self.dump(obj) 69s /usr/lib/python3.14/pickle.py:498: in dump 69s self.save(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 69s Pickler.save(self, obj) 69s /usr/lib/python3.14/pickle.py:572: in save 69s f(self, obj) # Call unbound method with explicit self 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s 69s self = 69s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo', '7410a76bada94defecfe944375534fd4'), 'arg': 1, 'kwarg': None} 69s 69s def save_dict(self, obj): 69s if self.bin: 69s self.write(EMPTY_DICT) 69s else: # proto 0 -- can't use EMPTY_DICT 69s self.write(MARK + DICT) 69s 69s self.memoize(obj) 69s > self._batch_setitems(obj.items(), obj) 69s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 69s 69s /usr/lib/python3.14/pickle.py:1064: TypeError 69s ------------------------------ Captured log call ------------------------------- 69s 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' 69s 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' 69s DEBUG fscacher.cache:cache.py:145 Calling .memoread at 0x7f7f431cc300> directly since no fingerprint for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 69s 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' 69s 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' 69s DEBUG fscacher.cache:cache.py:145 Calling .memoread at 0x7f7f431cc300> directly since no fingerprint for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 69s 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' 69s DEBUG fscacher.cache:cache.py:153 Calling .memoread at 0x7f7f431cc300> directly since too short for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 69s Level 1 fscacher.cache:cache.py:165 Returning value 9 69s 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' 69s DEBUG fscacher.cache:cache.py:153 Calling .memoread at 0x7f7f431cc300> directly since too short for '/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo' 69s Level 1 fscacher.cache:cache.py:165 Returning value 9 69s 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' 69s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .memoread at 0x7f7f431cc300> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_dir0/foo 69s __________________________ test_memoize_path_persist ___________________________ 69s 69s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_persist0') 69s 69s def test_memoize_path_persist(tmp_path): 69s from subprocess import PIPE, run 69s 69s script = tmp_path / "script.py" 69s cachedir = tmp_path / "cache" 69s script.write_text( 69s "from os.path import basename\n" 69s "from fscacher import PersistentCache\n" 69s f"cache = PersistentCache(path={str(cachedir)!r})\n" 69s "\n" 69s "@cache.memoize_path\n" 69s "def func(path):\n" 69s " print('Running %s.' % basename(path), end='')\n" 69s " return 'DONE'\n" 69s "\n" 69s f"print(func({str(script)!r}))\n" 69s ) 69s 69s outputs = [ 69s run([sys.executable, str(script)], stdout=PIPE, stderr=PIPE) for i in range(3) 69s ] 69s print("Full outputs: %s" % repr(outputs)) 69s if b"File name too long" in outputs[0].stderr: 69s # must be running during conda build which blows up paths with 69s # _placehold_ers 69s pytest.skip("seems to be running on conda and hitting the limits") 69s > assert outputs[0].stdout.strip().decode() == "Running script.py.DONE" 69s E AssertionError: assert '' == 'Running script.py.DONE' 69s E 69s E - Running script.py.DONE 69s 69s tests/test_cache.py:284: AssertionError 69s ----------------------------- Captured stdout call ----------------------------- 69s 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')] 69s ___________________________ test_memoize_path_tokens ___________________________ 69s 69s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_tokens0') 69s cache = 69s cache_tokens = 69s 69s def test_memoize_path_tokens(tmp_path, cache, cache_tokens): 69s calls = [] 69s 69s @cache.memoize_path 69s def memoread(path, arg, kwarg=None): 69s calls.append(["cache", path, arg, kwarg]) 69s with open(path) as f: 69s return f.read() 69s 69s @cache_tokens.memoize_path 69s def memoread_tokens(path, arg, kwarg=None): 69s calls.append(["cache_tokens", path, arg, kwarg]) 69s with open(path) as f: 69s return f.read() 69s 69s def check_new_memoread(call, arg, content, expect_first=True, expect_new=False): 69s ncalls = len(calls) 69s assert call(path, arg) == content 69s assert len(calls) == ncalls + int(expect_first) 69s assert call(path, arg) == content 69s assert len(calls) == ncalls + int(expect_first) + int(expect_new) 69s 69s path = str(tmp_path / "file.dat") 69s 69s with open(path, "w") as f: 69s f.write("content") 69s 69s time.sleep(cache._min_dtime * 1.1) 69s # They both are independent, so both will cause a new readout 69s > check_new_memoread(memoread, 0, "content") 69s 69s tests/test_cache.py:318: 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s tests/test_cache.py:306: in check_new_memoread 69s assert call(path, arg) == content 69s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 69s ret = fingerprinted(*args, **kwargs_) 69s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 69s return self._cached_call(args, kwargs, shelving=False)[0] 69s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 69s args_id = self._get_args_id(*args, **kwargs) 69s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 69s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 69s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 69s return hasher.hash(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 69s self.dump(obj) 69s /usr/lib/python3.14/pickle.py:498: in dump 69s self.save(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 69s Pickler.save(self, obj) 69s /usr/lib/python3.14/pickle.py:572: in save 69s f(self, obj) # Call unbound method with explicit self 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s 69s self = 69s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_tokens0/file.dat', 1763380576104555064, 1763380576104555064, 7, 257234), 'arg': 0, 'kwarg': None} 69s 69s def save_dict(self, obj): 69s if self.bin: 69s self.write(EMPTY_DICT) 69s else: # proto 0 -- can't use EMPTY_DICT 69s self.write(MARK + DICT) 69s 69s self.memoize(obj) 69s > self._batch_setitems(obj.items(), obj) 69s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 69s 69s /usr/lib/python3.14/pickle.py:1064: TypeError 69s ------------------------------ Captured log call ------------------------------- 69s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_tokens0/file.dat: FileFingerprint(mtime_ns=1763380576104555064, ctime_ns=1763380576104555064, size=7, inode=257234) 69s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .memoread at 0x7f7f431cc880> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_tokens0/file.dat 69s ________________________ test_memoize_path_nonpath_arg _________________________ 69s 69s cache = 69s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_nonpath_arg0') 69s 69s def test_memoize_path_nonpath_arg(cache, tmp_path): 69s calls = [] 69s 69s @cache.memoize_path 69s def memoread(filepath, arg, kwarg=None): 69s calls.append([filepath, arg, kwarg]) 69s with open(filepath) as f: 69s return f.read() 69s 69s path = str(tmp_path / "file.dat") 69s with open(path, "w") as f: 69s f.write("content") 69s 69s time.sleep(cache._min_dtime * 1.1) 69s 69s ncalls = len(calls) 69s > assert memoread(path, 1) == "content" 69s 69s tests/test_cache.py:414: 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 69s ret = fingerprinted(*args, **kwargs_) 69s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 69s return self._cached_call(args, kwargs, shelving=False)[0] 69s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 69s args_id = self._get_args_id(*args, **kwargs) 69s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 69s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 69s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 69s return hasher.hash(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 69s self.dump(obj) 69s /usr/lib/python3.14/pickle.py:498: in dump 69s self.save(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 69s Pickler.save(self, obj) 69s /usr/lib/python3.14/pickle.py:572: in save 69s f(self, obj) # Call unbound method with explicit self 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s 69s self = 69s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_nonpath_arg0/file.dat', 1763380576174879180, 1763380576174879180, 7, 257254), 'arg': 1, 'kwarg': None} 69s 69s def save_dict(self, obj): 69s if self.bin: 69s self.write(EMPTY_DICT) 69s else: # proto 0 -- can't use EMPTY_DICT 69s self.write(MARK + DICT) 69s 69s self.memoize(obj) 69s > self._batch_setitems(obj.items(), obj) 69s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 69s 69s /usr/lib/python3.14/pickle.py:1064: TypeError 69s ------------------------------ Captured log call ------------------------------- 69s 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=1763380576174879180, ctime_ns=1763380576174879180, size=7, inode=257254) 69s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .memoread at 0x7f7f41c8bcc0> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_nonpath_arg0/file.dat 69s ________________________ test_memoize_non_pathlike_arg _________________________ 69s 69s cache = 69s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_non_pathlike_arg0') 69s 69s def test_memoize_non_pathlike_arg(cache, tmp_path): 69s calls = [] 69s 69s @cache.memoize_path 69s def strify(x): 69s calls.append(x) 69s return str(x) 69s 69s path = tmp_path / "foo" 69s path.touch() 69s time.sleep(cache._min_dtime * 1.1) 69s 69s > assert strify(path) == str(path) 69s 69s tests/test_cache.py:458: 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 69s ret = fingerprinted(*args, **kwargs_) 69s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 69s return self._cached_call(args, kwargs, shelving=False)[0] 69s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 69s args_id = self._get_args_id(*args, **kwargs) 69s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 69s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 69s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 69s return hasher.hash(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 69s self.dump(obj) 69s /usr/lib/python3.14/pickle.py:498: in dump 69s self.save(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 69s Pickler.save(self, obj) 69s /usr/lib/python3.14/pickle.py:572: in save 69s f(self, obj) # Call unbound method with explicit self 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s 69s self = 69s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_non_pathlike_arg0/foo', 1763380576230077454, 1763380576230077454, 0, 257268)} 69s 69s def save_dict(self, obj): 69s if self.bin: 69s self.write(EMPTY_DICT) 69s else: # proto 0 -- can't use EMPTY_DICT 69s self.write(MARK + DICT) 69s 69s self.memoize(obj) 69s > self._batch_setitems(obj.items(), obj) 69s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 69s 69s /usr/lib/python3.14/pickle.py:1064: TypeError 69s ------------------------------ Captured log call ------------------------------- 69s 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' 69s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_non_pathlike_arg0/foo: FileFingerprint(mtime_ns=1763380576230077454, ctime_ns=1763380576230077454, size=0, inode=257268) 69s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .strify at 0x7f7f41c8a8d0> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_non_pathlike_arg0/foo 69s __________________________ test_memoize_pathlike_arg ___________________________ 69s 69s cache = 69s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_pathlike_arg0') 69s 69s def test_memoize_pathlike_arg(cache, tmp_path): 69s calls = [] 69s 69s @cache.memoize_path 69s def strify(x): 69s calls.append(x) 69s return str(x) 69s 69s path = tmp_path / "foo" 69s path.touch() 69s foo = PathWrapper(path) 69s 69s path2 = tmp_path / "bar" 69s path2.touch() 69s bar = PathWrapper(path2) 69s 69s time.sleep(cache._min_dtime * 1.1) 69s 69s > assert strify(path) == str(path) 69s 69s tests/test_cache.py:500: 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 69s ret = fingerprinted(*args, **kwargs_) 69s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 69s return self._cached_call(args, kwargs, shelving=False)[0] 69s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 69s args_id = self._get_args_id(*args, **kwargs) 69s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 69s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 69s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 69s return hasher.hash(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 69s self.dump(obj) 69s /usr/lib/python3.14/pickle.py:498: in dump 69s self.save(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 69s Pickler.save(self, obj) 69s /usr/lib/python3.14/pickle.py:572: in save 69s f(self, obj) # Call unbound method with explicit self 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s 69s self = 69s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_pathlike_arg0/foo', 1763380576285077454, 1763380576285077454, 0, 257277)} 69s 69s def save_dict(self, obj): 69s if self.bin: 69s self.write(EMPTY_DICT) 69s else: # proto 0 -- can't use EMPTY_DICT 69s self.write(MARK + DICT) 69s 69s self.memoize(obj) 69s > self._batch_setitems(obj.items(), obj) 69s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 69s 69s /usr/lib/python3.14/pickle.py:1064: TypeError 69s ------------------------------ Captured log call ------------------------------- 69s 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' 69s Level 5 fscacher.cache:cache.py:179 Fingerprint for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_pathlike_arg0/foo: FileFingerprint(mtime_ns=1763380576285077454, ctime_ns=1763380576285077454, size=0, inode=257277) 69s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .strify at 0x7f7f41c8a140> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_pathlike_arg0/foo 69s _______________________ test_memoize_path_exclude_kwargs _______________________ 69s 69s cache = 69s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_exclude_kwar0') 69s 69s def test_memoize_path_exclude_kwargs(cache, tmp_path): 69s calls = [] 69s 69s @cache.memoize_path(exclude_kwargs=["extra"]) 69s def memoread_extra(path, arg, kwarg=None, extra=None): 69s calls.append((path, arg, kwarg, extra)) 69s with open(path) as f: 69s return f.read() 69s 69s path = tmp_path / "file.dat" 69s path.write_text("content") 69s 69s time.sleep(cache._min_dtime * 1.1) 69s 69s > assert memoread_extra(path, 1, extra="foo") == "content" 69s 69s tests/test_cache.py:533: 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s /usr/lib/python3/dist-packages/fscacher/cache.py:164: in fingerprinter 69s ret = fingerprinted(*args, **kwargs_) 69s /usr/lib/python3/dist-packages/joblib/memory.py:577: in __call__ 69s return self._cached_call(args, kwargs, shelving=False)[0] 69s /usr/lib/python3/dist-packages/joblib/memory.py:483: in _cached_call 69s args_id = self._get_args_id(*args, **kwargs) 69s /usr/lib/python3/dist-packages/joblib/memory.py:616: in _get_args_id 69s return hashing.hash(filter_args(self.func, self.ignore, args, kwargs), 69s /usr/lib/python3/dist-packages/joblib/hashing.py:265: in hash 69s return hasher.hash(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:63: in hash 69s self.dump(obj) 69s /usr/lib/python3.14/pickle.py:498: in dump 69s self.save(obj) 69s /usr/lib/python3/dist-packages/joblib/hashing.py:89: in save 69s Pickler.save(self, obj) 69s /usr/lib/python3.14/pickle.py:572: in save 69s f(self, obj) # Call unbound method with explicit self 69s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69s 69s self = 69s obj = {'_cache_fingerprint': ('/tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_exclude_kwar0/file.dat', 1763380576339986571, 1763380576339986571, 7, 257287), 'arg': 1, 'kwarg': None} 69s 69s def save_dict(self, obj): 69s if self.bin: 69s self.write(EMPTY_DICT) 69s else: # proto 0 -- can't use EMPTY_DICT 69s self.write(MARK + DICT) 69s 69s self.memoize(obj) 69s > self._batch_setitems(obj.items(), obj) 69s E TypeError: Hasher._batch_setitems() takes 2 positional arguments but 3 were given 69s 69s /usr/lib/python3.14/pickle.py:1064: TypeError 69s ------------------------------ Captured log call ------------------------------- 69s 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' 69s 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=1763380576339986571, ctime_ns=1763380576339986571, size=7, inode=257287) 69s DEBUG fscacher.cache:cache.py:156 Calling memoized version of .memoread_extra at 0x7f7f41c89dd0> for /tmp/pytest-of-ubuntu/pytest-0/test_memoize_path_exclude_kwar0/file.dat 69s =============================== warnings summary =============================== 69s tests/test_cache.py: 12 warnings 69s /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 69s if asyncio.iscoroutinefunction(func) 69s 69s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 69s =========================== short test summary info ============================ 69s FAILED tests/test_cache.py::test_memoize - TypeError: Hasher._batch_setitems(... 69s FAILED tests/test_cache.py::test_memoize_multiple - TypeError: Hasher._batch_... 69s FAILED tests/test_cache.py::test_memoize_path - TypeError: Hasher._batch_seti... 69s FAILED tests/test_cache.py::test_memoize_path_dir - TypeError: Hasher._batch_... 69s FAILED tests/test_cache.py::test_memoize_path_persist - AssertionError: asser... 69s FAILED tests/test_cache.py::test_memoize_path_tokens - TypeError: Hasher._bat... 69s FAILED tests/test_cache.py::test_memoize_path_nonpath_arg - TypeError: Hasher... 69s FAILED tests/test_cache.py::test_memoize_non_pathlike_arg - TypeError: Hasher... 69s FAILED tests/test_cache.py::test_memoize_pathlike_arg - TypeError: Hasher._ba... 69s FAILED tests/test_cache.py::test_memoize_path_exclude_kwargs - TypeError: Has... 69s ============ 10 failed, 16 passed, 1 skipped, 12 warnings in 1.05s ============= 69s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.RL3ksy/autopkgtest_tmp/build; python3.14 -m pytest 69s I: pybuild base:311: cd /tmp/autopkgtest.RL3ksy/autopkgtest_tmp/build; python3.13 -m pytest 69s ============================= test session starts ============================== 69s platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 69s rootdir: /tmp/autopkgtest.RL3ksy/autopkgtest_tmp/build 69s plugins: cov-5.0.0, rerunfailures-16.1, mock-3.15.1, typeguard-4.4.2 69s collected 27 items 69s 70s tests/test_cache.py ................s..... [ 81%] 70s tests/test_util.py ..... [100%] 70s 70s ======================== 26 passed, 1 skipped in 0.48s ========================= 70s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 70s make: *** [/tmp/KL_S0IObbk/run:4: pybuild-autopkgtest] Error 25 70s pybuild-autopkgtest: error: /tmp/KL_S0IObbk/run pybuild-autopkgtest returned exit code 2 70s autopkgtest [11:56:17]: test pybuild-autopkgtest: -----------------------] 70s autopkgtest [11:56:17]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 70s pybuild-autopkgtest FAIL non-zero exit status 25 71s autopkgtest [11:56:18]: @@@@@@@@@@@@@@@@@@@@ summary 71s pybuild-autopkgtest FAIL non-zero exit status 25