0s autopkgtest [19:35:04]: starting date and time: 2025-05-03 19:35:04+0000 0s autopkgtest [19:35:04]: git checkout: 9986aa8c Merge branch 'skia/fix_network_interface' into 'ubuntu/production' 0s autopkgtest [19:35:04]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.vd4cnk1x/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:sphinx,src:roman-numerals --apt-upgrade pycurl --timeout-short=1200 --timeout-copy=80000 --timeout-build=80000 '--env=ADT_TEST_TRIGGERS=sphinx/8.2.3-1 roman-numerals/3.1.0-1ubuntu1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-riscv64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@sto01-riscv64-2.secgroup --name adt-questing-riscv64-pycurl-20250503-193504-juju-7f2275-prod-proposed-migration-environment-15-f0ece8ef-b379-414e-a4f4-fdcca64c5f2b --image adt/ubuntu-questing-riscv64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-autopkgtest-workers-riscv64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 222s autopkgtest [19:38:46]: testbed dpkg architecture: riscv64 223s autopkgtest [19:38:47]: testbed apt version: 3.0.0 225s autopkgtest [19:38:49]: @@@@@@@@@@@@@@@@@@@@ test bed setup 226s autopkgtest [19:38:50]: testbed release detected to be: None 229s autopkgtest [19:38:53]: updating testbed package index (apt update) 231s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 232s Hit:2 http://ftpmaster.internal/ubuntu questing InRelease 232s Hit:3 http://ftpmaster.internal/ubuntu questing-updates InRelease 232s Hit:4 http://ftpmaster.internal/ubuntu questing-security InRelease 232s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [1442 kB] 233s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [33.7 kB] 233s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [149 kB] 233s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main riscv64 Packages [168 kB] 233s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe riscv64 Packages [758 kB] 234s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse riscv64 Packages [18.5 kB] 238s Fetched 2679 kB in 5s (561 kB/s) 251s Reading package lists... 255s autopkgtest [19:39:19]: upgrading testbed (apt dist-upgrade and autopurge) 256s Reading package lists... 257s Building dependency tree... 257s Reading state information... 259s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 260s Starting 2 pkgProblemResolver with broken count: 0 260s Done 262s Entering ResolveByKeep 263s 264s Calculating upgrade... 264s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 266s Reading package lists... 267s Building dependency tree... 267s Reading state information... 269s Starting pkgProblemResolver with broken count: 0 269s Starting 2 pkgProblemResolver with broken count: 0 269s Done 271s Solving dependencies... 272s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 284s autopkgtest [19:39:48]: testbed running kernel: Linux 6.14.0-13-generic #13.2-Ubuntu SMP PREEMPT_DYNAMIC Sun Apr 6 05:26:54 UTC 2025 285s autopkgtest [19:39:49]: @@@@@@@@@@@@@@@@@@@@ apt-source pycurl 300s Get:1 http://ftpmaster.internal/ubuntu questing/main pycurl 7.45.4-1build1 (dsc) [2525 B] 300s Get:2 http://ftpmaster.internal/ubuntu questing/main pycurl 7.45.4-1build1 (tar) [175 kB] 300s Get:3 http://ftpmaster.internal/ubuntu questing/main pycurl 7.45.4-1build1 (diff) [10.9 kB] 303s gpgv: Signature made Tue Mar 4 22:48:53 2025 UTC 303s gpgv: using RSA key 25E3FF2D7F469DBE7D0D4E50AFCFEC8E669CE1C2 303s gpgv: Can't check signature: No public key 303s dpkg-source: warning: cannot verify inline signature for ./pycurl_7.45.4-1build1.dsc: no acceptable signature found 304s autopkgtest [19:40:08]: testing package pycurl version 7.45.4-1build1 305s autopkgtest [19:40:09]: build not needed 306s autopkgtest [19:40:10]: test command1: preparing testbed 310s Reading package lists... 312s Building dependency tree... 312s Reading state information... 313s Starting pkgProblemResolver with broken count: 0 314s Starting 2 pkgProblemResolver with broken count: 0 314s Done 315s The following NEW packages will be installed: 315s libjs-jquery libjs-sphinxdoc libjs-underscore python-pycurl-doc 315s python3-pycurl 316s 0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. 316s Need to get 622 kB of archives. 316s After this operation, 2057 kB of additional disk space will be used. 316s Get:1 http://ftpmaster.internal/ubuntu questing/main riscv64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 316s Get:2 http://ftpmaster.internal/ubuntu questing/main riscv64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 316s Get:3 http://ftpmaster.internal/ubuntu questing-proposed/main riscv64 libjs-sphinxdoc all 8.2.3-1 [27.8 kB] 316s Get:4 http://ftpmaster.internal/ubuntu questing/main riscv64 python-pycurl-doc all 7.45.4-1build1 [90.4 kB] 316s Get:5 http://ftpmaster.internal/ubuntu questing/main riscv64 python3-pycurl riscv64 7.45.4-1build1 [58.8 kB] 320s Fetched 622 kB in 1s (1152 kB/s) 321s Selecting previously unselected package libjs-jquery. 322s (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 ... 114197 files and directories currently installed.) 322s Preparing to unpack .../libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 322s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 323s Selecting previously unselected package libjs-underscore. 323s Preparing to unpack .../libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 323s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 323s Selecting previously unselected package libjs-sphinxdoc. 323s Preparing to unpack .../libjs-sphinxdoc_8.2.3-1_all.deb ... 323s Unpacking libjs-sphinxdoc (8.2.3-1) ... 324s Selecting previously unselected package python-pycurl-doc. 324s Preparing to unpack .../python-pycurl-doc_7.45.4-1build1_all.deb ... 324s Unpacking python-pycurl-doc (7.45.4-1build1) ... 324s Selecting previously unselected package python3-pycurl. 324s Preparing to unpack .../python3-pycurl_7.45.4-1build1_riscv64.deb ... 324s Unpacking python3-pycurl (7.45.4-1build1) ... 325s Setting up python3-pycurl (7.45.4-1build1) ... 327s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 327s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 327s Setting up libjs-sphinxdoc (8.2.3-1) ... 327s Setting up python-pycurl-doc (7.45.4-1build1) ... 337s autopkgtest [19:40:41]: test command1: python3 -c "import curl; print(curl.__file__)" 337s autopkgtest [19:40:41]: test command1: [----------------------- 339s /usr/lib/python3/dist-packages/curl/__init__.py 340s autopkgtest [19:40:44]: test command1: -----------------------] 343s autopkgtest [19:40:47]: test command1: - - - - - - - - - - results - - - - - - - - - - 343s command1 PASS 344s autopkgtest [19:40:48]: test livetest.sh: preparing testbed 348s Reading package lists... 349s Building dependency tree... 349s Reading state information... 351s Starting pkgProblemResolver with broken count: 0 351s Starting 2 pkgProblemResolver with broken count: 0 351s Done 353s The following NEW packages will be installed: 353s build-essential comerr-dev cpp cpp-14 cpp-14-riscv64-linux-gnu 353s cpp-riscv64-linux-gnu g++ g++-14 g++-14-riscv64-linux-gnu 353s g++-riscv64-linux-gnu gcc gcc-14 gcc-14-riscv64-linux-gnu 353s gcc-riscv64-linux-gnu krb5-multidev libasan8 libbrotli-dev libcc1-0 353s libcurl4-gnutls-dev libevent-2.1-7t64 libgcc-14-dev libgmp-dev libgmpxx4ldbl 353s libgnutls-dane0t64 libgnutls-openssl27t64 libgnutls28-dev libgomp1 353s libgssrpc4t64 libidn2-dev libisl23 libitm1 libkadm5clnt-mit12 353s libkadm5srv-mit12 libkdb5-10t64 libkrb5-dev libldap-dev liblsan0 libmpc3 353s libnghttp2-dev libp11-kit-dev libpkgconf3 libpsl-dev librtmp-dev 353s libssh2-1-dev libssl-dev libstdc++-14-dev libtasn1-6-dev libtsan2 libubsan1 353s libunbound8 libzstd-dev nettle-dev pkgconf pkgconf-bin python3-all 353s python3-click python3-flaky python3-flask python3-iniconfig 353s python3-itsdangerous python3-packaging python3-pluggy python3-pyflakes 353s python3-pytest python3-werkzeug vsftpd zlib1g-dev 354s 0 upgraded, 67 newly installed, 0 to remove and 0 not upgraded. 354s Need to get 105 MB of archives. 354s After this operation, 510 MB of additional disk space will be used. 354s Get:1 http://ftpmaster.internal/ubuntu questing/main riscv64 libisl23 riscv64 0.27-1 [722 kB] 354s Get:2 http://ftpmaster.internal/ubuntu questing/main riscv64 libmpc3 riscv64 1.3.1-1build2 [61.5 kB] 354s Get:3 http://ftpmaster.internal/ubuntu questing/main riscv64 cpp-14-riscv64-linux-gnu riscv64 14.2.0-19ubuntu2 [15.2 MB] 356s Get:4 http://ftpmaster.internal/ubuntu questing/main riscv64 cpp-14 riscv64 14.2.0-19ubuntu2 [1028 B] 356s Get:5 http://ftpmaster.internal/ubuntu questing/main riscv64 cpp-riscv64-linux-gnu riscv64 4:14.2.0-1ubuntu1 [5554 B] 356s Get:6 http://ftpmaster.internal/ubuntu questing/main riscv64 cpp riscv64 4:14.2.0-1ubuntu1 [22.4 kB] 356s Get:7 http://ftpmaster.internal/ubuntu questing/main riscv64 libcc1-0 riscv64 15-20250404-0ubuntu1 [46.1 kB] 356s Get:8 http://ftpmaster.internal/ubuntu questing/main riscv64 libgomp1 riscv64 15-20250404-0ubuntu1 [149 kB] 356s Get:9 http://ftpmaster.internal/ubuntu questing/main riscv64 libitm1 riscv64 15-20250404-0ubuntu1 [29.7 kB] 356s Get:10 http://ftpmaster.internal/ubuntu questing/main riscv64 libasan8 riscv64 15-20250404-0ubuntu1 [3300 kB] 356s Get:11 http://ftpmaster.internal/ubuntu questing/main riscv64 liblsan0 riscv64 15-20250404-0ubuntu1 [1470 kB] 356s Get:12 http://ftpmaster.internal/ubuntu questing/main riscv64 libtsan2 riscv64 15-20250404-0ubuntu1 [2983 kB] 357s Get:13 http://ftpmaster.internal/ubuntu questing/main riscv64 libubsan1 riscv64 15-20250404-0ubuntu1 [1310 kB] 357s Get:14 http://ftpmaster.internal/ubuntu questing/main riscv64 libgcc-14-dev riscv64 14.2.0-19ubuntu2 [5994 kB] 358s Get:15 http://ftpmaster.internal/ubuntu questing/main riscv64 gcc-14-riscv64-linux-gnu riscv64 14.2.0-19ubuntu2 [29.9 MB] 361s Get:16 http://ftpmaster.internal/ubuntu questing/main riscv64 gcc-14 riscv64 14.2.0-19ubuntu2 [529 kB] 361s Get:17 http://ftpmaster.internal/ubuntu questing/main riscv64 gcc-riscv64-linux-gnu riscv64 4:14.2.0-1ubuntu1 [1198 B] 361s Get:18 http://ftpmaster.internal/ubuntu questing/main riscv64 gcc riscv64 4:14.2.0-1ubuntu1 [4998 B] 361s Get:19 http://ftpmaster.internal/ubuntu questing/main riscv64 libstdc++-14-dev riscv64 14.2.0-19ubuntu2 [6141 kB] 362s Get:20 http://ftpmaster.internal/ubuntu questing/main riscv64 g++-14-riscv64-linux-gnu riscv64 14.2.0-19ubuntu2 [16.8 MB] 364s Get:21 http://ftpmaster.internal/ubuntu questing/main riscv64 g++-14 riscv64 14.2.0-19ubuntu2 [23.0 kB] 364s Get:22 http://ftpmaster.internal/ubuntu questing/main riscv64 g++-riscv64-linux-gnu riscv64 4:14.2.0-1ubuntu1 [960 B] 364s Get:23 http://ftpmaster.internal/ubuntu questing/main riscv64 g++ riscv64 4:14.2.0-1ubuntu1 [1080 B] 364s Get:24 http://ftpmaster.internal/ubuntu questing/main riscv64 build-essential riscv64 12.12ubuntu1 [5090 B] 364s Get:25 http://ftpmaster.internal/ubuntu questing/main riscv64 comerr-dev riscv64 2.1-1.47.2-1ubuntu1 [49.0 kB] 364s Get:26 http://ftpmaster.internal/ubuntu questing/main riscv64 libgssrpc4t64 riscv64 1.21.3-4ubuntu2 [62.4 kB] 364s Get:27 http://ftpmaster.internal/ubuntu questing/main riscv64 libkadm5clnt-mit12 riscv64 1.21.3-4ubuntu2 [41.4 kB] 364s Get:28 http://ftpmaster.internal/ubuntu questing/main riscv64 libkdb5-10t64 riscv64 1.21.3-4ubuntu2 [42.9 kB] 364s Get:29 http://ftpmaster.internal/ubuntu questing/main riscv64 libkadm5srv-mit12 riscv64 1.21.3-4ubuntu2 [55.2 kB] 364s Get:30 http://ftpmaster.internal/ubuntu questing/main riscv64 krb5-multidev riscv64 1.21.3-4ubuntu2 [125 kB] 364s Get:31 http://ftpmaster.internal/ubuntu questing/main riscv64 libbrotli-dev riscv64 1.1.0-2build4 [956 kB] 364s Get:32 http://ftpmaster.internal/ubuntu questing/main riscv64 libevent-2.1-7t64 riscv64 2.1.12-stable-10 [151 kB] 364s Get:33 http://ftpmaster.internal/ubuntu questing/main riscv64 libunbound8 riscv64 1.22.0-1ubuntu1 [502 kB] 364s Get:34 http://ftpmaster.internal/ubuntu questing/main riscv64 libgnutls-dane0t64 riscv64 3.8.9-2ubuntu3 [43.8 kB] 364s Get:35 http://ftpmaster.internal/ubuntu questing/main riscv64 libgnutls-openssl27t64 riscv64 3.8.9-2ubuntu3 [43.7 kB] 364s Get:36 http://ftpmaster.internal/ubuntu questing/main riscv64 libidn2-dev riscv64 2.3.8-2 [165 kB] 364s Get:37 http://ftpmaster.internal/ubuntu questing/main riscv64 libp11-kit-dev riscv64 0.25.5-2ubuntu3 [23.5 kB] 364s Get:38 http://ftpmaster.internal/ubuntu questing/main riscv64 libtasn1-6-dev riscv64 4.20.0-2 [159 kB] 364s Get:39 http://ftpmaster.internal/ubuntu questing/main riscv64 libgmpxx4ldbl riscv64 2:6.3.0+dfsg-3ubuntu1 [9986 B] 364s Get:40 http://ftpmaster.internal/ubuntu questing/main riscv64 libgmp-dev riscv64 2:6.3.0+dfsg-3ubuntu1 [794 kB] 364s Get:41 http://ftpmaster.internal/ubuntu questing/main riscv64 nettle-dev riscv64 3.10.1-1 [1418 kB] 365s Get:42 http://ftpmaster.internal/ubuntu questing/main riscv64 libgnutls28-dev riscv64 3.8.9-2ubuntu3 [2670 kB] 365s Get:43 http://ftpmaster.internal/ubuntu questing/main riscv64 libkrb5-dev riscv64 1.21.3-4ubuntu2 [11.9 kB] 365s Get:44 http://ftpmaster.internal/ubuntu questing/main riscv64 libldap-dev riscv64 2.6.9+dfsg-2ubuntu1 [667 kB] 365s Get:45 http://ftpmaster.internal/ubuntu questing/main riscv64 libpkgconf3 riscv64 1.8.1-4 [31.6 kB] 365s Get:46 http://ftpmaster.internal/ubuntu questing/main riscv64 pkgconf-bin riscv64 1.8.1-4 [21.8 kB] 365s Get:47 http://ftpmaster.internal/ubuntu questing/main riscv64 pkgconf riscv64 1.8.1-4 [16.7 kB] 365s Get:48 http://ftpmaster.internal/ubuntu questing/main riscv64 libnghttp2-dev riscv64 1.64.0-1ubuntu1 [255 kB] 365s Get:49 http://ftpmaster.internal/ubuntu questing/main riscv64 libpsl-dev riscv64 0.21.2-1.1build1 [88.7 kB] 365s Get:50 http://ftpmaster.internal/ubuntu questing/main riscv64 zlib1g-dev riscv64 1:1.3.dfsg+really1.3.1-1ubuntu1 [968 kB] 365s Get:51 http://ftpmaster.internal/ubuntu questing/main riscv64 librtmp-dev riscv64 2.4+20151223.gitfa8646d.1-2build7 [136 kB] 365s Get:52 http://ftpmaster.internal/ubuntu questing/main riscv64 libssl-dev riscv64 3.4.1-1ubuntu3 [6164 kB] 366s Get:53 http://ftpmaster.internal/ubuntu questing/main riscv64 libssh2-1-dev riscv64 1.11.1-1 [499 kB] 366s Get:54 http://ftpmaster.internal/ubuntu questing/main riscv64 libzstd-dev riscv64 1.5.6+dfsg-2 [1668 kB] 366s Get:55 http://ftpmaster.internal/ubuntu questing/main riscv64 libcurl4-gnutls-dev riscv64 8.12.1-3ubuntu1 [1246 kB] 366s Get:56 http://ftpmaster.internal/ubuntu questing/main riscv64 python3-all riscv64 3.13.3-1 [882 B] 366s Get:57 http://ftpmaster.internal/ubuntu questing/main riscv64 python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 366s Get:58 http://ftpmaster.internal/ubuntu questing/universe riscv64 python3-flaky all 3.8.1-2 [16.6 kB] 366s Get:59 http://ftpmaster.internal/ubuntu questing/main riscv64 python3-itsdangerous all 2.2.0-2 [15.3 kB] 366s Get:60 http://ftpmaster.internal/ubuntu questing/main riscv64 python3-werkzeug all 3.1.3-2 [169 kB] 366s Get:61 http://ftpmaster.internal/ubuntu questing/main riscv64 python3-flask all 3.1.0-2ubuntu1 [84.4 kB] 366s Get:62 http://ftpmaster.internal/ubuntu questing/universe riscv64 python3-iniconfig all 1.1.1-2 [6024 B] 366s Get:63 http://ftpmaster.internal/ubuntu questing/main riscv64 python3-packaging all 24.2-1 [51.5 kB] 366s Get:64 http://ftpmaster.internal/ubuntu questing/universe riscv64 python3-pluggy all 1.5.0-1 [21.0 kB] 366s Get:65 http://ftpmaster.internal/ubuntu questing/universe riscv64 python3-pyflakes all 3.2.0-3 [53.0 kB] 366s Get:66 http://ftpmaster.internal/ubuntu questing/universe riscv64 python3-pytest all 8.3.5-1 [252 kB] 366s Get:67 http://ftpmaster.internal/ubuntu questing/main riscv64 vsftpd riscv64 3.0.5-0.1 [124 kB] 372s Preconfiguring packages ... 373s Fetched 105 MB in 13s (7963 kB/s) 373s Selecting previously unselected package libisl23:riscv64. 374s (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 ... 114343 files and directories currently installed.) 374s Preparing to unpack .../00-libisl23_0.27-1_riscv64.deb ... 374s Unpacking libisl23:riscv64 (0.27-1) ... 375s Selecting previously unselected package libmpc3:riscv64. 375s Preparing to unpack .../01-libmpc3_1.3.1-1build2_riscv64.deb ... 375s Unpacking libmpc3:riscv64 (1.3.1-1build2) ... 375s Selecting previously unselected package cpp-14-riscv64-linux-gnu. 375s Preparing to unpack .../02-cpp-14-riscv64-linux-gnu_14.2.0-19ubuntu2_riscv64.deb ... 375s Unpacking cpp-14-riscv64-linux-gnu (14.2.0-19ubuntu2) ... 382s Selecting previously unselected package cpp-14. 382s Preparing to unpack .../03-cpp-14_14.2.0-19ubuntu2_riscv64.deb ... 382s Unpacking cpp-14 (14.2.0-19ubuntu2) ... 382s Selecting previously unselected package cpp-riscv64-linux-gnu. 382s Preparing to unpack .../04-cpp-riscv64-linux-gnu_4%3a14.2.0-1ubuntu1_riscv64.deb ... 382s Unpacking cpp-riscv64-linux-gnu (4:14.2.0-1ubuntu1) ... 383s Selecting previously unselected package cpp. 383s Preparing to unpack .../05-cpp_4%3a14.2.0-1ubuntu1_riscv64.deb ... 383s Unpacking cpp (4:14.2.0-1ubuntu1) ... 383s Selecting previously unselected package libcc1-0:riscv64. 384s Preparing to unpack .../06-libcc1-0_15-20250404-0ubuntu1_riscv64.deb ... 384s Unpacking libcc1-0:riscv64 (15-20250404-0ubuntu1) ... 384s Selecting previously unselected package libgomp1:riscv64. 384s Preparing to unpack .../07-libgomp1_15-20250404-0ubuntu1_riscv64.deb ... 384s Unpacking libgomp1:riscv64 (15-20250404-0ubuntu1) ... 384s Selecting previously unselected package libitm1:riscv64. 385s Preparing to unpack .../08-libitm1_15-20250404-0ubuntu1_riscv64.deb ... 385s Unpacking libitm1:riscv64 (15-20250404-0ubuntu1) ... 385s Selecting previously unselected package libasan8:riscv64. 385s Preparing to unpack .../09-libasan8_15-20250404-0ubuntu1_riscv64.deb ... 385s Unpacking libasan8:riscv64 (15-20250404-0ubuntu1) ... 387s Selecting previously unselected package liblsan0:riscv64. 387s Preparing to unpack .../10-liblsan0_15-20250404-0ubuntu1_riscv64.deb ... 387s Unpacking liblsan0:riscv64 (15-20250404-0ubuntu1) ... 388s Selecting previously unselected package libtsan2:riscv64. 388s Preparing to unpack .../11-libtsan2_15-20250404-0ubuntu1_riscv64.deb ... 388s Unpacking libtsan2:riscv64 (15-20250404-0ubuntu1) ... 390s Selecting previously unselected package libubsan1:riscv64. 390s Preparing to unpack .../12-libubsan1_15-20250404-0ubuntu1_riscv64.deb ... 390s Unpacking libubsan1:riscv64 (15-20250404-0ubuntu1) ... 391s Selecting previously unselected package libgcc-14-dev:riscv64. 391s Preparing to unpack .../13-libgcc-14-dev_14.2.0-19ubuntu2_riscv64.deb ... 391s Unpacking libgcc-14-dev:riscv64 (14.2.0-19ubuntu2) ... 397s Selecting previously unselected package gcc-14-riscv64-linux-gnu. 397s Preparing to unpack .../14-gcc-14-riscv64-linux-gnu_14.2.0-19ubuntu2_riscv64.deb ... 397s Unpacking gcc-14-riscv64-linux-gnu (14.2.0-19ubuntu2) ... 410s Selecting previously unselected package gcc-14. 410s Preparing to unpack .../15-gcc-14_14.2.0-19ubuntu2_riscv64.deb ... 410s Unpacking gcc-14 (14.2.0-19ubuntu2) ... 410s Selecting previously unselected package gcc-riscv64-linux-gnu. 410s Preparing to unpack .../16-gcc-riscv64-linux-gnu_4%3a14.2.0-1ubuntu1_riscv64.deb ... 410s Unpacking gcc-riscv64-linux-gnu (4:14.2.0-1ubuntu1) ... 411s Selecting previously unselected package gcc. 411s Preparing to unpack .../17-gcc_4%3a14.2.0-1ubuntu1_riscv64.deb ... 411s Unpacking gcc (4:14.2.0-1ubuntu1) ... 411s Selecting previously unselected package libstdc++-14-dev:riscv64. 411s Preparing to unpack .../18-libstdc++-14-dev_14.2.0-19ubuntu2_riscv64.deb ... 411s Unpacking libstdc++-14-dev:riscv64 (14.2.0-19ubuntu2) ... 418s Selecting previously unselected package g++-14-riscv64-linux-gnu. 418s Preparing to unpack .../19-g++-14-riscv64-linux-gnu_14.2.0-19ubuntu2_riscv64.deb ... 418s Unpacking g++-14-riscv64-linux-gnu (14.2.0-19ubuntu2) ... 425s Selecting previously unselected package g++-14. 425s Preparing to unpack .../20-g++-14_14.2.0-19ubuntu2_riscv64.deb ... 425s Unpacking g++-14 (14.2.0-19ubuntu2) ... 426s Selecting previously unselected package g++-riscv64-linux-gnu. 426s Preparing to unpack .../21-g++-riscv64-linux-gnu_4%3a14.2.0-1ubuntu1_riscv64.deb ... 426s Unpacking g++-riscv64-linux-gnu (4:14.2.0-1ubuntu1) ... 426s Selecting previously unselected package g++. 426s Preparing to unpack .../22-g++_4%3a14.2.0-1ubuntu1_riscv64.deb ... 426s Unpacking g++ (4:14.2.0-1ubuntu1) ... 426s Selecting previously unselected package build-essential. 427s Preparing to unpack .../23-build-essential_12.12ubuntu1_riscv64.deb ... 427s Unpacking build-essential (12.12ubuntu1) ... 427s Selecting previously unselected package comerr-dev:riscv64. 427s Preparing to unpack .../24-comerr-dev_2.1-1.47.2-1ubuntu1_riscv64.deb ... 427s Unpacking comerr-dev:riscv64 (2.1-1.47.2-1ubuntu1) ... 428s Selecting previously unselected package libgssrpc4t64:riscv64. 428s Preparing to unpack .../25-libgssrpc4t64_1.21.3-4ubuntu2_riscv64.deb ... 428s Unpacking libgssrpc4t64:riscv64 (1.21.3-4ubuntu2) ... 428s Selecting previously unselected package libkadm5clnt-mit12:riscv64. 428s Preparing to unpack .../26-libkadm5clnt-mit12_1.21.3-4ubuntu2_riscv64.deb ... 428s Unpacking libkadm5clnt-mit12:riscv64 (1.21.3-4ubuntu2) ... 429s Selecting previously unselected package libkdb5-10t64:riscv64. 429s Preparing to unpack .../27-libkdb5-10t64_1.21.3-4ubuntu2_riscv64.deb ... 429s Unpacking libkdb5-10t64:riscv64 (1.21.3-4ubuntu2) ... 429s Selecting previously unselected package libkadm5srv-mit12:riscv64. 429s Preparing to unpack .../28-libkadm5srv-mit12_1.21.3-4ubuntu2_riscv64.deb ... 429s Unpacking libkadm5srv-mit12:riscv64 (1.21.3-4ubuntu2) ... 429s Selecting previously unselected package krb5-multidev:riscv64. 430s Preparing to unpack .../29-krb5-multidev_1.21.3-4ubuntu2_riscv64.deb ... 430s Unpacking krb5-multidev:riscv64 (1.21.3-4ubuntu2) ... 430s Selecting previously unselected package libbrotli-dev:riscv64. 430s Preparing to unpack .../30-libbrotli-dev_1.1.0-2build4_riscv64.deb ... 430s Unpacking libbrotli-dev:riscv64 (1.1.0-2build4) ... 431s Selecting previously unselected package libevent-2.1-7t64:riscv64. 431s Preparing to unpack .../31-libevent-2.1-7t64_2.1.12-stable-10_riscv64.deb ... 431s Unpacking libevent-2.1-7t64:riscv64 (2.1.12-stable-10) ... 432s Selecting previously unselected package libunbound8:riscv64. 432s Preparing to unpack .../32-libunbound8_1.22.0-1ubuntu1_riscv64.deb ... 432s Unpacking libunbound8:riscv64 (1.22.0-1ubuntu1) ... 433s Selecting previously unselected package libgnutls-dane0t64:riscv64. 433s Preparing to unpack .../33-libgnutls-dane0t64_3.8.9-2ubuntu3_riscv64.deb ... 433s Unpacking libgnutls-dane0t64:riscv64 (3.8.9-2ubuntu3) ... 433s Selecting previously unselected package libgnutls-openssl27t64:riscv64. 434s Preparing to unpack .../34-libgnutls-openssl27t64_3.8.9-2ubuntu3_riscv64.deb ... 434s Unpacking libgnutls-openssl27t64:riscv64 (3.8.9-2ubuntu3) ... 434s Selecting previously unselected package libidn2-dev:riscv64. 434s Preparing to unpack .../35-libidn2-dev_2.3.8-2_riscv64.deb ... 434s Unpacking libidn2-dev:riscv64 (2.3.8-2) ... 435s Selecting previously unselected package libp11-kit-dev:riscv64. 435s Preparing to unpack .../36-libp11-kit-dev_0.25.5-2ubuntu3_riscv64.deb ... 435s Unpacking libp11-kit-dev:riscv64 (0.25.5-2ubuntu3) ... 435s Selecting previously unselected package libtasn1-6-dev:riscv64. 435s Preparing to unpack .../37-libtasn1-6-dev_4.20.0-2_riscv64.deb ... 435s Unpacking libtasn1-6-dev:riscv64 (4.20.0-2) ... 436s Selecting previously unselected package libgmpxx4ldbl:riscv64. 436s Preparing to unpack .../38-libgmpxx4ldbl_2%3a6.3.0+dfsg-3ubuntu1_riscv64.deb ... 436s Unpacking libgmpxx4ldbl:riscv64 (2:6.3.0+dfsg-3ubuntu1) ... 436s Selecting previously unselected package libgmp-dev:riscv64. 436s Preparing to unpack .../39-libgmp-dev_2%3a6.3.0+dfsg-3ubuntu1_riscv64.deb ... 436s Unpacking libgmp-dev:riscv64 (2:6.3.0+dfsg-3ubuntu1) ... 437s Selecting previously unselected package nettle-dev:riscv64. 438s Preparing to unpack .../40-nettle-dev_3.10.1-1_riscv64.deb ... 438s Unpacking nettle-dev:riscv64 (3.10.1-1) ... 439s Selecting previously unselected package libgnutls28-dev:riscv64. 439s Preparing to unpack .../41-libgnutls28-dev_3.8.9-2ubuntu3_riscv64.deb ... 439s Unpacking libgnutls28-dev:riscv64 (3.8.9-2ubuntu3) ... 441s Selecting previously unselected package libkrb5-dev:riscv64. 441s Preparing to unpack .../42-libkrb5-dev_1.21.3-4ubuntu2_riscv64.deb ... 441s Unpacking libkrb5-dev:riscv64 (1.21.3-4ubuntu2) ... 442s Selecting previously unselected package libldap-dev:riscv64. 442s Preparing to unpack .../43-libldap-dev_2.6.9+dfsg-2ubuntu1_riscv64.deb ... 442s Unpacking libldap-dev:riscv64 (2.6.9+dfsg-2ubuntu1) ... 443s Selecting previously unselected package libpkgconf3:riscv64. 443s Preparing to unpack .../44-libpkgconf3_1.8.1-4_riscv64.deb ... 443s Unpacking libpkgconf3:riscv64 (1.8.1-4) ... 443s Selecting previously unselected package pkgconf-bin. 443s Preparing to unpack .../45-pkgconf-bin_1.8.1-4_riscv64.deb ... 443s Unpacking pkgconf-bin (1.8.1-4) ... 444s Selecting previously unselected package pkgconf:riscv64. 444s Preparing to unpack .../46-pkgconf_1.8.1-4_riscv64.deb ... 444s Unpacking pkgconf:riscv64 (1.8.1-4) ... 444s Selecting previously unselected package libnghttp2-dev:riscv64. 444s Preparing to unpack .../47-libnghttp2-dev_1.64.0-1ubuntu1_riscv64.deb ... 444s Unpacking libnghttp2-dev:riscv64 (1.64.0-1ubuntu1) ... 445s Selecting previously unselected package libpsl-dev:riscv64. 445s Preparing to unpack .../48-libpsl-dev_0.21.2-1.1build1_riscv64.deb ... 445s Unpacking libpsl-dev:riscv64 (0.21.2-1.1build1) ... 446s Selecting previously unselected package zlib1g-dev:riscv64. 446s Preparing to unpack .../49-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu1_riscv64.deb ... 446s Unpacking zlib1g-dev:riscv64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 446s Selecting previously unselected package librtmp-dev:riscv64. 446s Preparing to unpack .../50-librtmp-dev_2.4+20151223.gitfa8646d.1-2build7_riscv64.deb ... 446s Unpacking librtmp-dev:riscv64 (2.4+20151223.gitfa8646d.1-2build7) ... 447s Selecting previously unselected package libssl-dev:riscv64. 447s Preparing to unpack .../51-libssl-dev_3.4.1-1ubuntu3_riscv64.deb ... 447s Unpacking libssl-dev:riscv64 (3.4.1-1ubuntu3) ... 452s Selecting previously unselected package libssh2-1-dev:riscv64. 453s Preparing to unpack .../52-libssh2-1-dev_1.11.1-1_riscv64.deb ... 453s Unpacking libssh2-1-dev:riscv64 (1.11.1-1) ... 453s Selecting previously unselected package libzstd-dev:riscv64. 454s Preparing to unpack .../53-libzstd-dev_1.5.6+dfsg-2_riscv64.deb ... 454s Unpacking libzstd-dev:riscv64 (1.5.6+dfsg-2) ... 455s Selecting previously unselected package libcurl4-gnutls-dev:riscv64. 456s Preparing to unpack .../54-libcurl4-gnutls-dev_8.12.1-3ubuntu1_riscv64.deb ... 456s Unpacking libcurl4-gnutls-dev:riscv64 (8.12.1-3ubuntu1) ... 457s Selecting previously unselected package python3-all. 457s Preparing to unpack .../55-python3-all_3.13.3-1_riscv64.deb ... 457s Unpacking python3-all (3.13.3-1) ... 457s Selecting previously unselected package python3-click. 458s Preparing to unpack .../56-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 458s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 458s Selecting previously unselected package python3-flaky. 458s Preparing to unpack .../57-python3-flaky_3.8.1-2_all.deb ... 458s Unpacking python3-flaky (3.8.1-2) ... 458s Selecting previously unselected package python3-itsdangerous. 459s Preparing to unpack .../58-python3-itsdangerous_2.2.0-2_all.deb ... 459s Unpacking python3-itsdangerous (2.2.0-2) ... 459s Selecting previously unselected package python3-werkzeug. 459s Preparing to unpack .../59-python3-werkzeug_3.1.3-2_all.deb ... 459s Unpacking python3-werkzeug (3.1.3-2) ... 460s Selecting previously unselected package python3-flask. 460s Preparing to unpack .../60-python3-flask_3.1.0-2ubuntu1_all.deb ... 460s Unpacking python3-flask (3.1.0-2ubuntu1) ... 460s Selecting previously unselected package python3-iniconfig. 460s Preparing to unpack .../61-python3-iniconfig_1.1.1-2_all.deb ... 460s Unpacking python3-iniconfig (1.1.1-2) ... 461s Selecting previously unselected package python3-packaging. 461s Preparing to unpack .../62-python3-packaging_24.2-1_all.deb ... 461s Unpacking python3-packaging (24.2-1) ... 461s Selecting previously unselected package python3-pluggy. 461s Preparing to unpack .../63-python3-pluggy_1.5.0-1_all.deb ... 461s Unpacking python3-pluggy (1.5.0-1) ... 462s Selecting previously unselected package python3-pyflakes. 462s Preparing to unpack .../64-python3-pyflakes_3.2.0-3_all.deb ... 462s Unpacking python3-pyflakes (3.2.0-3) ... 462s Selecting previously unselected package python3-pytest. 462s Preparing to unpack .../65-python3-pytest_8.3.5-1_all.deb ... 462s Unpacking python3-pytest (8.3.5-1) ... 463s Selecting previously unselected package vsftpd. 463s Preparing to unpack .../66-vsftpd_3.0.5-0.1_riscv64.deb ... 463s Unpacking vsftpd (3.0.5-0.1) ... 464s Setting up libgnutls-openssl27t64:riscv64 (3.8.9-2ubuntu3) ... 464s Setting up python3-iniconfig (1.1.1-2) ... 466s Setting up libzstd-dev:riscv64 (1.5.6+dfsg-2) ... 466s Setting up python3-pyflakes (3.2.0-3) ... 469s Setting up libevent-2.1-7t64:riscv64 (2.1.12-stable-10) ... 469s Setting up python3-itsdangerous (2.2.0-2) ... 470s Setting up python3-all (3.13.3-1) ... 470s Setting up libgomp1:riscv64 (15-20250404-0ubuntu1) ... 470s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 473s Setting up libpsl-dev:riscv64 (0.21.2-1.1build1) ... 473s Setting up python3-packaging (24.2-1) ... 475s Setting up libunbound8:riscv64 (1.22.0-1ubuntu1) ... 475s Setting up libpkgconf3:riscv64 (1.8.1-4) ... 475s Setting up libgmpxx4ldbl:riscv64 (2:6.3.0+dfsg-3ubuntu1) ... 475s Setting up python3-flaky (3.8.1-2) ... 477s Setting up libgnutls-dane0t64:riscv64 (3.8.9-2ubuntu3) ... 477s Setting up python3-werkzeug (3.1.3-2) ... 481s Setting up libgssrpc4t64:riscv64 (1.21.3-4ubuntu2) ... 481s Setting up libldap-dev:riscv64 (2.6.9+dfsg-2ubuntu1) ... 481s Setting up comerr-dev:riscv64 (2.1-1.47.2-1ubuntu1) ... 481s Setting up libssl-dev:riscv64 (3.4.1-1ubuntu3) ... 481s Setting up libmpc3:riscv64 (1.3.1-1build2) ... 481s Setting up pkgconf-bin (1.8.1-4) ... 481s Setting up vsftpd (3.0.5-0.1) ... 489s Created symlink '/etc/systemd/system/multi-user.target.wants/vsftpd.service' → '/usr/lib/systemd/system/vsftpd.service'. 489s /usr/lib/tmpfiles.d/vsftpd.conf:1: Line references path below legacy directory /var/run/, updating /var/run/vsftpd/empty → /run/vsftpd/empty; please update the tmpfiles.d/ drop-in file accordingly. 494s Setting up libidn2-dev:riscv64 (2.3.8-2) ... 494s Setting up python3-pluggy (1.5.0-1) ... 496s Setting up libubsan1:riscv64 (15-20250404-0ubuntu1) ... 496s Setting up zlib1g-dev:riscv64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 496s Setting up libasan8:riscv64 (15-20250404-0ubuntu1) ... 496s Setting up libtsan2:riscv64 (15-20250404-0ubuntu1) ... 496s Setting up libisl23:riscv64 (0.27-1) ... 496s Setting up libtasn1-6-dev:riscv64 (4.20.0-2) ... 496s Setting up libcc1-0:riscv64 (15-20250404-0ubuntu1) ... 496s Setting up libbrotli-dev:riscv64 (1.1.0-2build4) ... 496s Setting up liblsan0:riscv64 (15-20250404-0ubuntu1) ... 496s Setting up libp11-kit-dev:riscv64 (0.25.5-2ubuntu3) ... 496s Setting up libitm1:riscv64 (15-20250404-0ubuntu1) ... 496s Setting up libkadm5clnt-mit12:riscv64 (1.21.3-4ubuntu2) ... 496s Setting up libgmp-dev:riscv64 (2:6.3.0+dfsg-3ubuntu1) ... 496s Setting up nettle-dev:riscv64 (3.10.1-1) ... 496s Setting up libkdb5-10t64:riscv64 (1.21.3-4ubuntu2) ... 496s Setting up python3-pytest (8.3.5-1) ... 501s Setting up python3-flask (3.1.0-2ubuntu1) ... 504s Setting up cpp-14-riscv64-linux-gnu (14.2.0-19ubuntu2) ... 504s Setting up pkgconf:riscv64 (1.8.1-4) ... 504s Setting up libssh2-1-dev:riscv64 (1.11.1-1) ... 504s Setting up cpp-14 (14.2.0-19ubuntu2) ... 504s Setting up libkadm5srv-mit12:riscv64 (1.21.3-4ubuntu2) ... 504s Setting up libgcc-14-dev:riscv64 (14.2.0-19ubuntu2) ... 504s Setting up cpp-riscv64-linux-gnu (4:14.2.0-1ubuntu1) ... 504s Setting up libstdc++-14-dev:riscv64 (14.2.0-19ubuntu2) ... 504s Setting up krb5-multidev:riscv64 (1.21.3-4ubuntu2) ... 504s Setting up libgnutls28-dev:riscv64 (3.8.9-2ubuntu3) ... 504s Setting up libnghttp2-dev:riscv64 (1.64.0-1ubuntu1) ... 504s Setting up libkrb5-dev:riscv64 (1.21.3-4ubuntu2) ... 504s Setting up librtmp-dev:riscv64 (2.4+20151223.gitfa8646d.1-2build7) ... 504s Setting up gcc-14-riscv64-linux-gnu (14.2.0-19ubuntu2) ... 504s Setting up cpp (4:14.2.0-1ubuntu1) ... 504s Setting up g++-14-riscv64-linux-gnu (14.2.0-19ubuntu2) ... 504s Setting up libcurl4-gnutls-dev:riscv64 (8.12.1-3ubuntu1) ... 504s Setting up gcc-14 (14.2.0-19ubuntu2) ... 504s Setting up gcc-riscv64-linux-gnu (4:14.2.0-1ubuntu1) ... 504s Setting up g++-riscv64-linux-gnu (4:14.2.0-1ubuntu1) ... 504s Setting up g++-14 (14.2.0-19ubuntu2) ... 504s Setting up gcc (4:14.2.0-1ubuntu1) ... 504s Setting up g++ (4:14.2.0-1ubuntu1) ... 504s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 504s Setting up build-essential (12.12ubuntu1) ... 504s Processing triggers for libc-bin (2.41-6ubuntu1) ... 505s Processing triggers for man-db (2.13.0-1) ... 511s Processing triggers for install-info (7.1.1-1) ... 523s autopkgtest [19:43:47]: test livetest.sh: [----------------------- 526s Python 3.13.3 526s make -C tests/fake-curl/libcurl 526s make[1]: Entering directory '/tmp/autopkgtest.5xaIrn/build.gej/src/tests/fake-curl/libcurl' 526s `curl-config --cc` `curl-config --cflags` -shared -fPIC \ 526s -Wl,-soname,with_gnutls.so -o with_gnutls.so with_gnutls.c 528s `curl-config --cc` `curl-config --cflags` -shared -fPIC \ 528s -Wl,-soname,with_nss.so -o with_nss.so with_nss.c 529s `curl-config --cc` `curl-config --cflags` -shared -fPIC \ 529s -Wl,-soname,with_openssl.so -o with_openssl.so with_openssl.c 531s `curl-config --cc` `curl-config --cflags` -shared -fPIC \ 531s -Wl,-soname,with_unknown_ssl.so -o with_unknown_ssl.so with_unknown_ssl.c 532s `curl-config --cc` `curl-config --cflags` -shared -fPIC \ 532s -Wl,-soname,without_ssl.so -o without_ssl.so without_ssl.c 534s make[1]: Leaving directory '/tmp/autopkgtest.5xaIrn/build.gej/src/tests/fake-curl/libcurl' 534s ./tests/run.sh 534s + test -n python3.13 534s + test -n python3.13 -m pytest 534s + mkdir -p tests/tmp 534s + python3.13 -V 534s + awk {print $2} 534s + awk -F. {print $1} 534s + export PYTHONMAJOR=3 534s + + python3.13 -V 534s + awk -F. {print $2} 534s awk {print $2} 534s + export PYTHONMINOR=13 534s + ls -d build/lib.*3*13 534s ls: cannot access 'build/lib.*3*13': No such file or directory 534s + export PYTHONPATH=: 534s + extra_attrs= 534s + test = true 534s + python3.13 -c import pycurl; print(pycurl.version) 534s PycURL/7.45.4 libcurl/8.12.1 GnuTLS/3.8.9 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.64.0 librtmp/2.3 OpenLDAP/2.6.9 534s + python3.13 -m pytest -v 538s ============================= test session starts ============================== 538s platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0 -- /usr/bin/python3.13 538s cachedir: .pytest_cache 538s rootdir: /tmp/autopkgtest.5xaIrn/build.gej/src 538s configfile: pytest.ini 538s plugins: typeguard-4.4.2, flaky-3.8.1 547s collecting ... collected 460 items / 2 deselected / 458 selected 547s 548s tests/cadata_test.py::CaCertsTest::test_request_with_verifypeer SKIPPED [ 0%] 548s tests/cadata_test.py::CaCertsTest::test_set_ca_certs_bogus_type SKIPPED [ 0%] 548s tests/cadata_test.py::CaCertsTest::test_set_ca_certs_bytes SKIPPED (...) [ 0%] 548s tests/certinfo_test.py::CertinfoTest::test_certinfo_option PASSED [ 0%] 548s tests/certinfo_test.py::CertinfoTest::test_getinfo_raw_certinfo SKIPPED [ 1%] 548s tests/certinfo_test.py::CertinfoTest::test_request_with_certinfo SKIPPED [ 1%] 548s tests/certinfo_test.py::CertinfoTest::test_request_without_certinfo FAILED [ 1%] 548s tests/close_socket_cb_test.py::CloseSocketCbTest::test_closesocketfunction_bogus_return PASSED [ 1%] 548s tests/close_socket_cb_test.py::CloseSocketCbTest::test_closesocketfunction_fail PASSED [ 1%] 548s tests/close_socket_cb_test.py::CloseSocketCbTest::test_closesocketfunction_ok PASSED [ 2%] 548s tests/close_socket_cb_test.py::CloseSocketCbUnsetTest::test_closesocketfunction_none PASSED [ 2%] 548s tests/close_socket_cb_test.py::CloseSocketCbUnsetTest::test_closesocketfunction_unset PASSED [ 2%] 548s tests/curl_object_test.py::ExplicitConstructionCurlObjectTest::test_close PASSED [ 2%] 548s tests/curl_object_test.py::ExplicitConstructionCurlObjectTest::test_close_twice PASSED [ 3%] 548s tests/curl_object_test.py::ExplicitConstructionCurlObjectTest::test_keyword_arguments PASSED [ 3%] 548s tests/curl_object_test.py::ExplicitConstructionCurlObjectTest::test_positional_arguments PASSED [ 3%] 548s tests/curl_object_test.py::CurlObjectTest::test_bogus_attribute_access PASSED [ 3%] 548s tests/curl_object_test.py::CurlObjectTest::test_bogus_attribute_delete PASSED [ 3%] 548s tests/curl_object_test.py::CurlObjectTest::test_delete_attribute_curl PASSED [ 4%] 548s tests/curl_object_test.py::CurlObjectTest::test_delete_attribute_multi PASSED [ 4%] 548s tests/curl_object_test.py::CurlObjectTest::test_delete_attribute_share PASSED [ 4%] 548s tests/curl_object_test.py::CurlObjectTest::test_delete_missing_attribute_curl PASSED [ 4%] 548s tests/curl_object_test.py::CurlObjectTest::test_delete_missing_attribute_curl_multi PASSED [ 5%] 548s tests/curl_object_test.py::CurlObjectTest::test_delete_missing_attribute_curl_share PASSED [ 5%] 548s tests/curl_object_test.py::CurlObjectTest::test_get_attribute_curl PASSED [ 5%] 548s tests/curl_object_test.py::CurlObjectTest::test_get_attribute_multi PASSED [ 5%] 548s tests/curl_object_test.py::CurlObjectTest::test_get_attribute_share PASSED [ 5%] 548s tests/curl_object_test.py::CurlObjectTest::test_get_missing_attribute_curl PASSED [ 6%] 548s tests/curl_object_test.py::CurlObjectTest::test_get_missing_attribute_curl_multi PASSED [ 6%] 548s tests/curl_object_test.py::CurlObjectTest::test_get_missing_attribute_curl_share PASSED [ 6%] 548s tests/curl_object_test.py::CurlObjectTest::test_modify_attribute_curl PASSED [ 6%] 548s tests/curl_object_test.py::CurlObjectTest::test_modify_attribute_multi PASSED [ 6%] 548s tests/curl_object_test.py::CurlObjectTest::test_modify_attribute_share PASSED [ 7%] 548s tests/curl_object_test.py::CurlObjectTest::test_set_attribute_curl PASSED [ 7%] 549s tests/curl_object_test.py::CurlObjectTest::test_set_attribute_multi PASSED [ 7%] 549s tests/curl_object_test.py::CurlObjectTest::test_set_attribute_share PASSED [ 7%] 549s tests/debug_test.py::DebugTest::test_debug_unicode FAILED [ 8%] 549s tests/debug_test.py::DebugTest::test_perform_get_with_debug_function FAILED [ 8%] 549s tests/default_write_cb_test.py::DefaultWriteCbTest::test_perform_get PASSED [ 8%] 549s tests/duphandle_test.py::DuphandleTest::test_duphandle_attribute_dict PASSED [ 8%] 549s tests/duphandle_test.py::DuphandleTest::test_duphandle_httppost_unsetopt FAILED [ 8%] 549s tests/duphandle_test.py::DuphandleTest::test_duphandle_httppost_xdecref FAILED [ 9%] 549s tests/duphandle_test.py::DuphandleTest::test_duphandle_references FAILED [ 9%] 549s tests/duphandle_test.py::DuphandleTest::test_duphandle_slist_unsetopt FAILED [ 9%] 550s tests/duphandle_test.py::DuphandleTest::test_duphandle_slist_xdecref FAILED [ 9%] 550s tests/error_constants_test.py::ErrorConstantsTest::test_ftp_accept_failed PASSED [ 10%] 550s tests/error_constants_test.py::ErrorConstantsTest::test_not_built_in PASSED [ 10%] 550s tests/error_constants_test.py::ErrorConstantsTest::test_pinnedpubkeynotmatch PASSED [ 10%] 550s tests/error_constants_test.py::ErrorConstantsTest::test_unknown_option PASSED [ 10%] 550s tests/error_test.py::ErrorTest::test_pycurl_error_libcurl PASSED [ 10%] 550s tests/error_test.py::ErrorTest::test_pycurl_error_stdlib PASSED [ 11%] 550s tests/error_test.py::ErrorTest::test_pycurl_errstr_initially_empty PASSED [ 11%] 550s tests/error_test.py::ErrorTest::test_pycurl_errstr_type PASSED [ 11%] 550s tests/failonerror_test.py::FailonerrorTest::test_failonerror SKIPPED [ 11%] 550s tests/failonerror_test.py::FailonerrorTest::test_failonerror_status_line_invalid_utf8_python2 SKIPPED [ 12%] 550s tests/failonerror_test.py::FailonerrorTest::test_failonerror_status_line_invalid_utf8_python3 SKIPPED [ 12%] 550s tests/ftp_test.py::FtpTest::test_epsv PASSED [ 12%] 550s tests/ftp_test.py::FtpTest::test_get_ftp PASSED [ 12%] 550s tests/ftp_test.py::FtpTest::test_quote PASSED [ 12%] 550s tests/getinfo_test.py::GetinfoTest::test_getinfo FAILED [ 13%] 550s tests/getinfo_test.py::GetinfoTest::test_getinfo_content_type_invalid_utf8_python2 SKIPPED [ 13%] 550s tests/getinfo_test.py::GetinfoTest::test_getinfo_content_type_invalid_utf8_python3 FAILED [ 13%] 550s tests/getinfo_test.py::GetinfoTest::test_getinfo_cookie_invalid_utf8_python2 SKIPPED [ 13%] 551s tests/getinfo_test.py::GetinfoTest::test_getinfo_cookie_invalid_utf8_python3 FAILED [ 13%] 551s tests/getinfo_test.py::GetinfoTest::test_getinfo_effective_method FAILED [ 14%] 551s tests/getinfo_test.py::GetinfoTest::test_getinfo_number FAILED [ 14%] 551s tests/getinfo_test.py::GetinfoTest::test_getinfo_raw_content_type_invalid_utf8 SKIPPED [ 14%] 551s tests/getinfo_test.py::GetinfoTest::test_getinfo_raw_cookie_invalid_utf8 SKIPPED [ 14%] 551s tests/getinfo_test.py::GetinfoTest::test_getinfo_raw_number FAILED [ 15%] 551s tests/getinfo_test.py::GetinfoTest::test_getinfo_times FAILED [ 15%] 551s tests/getinfo_test.py::GetinfoTest::test_primary_port_etc FAILED [ 15%] 551s tests/global_init_test.py::GlobalInitTest::test_global_init_ack_eintr PASSED [ 15%] 551s tests/global_init_test.py::GlobalInitTest::test_global_init_bogus PASSED [ 15%] 551s tests/global_init_test.py::GlobalInitTest::test_global_init_default PASSED [ 16%] 551s tests/header_cb_test.py::HeaderCbTest::test_get FAILED [ 16%] 551s tests/header_test.py::HeaderTest::test_ascii_string_header FAILED [ 16%] 551s tests/header_test.py::HeaderTest::test_ascii_unicode_header FAILED [ 16%] 552s tests/header_test.py::HeaderTest::test_encoded_unicode_header FAILED [ 17%] 552s tests/header_test.py::HeaderTest::test_unicode_string_header PASSED [ 17%] 552s tests/header_test.py::HeaderTest::test_unicode_unicode_header PASSED [ 17%] 552s tests/high_level_curl_test.py::RelativeUrlTest::test_get FAILED [ 17%] 552s tests/high_level_curl_test.py::RelativeUrlTest::test_head FAILED [ 17%] 552s tests/high_level_curl_test.py::RelativeUrlTest::test_reuse FAILED [ 18%] 552s tests/info_constants_test.py::InfoConstantsTest::test_condition_unmet PASSED [ 18%] 552s tests/info_test.py::InfoTest::test_ssl_engines PASSED [ 18%] 552s tests/internals_test.py::InternalsTest::test_add_closed_handle PASSED [ 18%] 552s tests/internals_test.py::InternalsTest::test_add_handle_on_multiple_stacks PASSED [ 18%] 552s tests/internals_test.py::InternalsTest::test_add_handle_twice PASSED [ 19%] 552s tests/internals_test.py::InternalsTest::test_constant_aliasing PASSED [ 19%] 552s tests/internals_test.py::InternalsTest::test_copy_curl PASSED [ 19%] 552s tests/internals_test.py::InternalsTest::test_copy_multi PASSED [ 19%] 552s tests/internals_test.py::InternalsTest::test_copy_share PASSED [ 20%] 552s tests/internals_test.py::InternalsTest::test_move_handle PASSED [ 20%] 552s tests/internals_test.py::InternalsTest::test_pickle_curl PASSED [ 20%] 552s tests/internals_test.py::InternalsTest::test_pickle_dumps_curl PASSED [ 20%] 552s tests/internals_test.py::InternalsTest::test_pickle_dumps_multi PASSED [ 20%] 552s tests/internals_test.py::InternalsTest::test_pickle_dumps_share PASSED [ 21%] 552s tests/internals_test.py::InternalsTest::test_pickle_multi PASSED [ 21%] 552s tests/internals_test.py::InternalsTest::test_pickle_share PASSED [ 21%] 552s tests/internals_test.py::InternalsTest::test_remove_invalid_closed_handle PASSED [ 21%] 552s tests/internals_test.py::InternalsTest::test_remove_invalid_handle PASSED [ 22%] 552s tests/memory_mgmt_test.py::MemoryMgmtTest::test_cyclic_gc PASSED [ 22%] 552s tests/memory_mgmt_test.py::MemoryMgmtTest::test_debugfunction_collection PASSED [ 22%] 556s tests/memory_mgmt_test.py::MemoryMgmtTest::test_form_bufferptr_memory_leak_gh267 PASSED [ 22%] 556s tests/memory_mgmt_test.py::MemoryMgmtTest::test_headerfunction_collection PASSED [ 22%] 556s tests/memory_mgmt_test.py::MemoryMgmtTest::test_headerfunction_refcounting PASSED [ 23%] 557s tests/memory_mgmt_test.py::MemoryMgmtTest::test_ioctlfunction_collection PASSED [ 23%] 565s tests/memory_mgmt_test.py::MemoryMgmtTest::test_multi_collection PASSED [ 23%] 573s tests/memory_mgmt_test.py::MemoryMgmtTest::test_multi_cycle PASSED [ 23%] 574s tests/memory_mgmt_test.py::MemoryMgmtTest::test_opensocketfunction_collection PASSED [ 24%] 574s tests/memory_mgmt_test.py::MemoryMgmtTest::test_postfields_unicode_memory_leak_gh252 PASSED [ 24%] 575s tests/memory_mgmt_test.py::MemoryMgmtTest::test_progressfunction_collection PASSED [ 24%] 575s tests/memory_mgmt_test.py::MemoryMgmtTest::test_readdata_refcounting PASSED [ 24%] 575s tests/memory_mgmt_test.py::MemoryMgmtTest::test_readfunction_collection PASSED [ 24%] 575s tests/memory_mgmt_test.py::MemoryMgmtTest::test_readfunction_refcounting PASSED [ 25%] 583s tests/memory_mgmt_test.py::MemoryMgmtTest::test_refcounting_bug_in_reset PASSED [ 25%] 583s tests/memory_mgmt_test.py::MemoryMgmtTest::test_reference_counting PASSED [ 25%] 583s tests/memory_mgmt_test.py::MemoryMgmtTest::test_seekfunction_collection PASSED [ 25%] 592s tests/memory_mgmt_test.py::MemoryMgmtTest::test_share_collection PASSED [ 25%] 600s tests/memory_mgmt_test.py::MemoryMgmtTest::test_share_cycle PASSED [ 26%] 600s tests/memory_mgmt_test.py::MemoryMgmtTest::test_writedata_refcounting PASSED [ 26%] 600s tests/memory_mgmt_test.py::MemoryMgmtTest::test_writefunction_collection PASSED [ 26%] 601s tests/memory_mgmt_test.py::MemoryMgmtTest::test_writefunction_refcounting PASSED [ 26%] 601s tests/memory_mgmt_test.py::MemoryMgmtTest::test_writeheader_refcounting PASSED [ 27%] 601s tests/memory_mgmt_test.py::MemoryMgmtTest::test_xferinfofunction_collection PASSED [ 27%] 601s tests/multi_callback_test.py::MultiCallbackTest::test_easy_close FAILED [ 27%] 601s tests/multi_callback_test.py::MultiCallbackTest::test_easy_pause_unpause FAILED [ 27%] 601s tests/multi_callback_test.py::MultiCallbackTest::test_multi_add_handle PASSED [ 27%] 601s tests/multi_callback_test.py::MultiCallbackTest::test_multi_remove_handle PASSED [ 28%] 601s tests/multi_callback_test.py::MultiCallbackTest::test_multi_socket_action PASSED [ 28%] 601s tests/multi_memory_mgmt_test.py::MultiMemoryMgmtTest::test_curl_ref PASSED [ 28%] 602s tests/multi_memory_mgmt_test.py::MultiMemoryMgmtTest::test_opensocketfunction_collection PASSED [ 28%] 602s tests/multi_memory_mgmt_test.py::MultiMemoryMgmtTest::test_seekfunction_collection PASSED [ 29%] 602s tests/multi_option_constants_test.py::MultiOptionConstantsTest::test_multi_callback_opts PASSED [ 29%] 602s tests/multi_option_constants_test.py::MultiOptionConstantsTest::test_multi_pipeline_opts PASSED [ 29%] 602s tests/multi_option_constants_test.py::MultiOptionConstantsTest::test_multi_pipelining_server_bl PASSED [ 29%] 602s tests/multi_option_constants_test.py::MultiOptionConstantsTest::test_multi_pipelining_site_bl PASSED [ 29%] 602s tests/multi_option_constants_test.py::MultiOptionConstantsTest::test_multi_unsetopt_unsupported PASSED [ 30%] 602s tests/multi_option_constants_test.py::MultiOptionConstantsTest::test_option_constant_on_curlmulti PASSED [ 30%] 602s tests/multi_option_constants_test.py::MultiOptionConstantsTest::test_option_constant_on_pycurl PASSED [ 30%] 602s tests/multi_option_constants_test.py::MultiOptionConstantsTest::test_pipe_constants PASSED [ 30%] 602s tests/multi_socket_select_test.py::MultiSocketSelectTest::test_multi_socket_select FAILED [ 31%] 603s tests/multi_socket_test.py::MultiSocketTest::test_multi_socket FAILED [ 31%] 603s tests/multi_test.py::MultiTest::test_adding_closed_handle_close_then_remove FAILED [ 31%] 603s tests/multi_test.py::MultiTest::test_adding_closed_handle_close_without_removing FAILED [ 31%] 603s tests/multi_test.py::MultiTest::test_adding_closed_handle_remove_then_close FAILED [ 31%] 603s tests/multi_test.py::MultiTest::test_keyword_arguments PASSED [ 32%] 603s tests/multi_test.py::MultiTest::test_multi FAILED [ 32%] 603s tests/multi_test.py::MultiTest::test_multi_close PASSED [ 32%] 603s tests/multi_test.py::MultiTest::test_multi_close_twice PASSED [ 32%] 603s tests/multi_test.py::MultiTest::test_multi_info_read FAILED [ 32%] 603s tests/multi_test.py::MultiTest::test_multi_info_read_some PASSED [ 33%] 604s tests/multi_test.py::MultiTest::test_multi_select FAILED [ 33%] 604s tests/multi_test.py::MultiTest::test_multi_select_fdset FAILED [ 33%] 604s tests/multi_test.py::MultiTest::test_multi_status_codes FAILED [ 33%] 604s tests/multi_test.py::MultiTest::test_positional_arguments PASSED [ 34%] 604s tests/multi_timer_test.py::MultiSocketTest::test_multi_timer FAILED [ 34%] 604s tests/open_socket_cb_test.py::OpenSocketCbTest::test_socket_bad PASSED [ 34%] 604s tests/open_socket_cb_test.py::OpenSocketCbTest::test_socket_open FAILED [ 34%] 604s tests/open_socket_cb_test.py::OpenSocketCbTest::test_socket_open_bad PASSED [ 34%] 604s tests/open_socket_cb_test.py::OpenSocketCbTest::test_socket_open_ipv6 PASSED [ 35%] 604s tests/open_socket_cb_test.py::OpenSocketCbTest::test_socket_open_none PASSED [ 35%] 604s tests/open_socket_cb_test.py::OpenSocketCbTest::test_socket_open_unix PASSED [ 35%] 604s tests/open_socket_cb_test.py::OpenSocketCbTest::test_unset_socket_open PASSED [ 35%] 604s tests/option_constants_test.py::OptionConstantsTest::test_aws_sigv4 PASSED [ 36%] 604s tests/option_constants_test.py::OptionConstantsTest::test_cainfo PASSED [ 36%] 604s tests/option_constants_test.py::OptionConstantsTest::test_cainfo_blob SKIPPED [ 36%] 604s tests/option_constants_test.py::OptionConstantsTest::test_capath PASSED [ 36%] 604s tests/option_constants_test.py::OptionConstantsTest::test_crlfile PASSED [ 36%] 604s tests/option_constants_test.py::OptionConstantsTest::test_curlproxy_http_1_0_setopt PASSED [ 37%] 604s tests/option_constants_test.py::OptionConstantsTest::test_dns_servers PASSED [ 37%] 604s tests/option_constants_test.py::OptionConstantsTest::test_egdsocket PASSED [ 37%] 604s tests/option_constants_test.py::OptionConstantsTest::test_gssapi_delegation_options PASSED [ 37%] 604s tests/option_constants_test.py::OptionConstantsTest::test_haproxy_client_ip PASSED [ 37%] 604s tests/option_constants_test.py::OptionConstantsTest::test_http09_allowed_option PASSED [ 38%] 604s tests/option_constants_test.py::OptionConstantsTest::test_httpauth_digest_ie PASSED [ 38%] 604s tests/option_constants_test.py::OptionConstantsTest::test_issuercert PASSED [ 38%] 604s tests/option_constants_test.py::OptionConstantsTest::test_issuercert_blob PASSED [ 38%] 604s tests/option_constants_test.py::OptionConstantsTest::test_krb4level PASSED [ 39%] 604s tests/option_constants_test.py::OptionConstantsTest::test_krblevel PASSED [ 39%] 604s tests/option_constants_test.py::OptionConstantsTest::test_legacy_proxy_sslversion_options SKIPPED [ 39%] 604s tests/option_constants_test.py::OptionConstantsTest::test_legacy_sslversion_options SKIPPED [ 39%] 604s tests/option_constants_test.py::OptionConstantsTest::test_mail_auth PASSED [ 39%] 604s tests/option_constants_test.py::OptionConstantsTest::test_mail_from PASSED [ 40%] 604s tests/option_constants_test.py::OptionConstantsTest::test_mail_rcpt PASSED [ 40%] 604s tests/option_constants_test.py::OptionConstantsTest::test_noproxy_setopt PASSED [ 40%] 604s tests/option_constants_test.py::OptionConstantsTest::test_operation_timedout_constant PASSED [ 40%] 604s tests/option_constants_test.py::OptionConstantsTest::test_pinnedpublickey PASSED [ 41%] 604s tests/option_constants_test.py::OptionConstantsTest::test_postredir PASSED [ 41%] 604s tests/option_constants_test.py::OptionConstantsTest::test_postredir_flags PASSED [ 41%] 604s tests/option_constants_test.py::OptionConstantsTest::test_postredir_post_303 PASSED [ 41%] 604s tests/option_constants_test.py::OptionConstantsTest::test_postredir_setopt PASSED [ 41%] 604s tests/option_constants_test.py::OptionConstantsTest::test_protocols_setopt PASSED [ 42%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_cainfo_blob SKIPPED [ 42%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_capath PASSED [ 42%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_crlfile PASSED [ 42%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_issuercert PASSED [ 43%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_issuercert_blob PASSED [ 43%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_keypasswd PASSED [ 43%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_pinnedpublickey PASSED [ 43%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_service_name PASSED [ 43%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_ssl_cipher_list SKIPPED [ 44%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_ssl_options PASSED [ 44%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_ssl_verifyhost PASSED [ 44%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_ssl_verifypeer PASSED [ 44%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_sslcert PASSED [ 44%] 604s tests/option_constants_test.py::OptionConstantsTest::test_proxy_sslcert_blob PASSED [ 45%] 605s tests/option_constants_test.py::OptionConstantsTest::test_proxy_sslcerttype PASSED [ 45%] 605s tests/option_constants_test.py::OptionConstantsTest::test_proxy_sslkey PASSED [ 45%] 605s tests/option_constants_test.py::OptionConstantsTest::test_proxy_sslkey_blob PASSED [ 45%] 605s tests/option_constants_test.py::OptionConstantsTest::test_proxy_sslkeytype PASSED [ 46%] 605s tests/option_constants_test.py::OptionConstantsTest::test_proxy_sslversion_options PASSED [ 46%] 605s tests/option_constants_test.py::OptionConstantsTest::test_proxy_tls13_ciphers SKIPPED [ 46%] 605s tests/option_constants_test.py::OptionConstantsTest::test_proxy_tlsauth PASSED [ 46%] 605s tests/option_constants_test.py::OptionConstantsTest::test_random_file PASSED [ 46%] 605s tests/option_constants_test.py::OptionConstantsTest::test_redir_post_303 PASSED [ 47%] 605s tests/option_constants_test.py::OptionConstantsTest::test_redir_protocols_setopt PASSED [ 47%] 605s tests/option_constants_test.py::OptionConstantsTest::test_request_target_option PASSED [ 47%] 605s tests/option_constants_test.py::OptionConstantsTest::test_service_name PASSED [ 47%] 605s tests/option_constants_test.py::OptionConstantsTest::test_socks5_gssapi_nec_setopt PASSED [ 48%] 605s tests/option_constants_test.py::OptionConstantsTest::test_socks5_gssapi_service_setopt PASSED [ 48%] 605s tests/option_constants_test.py::OptionConstantsTest::test_ssh_knownhosts_setopt PASSED [ 48%] 605s tests/option_constants_test.py::OptionConstantsTest::test_ssl_cipher_list SKIPPED [ 48%] 605s tests/option_constants_test.py::OptionConstantsTest::test_ssl_enable_alpn PASSED [ 48%] 605s tests/option_constants_test.py::OptionConstantsTest::test_ssl_enable_npn PASSED [ 49%] 605s tests/option_constants_test.py::OptionConstantsTest::test_ssl_falsestart SKIPPED [ 49%] 605s tests/option_constants_test.py::OptionConstantsTest::test_ssl_option_no_revoke PASSED [ 49%] 605s tests/option_constants_test.py::OptionConstantsTest::test_ssl_options PASSED [ 49%] 605s tests/option_constants_test.py::OptionConstantsTest::test_ssl_sessionid_cache PASSED [ 50%] 605s tests/option_constants_test.py::OptionConstantsTest::test_ssl_verifyhost PASSED [ 50%] 605s tests/option_constants_test.py::OptionConstantsTest::test_ssl_verifystatus SKIPPED [ 50%] 605s tests/option_constants_test.py::OptionConstantsTest::test_sslcert_blob PASSED [ 50%] 605s tests/option_constants_test.py::OptionConstantsTest::test_sslkey_blob PASSED [ 50%] 605s tests/option_constants_test.py::OptionConstantsTest::test_sslversion_7_34_0 PASSED [ 51%] 605s tests/option_constants_test.py::OptionConstantsTest::test_sslversion_options PASSED [ 51%] 605s tests/option_constants_test.py::OptionConstantsTest::test_tftp_blksize_setopt PASSED [ 51%] 605s tests/option_constants_test.py::OptionConstantsTest::test_tls13_ciphers SKIPPED [ 51%] 605s tests/option_constants_test.py::OptionConstantsTest::test_unix_socket_path PASSED [ 51%] 605s tests/option_constants_test.py::OptionConstantsTest::test_username PASSED [ 52%] 605s tests/option_constants_test.py::OptionConstantsTest::test_wildcardmatch PASSED [ 52%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_accept_encoding PASSED [ 52%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_accepttimeout_ms PASSED [ 52%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_append PASSED [ 53%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_cookielist_constants PASSED [ 53%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_cookiesession PASSED [ 53%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_default_protocol PASSED [ 53%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_dirlistonly PASSED [ 53%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_encoding PASSED [ 54%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_expect_100_timeout_ms PASSED [ 54%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_ftp_use_pret PASSED [ 54%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_headeropt PASSED [ 54%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_http_version PASSED [ 55%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_http_version_2 PASSED [ 55%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_http_version_2_0 PASSED [ 55%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_http_version_2prior_knowledge PASSED [ 55%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_http_version_2tls PASSED [ 55%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_http_version_3 SKIPPED [ 56%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_http_version_3only SKIPPED [ 56%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_keypasswd PASSED [ 56%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_login_options PASSED [ 56%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_path_as_is PASSED [ 56%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_pipewait PASSED [ 57%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_proto_smb PASSED [ 57%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_sasl_ir PASSED [ 57%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_sockopt_constants PASSED [ 57%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_tcp_keepalive PASSED [ 58%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_tcp_keepidle PASSED [ 58%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_tcp_keepintvl PASSED [ 58%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_telnetoptions PASSED [ 58%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_tlsauth PASSED [ 58%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_transfer_encoding PASSED [ 59%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_use_ssl PASSED [ 59%] 605s tests/option_constants_test.py::OptionConstantsSettingTest::test_xauth_bearer PASSED [ 59%] 608s tests/pause_test.py::PauseTest::test_pause_via_call FAILED [ 59%] 612s tests/pause_test.py::PauseTest::test_pause_via_return FAILED [ 60%] 612s tests/perform_test.py::PerformTest::test_perform_rb FAILED [ 60%] 612s tests/perform_test.py::PerformTest::test_perform_rb_invalid_utf8 FAILED [ 60%] 612s tests/perform_test.py::PerformTest::test_perform_rb_utf8 FAILED [ 60%] 612s tests/perform_test.py::PerformTest::test_perform_rs FAILED [ 60%] 612s tests/perform_test.py::PerformTest::test_perform_rs_invalid_utf8_python2 SKIPPED [ 61%] 612s tests/perform_test.py::PerformTest::test_perform_rs_invalid_utf8_python3 FAILED [ 61%] 612s tests/perform_test.py::PerformTest::test_perform_rs_utf8 FAILED [ 61%] 612s tests/post_test.py::PostTest::test_post_byte_buffer FAILED [ 61%] 613s tests/post_test.py::PostTest::test_post_fields_with_ampersand FAILED [ 62%] 613s tests/post_test.py::PostTest::test_post_file FAILED [ 62%] 613s tests/post_test.py::PostTest::test_post_list_of_list_of_lists FAILED [ 62%] 614s tests/post_test.py::PostTest::test_post_list_of_tuple_of_tuples FAILED [ 62%] 614s tests/post_test.py::PostTest::test_post_multiple_fields FAILED [ 62%] 614s tests/post_test.py::PostTest::test_post_single_field FAILED [ 63%] 614s tests/post_test.py::PostTest::test_post_tuple_of_lists_of_tuples FAILED [ 63%] 614s tests/post_test.py::PostTest::test_post_tuple_of_tuple_of_lists FAILED [ 63%] 615s tests/post_test.py::PostTest::test_post_tuple_of_tuples_of_tuples FAILED [ 63%] 615s tests/post_test.py::PostTest::test_post_unicode_buffer FAILED [ 63%] 615s tests/post_test.py::PostTest::test_post_with_null_byte FAILED [ 64%] 615s tests/protocol_constants_test.py::ProtocolConstantsTest::test_7_19_4_protocols PASSED [ 64%] 615s tests/protocol_constants_test.py::ProtocolConstantsTest::test_7_20_0_protocols PASSED [ 64%] 615s tests/protocol_constants_test.py::ProtocolConstantsTest::test_7_21_0_protocols PASSED [ 64%] 615s tests/protocol_constants_test.py::ProtocolConstantsTest::test_7_21_2_protocols PASSED [ 65%] 615s tests/read_cb_test.py::ReadCbTest::test_post_with_read_callback FAILED [ 65%] 616s tests/read_cb_test.py::ReadCbTest::test_post_with_read_callback_returning_bytes FAILED [ 65%] 616s tests/read_cb_test.py::ReadCbTest::test_post_with_read_callback_returning_bytes_with_multibyte FAILED [ 65%] 616s tests/read_cb_test.py::ReadCbTest::test_post_with_read_callback_returning_bytes_with_nulls FAILED [ 65%] 616s tests/read_cb_test.py::ReadCbTest::test_post_with_read_callback_returning_unicode FAILED [ 66%] 617s tests/read_cb_test.py::ReadCbTest::test_post_with_read_callback_returning_unicode_with_multibyte PASSED [ 66%] 617s tests/read_cb_test.py::ReadCbTest::test_post_with_read_callback_returning_unicode_with_nulls FAILED [ 66%] 617s tests/readdata_test.py::ReaddataTest::test_post_with_read_callback_returning_unicode FAILED [ 66%] 617s tests/readdata_test.py::ReaddataTest::test_post_with_read_callback_returning_unicode_with_multibyte PASSED [ 67%] 617s tests/readdata_test.py::ReaddataTest::test_post_with_read_callback_returning_unicode_with_nulls FAILED [ 67%] 618s tests/readdata_test.py::ReaddataTest::test_post_with_read_returning_bytes FAILED [ 67%] 618s tests/readdata_test.py::ReaddataTest::test_post_with_read_returning_bytes_with_multibyte FAILED [ 67%] 618s tests/readdata_test.py::ReaddataTest::test_post_with_read_returning_bytes_with_nulls FAILED [ 67%] 618s tests/readdata_test.py::ReaddataTest::test_readdata_and_readfunction_file_like FAILED [ 68%] 619s tests/readdata_test.py::ReaddataTest::test_readdata_and_readfunction_real_file FAILED [ 68%] 619s tests/readdata_test.py::ReaddataTest::test_readdata_file_binary FAILED [ 68%] 619s tests/readdata_test.py::ReaddataTest::test_readdata_file_like FAILED [ 68%] 619s tests/readdata_test.py::ReaddataTest::test_readdata_file_text FAILED [ 68%] 619s tests/readdata_test.py::ReaddataTest::test_readdata_not_file_like PASSED [ 69%] 619s tests/readdata_test.py::ReaddataTest::test_readdata_object FAILED [ 69%] 620s tests/readdata_test.py::ReaddataTest::test_readfunction_and_readdata_file_like FAILED [ 69%] 620s tests/readdata_test.py::ReaddataTest::test_readfunction_and_readdata_real_file FAILED [ 69%] 620s tests/relative_url_test.py::RelativeUrlTest::test_get_relative FAILED [ 70%] 620s tests/reload_test.py::ReloadTest::test_reloading PASSED [ 70%] 620s tests/reset_test.py::ResetTest::test_reset FAILED [ 70%] 620s tests/resolve_test.py::ResolveTest::test_resolve FAILED [ 70%] 620s tests/seek_cb_constants_test.py::SeekCbConstantsTest::test_cantseek PASSED [ 70%] 620s tests/seek_cb_constants_test.py::SeekCbConstantsTest::test_fail PASSED [ 71%] 620s tests/seek_cb_constants_test.py::SeekCbConstantsTest::test_ok PASSED [ 71%] 620s tests/seek_cb_test.py::SeekCbTest::test_seek_function PASSED [ 71%] 709s tests/setopt_lifecycle_test.py::SetoptLifecycleTest::test_postfields_lifecycle FAILED [ 71%] 709s tests/setopt_string_test.py::SetoptTest::test_setopt_string FAILED [ 72%] 709s tests/setopt_string_test.py::SetoptTest::test_setopt_string_integer PASSED [ 72%] 709s tests/setopt_test.py::SetoptTest::test_boolean_value PASSED [ 72%] 709s tests/setopt_test.py::SetoptTest::test_float_value_for_integer_option PASSED [ 72%] 709s tests/setopt_test.py::SetoptTest::test_httpheader_list PASSED [ 72%] 709s tests/setopt_test.py::SetoptTest::test_httpheader_tuple PASSED [ 73%] 709s tests/setopt_test.py::SetoptTest::test_httpheader_unicode PASSED [ 73%] 709s tests/setopt_test.py::SetoptTest::test_integer_value PASSED [ 73%] 709s tests/setopt_test.py::SetoptTest::test_integer_value_for_string_option PASSED [ 73%] 709s tests/setopt_test.py::SetoptTest::test_large_options PASSED [ 74%] 709s tests/setopt_test.py::SetoptTest::test_proxyheader_list PASSED [ 74%] 709s tests/setopt_test.py::SetoptTest::test_proxyheader_tuple PASSED [ 74%] 709s tests/setopt_test.py::SetoptTest::test_proxyheader_unicode PASSED [ 74%] 709s tests/setopt_test.py::SetoptTest::test_set_httpheader_none FAILED [ 74%] 709s tests/setopt_test.py::SetoptTest::test_set_proxyheader_none PASSED [ 75%] 709s tests/setopt_test.py::SetoptTest::test_string_value PASSED [ 75%] 709s tests/setopt_test.py::SetoptTest::test_string_value_for_integer_option PASSED [ 75%] 709s tests/setopt_test.py::SetoptTest::test_unset_encoding PASSED [ 75%] 709s tests/setopt_test.py::SetoptTest::test_unset_httpheader FAILED [ 75%] 709s tests/setopt_test.py::SetoptTest::test_unset_proxyheader PASSED [ 76%] 709s tests/setopt_unicode_test.py::SetoptUnicodeTest::test_ascii_string FAILED [ 76%] 709s tests/setopt_unicode_test.py::SetoptUnicodeTest::test_unicode_encoded FAILED [ 76%] 709s tests/setopt_unicode_test.py::SetoptUnicodeTest::test_unicode_string PASSED [ 76%] 709s tests/setup_test.py::SetupTest::test_does_not_use_static_libs PASSED [ 77%] 710s tests/setup_test.py::SetupTest::test_invalid_option_not_consumed PASSED [ 77%] 710s tests/setup_test.py::SetupTest::test_invalid_option_suffix_not_consumed PASSED [ 77%] 710s tests/setup_test.py::SetupTest::test_libcurl_ssl_gnutls PASSED [ 77%] 710s tests/setup_test.py::SetupTest::test_libcurl_ssl_nss PASSED [ 77%] 710s tests/setup_test.py::SetupTest::test_libcurl_ssl_openssl PASSED [ 78%] 711s tests/setup_test.py::SetupTest::test_libcurl_ssl_unrecognized PASSED [ 78%] 711s tests/setup_test.py::SetupTest::test_no_ssl PASSED [ 78%] 711s tests/setup_test.py::SetupTest::test_no_ssl_define PASSED [ 78%] 711s tests/setup_test.py::SetupTest::test_no_ssl_feature_with_libcurl_dll PASSED [ 79%] 711s tests/setup_test.py::SetupTest::test_no_ssl_feature_with_ssl PASSED [ 79%] 711s tests/setup_test.py::SetupTest::test_sanity_check PASSED [ 79%] 712s tests/setup_test.py::SetupTest::test_ssl_feature_only PASSED [ 79%] 712s tests/setup_test.py::SetupTest::test_ssl_feature_sets_ssl_define PASSED [ 79%] 712s tests/setup_test.py::SetupTest::test_ssl_in_libs PASSED [ 80%] 712s tests/setup_test.py::SetupTest::test_ssl_in_libs_sets_ssl_define PASSED [ 80%] 712s tests/setup_test.py::SetupTest::test_ssl_in_static_libs PASSED [ 80%] 713s tests/setup_test.py::SetupTest::test_ssl_in_static_libs_sets_ssl_define PASSED [ 80%] 713s tests/setup_test.py::SetupTest::test_valid_option_consumes_argv PASSED [ 81%] 713s tests/setup_test.py::SetupTest::test_with_gnutls_library PASSED [ 81%] 713s tests/setup_test.py::SetupTest::test_with_nss_library PASSED [ 81%] 714s tests/setup_test.py::SetupTest::test_with_openssl_library PASSED [ 81%] 714s tests/setup_test.py::SetupTest::test_with_ssl_library PASSED [ 81%] 714s tests/share_test.py::ShareTest::test_keyword_arguments PASSED [ 82%] 714s tests/share_test.py::ShareTest::test_positional_arguments PASSED [ 82%] 714s tests/share_test.py::ShareTest::test_share FAILED [ 82%] 714s tests/share_test.py::ShareTest::test_share_close PASSED [ 82%] 714s tests/share_test.py::ShareTest::test_share_close_twice PASSED [ 82%] 714s tests/sockopt_cb_test.py::SockoptCbTest::test_sockoptfunction_bogus_return PASSED [ 83%] 714s tests/sockopt_cb_test.py::SockoptCbTest::test_sockoptfunction_fail PASSED [ 83%] 714s tests/sockopt_cb_test.py::SockoptCbTest::test_sockoptfunction_ok PASSED [ 83%] 714s tests/sockopt_cb_test.py::SockoptCbTest::test_socktype_accept PASSED [ 83%] 714s tests/sockopt_cb_test.py::SockoptCbTest::test_socktype_ipcxn PASSED [ 84%] 714s tests/sockopt_cb_test.py::SockoptCbUnsetTest::test_sockoptfunction_none PASSED [ 84%] 714s tests/sockopt_cb_test.py::SockoptCbUnsetTest::test_sockoptfunction_unset PASSED [ 84%] 714s tests/ssh_key_cb_test.py::SshKeyCbUnsetTest::test_keyfunction_none PASSED [ 84%] 714s tests/ssh_key_cb_test.py::SshKeyCbUnsetTest::test_keyfunction_unset PASSED [ 84%] 714s tests/subclass_test.py::SubclassTest::test_baseclass_init PASSED [ 85%] 714s tests/subclass_test.py::SubclassTest::test_subclass_create PASSED [ 85%] 714s tests/subclass_test.py::SubclassTest::test_subclass_init PASSED [ 85%] 714s tests/subclass_test.py::SubclassTest::test_subclass_method PASSED [ 85%] 714s tests/subclass_test.py::SubclassTest::test_subclass_method_override PASSED [ 86%] 714s tests/unset_range_test.py::UnsetRangeTest::test_unset_range PASSED [ 86%] 714s tests/user_agent_string_test.py::UserAgentStringTest::test_pycurl_user_agent_string FAILED [ 86%] 714s tests/version_comparison_test.py::VersionComparisonTest::test_comparison PASSED [ 86%] 714s tests/version_constants_test.py::VersionConstantsTest::test_altsvc PASSED [ 86%] 714s tests/version_constants_test.py::VersionConstantsTest::test_asynchdns PASSED [ 87%] 715s tests/version_constants_test.py::VersionConstantsTest::test_brotli PASSED [ 87%] 715s tests/version_constants_test.py::VersionConstantsTest::test_conv PASSED [ 87%] 715s tests/version_constants_test.py::VersionConstantsTest::test_curldebug PASSED [ 87%] 715s tests/version_constants_test.py::VersionConstantsTest::test_debug PASSED [ 87%] 715s tests/version_constants_test.py::VersionConstantsTest::test_gssapi PASSED [ 88%] 715s tests/version_constants_test.py::VersionConstantsTest::test_gssnegotiate PASSED [ 88%] 715s tests/version_constants_test.py::VersionConstantsTest::test_hsts PASSED [ 88%] 715s tests/version_constants_test.py::VersionConstantsTest::test_http2 PASSED [ 88%] 715s tests/version_constants_test.py::VersionConstantsTest::test_http3 PASSED [ 89%] 715s tests/version_constants_test.py::VersionConstantsTest::test_https_proxy PASSED [ 89%] 715s tests/version_constants_test.py::VersionConstantsTest::test_idn PASSED [ 89%] 715s tests/version_constants_test.py::VersionConstantsTest::test_ipv6 PASSED [ 89%] 715s tests/version_constants_test.py::VersionConstantsTest::test_kerberos4 PASSED [ 89%] 715s tests/version_constants_test.py::VersionConstantsTest::test_kerberos5 PASSED [ 90%] 715s tests/version_constants_test.py::VersionConstantsTest::test_largefile PASSED [ 90%] 715s tests/version_constants_test.py::VersionConstantsTest::test_libz PASSED [ 90%] 715s tests/version_constants_test.py::VersionConstantsTest::test_multi_ssl PASSED [ 90%] 715s tests/version_constants_test.py::VersionConstantsTest::test_ntlm PASSED [ 91%] 715s tests/version_constants_test.py::VersionConstantsTest::test_ntlm_wb PASSED [ 91%] 715s tests/version_constants_test.py::VersionConstantsTest::test_psl PASSED [ 91%] 715s tests/version_constants_test.py::VersionConstantsTest::test_spnego PASSED [ 91%] 715s tests/version_constants_test.py::VersionConstantsTest::test_ssl PASSED [ 91%] 715s tests/version_constants_test.py::VersionConstantsTest::test_sspi PASSED [ 92%] 715s tests/version_constants_test.py::VersionConstantsTest::test_tlsauth_srp PASSED [ 92%] 715s tests/version_constants_test.py::VersionConstantsTest::test_unicode PASSED [ 92%] 715s tests/version_constants_test.py::VersionConstantsTest::test_unix_sockets PASSED [ 92%] 715s tests/version_constants_test.py::VersionConstantsTest::test_zstd PASSED [ 93%] 715s tests/version_test.py::VersionTest::test_libcurl_presence PASSED [ 93%] 715s tests/version_test.py::VersionTest::test_pycurl_presence_and_case PASSED [ 93%] 715s tests/weakref_test.py::WeakrefTest::test_easy PASSED [ 93%] 715s tests/weakref_test.py::WeakrefTest::test_multi PASSED [ 93%] 715s tests/weakref_test.py::WeakrefTest::test_share PASSED [ 94%] 715s tests/write_abort_test.py::WriteAbortTest::test_write_abort PASSED [ 94%] 715s tests/write_cb_bogus_test.py::WriteAbortTest::test_write_cb_returning_float PASSED [ 94%] 715s tests/write_cb_bogus_test.py::WriteAbortTest::test_write_cb_returning_string PASSED [ 94%] 715s tests/write_test.py::WriteTest::test_headerfunction_and_writefunction FAILED [ 94%] 715s tests/write_test.py::WriteTest::test_headerfunction_and_writeheader_file_like PASSED [ 95%] 715s tests/write_test.py::WriteTest::test_headerfunction_and_writeheader_real_file PASSED [ 95%] 715s tests/write_test.py::WriteTest::test_write_to_file_like FAILED [ 95%] 715s tests/write_test.py::WriteTest::test_write_to_file_like_then_real_file FAILED [ 95%] 715s tests/write_test.py::WriteTest::test_write_to_file_via_function FAILED [ 96%] 716s tests/write_test.py::WriteTest::test_write_to_file_via_object FAILED [ 96%] 716s tests/write_test.py::WriteTest::test_write_to_tempfile_via_function FAILED [ 96%] 716s tests/write_test.py::WriteTest::test_write_to_tempfile_via_object FAILED [ 96%] 716s tests/write_test.py::WriteTest::test_writedata_and_writefunction_file_like FAILED [ 96%] 716s tests/write_test.py::WriteTest::test_writedata_and_writefunction_real_file FAILED [ 97%] 716s tests/write_test.py::WriteTest::test_writedata_not_file_like PASSED [ 97%] 716s tests/write_test.py::WriteTest::test_writefunction_and_writedata_file_like FAILED [ 97%] 716s tests/write_test.py::WriteTest::test_writefunction_and_writedata_real_file FAILED [ 97%] 716s tests/write_test.py::WriteTest::test_writeheader_and_headerfunction_file_like PASSED [ 98%] 716s tests/write_test.py::WriteTest::test_writeheader_and_headerfunction_real_file PASSED [ 98%] 716s tests/write_test.py::WriteTest::test_writeheader_and_writedata_file_like FAILED [ 98%] 716s tests/write_test.py::WriteTest::test_writeheader_and_writedata_real_file FAILED [ 98%] 717s tests/write_test.py::WriteTest::test_writeheader_not_file_like PASSED [ 98%] 717s tests/write_to_stringio_test.py::WriteToStringioTest::test_write_to_bytesio FAILED [ 99%] 717s tests/write_to_stringio_test.py::WriteToStringioTest::test_write_to_stringio PASSED [ 99%] 717s tests/xferinfo_cb_test.py::XferinfoCbTest::test_sockoptfunction_exception PASSED [ 99%] 717s tests/xferinfo_cb_test.py::XferinfoCbTest::test_sockoptfunction_fail PASSED [ 99%] 717s tests/xferinfo_cb_test.py::XferinfoCbTest::test_xferinfo_cb PASSED [100%] 717s 717s =================================== FAILURES =================================== 717s __________________ CertinfoTest.test_request_without_certinfo __________________ 717s 717s self = 717s 717s @util.min_libcurl(7, 19, 1) 717s @util.only_ssl 717s def test_request_without_certinfo(self): 717s self.curl.setopt(pycurl.URL, 'https://localhost:8383/success') 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEFUNCTION, sio.write) 717s # self signed certificate 717s self.curl.setopt(pycurl.SSL_VERIFYPEER, 0) 717s > self.curl.perform() 717s E pycurl.error: (56, 'CONNECT tunnel failed, response 403') 717s 717s tests/certinfo_test.py:34: error 717s _________________________ DebugTest.test_debug_unicode _________________________ 717s 717s self = 717s 717s def test_debug_unicode(self): 717s self.curl.setopt(pycurl.VERBOSE, 1) 717s self.curl.setopt(pycurl.DEBUGFUNCTION, self.debug_function) 717s self.curl.setopt(pycurl.URL, 'http://%s:8380/utf8_body' % localhost) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEFUNCTION, sio.write) 717s self.curl.perform() 717s 717s # 3 = response body 717s search = util.b('\xd0\x94\xd1\x80\xd1\x83\xd0\xb6\xd0\xb1\xd0\xb0 \xd0\xbd\xd0\xb0\xd1\x80\xd0\xbe\xd0\xb4\xd0\xbe\xd0\xb2').decode('utf8') 717s > self.check(3, search.encode('utf8')) 717s 717s tests/debug_test.py:59: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = , wanted_t = 3 717s wanted_b = b'\xd0\x94\xd1\x80\xd1\x83\xd0\xb6\xd0\xb1\xd0\xb0 \xd0\xbd\xd0\xb0\xd1\x80\xd0\xbe\xd0\xb4\xd0\xbe\xd0\xb2' 717s 717s def check(self, wanted_t, wanted_b): 717s for t, b in self.debug_entries: 717s if t == wanted_t and wanted_b in b: 717s return 717s > assert False, "%d: %s not found in debug entries\nEntries are:\n%s" % \ 717s (wanted_t, repr(wanted_b), repr(self.debug_entries)) 717s E AssertionError: 3: b'\xd0\x94\xd1\x80\xd1\x83\xd0\xb6\xd0\xb1\xd0\xb0 \xd0\xbd\xd0\xb0\xd1\x80\xd0\xbe\xd0\xb4\xd0\xbe\xd0\xb2' not found in debug entries 717s E Entries are: 717s E [(0, b"Uses proxy env variable http_proxy == 'http://egress.ps7.internal:3128/'\n"), (0, b'Host egress.ps7.internal:3128 was resolved.\n'), (0, b'IPv6: (none)\n'), (0, b'IPv4: 10.151.41.5, 10.151.41.7, 10.151.41.6\n'), (0, b' Trying 10.151.41.5:3128...\n'), (0, b'Connected to egress.ps7.internal (10.151.41.5) port 3128\n'), (0, b'using HTTP/1.x\n'), (2, b'GET http://127.0.0.1:8380/utf8_body HTTP/1.1\r\nHost: 127.0.0.1:8380\r\nUser-Agent: PycURL/7.45.4 libcurl/8.12.1 GnuTLS/3.8.9 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.64.0 librtmp/2.3 OpenLDAP/2.6.9\r\nAccept: */*\r\nProxy-Connection: Keep-Alive\r\n\r\n'), (0, b'Request completely sent off\n'), (1, b'HTTP/1.1 503 Service Unavailable\r\n'), (1, b'Server: squid/5.9\r\n'), (1, b'Mime-Version: 1.0\r\n'), (1, b'Date: Sat, 03 May 2025 19:44:13 GMT\r\n'), (1, b'Content-Type: text/html;charset=utf-8\r\n'), (1, b'Content-Length: 3836\r\n'), (1, b'X-Squid-Error: ERR_CONNECT_FAIL 111\r\n'), (1, b'Vary: Accept-Language\r\n'), (1, b'Content-Language: en\r\n'), (1, b'X-Cache: MISS from prod-internal-egress-proxy-ps7-01\r\n'), (1, b'X-Cache-Lookup: MISS from prod-internal-egress-proxy-ps7-01:3128\r\n'), (1, b'Via: 1.1 prod-internal-egress-proxy-ps7-01 (squid/5.9)\r\n'), (1, b'Connection: keep-alive\r\n'), (1, b'\r\n'), (3, b'\n\n\n\nERROR: The requested URL could not be retrieved\n\n\n
\n

ERROR

\n

The requested URL could not be retrieved

\n
\n
\n\n
\n

The following error was encountered while trying to retrieve the URL: http://127.0.0.1:8380/utf8_body

\n\n
\n

Connection to 127.0.0.1 failed.

\n
\n\n

The system returned: (111) Connection refused

\n\n

The remote host or network may be down. Please try the request again.

\n\n

Your cache administrator is webmaster.

\n\n
\n
\n\n
\n\n\n'), (0, b'shutting down connection #0\n')] 717s E assert False 717s 717s tests/debug_test.py:65: AssertionError 717s ________________ DebugTest.test_perform_get_with_debug_function ________________ 717s 717s self = 717s 717s def test_perform_get_with_debug_function(self): 717s self.curl.setopt(pycurl.VERBOSE, 1) 717s self.curl.setopt(pycurl.DEBUGFUNCTION, self.debug_function) 717s self.curl.setopt(pycurl.URL, 'http://%s:8380/success' % localhost) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEFUNCTION, sio.write) 717s self.curl.perform() 717s 717s # Some checks with no particular intent 717s self.check(0, util.b('Trying')) 717s if util.pycurl_version_less_than(7, 24): 717s self.check(0, util.b('connected')) 717s else: 717s > self.check(0, util.b('Connected to %s' % localhost)) 717s 717s tests/debug_test.py:38: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s wanted_t = 0, wanted_b = b'Connected to 127.0.0.1' 717s 717s def check(self, wanted_t, wanted_b): 717s for t, b in self.debug_entries: 717s if t == wanted_t and wanted_b in b: 717s return 717s > assert False, "%d: %s not found in debug entries\nEntries are:\n%s" % \ 717s (wanted_t, repr(wanted_b), repr(self.debug_entries)) 717s E AssertionError: 0: b'Connected to 127.0.0.1' not found in debug entries 717s E Entries are: 717s E [(0, b"Uses proxy env variable http_proxy == 'http://egress.ps7.internal:3128/'\n"), (0, b'Host egress.ps7.internal:3128 was resolved.\n'), (0, b'IPv6: (none)\n'), (0, b'IPv4: 10.151.41.5, 10.151.41.7, 10.151.41.6\n'), (0, b' Trying 10.151.41.5:3128...\n'), (0, b'Connected to egress.ps7.internal (10.151.41.5) port 3128\n'), (0, b'using HTTP/1.x\n'), (2, b'GET http://127.0.0.1:8380/success HTTP/1.1\r\nHost: 127.0.0.1:8380\r\nUser-Agent: PycURL/7.45.4 libcurl/8.12.1 GnuTLS/3.8.9 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.64.0 librtmp/2.3 OpenLDAP/2.6.9\r\nAccept: */*\r\nProxy-Connection: Keep-Alive\r\n\r\n'), (0, b'Request completely sent off\n'), (1, b'HTTP/1.1 503 Service Unavailable\r\n'), (1, b'Server: squid/5.9\r\n'), (1, b'Mime-Version: 1.0\r\n'), (1, b'Date: Sat, 03 May 2025 19:44:13 GMT\r\n'), (1, b'Content-Type: text/html;charset=utf-8\r\n'), (1, b'Content-Length: 3830\r\n'), (1, b'X-Squid-Error: ERR_CONNECT_FAIL 111\r\n'), (1, b'Vary: Accept-Language\r\n'), (1, b'Content-Language: en\r\n'), (1, b'X-Cache: MISS from prod-internal-egress-proxy-ps7-01\r\n'), (1, b'X-Cache-Lookup: MISS from prod-internal-egress-proxy-ps7-01:3128\r\n'), (1, b'Via: 1.1 prod-internal-egress-proxy-ps7-01 (squid/5.9)\r\n'), (1, b'Connection: keep-alive\r\n'), (1, b'\r\n'), (3, b'\n\n\n\nERROR: The requested URL could not be retrieved\n\n\n
\n

ERROR

\n

The requested URL could not be retrieved

\n
\n
\n\n
\n

The following error was encountered while trying to retrieve the URL: http://127.0.0.1:8380/success

\n\n
\n

Connection to 127.0.0.1 failed.

\n
\n\n

The system returned: (111) Connection refused

\n\n

The remote host or network may be down. Please try the request again.

\n\n

Your cache administrator is webmaster.

\n\n
\n
\n\n
\n\n\n'), (0, b'shutting down connection #0\n')] 717s E assert False 717s 717s tests/debug_test.py:65: AssertionError 717s ________________ DuphandleTest.test_duphandle_httppost_unsetopt ________________ 717s 717s self = 717s 717s def test_duphandle_httppost_unsetopt(self): 717s # util_curl_unsetopt() 717s > self.httppost_test(self.orig.unsetopt, pycurl.HTTPPOST) 717s 717s tests/duphandle_test.py:114: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/duphandle_test.py:97: in httppost_test 717s self.httppost_check(dup1, {'field': 'orig-httppost'}, True) 717s tests/duphandle_test.py:87: in httppost_check 717s result = json.loads(body.getvalue()) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ________________ DuphandleTest.test_duphandle_httppost_xdecref _________________ 717s 717s self = 717s 717s def test_duphandle_httppost_xdecref(self): 717s # util_curl_xdecref() 717s > self.httppost_test(self.orig.reset) 717s 717s tests/duphandle_test.py:110: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/duphandle_test.py:97: in httppost_test 717s self.httppost_check(dup1, {'field': 'orig-httppost'}, True) 717s tests/duphandle_test.py:87: in httppost_check 717s result = json.loads(body.getvalue()) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ___________________ DuphandleTest.test_duphandle_references ____________________ 717s 717s self = 717s 717s def test_duphandle_references(self): 717s body = util.BytesIO() 717s def callback(data): 717s body.write(data) 717s callback_ref = weakref.ref(callback) 717s # preliminary checks of gc and weakref working as expected 717s assert gc.get_referrers(callback) == [] 717s assert callback_ref() is not None 717s # setopt - callback ref is copied and callback incref'ed 717s self.orig.setopt(pycurl.WRITEFUNCTION, callback) 717s assert gc.get_referrers(callback) == [self.orig] 717s # duphandle - callback ref is copied and callback incref'ed 717s dup = self.orig.duphandle() 717s assert set(gc.get_referrers(callback)) == {self.orig, dup} 717s # dealloc self.orig and decref callback 717s self.orig.close() 717s del self.orig 717s assert gc.get_referrers(callback) == [dup] 717s # decref callback again - back to ref count = 1 717s del callback 717s assert callback_ref() is not None 717s # check that callback object still exists and is invoked 717s dup.setopt(pycurl.URL, 'http://%s:8380/success' % localhost) 717s dup.perform() 717s result = body.getvalue().decode('utf-8') 717s > assert result == 'success' 717s E assert '\n' == 'success' 717s E 717s E - success 717s E + 717s E + 717s E + 717s E + 717s E + ERROR: The requested URL could not be retrieved... 717s E 717s E ...Full output truncated (140 lines hidden), use '-vv' to show 717s 717s tests/duphandle_test.py:141: AssertionError 717s _________________ DuphandleTest.test_duphandle_slist_unsetopt __________________ 717s 717s self = 717s 717s def test_duphandle_slist_unsetopt(self): 717s # util_curl_unsetopt() 717s > self.slist_test(self.orig.unsetopt, pycurl.HTTPHEADER) 717s 717s tests/duphandle_test.py:80: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/duphandle_test.py:63: in slist_test 717s self.slist_check(dup1, 'orig-slist', True) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s handle = , value = 'orig-slist' 717s persistance = True 717s 717s def slist_check(self, handle, value, persistance=True): 717s body = util.BytesIO() 717s handle.setopt(pycurl.WRITEFUNCTION, body.write) 717s handle.setopt(pycurl.URL, 'http://%s:8380/header_utf8?h=x-test-header' % localhost) 717s handle.perform() 717s result = body.getvalue().decode('utf-8') 717s > assert (result == value) == persistance 717s E assert ('\n' == 'orig-slist' 717s E 717s E - orig-slist 717s E + 717s E + 717s E + 717s E + 717s E + ERROR: The requested URL could not be retrieved... 717s E 717s E ...Full output truncated (140 lines hidden), use '-vv' to show) == True 717s 717s tests/duphandle_test.py:51: AssertionError 717s __________________ DuphandleTest.test_duphandle_slist_xdecref __________________ 717s 717s self = 717s 717s def test_duphandle_slist_xdecref(self): 717s # util_curl_xdecref() 717s > self.slist_test(self.orig.reset) 717s 717s tests/duphandle_test.py:76: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/duphandle_test.py:63: in slist_test 717s self.slist_check(dup1, 'orig-slist', True) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s handle = , value = 'orig-slist' 717s persistance = True 717s 717s def slist_check(self, handle, value, persistance=True): 717s body = util.BytesIO() 717s handle.setopt(pycurl.WRITEFUNCTION, body.write) 717s handle.setopt(pycurl.URL, 'http://%s:8380/header_utf8?h=x-test-header' % localhost) 717s handle.perform() 717s result = body.getvalue().decode('utf-8') 717s > assert (result == value) == persistance 717s E assert ('\n' == 'orig-slist' 717s E 717s E - orig-slist 717s E + 717s E + 717s E + 717s E + 717s E + ERROR: The requested URL could not be retrieved... 717s E 717s E ...Full output truncated (140 lines hidden), use '-vv' to show) == True 717s 717s tests/duphandle_test.py:51: AssertionError 717s ___________________________ GetinfoTest.test_getinfo ___________________________ 717s 717s self = 717s 717s @flaky.flaky(max_runs=3) 717s def test_getinfo(self): 717s > self.make_request() 717s 717s tests/getinfo_test.py:24: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/getinfo_test.py:71: in make_request 717s self.assertEqual(expected_body, sio.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s __________ GetinfoTest.test_getinfo_content_type_invalid_utf8_python3 __________ 717s 717s self = 717s 717s @util.only_python3 717s def test_getinfo_content_type_invalid_utf8_python3(self): 717s > self.make_request('/content_type_invalid_utf8', 'content type set') 717s 717s tests/getinfo_test.py:113: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/getinfo_test.py:71: in make_request 717s self.assertEqual(expected_body, sio.getvalue().decode()) 717s E AssertionError: 'content type set' != '\n' 717s E Diff is 4197 characters long. Set self.maxDiff to None to see it. 717s _____________ GetinfoTest.test_getinfo_cookie_invalid_utf8_python3 _____________ 717s 717s self = 717s 717s @util.only_python3 717s def test_getinfo_cookie_invalid_utf8_python3(self): 717s self.curl.setopt(self.curl.COOKIELIST, '') 717s > self.make_request('/set_cookie_invalid_utf8', 'cookie set') 717s 717s tests/getinfo_test.py:85: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/getinfo_test.py:71: in make_request 717s self.assertEqual(expected_body, sio.getvalue().decode()) 717s E AssertionError: 'cookie set' != '\n' 717s E Diff is 4185 characters long. Set self.maxDiff to None to see it. 717s __________________ GetinfoTest.test_getinfo_effective_method ___________________ 717s 717s self = 717s 717s @util.min_libcurl(7, 72, 0) 717s def test_getinfo_effective_method(self): 717s > self.make_request() 717s 717s tests/getinfo_test.py:44: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/getinfo_test.py:71: in make_request 717s self.assertEqual(expected_body, sio.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s _______________________ GetinfoTest.test_getinfo_number ________________________ 717s 717s self = 717s 717s def test_getinfo_number(self): 717s > self.make_request() 717s 717s tests/getinfo_test.py:130: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/getinfo_test.py:71: in make_request 717s self.assertEqual(expected_body, sio.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s _____________________ GetinfoTest.test_getinfo_raw_number ______________________ 717s 717s self = 717s 717s def test_getinfo_raw_number(self): 717s > self.make_request() 717s 717s tests/getinfo_test.py:134: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/getinfo_test.py:71: in make_request 717s self.assertEqual(expected_body, sio.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s ________________________ GetinfoTest.test_getinfo_times ________________________ 717s 717s self = 717s 717s @util.only_unix 717s @flaky.flaky(max_runs=3) 717s def test_getinfo_times(self): 717s > self.make_request() 717s 717s tests/getinfo_test.py:51: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/getinfo_test.py:71: in make_request 717s self.assertEqual(expected_body, sio.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s ______________________ GetinfoTest.test_primary_port_etc _______________________ 717s 717s self = 717s 717s @util.min_libcurl(7, 21, 0) 717s def test_primary_port_etc(self): 717s > self.make_request() 717s 717s tests/getinfo_test.py:61: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/getinfo_test.py:71: in make_request 717s self.assertEqual(expected_body, sio.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s ____________________________ HeaderCbTest.test_get _____________________________ 717s 717s self = 717s 717s def test_get(self): 717s self.curl.setopt(pycurl.URL, 'http://%s:8380/success' % localhost) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEFUNCTION, sio.write) 717s self.curl.setopt(pycurl.HEADERFUNCTION, self.header_function) 717s self.curl.perform() 717s > self.assertEqual('success', sio.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s 717s tests/header_cb_test.py:32: AssertionError 717s _____________________ HeaderTest.test_ascii_string_header ______________________ 717s 717s self = 717s 717s def test_ascii_string_header(self): 717s > self.check('x-test-header: ascii', 'ascii') 717s 717s tests/header_test.py:26: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/header_test.py:46: in check 717s self.do_check([send], expected) 717s tests/header_test.py:55: in do_check 717s self.assertEqual(expected, sio.getvalue().decode('utf-8')) 717s E AssertionError: 'ascii' != '\n' 717s E Diff is 4196 characters long. Set self.maxDiff to None to see it. 717s _____________________ HeaderTest.test_ascii_unicode_header _____________________ 717s 717s self = 717s 717s def test_ascii_unicode_header(self): 717s > self.check(util.u('x-test-header: ascii'), 'ascii') 717s 717s tests/header_test.py:29: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/header_test.py:46: in check 717s self.do_check([send], expected) 717s tests/header_test.py:55: in do_check 717s self.assertEqual(expected, sio.getvalue().decode('utf-8')) 717s E AssertionError: 'ascii' != '\n' 717s E Diff is 4196 characters long. Set self.maxDiff to None to see it. 717s ____________________ HeaderTest.test_encoded_unicode_header ____________________ 717s 717s self = 717s 717s def test_encoded_unicode_header(self): 717s > self.check(util.u('x-test-header: Москва').encode('utf-8'), util.u('Москва')) 717s 717s tests/header_test.py:42: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/header_test.py:46: in check 717s self.do_check([send], expected) 717s tests/header_test.py:55: in do_check 717s self.assertEqual(expected, sio.getvalue().decode('utf-8')) 717s E AssertionError: 'Москва' != '\n' 717s E Diff is 4228 characters long. Set self.maxDiff to None to see it. 717s ___________________________ RelativeUrlTest.test_get ___________________________ 717s 717s self = 717s 717s def test_get(self): 717s result = self.curl.get('/success') 717s > self.assertEqual('success', result.decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s 717s tests/high_level_curl_test.py:23: AssertionError 717s __________________________ RelativeUrlTest.test_head ___________________________ 717s 717s self = 717s 717s def test_head(self): 717s result = self.curl.head('/success') 717s self.assertEqual('', result.decode()) 717s > self.assertEqual(200, self.curl.info()['http-code']) 717s E AssertionError: 200 != 503 717s 717s tests/high_level_curl_test.py:28: AssertionError 717s __________________________ RelativeUrlTest.test_reuse __________________________ 717s 717s self = 717s 717s def test_reuse(self): 717s result = self.curl.get('/success') 717s > self.assertEqual('success', result.decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s 717s tests/high_level_curl_test.py:32: AssertionError 717s ______________________ MultiCallbackTest.test_easy_close _______________________ 717s 717s self = 717s 717s @pytest.mark.skipif(sys.platform == 'win32', reason='https://github.com/pycurl/pycurl/issues/819') 717s def test_easy_close(self): 717s self.partial_transfer() 717s self.socket_result = None 717s self.easy.close() 717s > assert self.socket_result is not None 717s E assert None is not None 717s E + where None = .socket_result 717s 717s tests/multi_callback_test.py:106: AssertionError 717s __________________ MultiCallbackTest.test_easy_pause_unpause ___________________ 717s 717s self = 717s 717s @pytest.mark.skipif(sys.platform == 'win32', reason='https://github.com/pycurl/pycurl/issues/819') 717s def test_easy_pause_unpause(self): 717s self.partial_transfer() 717s self.socket_result = None 717s # libcurl will now inform us that we should remove some sockets 717s > self.easy.pause(pycurl.PAUSE_ALL) 717s E pycurl.error: (43, 'pause/unpause failed') 717s 717s tests/multi_callback_test.py:91: error 717s ________________ MultiSocketSelectTest.test_multi_socket_select ________________ 717s 717s self = 717s 717s @pytest.mark.skipif(sys.platform == 'win32', reason='https://github.com/pycurl/pycurl/issues/819') 717s def test_multi_socket_select(self): 717s sockets = set() 717s timeout = 0 717s 717s urls = [ 717s # we need libcurl to actually wait on the handles, 717s # and initiate polling. 717s # thus use urls that sleep for a bit. 717s 'http://%s:8380/short_wait' % localhost, 717s 'http://%s:8381/short_wait' % localhost, 717s 'http://%s:8382/short_wait' % localhost, 717s ] 717s 717s socket_events = [] 717s 717s # socket callback 717s def socket(event, socket, multi, data): 717s if event == pycurl.POLL_REMOVE: 717s #print("Remove Socket %d"%socket) 717s sockets.remove(socket) 717s else: 717s if socket not in sockets: 717s #print("Add socket %d"%socket) 717s sockets.add(socket) 717s socket_events.append((event, multi)) 717s 717s # init 717s m = self.m 717s m.setopt(pycurl.M_SOCKETFUNCTION, socket) 717s for url in urls: 717s c = util.DefaultCurl() 717s # save info in standard Python attributes 717s c.url = url 717s c.body = util.BytesIO() 717s c.http_code = -1 717s m.handles.append(c) 717s # pycurl API calls 717s c.setopt(c.URL, c.url) 717s c.setopt(c.WRITEFUNCTION, c.body.write) 717s m.add_handle(c) 717s 717s # get data 717s #num_handles = len(m.handles) 717s 717s while (pycurl.E_CALL_MULTI_PERFORM==m.socket_all()[0]): 717s pass 717s 717s timeout = m.timeout() 717s if timeout == -1: 717s timeout = 1000 717s 717s # timeout might be -1, indicating that all work is done 717s # XXX make sure there is always work to be done here? 717s while timeout >= 0: 717s (rr, wr, er) = select.select(sockets,sockets,sockets,timeout/1000.0) 717s socketSet = set(rr+wr+er) 717s if socketSet: 717s for s in socketSet: 717s while True: 717s (ret,running) = m.socket_action(s,0) 717s if ret!=pycurl.E_CALL_MULTI_PERFORM: 717s break 717s else: 717s (ret,running) = m.socket_action(pycurl.SOCKET_TIMEOUT,0) 717s if running==0: 717s break 717s 717s for c in m.handles: 717s # save info in standard Python attributes 717s c.http_code = c.getinfo(c.HTTP_CODE) 717s 717s # at least in and remove events per socket 717s assert len(socket_events) >= 6, 'Less than 6 socket events: %s' % repr(socket_events) 717s 717s # print result 717s for c in m.handles: 717s > self.assertEqual('success', c.body.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4143 characters long. Set self.maxDiff to None to see it. 717s 717s tests/multi_socket_select_test.py:119: AssertionError 717s ______________________ MultiSocketTest.test_multi_socket _______________________ 717s 717s self = 717s 717s def test_multi_socket(self): 717s urls = [ 717s # not sure why requesting /success produces no events. 717s # see multi_socket_select_test.py for a longer explanation 717s # why short wait is used there. 717s 'http://%s:8380/short_wait' % localhost, 717s 'http://%s:8381/short_wait' % localhost, 717s 'http://%s:8382/short_wait' % localhost, 717s ] 717s 717s socket_events = [] 717s 717s # socket callback 717s def socket(event, socket, multi, data): 717s #print(event, socket, multi, data) 717s socket_events.append((event, multi)) 717s 717s # init 717s m = pycurl.CurlMulti() 717s m.setopt(pycurl.M_SOCKETFUNCTION, socket) 717s m.handles = [] 717s for url in urls: 717s c = util.DefaultCurl() 717s # save info in standard Python attributes 717s c.url = url 717s c.body = util.BytesIO() 717s c.http_code = -1 717s m.handles.append(c) 717s # pycurl API calls 717s c.setopt(c.URL, c.url) 717s c.setopt(c.WRITEFUNCTION, c.body.write) 717s m.add_handle(c) 717s 717s # get data 717s num_handles = len(m.handles) 717s while num_handles: 717s while 1: 717s ret, num_handles = m.socket_all() 717s if ret != pycurl.E_CALL_MULTI_PERFORM: 717s break 717s # currently no more I/O is pending, could do something in the meantime 717s # (display a progress bar, etc.) 717s m.select(0.1) 717s 717s for c in m.handles: 717s # save info in standard Python attributes 717s c.http_code = c.getinfo(c.HTTP_CODE) 717s 717s # at least in and remove events per socket 717s assert len(socket_events) >= 6 717s 717s # print result 717s for c in m.handles: 717s > self.assertEqual('success', c.body.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4143 characters long. Set self.maxDiff to None to see it. 717s 717s tests/multi_socket_test.py:80: AssertionError 717s ____________ MultiTest.test_adding_closed_handle_close_then_remove _____________ 717s 717s self = 717s 717s def test_adding_closed_handle_close_then_remove(self): 717s > self.check_adding_closed_handle(self._close_then_remove) 717s 717s tests/multi_test.py:241: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/multi_test.py:214: in check_adding_closed_handle 717s self.assertEqual('success', m.handles[0].body.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s __________ MultiTest.test_adding_closed_handle_close_without_removing __________ 717s 717s self = 717s 717s def test_adding_closed_handle_close_without_removing(self): 717s > self.check_adding_closed_handle(self._close_without_removing) 717s 717s tests/multi_test.py:244: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/multi_test.py:214: in check_adding_closed_handle 717s self.assertEqual('success', m.handles[0].body.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s ____________ MultiTest.test_adding_closed_handle_remove_then_close _____________ 717s 717s self = 717s 717s def test_adding_closed_handle_remove_then_close(self): 717s > self.check_adding_closed_handle(self._remove_then_close) 717s 717s tests/multi_test.py:238: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/multi_test.py:214: in check_adding_closed_handle 717s self.assertEqual('success', m.handles[0].body.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s _____________________________ MultiTest.test_multi _____________________________ 717s 717s self = 717s 717s def test_multi(self): 717s io1 = util.BytesIO() 717s io2 = util.BytesIO() 717s m = pycurl.CurlMulti() 717s handles = [] 717s c1 = util.DefaultCurl() 717s c2 = util.DefaultCurl() 717s c1.setopt(c1.URL, 'http://%s:8380/success' % localhost) 717s c1.setopt(c1.WRITEFUNCTION, io1.write) 717s c2.setopt(c2.URL, 'http://%s:8381/success' % localhost) 717s c2.setopt(c1.WRITEFUNCTION, io2.write) 717s m.add_handle(c1) 717s m.add_handle(c2) 717s handles.append(c1) 717s handles.append(c2) 717s 717s num_handles = len(handles) 717s while num_handles: 717s while 1: 717s ret, num_handles = m.perform() 717s if ret != pycurl.E_CALL_MULTI_PERFORM: 717s break 717s m.select(1.0) 717s 717s m.remove_handle(c2) 717s m.remove_handle(c1) 717s m.close() 717s c1.close() 717s c2.close() 717s 717s > self.assertEqual('success', io1.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s 717s tests/multi_test.py:59: AssertionError 717s ________________________ MultiTest.test_multi_info_read ________________________ 717s 717s self = 717s 717s def test_multi_info_read(self): 717s c1 = util.DefaultCurl() 717s c2 = util.DefaultCurl() 717s c3 = util.DefaultCurl() 717s c1.setopt(c1.URL, "http://%s:8380/short_wait" % localhost) 717s c2.setopt(c2.URL, "http://%s:8381/short_wait" % localhost) 717s c3.setopt(c3.URL, "http://%s:8382/short_wait" % localhost) 717s c1.body = util.BytesIO() 717s c2.body = util.BytesIO() 717s c3.body = util.BytesIO() 717s c1.setopt(c1.WRITEFUNCTION, c1.body.write) 717s c2.setopt(c2.WRITEFUNCTION, c2.body.write) 717s c3.setopt(c3.WRITEFUNCTION, c3.body.write) 717s 717s m = pycurl.CurlMulti() 717s m.add_handle(c1) 717s m.add_handle(c2) 717s m.add_handle(c3) 717s 717s # Number of seconds to wait for a timeout to happen 717s SELECT_TIMEOUT = 1.0 717s 717s # Stir the state machine into action 717s while 1: 717s ret, num_handles = m.perform() 717s if ret != pycurl.E_CALL_MULTI_PERFORM: 717s break 717s 717s infos = [] 717s # Keep going until all the connections have terminated 717s while num_handles: 717s # The select method uses fdset internally to determine which file descriptors 717s # to check. 717s m.select(SELECT_TIMEOUT) 717s while 1: 717s ret, num_handles = m.perform() 717s info = m.info_read() 717s infos.append(info) 717s if ret != pycurl.E_CALL_MULTI_PERFORM: 717s break 717s 717s all_handles = [] 717s for info in infos: 717s handles = info[1] 717s # last info is an empty array 717s if handles: 717s all_handles.extend(handles) 717s 717s self.assertEqual(3, len(all_handles)) 717s assert c1 in all_handles 717s assert c2 in all_handles 717s assert c3 in all_handles 717s 717s # Cleanup 717s m.remove_handle(c3) 717s m.remove_handle(c2) 717s m.remove_handle(c1) 717s m.close() 717s c1.close() 717s c2.close() 717s c3.close() 717s 717s > self.assertEqual('success', c1.body.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4143 characters long. Set self.maxDiff to None to see it. 717s 717s tests/multi_test.py:359: AssertionError 717s _________________________ MultiTest.test_multi_select __________________________ 717s 717s self = 717s 717s def test_multi_select(self): 717s c1 = util.DefaultCurl() 717s c2 = util.DefaultCurl() 717s c3 = util.DefaultCurl() 717s c1.setopt(c1.URL, "http://%s:8380/success" % localhost) 717s c2.setopt(c2.URL, "http://%s:8381/success" % localhost) 717s c3.setopt(c3.URL, "http://%s:8382/success" % localhost) 717s c1.body = util.BytesIO() 717s c2.body = util.BytesIO() 717s c3.body = util.BytesIO() 717s c1.setopt(c1.WRITEFUNCTION, c1.body.write) 717s c2.setopt(c2.WRITEFUNCTION, c2.body.write) 717s c3.setopt(c3.WRITEFUNCTION, c3.body.write) 717s 717s m = pycurl.CurlMulti() 717s m.add_handle(c1) 717s m.add_handle(c2) 717s m.add_handle(c3) 717s 717s # Number of seconds to wait for a timeout to happen 717s SELECT_TIMEOUT = 1.0 717s 717s # Stir the state machine into action 717s while 1: 717s ret, num_handles = m.perform() 717s if ret != pycurl.E_CALL_MULTI_PERFORM: 717s break 717s 717s # Keep going until all the connections have terminated 717s while num_handles: 717s # The select method uses fdset internally to determine which file descriptors 717s # to check. 717s m.select(SELECT_TIMEOUT) 717s while 1: 717s ret, num_handles = m.perform() 717s if ret != pycurl.E_CALL_MULTI_PERFORM: 717s break 717s 717s # Cleanup 717s m.remove_handle(c3) 717s m.remove_handle(c2) 717s m.remove_handle(c1) 717s m.close() 717s c1.close() 717s c2.close() 717s c3.close() 717s 717s > self.assertEqual('success', c1.body.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s 717s tests/multi_test.py:293: AssertionError 717s ______________________ MultiTest.test_multi_select_fdset _______________________ 717s 717s self = 717s 717s def test_multi_select_fdset(self): 717s c1 = util.DefaultCurl() 717s c2 = util.DefaultCurl() 717s c3 = util.DefaultCurl() 717s c1.setopt(c1.URL, "http://%s:8380/success" % localhost) 717s c2.setopt(c2.URL, "http://%s:8381/success" % localhost) 717s c3.setopt(c3.URL, "http://%s:8382/success" % localhost) 717s c1.body = util.BytesIO() 717s c2.body = util.BytesIO() 717s c3.body = util.BytesIO() 717s c1.setopt(c1.WRITEFUNCTION, c1.body.write) 717s c2.setopt(c2.WRITEFUNCTION, c2.body.write) 717s c3.setopt(c3.WRITEFUNCTION, c3.body.write) 717s 717s m = pycurl.CurlMulti() 717s m.add_handle(c1) 717s m.add_handle(c2) 717s m.add_handle(c3) 717s 717s # Number of seconds to wait for a timeout to happen 717s SELECT_TIMEOUT = 0.1 717s 717s # Stir the state machine into action 717s while 1: 717s ret, num_handles = m.perform() 717s if ret != pycurl.E_CALL_MULTI_PERFORM: 717s break 717s 717s # Keep going until all the connections have terminated 717s while num_handles: 717s select.select(*m.fdset() + (SELECT_TIMEOUT,)) 717s while 1: 717s ret, num_handles = m.perform() 717s if ret != pycurl.E_CALL_MULTI_PERFORM: 717s break 717s 717s # Cleanup 717s m.remove_handle(c3) 717s m.remove_handle(c2) 717s m.remove_handle(c1) 717s m.close() 717s c1.close() 717s c2.close() 717s c3.close() 717s 717s > self.assertEqual('success', c1.body.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s 717s tests/multi_test.py:107: AssertionError 717s ______________________ MultiTest.test_multi_status_codes _______________________ 717s 717s self = 717s 717s def test_multi_status_codes(self): 717s # init 717s m = pycurl.CurlMulti() 717s m.handles = [] 717s urls = [ 717s 'http://%s:8380/success' % localhost, 717s 'http://%s:8381/status/403' % localhost, 717s 'http://%s:8382/status/404' % localhost, 717s ] 717s for url in urls: 717s c = util.DefaultCurl() 717s # save info in standard Python attributes 717s c.url = url.rstrip() 717s c.body = util.BytesIO() 717s c.http_code = -1 717s m.handles.append(c) 717s # pycurl API calls 717s c.setopt(c.URL, c.url) 717s c.setopt(c.WRITEFUNCTION, c.body.write) 717s m.add_handle(c) 717s 717s # get data 717s num_handles = len(m.handles) 717s while num_handles: 717s while 1: 717s ret, num_handles = m.perform() 717s if ret != pycurl.E_CALL_MULTI_PERFORM: 717s break 717s # currently no more I/O is pending, could do something in the meantime 717s # (display a progress bar, etc.) 717s m.select(0.1) 717s 717s # close handles 717s for c in m.handles: 717s # save info in standard Python attributes 717s c.http_code = c.getinfo(c.HTTP_CODE) 717s # pycurl API calls 717s m.remove_handle(c) 717s c.close() 717s m.close() 717s 717s # check result 717s > self.assertEqual('success', m.handles[0].body.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s 717s tests/multi_test.py:153: AssertionError 717s _______________________ MultiSocketTest.test_multi_timer _______________________ 717s 717s self = 717s 717s def test_multi_timer(self): 717s urls = [ 717s 'http://%s:8380/success' % localhost, 717s 'http://%s:8381/success' % localhost, 717s 'http://%s:8382/success' % localhost, 717s ] 717s 717s timers = [] 717s 717s # timer callback 717s def timer(msecs): 717s #print('Timer callback msecs:', msecs) 717s timers.append(msecs) 717s 717s # init 717s m = pycurl.CurlMulti() 717s m.setopt(pycurl.M_TIMERFUNCTION, timer) 717s m.handles = [] 717s for url in urls: 717s c = util.DefaultCurl() 717s # save info in standard Python attributes 717s c.url = url 717s c.body = util.BytesIO() 717s c.http_code = -1 717s m.handles.append(c) 717s # pycurl API calls 717s c.setopt(c.URL, c.url) 717s c.setopt(c.WRITEFUNCTION, c.body.write) 717s m.add_handle(c) 717s 717s # get data 717s num_handles = len(m.handles) 717s while num_handles: 717s while 1: 717s ret, num_handles = m.perform() 717s if ret != pycurl.E_CALL_MULTI_PERFORM: 717s break 717s # currently no more I/O is pending, could do something in the meantime 717s # (display a progress bar, etc.) 717s m.select(1.0) 717s 717s for c in m.handles: 717s # save info in standard Python attributes 717s c.http_code = c.getinfo(c.HTTP_CODE) 717s 717s # print result 717s for c in m.handles: 717s > self.assertEqual('success', c.body.getvalue().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s 717s tests/multi_timer_test.py:74: AssertionError 717s ______________________ OpenSocketCbTest.test_socket_open _______________________ 717s 717s self = 717s 717s @util.only_unix 717s def test_socket_open(self): 717s self.curl.setopt(pycurl.OPENSOCKETFUNCTION, socket_open_ipv4) 717s self.curl.setopt(self.curl.URL, 'http://%s:8380/success' % localhost) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEFUNCTION, sio.write) 717s self.curl.perform() 717s 717s assert socket_open_called_ipv4 717s > self.assertEqual(("127.0.0.1", 8380), socket_open_address) 717s E AssertionError: Tuples differ: ('127.0.0.1', 8380) != ('10.151.41.5', 3128) 717s E 717s E First differing element 0: 717s E '127.0.0.1' 717s E '10.151.41.5' 717s E 717s E - ('127.0.0.1', 8380) 717s E + ('10.151.41.5', 3128) 717s 717s tests/open_socket_cb_test.py:73: AssertionError 717s ________________________ PauseTest.test_pause_via_call _________________________ 717s 717s self = 717s 717s def test_pause_via_call(self): 717s > self.check_pause(True) 717s 717s tests/pause_test.py:25: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/util.py:198: in decorated 717s return fn(*args, **kwargs) 717s tests/pause_test.py:92: in check_pause 717s self.assertEqual('part1part2', sio.getvalue().decode()) 717s E AssertionError: 'part1part2' != '\n' 717s E Diff is 4131 characters long. Set self.maxDiff to None to see it. 717s _______________________ PauseTest.test_pause_via_return ________________________ 717s 717s self = 717s 717s def test_pause_via_return(self): 717s > self.check_pause(False) 717s 717s tests/pause_test.py:28: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/util.py:198: in decorated 717s return fn(*args, **kwargs) 717s tests/pause_test.py:92: in check_pause 717s self.assertEqual('part1part2', sio.getvalue().decode()) 717s E AssertionError: 'part1part2' != '\n' 717s E Diff is 4131 characters long. Set self.maxDiff to None to see it. 717s _________________________ PerformTest.test_perform_rb __________________________ 717s 717s self = 717s 717s def test_perform_rb(self): 717s self.curl.setopt(pycurl.URL, 'http://%s:8380/success' % localhost) 717s body = self.curl.perform_rb() 717s > self.assertEqual(util.b('success'), body) 717s E AssertionError: b'success' != b'\n' 717s 717s tests/perform_test.py:27: AssertionError 717s ___________________ PerformTest.test_perform_rb_invalid_utf8 ___________________ 717s 717s self = 717s 717s def test_perform_rb_invalid_utf8(self): 717s self.curl.setopt(pycurl.URL, 'http://%s:8380/invalid_utf8_body' % localhost) 717s body = self.curl.perform_rb() 717s > self.assertEqual(util.b('\xb3\xd2\xda\xcd\xd7'), body) 717s E AssertionError: b'\xb3\xd2\xda\xcd\xd7' != b'\n' 717s 717s tests/perform_test.py:50: AssertionError 717s _______________________ PerformTest.test_perform_rb_utf8 _______________________ 717s 717s self = 717s 717s def test_perform_rb_utf8(self): 717s self.curl.setopt(pycurl.URL, 'http://%s:8380/utf8_body' % localhost) 717s body = self.curl.perform_rb() 717s if util.py3: 717s > self.assertEqual('Дружба народов'.encode('utf8'), body) 717s E AssertionError: b'\xd0\x94\xd1\x80\xd1\x83\xd0\xb6\xd0\xb1\[60 chars]\xb2' != b'\n' 717s 717s tests/perform_test.py:38: AssertionError 717s _________________________ PerformTest.test_perform_rs __________________________ 717s 717s self = 717s 717s def test_perform_rs(self): 717s self.curl.setopt(pycurl.URL, 'http://%s:8380/success' % localhost) 717s body = self.curl.perform_rs() 717s > self.assertEqual(util.u('success'), body) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s 717s tests/perform_test.py:32: AssertionError 717s _______________ PerformTest.test_perform_rs_invalid_utf8_python3 _______________ 717s 717s self = 717s 717s @util.only_python3 717s def test_perform_rs_invalid_utf8_python3(self): 717s self.curl.setopt(pycurl.URL, 'http://%s:8380/invalid_utf8_body' % localhost) 717s try: 717s self.curl.perform_rs() 717s except UnicodeDecodeError: 717s pass 717s else: 717s > self.fail('Should have raised') 717s E AssertionError: Should have raised 717s 717s tests/perform_test.py:66: AssertionError 717s _______________________ PerformTest.test_perform_rs_utf8 _______________________ 717s 717s self = 717s 717s def test_perform_rs_utf8(self): 717s self.curl.setopt(pycurl.URL, 'http://%s:8380/utf8_body' % localhost) 717s body = self.curl.perform_rs() 717s > self.assertEqual('Дружба народов', body) 717s E AssertionError: 'Дружба народов' != '\n' 717s E Diff is 4147 characters long. Set self.maxDiff to None to see it. 717s 717s tests/perform_test.py:45: AssertionError 717s ________________________ PostTest.test_post_byte_buffer ________________________ 717s 717s self = 717s 717s def test_post_byte_buffer(self): 717s contents = util.b('hello, world!') 717s send = [ 717s ('field2', (pycurl.FORM_BUFFER, 'uploaded.file', pycurl.FORM_BUFFERPTR, contents)), 717s ] 717s expect = [{ 717s 'name': 'field2', 717s 'filename': 'uploaded.file', 717s 'data': 'hello, world!', 717s }] 717s > self.check_post(send, expect, 'http://%s:8380/files' % localhost) 717s 717s tests/post_test.py:115: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:197: in check_post 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s ___________________ PostTest.test_post_fields_with_ampersand ___________________ 717s 717s self = 717s 717s def test_post_fields_with_ampersand(self): 717s pf = {'field1':'value1', 'field2':'value2 with blanks and & chars', 717s 'field3':'value3'} 717s > self.urlencode_and_check(pf) 717s 717s tests/post_test.py:43: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:73: in urlencode_and_check 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s ___________________________ PostTest.test_post_file ____________________________ 717s 717s self = 717s 717s def test_post_file(self): 717s path = os.path.join(os.path.dirname(__file__), '..', 'README.rst') 717s f = open(path, newline='') 717s try: 717s contents = f.read() 717s finally: 717s f.close() 717s send = [ 717s #('field2', (pycurl.FORM_FILE, 'test_post.py', pycurl.FORM_FILE, 'test_post2.py')), 717s ('field2', (pycurl.FORM_FILE, path)), 717s ] 717s expect = [{ 717s 'name': 'field2', 717s 'filename': 'README.rst', 717s 'data': contents, 717s }] 717s > self.check_post(send, expect, 'http://%s:8380/files' % localhost) 717s 717s tests/post_test.py:103: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:197: in check_post 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s ___________________ PostTest.test_post_list_of_list_of_lists ___________________ 717s 717s self = 717s 717s def test_post_list_of_list_of_lists(self): 717s contents = util.u('hello, world!') 717s send = [ 717s ['field2', [pycurl.FORM_BUFFER, 'uploaded.file', pycurl.FORM_BUFFERPTR, contents]], 717s ] 717s expect = [{ 717s 'name': 'field2', 717s 'filename': 'uploaded.file', 717s 'data': 'hello, world!', 717s }] 717s > self.check_post(send, expect, 'http://%s:8380/files' % localhost) 717s 717s tests/post_test.py:187: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:197: in check_post 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s __________________ PostTest.test_post_list_of_tuple_of_tuples __________________ 717s 717s self = 717s 717s def test_post_list_of_tuple_of_tuples(self): 717s contents = util.u('hello, world!') 717s send = [ 717s ('field2', (pycurl.FORM_BUFFER, 'uploaded.file', pycurl.FORM_BUFFERPTR, contents)), 717s ] 717s expect = [{ 717s 'name': 'field2', 717s 'filename': 'uploaded.file', 717s 'data': 'hello, world!', 717s }] 717s > self.check_post(send, expect, 'http://%s:8380/files' % localhost) 717s 717s tests/post_test.py:175: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:197: in check_post 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s ______________________ PostTest.test_post_multiple_fields ______________________ 717s 717s self = 717s 717s def test_post_multiple_fields(self): 717s pf = {'field1':'value1', 'field2':'value2 with blanks', 'field3':'value3'} 717s > self.urlencode_and_check(pf) 717s 717s tests/post_test.py:38: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:73: in urlencode_and_check 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s _______________________ PostTest.test_post_single_field ________________________ 717s 717s self = 717s 717s def test_post_single_field(self): 717s pf = {'field1': 'value1'} 717s > self.urlencode_and_check(pf) 717s 717s tests/post_test.py:34: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:73: in urlencode_and_check 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s _________________ PostTest.test_post_tuple_of_lists_of_tuples __________________ 717s 717s self = 717s 717s def test_post_tuple_of_lists_of_tuples(self): 717s contents = util.u('hello, world!') 717s send = ( 717s ['field2', (pycurl.FORM_BUFFER, 'uploaded.file', pycurl.FORM_BUFFERPTR, contents)], 717s ) 717s expect = [{ 717s 'name': 'field2', 717s 'filename': 'uploaded.file', 717s 'data': 'hello, world!', 717s }] 717s > self.check_post(send, expect, 'http://%s:8380/files' % localhost) 717s 717s tests/post_test.py:151: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:197: in check_post 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s __________________ PostTest.test_post_tuple_of_tuple_of_lists __________________ 717s 717s self = 717s 717s def test_post_tuple_of_tuple_of_lists(self): 717s contents = util.u('hello, world!') 717s send = ( 717s ('field2', [pycurl.FORM_BUFFER, 'uploaded.file', pycurl.FORM_BUFFERPTR, contents]), 717s ) 717s expect = [{ 717s 'name': 'field2', 717s 'filename': 'uploaded.file', 717s 'data': 'hello, world!', 717s }] 717s > self.check_post(send, expect, 'http://%s:8380/files' % localhost) 717s 717s tests/post_test.py:163: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:197: in check_post 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s _________________ PostTest.test_post_tuple_of_tuples_of_tuples _________________ 717s 717s self = 717s 717s def test_post_tuple_of_tuples_of_tuples(self): 717s contents = util.u('hello, world!') 717s send = ( 717s ('field2', (pycurl.FORM_BUFFER, 'uploaded.file', pycurl.FORM_BUFFERPTR, contents)), 717s ) 717s expect = [{ 717s 'name': 'field2', 717s 'filename': 'uploaded.file', 717s 'data': 'hello, world!', 717s }] 717s > self.check_post(send, expect, 'http://%s:8380/files' % localhost) 717s 717s tests/post_test.py:139: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:197: in check_post 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s ______________________ PostTest.test_post_unicode_buffer _______________________ 717s 717s self = 717s 717s def test_post_unicode_buffer(self): 717s contents = util.u('hello, world!') 717s send = [ 717s ('field2', (pycurl.FORM_BUFFER, 'uploaded.file', pycurl.FORM_BUFFERPTR, contents)), 717s ] 717s expect = [{ 717s 'name': 'field2', 717s 'filename': 'uploaded.file', 717s 'data': 'hello, world!', 717s }] 717s > self.check_post(send, expect, 'http://%s:8380/files' % localhost) 717s 717s tests/post_test.py:127: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:197: in check_post 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s ______________________ PostTest.test_post_with_null_byte _______________________ 717s 717s self = 717s 717s def test_post_with_null_byte(self): 717s send = [ 717s ('field3', (pycurl.FORM_CONTENTS, 'this is wei\000rd, but null-bytes are okay')) 717s ] 717s expect = { 717s 'field3': 'this is wei\000rd, but null-bytes are okay', 717s } 717s > self.check_post(send, expect, 'http://%s:8380/postfields' % localhost) 717s 717s tests/post_test.py:85: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/post_test.py:197: in check_post 717s self.assertEqual(200, self.curl.getinfo(pycurl.HTTP_CODE)) 717s E AssertionError: 200 != 503 717s ___________________ ReadCbTest.test_post_with_read_callback ____________________ 717s 717s self = 717s 717s def test_post_with_read_callback(self): 717s d = DataProvider(POSTSTRING) 717s self.curl.setopt(self.curl.URL, 'http://%s:8380/postfields' % localhost) 717s self.curl.setopt(self.curl.POST, 1) 717s self.curl.setopt(self.curl.POSTFIELDSIZE, len(POSTSTRING)) 717s self.curl.setopt(self.curl.READFUNCTION, d.read_cb) 717s #self.curl.setopt(self.curl.VERBOSE, 1) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEFUNCTION, sio.write) 717s self.curl.perform() 717s 717s > actual = json.loads(sio.getvalue().decode()) 717s 717s tests/read_cb_test.py:62: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ___________ ReadCbTest.test_post_with_read_callback_returning_bytes ____________ 717s 717s self = 717s 717s def test_post_with_read_callback_returning_bytes(self): 717s > self.check_bytes('world') 717s 717s tests/read_cb_test.py:66: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/read_cb_test.py:91: in check_bytes 717s actual = json.loads(sio.getvalue().decode('ascii')) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ____ ReadCbTest.test_post_with_read_callback_returning_bytes_with_multibyte ____ 717s 717s self = 717s 717s def test_post_with_read_callback_returning_bytes_with_multibyte(self): 717s > self.check_bytes(util.u("Пушкин")) 717s 717s tests/read_cb_test.py:72: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/read_cb_test.py:91: in check_bytes 717s actual = json.loads(sio.getvalue().decode('ascii')) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ______ ReadCbTest.test_post_with_read_callback_returning_bytes_with_nulls ______ 717s 717s self = 717s 717s def test_post_with_read_callback_returning_bytes_with_nulls(self): 717s > self.check_bytes("wor\0ld") 717s 717s tests/read_cb_test.py:69: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/read_cb_test.py:91: in check_bytes 717s actual = json.loads(sio.getvalue().decode('ascii')) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s __________ ReadCbTest.test_post_with_read_callback_returning_unicode ___________ 717s 717s self = 717s 717s def test_post_with_read_callback_returning_unicode(self): 717s > self.check_unicode(util.u('world')) 717s 717s tests/read_cb_test.py:95: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/read_cb_test.py:126: in check_unicode 717s actual = json.loads(sio.getvalue().decode('ascii')) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s _____ ReadCbTest.test_post_with_read_callback_returning_unicode_with_nulls _____ 717s 717s self = 717s 717s def test_post_with_read_callback_returning_unicode_with_nulls(self): 717s > self.check_unicode(util.u("wor\0ld")) 717s 717s tests/read_cb_test.py:98: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/read_cb_test.py:126: in check_unicode 717s actual = json.loads(sio.getvalue().decode('ascii')) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s _________ ReaddataTest.test_post_with_read_callback_returning_unicode __________ 717s 717s self = 717s 717s def test_post_with_read_callback_returning_unicode(self): 717s > self.check_unicode(util.u('world')) 717s 717s tests/readdata_test.py:99: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/readdata_test.py:129: in check_unicode 717s actual = json.loads(sio.getvalue().decode('ascii')) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ____ ReaddataTest.test_post_with_read_callback_returning_unicode_with_nulls ____ 717s 717s self = 717s 717s def test_post_with_read_callback_returning_unicode_with_nulls(self): 717s > self.check_unicode(util.u("wor\0ld")) 717s 717s tests/readdata_test.py:102: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/readdata_test.py:129: in check_unicode 717s actual = json.loads(sio.getvalue().decode('ascii')) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s _______________ ReaddataTest.test_post_with_read_returning_bytes _______________ 717s 717s self = 717s 717s def test_post_with_read_returning_bytes(self): 717s > self.check_bytes('world') 717s 717s tests/readdata_test.py:71: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/readdata_test.py:95: in check_bytes 717s actual = json.loads(sio.getvalue().decode('ascii')) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s _______ ReaddataTest.test_post_with_read_returning_bytes_with_multibyte ________ 717s 717s self = 717s 717s def test_post_with_read_returning_bytes_with_multibyte(self): 717s > self.check_bytes(util.u("Пушкин")) 717s 717s tests/readdata_test.py:77: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/readdata_test.py:95: in check_bytes 717s actual = json.loads(sio.getvalue().decode('ascii')) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s _________ ReaddataTest.test_post_with_read_returning_bytes_with_nulls __________ 717s 717s self = 717s 717s def test_post_with_read_returning_bytes_with_nulls(self): 717s > self.check_bytes("wor\0ld") 717s 717s tests/readdata_test.py:74: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s tests/readdata_test.py:95: in check_bytes 717s actual = json.loads(sio.getvalue().decode('ascii')) 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ____________ ReaddataTest.test_readdata_and_readfunction_file_like _____________ 717s 717s self = 717s 717s def test_readdata_and_readfunction_file_like(self): 717s data = 'hello=world' 717s data_provider = DataProvider(data) 717s # data must be the same length 717s function_provider = DataProvider('aaaaa=bbbbb') 717s self.curl.setopt(self.curl.URL, 'http://%s:8380/postfields' % localhost) 717s self.curl.setopt(self.curl.POST, 1) 717s self.curl.setopt(self.curl.POSTFIELDSIZE, len(data)) 717s self.curl.setopt(self.curl.READDATA, data_provider) 717s self.curl.setopt(self.curl.READFUNCTION, function_provider.read) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEDATA, sio) 717s self.curl.perform() 717s 717s > actual = json.loads(sio.getvalue().decode()) 717s 717s tests/readdata_test.py:194: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ____________ ReaddataTest.test_readdata_and_readfunction_real_file _____________ 717s 717s self = 717s 717s def test_readdata_and_readfunction_real_file(self): 717s # data must be the same length 717s with open(FORM_SUBMISSION_PATH) as f: 717s function_provider = DataProvider('aaa=bbb') 717s self.curl.setopt(self.curl.URL, 'http://%s:8380/postfields' % localhost) 717s self.curl.setopt(self.curl.POST, 1) 717s self.curl.setopt(self.curl.POSTFIELDSIZE, os.stat(FORM_SUBMISSION_PATH).st_size) 717s self.curl.setopt(self.curl.READDATA, f) 717s self.curl.setopt(self.curl.READFUNCTION, function_provider.read) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEDATA, sio) 717s self.curl.perform() 717s 717s > actual = json.loads(sio.getvalue().decode()) 717s 717s tests/readdata_test.py:227: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ____________________ ReaddataTest.test_readdata_file_binary ____________________ 717s 717s self = 717s 717s def test_readdata_file_binary(self): 717s # file opened in binary mode 717s f = open(FORM_SUBMISSION_PATH, 'rb') 717s try: 717s self.curl.setopt(self.curl.URL, 'http://%s:8380/postfields' % localhost) 717s self.curl.setopt(self.curl.POST, 1) 717s self.curl.setopt(self.curl.POSTFIELDSIZE, os.stat(FORM_SUBMISSION_PATH).st_size) 717s self.curl.setopt(self.curl.READDATA, f) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEDATA, sio) 717s self.curl.perform() 717s 717s > actual = json.loads(sio.getvalue().decode()) 717s 717s tests/readdata_test.py:144: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s _____________________ ReaddataTest.test_readdata_file_like _____________________ 717s 717s self = 717s 717s def test_readdata_file_like(self): 717s data = 'hello=world' 717s data_provider = DataProvider(data) 717s self.curl.setopt(self.curl.URL, 'http://%s:8380/postfields' % localhost) 717s self.curl.setopt(self.curl.POST, 1) 717s self.curl.setopt(self.curl.POSTFIELDSIZE, len(data)) 717s self.curl.setopt(self.curl.READDATA, data_provider) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEDATA, sio) 717s self.curl.perform() 717s 717s > actual = json.loads(sio.getvalue().decode()) 717s 717s tests/readdata_test.py:177: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s _____________________ ReaddataTest.test_readdata_file_text _____________________ 717s 717s self = 717s 717s def test_readdata_file_text(self): 717s # file opened in text mode 717s f = open(FORM_SUBMISSION_PATH, 'rt') 717s try: 717s self.curl.setopt(self.curl.URL, 'http://%s:8380/postfields' % localhost) 717s self.curl.setopt(self.curl.POST, 1) 717s self.curl.setopt(self.curl.POSTFIELDSIZE, os.stat(FORM_SUBMISSION_PATH).st_size) 717s self.curl.setopt(self.curl.READDATA, f) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEDATA, sio) 717s self.curl.perform() 717s 717s > actual = json.loads(sio.getvalue().decode()) 717s 717s tests/readdata_test.py:161: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ______________________ ReaddataTest.test_readdata_object _______________________ 717s 717s self = 717s 717s def test_readdata_object(self): 717s d = DataProvider(POSTSTRING) 717s self.curl.setopt(self.curl.URL, 'http://%s:8380/postfields' % localhost) 717s self.curl.setopt(self.curl.POST, 1) 717s self.curl.setopt(self.curl.POSTFIELDSIZE, len(POSTSTRING)) 717s self.curl.setopt(self.curl.READDATA, d) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEFUNCTION, sio.write) 717s self.curl.perform() 717s 717s > actual = json.loads(sio.getvalue().decode()) 717s 717s tests/readdata_test.py:67: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ____________ ReaddataTest.test_readfunction_and_readdata_file_like _____________ 717s 717s self = 717s 717s def test_readfunction_and_readdata_file_like(self): 717s data = 'hello=world' 717s data_provider = DataProvider(data) 717s # data must be the same length 717s function_provider = DataProvider('aaaaa=bbbbb') 717s self.curl.setopt(self.curl.URL, 'http://%s:8380/postfields' % localhost) 717s self.curl.setopt(self.curl.POST, 1) 717s self.curl.setopt(self.curl.POSTFIELDSIZE, len(data)) 717s self.curl.setopt(self.curl.READFUNCTION, function_provider.read) 717s self.curl.setopt(self.curl.READDATA, data_provider) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEDATA, sio) 717s self.curl.perform() 717s 717s > actual = json.loads(sio.getvalue().decode()) 717s 717s tests/readdata_test.py:211: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ____________ ReaddataTest.test_readfunction_and_readdata_real_file _____________ 717s 717s self = 717s 717s def test_readfunction_and_readdata_real_file(self): 717s # data must be the same length 717s with open(FORM_SUBMISSION_PATH) as f: 717s function_provider = DataProvider('aaa=bbb') 717s self.curl.setopt(self.curl.URL, 'http://%s:8380/postfields' % localhost) 717s self.curl.setopt(self.curl.POST, 1) 717s self.curl.setopt(self.curl.POSTFIELDSIZE, os.stat(FORM_SUBMISSION_PATH).st_size) 717s self.curl.setopt(self.curl.READFUNCTION, function_provider.read) 717s self.curl.setopt(self.curl.READDATA, f) 717s sio = util.BytesIO() 717s self.curl.setopt(pycurl.WRITEDATA, sio) 717s self.curl.perform() 717s 717s > actual = json.loads(sio.getvalue().decode()) 717s 717s tests/readdata_test.py:243: 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s /usr/lib/python3.13/json/__init__.py:346: in loads 717s return _default_decoder.decode(s) 717s /usr/lib/python3.13/json/decoder.py:345: in decode 717s obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 717s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717s 717s self = 717s s = '\n\n\n\n\n\n' 717s idx = 0 717s 717s def raw_decode(self, s, idx=0): 717s """Decode a JSON document from ``s`` (a ``str`` beginning with 717s a JSON document) and return a 2-tuple of the Python 717s representation and the index in ``s`` where the document ended. 717s 717s This can be used to decode a JSON document from a string that may 717s have extraneous data at the end. 717s 717s """ 717s try: 717s obj, end = self.scan_once(s, idx) 717s except StopIteration as err: 717s > raise JSONDecodeError("Expecting value", s, err.value) from None 717s E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 717s 717s /usr/lib/python3.13/json/decoder.py:363: JSONDecodeError 717s ______________________ RelativeUrlTest.test_get_relative _______________________ 717s 717s self = 717s 717s def test_get_relative(self): 717s self.curl.get('/success') 717s > self.assertEqual('success', self.curl.body().decode()) 717s E AssertionError: 'success' != '\n' 717s E Diff is 4134 characters long. Set self.maxDiff to None to see it. 717s 717s tests/relative_url_test.py:23: AssertionError 717s _____________________________ ResetTest.test_reset _____________________________ 717s 717s self = 717s 717s def test_reset(self): 717s c = util.DefaultCurl() 717s c.setopt(pycurl.USERAGENT, 'Phony/42') 717s c.setopt(pycurl.URL, 'http://%s:8380/header?h=user-agent' % localhost) 717s sio = util.BytesIO() 717s c.setopt(pycurl.WRITEFUNCTION, sio.write) 717s c.perform() 717s user_agent = sio.getvalue().decode() 717s > assert user_agent == 'Phony/42' 717s E assert '\n' == 'Phony/42' 717s E 717s E - Phony/42 717s E + 717s E + 717s E + 717s E + 717s E + ERROR: The requested URL could not be retrieved... 717s E 717s E ...Full output truncated (140 lines hidden), use '-vv' to show 717s 717s tests/reset_test.py:23: AssertionError 717s ___________________________ ResolveTest.test_resolve ___________________________ 717s 717s self = 717s 717s def test_resolve(self): 717s if util.pycurl_version_less_than(7, 21, 3) and not hasattr(pycurl, 'RESOLVE'): 717s raise unittest.SkipTest('libcurl < 7.21.3 or no RESOLVE') 717s 717s self.curl.setopt(pycurl.URL, 'http://p.localhost:8380/success') 717s self.curl.setopt(pycurl.RESOLVE, ['p.localhost:8380:127.0.0.1']) 717s self.curl.perform() 717s > self.assertEqual(200, self.curl.getinfo(pycurl.RESPONSE_CODE)) 717s E AssertionError: 200 != 503 717s 717s tests/resolve_test.py:25: AssertionError 717s ----------------------------- Captured stdout call ----------------------------- 717s mons Attribution 2.5 License 717s */ 717s 717s /* Page basics */ 717s * { 717s font-family: verdana, sans-serif; 717s } 717s 717s html body { 717s margin: 0; 717s padding: 0; 717s background: #efefef; 717s font-size: 12px; 717s color: #1e1e1e; 717s } 717s 717s /* Page displayed title area */ 717s #titles { 717s margin-left: 15px; 717s padding: 10px; 717s padding-left: 100px; 717s background: url('/squid-internal-static/icons/SN.png') no-repeat left; 717s } 717s 717s /* initial title */ 717s #titles h1 { 717s color: #000000; 717s } 717s #titles h2 { 717s color: #000000; 717s } 717s 717s /* special event: FTP success page titles */ 717s #titles ftpsuccess { 717s background-color:#00ff00; 717s width:100%; 717s } 717s 717s /* Page displayed body content area */ 717s #content { 717s padding: 10px; 717s background: #ffffff; 717s } 717s 717s /* General text */ 717s p { 717s } 717s 717s /* error brief description */ 717s #error p { 717s } 717s 717s /* some data which may have caused the problem */ 717s #data { 717s } 717s 717s /* the error message received from the system or other software */ 717s #sysmsg { 717s } 717s 717s pre { 717s } 717s 717s /* special event: FTP / Gopher directory listing */ 717s #dirmsg { 717s font-family: courier, monospace; 717s color: black; 717s font-size: 10pt; 717s } 717s #dirlisting { 717s margin-left: 2%; 717s margin-right: 2%; 717s } 717s #dirlisting tr.entry td.icon,td.filename,td.size,td.date { 717s border-bottom: groove; 717s } 717s #dirlisting td.size { 717s width: 50px; 717s text-align: right; 717s padding-right: 5px; 717s } 717s 717s /* horizontal lines */ 717s hr { 717s margin: 0; 717s } 717s 717s /* page displayed footer area */ 717s #footer { 717s font-size: 9px; 717s padding-left: 10px; 717s } 717s 717s 717s body 717s :lang(fa) { direction: rtl; font-size: 100%; font-family: Tahoma, Roya, sans-serif; float: right; } 717s :lang(he) { direction: rtl; } 717s --> 717s 717s
717s

ERROR

717s

The requested URL could not be retrieved

717s
717s
717s 717s
717s

The following error was encountered while trying to retrieve the URL: http://127.0.0.1:8380/success

717s 717s
717s

Connection to 127.0.0.1 failed.

717s
717s 717s

The system returned: (111) Connection refused

717s 717s

The remote host or network may be down. Please try the request again.

717s 717s

Your cache administrator is webmaster.

717s 717s
717s
717s 717s
717s 717s 717s 717s 717s 717s 717s ERROR: The requested URL could not be retrieved 717s 717s 717s
717s

ERROR

717s

The requested URL could not be retrieved

717s
717s
717s 717s
717s

The following error was encountered while trying to retrieve the URL: http://127.0.0.1:8380/long_pause

717s 717s
717s

Connection to 127.0.0.1 failed.

717s
717s 717s

The system returned: (111) Connection refused

717s 717s

The remote host or network may be down. Please try the request again.

717s 717s

Your cache administrator is webmaster.

717s 717s
717s
717s 717s
717s 717s 718s make: *** [Makefile:107: do-test] Error 1 719s autopkgtest [19:47:03]: test livetest.sh: -----------------------] 721s autopkgtest [19:47:05]: test livetest.sh: - - - - - - - - - - results - - - - - - - - - - 721s livetest.sh FAIL non-zero exit status 2 722s autopkgtest [19:47:06]: @@@@@@@@@@@@@@@@@@@@ summary 722s command1 PASS 722s livetest.sh FAIL non-zero exit status 2 750s nova [W] Using flock in prodstack7-riscv64 750s Creating nova instance adt-questing-riscv64-pycurl-20250503-193504-juju-7f2275-prod-proposed-migration-environment-15-f0ece8ef-b379-414e-a4f4-fdcca64c5f2b from image adt/ubuntu-questing-riscv64-server-20250503.img (UUID ec7985e8-b8fc-48c2-bb28-0ddfa2a306ad)... 750s nova [W] Timed out waiting for d880a1c0-8fe0-4d7b-9b05-d02a5b501b39 to get deleted.