DEBUG: Executing python function extend_recipe_sysroot NOTE: Direct dependencies are ['/home/pokybuild/yocto-worker/qemuarm64-ptest/build/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb:do_populate_sysroot', '/home/pokybuild/yocto-worker/qemuarm64-ptest/build/meta/recipes-devtools/qemu/qemu-native_7.2.0.bb:do_populate_sysroot', '/home/pokybuild/yocto-worker/qemuarm64-ptest/build/meta/recipes-devtools/qemu/qemu-system-native_7.2.0.bb:do_populate_sysroot', 'virtual:native:/home/pokybuild/yocto-worker/qemuarm64-ptest/build/meta/recipes-devtools/createrepo-c/createrepo-c_0.20.1.bb:do_populate_sysroot', 'virtual:native:/home/pokybuild/yocto-worker/qemuarm64-ptest/build/meta/recipes-devtools/dnf/dnf_4.14.0.bb:do_populate_sysroot', 'virtual:native:/home/pokybuild/yocto-worker/qemuarm64-ptest/build/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot', 'virtual:native:/home/pokybuild/yocto-worker/qemuarm64-ptest/build/meta/recipes-devtools/unfs3/unfs3_git.bb:do_populate_sysroot', 'virtual:native:/home/pokybuild/yocto-worker/qemuarm64-ptest/build/meta/recipes-extended/cpio/cpio_2.13.bb:do_populate_sysroot'] NOTE: Installed into sysroot: ['cpio-native'] NOTE: Skipping as already exists in sysroot: ['qemu-helper-native', 'qemu-native', 'qemu-system-native', 'createrepo-c-native', 'dnf-native', 'pseudo-native', 'unfs3-native', 'zlib-native', 'libxml2-native', 'curl-native', 'expat-native', 'openssl-native', 'rpm-native', 'xz-native', 'sqlite3-native', 'cmake-native', 'python3-native', 'glib-2.0-native', 'file-native', 'libdnf-native', 'gettext-minimal-native', 'libcomps-native', 'librepo-native', 'python3-iniparse-native', 'libtool-native', 'texinfo-dummy-native', 'virglrenderer-native', 'alsa-lib-native', 'libepoxy-native', 'libsdl2-native', 'dtc-native', 'pixman-native', 'libslirp-native', 'libtirpc-native', 'flex-native', 'perl-native', 'bzip2-native', 'zstd-native', 'lua-native', 'elfutils-native', 'libgcrypt-native', 'popt-native', 'ncurses-native', 'libffi-native', 'readline-native', 'libnsl2-native', 'util-linux-libuuid-native', 'gdbm-native', 'util-linux-native', 'libpcre2-native', 'gettext-native', 'libsolv-native', 'libcheck-native', 'json-c-native', 'gobject-introspection-native', 'swig-native', 'libmodulemd-native', 'gpgme-native', 'attr-native', 'python3-installer-native', 'python3-wheel-native', 'python3-setuptools-native', 'python3-six-native', 'python3-build-native', 'libdrm-native', 'mesa-native', 'libx11-native', 'libxrender-native', 'libxext-native', 'libxrandr-native', 'm4-native', 'make-native', 'libarchive-native', 'libmicrohttpd-native', 'libgpg-error-native', 'libcap-native', 'libcap-ng-native', 'libyaml-native', 'libassuan-native', 'python3-flit-core-native', 'python3-packaging-native', 'python3-pyproject-hooks-native', 'libpciaccess-native', 'libpthread-stubs-native', 'xorgproto-native', 'python3-mako-native', 'libxxf86vm-native', 'makedepend-native', 'llvm-native', 'xrandr-native', 'chrpath-native', 'wayland-protocols-native', 'libxdamage-native', 'libxfixes-native', 'wayland-native', 'libxshmfence-native', 'xtrans-native', 'libxcb-native', 'util-macros-native', 'gnu-config-native', 'gnutls-native', 'unzip-native', 'python3-markupsafe-native', 'python3-pygments-native', 'libedit-native', 'libxdmcp-native', 'libxau-native', 'xcb-proto-native', 'libidn2-native', 'gmp-native', 'libunistring-native', 'nettle-native'] DEBUG: Python function extend_recipe_sysroot finished DEBUG: Executing python function do_testimage DEBUG: test suites: test_ping (ping.PingTest) test_ssh (ssh.SSHTest) test_parselogs (parselogs.ParseLogsTest) test_ptestrunner_expectfail (ptest.PtestRunnerTest) test_ptestrunner_expectsuccess (ptest.PtestRunnerTest) DEBUG: Using kvm for runqemu QMP Available for connection at /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/.hdo72l1b DEBUG: Created listening socket for qemu serial console on: 127.0.0.1:35859 DEBUG: Created listening socket for qemu serial console on: 127.0.0.1:55483 DEBUG: launchcmd=runqemu snapshot kvm qemuarm64 /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/deploy/images/qemuarm64/core-image-ptest-liburi-perl-qemuarm64.ext4 tcpserial=35859:55483 bootparams=" printk.time=1" qemuparams="-pidfile /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/pidfile_1795992 -S -qmp unix:./.vp900crc,server,wait -qmp unix:./.hdo72l1b,server,nowait" DEBUG: runqemu started, pid is 1797203 DEBUG: waiting at most 300 seconds for qemu pid (04/10/23 20:53:51) DEBUG: QMP Initializing to /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/.vp900crc /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/work/qemuarm64-poky-linux/core-image-ptest-liburi-perl/1.0-r0/recipe-sysroot-native/usr/lib/qemu-python/qmp/legacy.py:82: DeprecationWarning: There is no current event loop self._aloop = asyncio.get_event_loop() DEBUG: QMP Connecting to /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/.vp900crc QMP connected to QEMU at 04/10/23 20:53:52 and took 0.91 seconds QMP released QEMU at 04/10/23 20:53:52 and took 0.15 seconds from connect DEBUG: qemu started in 1.00 seconds - qemu procces pid is 1797579 (04/10/23 20:53:52) DEBUG: qemu cmdline used: /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/work/aarch64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/qemu-system-aarch64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:20 -netdev tap,id=net0,ifname=tap15,script=no,downscript=no -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0 -drive id=disk0,file=/home/pokybuild/tmp/core-image-ptest-liburi-perl-qemuarm64.ext4.1797237,if=none,format=raw -device virtio-blk-pci,drive=disk0 -device qemu-xhci -device usb-tablet -device usb-kbd -machine virt -cpu host -machine gic-version=3 -smp 4 -enable-kvm -m 1024 -device virtio-serial-pci -chardev socket,id=virtcon,port=35859,host=127.0.0.1 -device virtconsole,chardev=virtcon -serial tcp:127.0.0.1:55483 -pidfile /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/pidfile_1795992 -S -qmp unix:./.vp900crc,server,wait -qmp unix:./.hdo72l1b,server,nowait -serial mon:vc -display sdl,show-cursor=on -device virtio-gpu-pci -kernel /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/deploy/images/qemuarm64/Image -append root=/dev/vda rw mem=1024M ip=192.168.7.32::192.168.7.31:255.255.255.0::eth0:off:8.8.8.8 console=ttyAMA0 console=hvc0 printk.time=1 DEBUG: Target IP: 192.168.7.32 DEBUG: Server IP: 192.168.7.31 DEBUG: Starting logging thread DEBUG: Starting thread event loop DEBUG: Connection request received DEBUG: Setting connection established event DEBUG: Output from runqemu: runqemu - INFO - Using /home/pokybuild/bin/runqemu-renice to renice runqemu - INFO - Continuing with the following parameters: KERNEL: [/home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/deploy/images/qemuarm64/Image] MACHINE: [qemuarm64] FSTYPE: [ext4] ROOTFS: [/home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/deploy/images/qemuarm64/core-image-ptest-liburi-perl-qemuarm64.ext4] CONFFILE: [/home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/deploy/images/qemuarm64/core-image-ptest-liburi-perl-qemuarm64.qemuboot.conf] runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap1.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap2.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap3.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap4.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap5.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap6.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap7.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap8.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap9.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap10.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap11.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap12.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap13.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap14.lock failed: [Errno 11] Resource temporarily unavailable runqemu - INFO - Using preconfigured tap device tap15 runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap15.skip to make runqemu skip tap15. runqemu - INFO - Network configuration: ip=192.168.7.32::192.168.7.31:255.255.255.0::eth0:off:8.8.8.8 runqemu - INFO - Copying rootfs to /home/pokybuild/tmp/core-image-ptest-liburi-perl-qemuarm64.ext4.1797237 runqemu - INFO - Copy done in 0.2884361743927002 seconds runqemu - INFO - Running /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/work/aarch64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/qemu-system-aarch64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:20 -netdev tap,id=net0,ifname=tap15,script=no,downscript=no -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0 -drive id=disk0,file=/home/pokybuild/tmp/core-image-ptest-liburi-perl-qemuarm64.ext4.1797237,if=none,format=raw -device virtio-blk-pci,drive=disk0 -device qemu-xhci -device usb-tablet -device usb-kbd -machine virt -cpu host -machine gic-version=3 -smp 4 -enable-kvm -m 1024 -device virtio-serial-pci -chardev socket,id=virtcon,port=35859,host=127.0.0.1 -device virtconsole,chardev=virtcon -serial tcp:127.0.0.1:55483 -pidfile /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/pidfile_1795992 -S -qmp unix:./.vp900crc,server,wait -qmp unix:./.hdo72l1b,server,nowait -serial mon:vc -display sdl,show-cursor=on -device virtio-gpu-pci -kernel /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/deploy/images/qemuarm64/Image -append 'root=/dev/vda rw mem=1024M ip=192.168.7.32::192.168.7.31:255.255.255.0::eth0:off:8.8.8.8 console=ttyAMA0 console=hvc0 printk.time=1' runqemu - INFO - Host uptime: 6114.45 DEBUG: Waiting at most 1500 seconds for login banner (04/10/23 20:53:52) DEBUG: Connection from 127.0.0.1:38876 /home/pokybuild/yocto-worker/qemuarm64-ptest/build/meta/lib/oeqa/utils/qemurunner.py:486: ResourceWarning: unclosed self.server_socket = qemusock ResourceWarning: Enable tracemalloc to get the object allocation traceback DEBUG: Reached login banner in 6.08 seconds (04/10/23 20:53:58) DEBUG: Logged in as root in serial console NOTE: test_ping (ping.PingTest) DEBUG: Setting up a 30 second(s) timeout DEBUG: Removed SIGALRM handler NOTE: ... ok NOTE: test_ssh (ssh.SSHTest) DEBUG: Checking if at least one of openssh-sshd, dropbear is installed DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; uname -a DEBUG: Waiting for process output: time: 1681160041.542974, endtime: 1681160341.541128 DEBUG: Partial data from SSH call: Linux qemuarm64 6.1.20-yocto-standard #1 SMP PREEMPT Sat Mar 18 02:48:04 UTC 2023 aarch64 GNU/Linux DEBUG: Waiting for process output: time: 1681160041.8719785, endtime: 1681160341.8719754 DEBUG: Data from SSH call: Linux qemuarm64 6.1.20-yocto-standard #1 SMP PREEMPT Sat Mar 18 02:48:04 UTC 2023 aarch64 GNU/Linux DEBUG: [Command returned '0' after 0.53 seconds] DEBUG: Command: uname -a Status: 0 Output: Linux qemuarm64 6.1.20-yocto-standard #1 SMP PREEMPT Sat Mar 18 02:48:04 UTC 2023 aarch64 GNU/Linux DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; cat /etc/controllerimage DEBUG: Waiting for process output: time: 1681160042.0754058, endtime: 1681160342.0735729 DEBUG: Partial data from SSH call: cat: can't open '/etc/controllerimage': No such file or directory DEBUG: Waiting for process output: time: 1681160042.3995354, endtime: 1681160342.399534 DEBUG: Data from SSH call: cat: can't open '/etc/controllerimage': No such file or directory DEBUG: [Command returned '1' after 0.53 seconds] DEBUG: Command: cat /etc/controllerimage Status: 1 Output: cat: can't open '/etc/controllerimage': No such file or directory NOTE: ... ok DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; which LSB_Test.sh DEBUG: Waiting for process output: time: 1681160042.602593, endtime: 1681160342.60068 DEBUG: Data from SSH call: DEBUG: [Command returned '1' after 0.33 seconds] DEBUG: Command: which LSB_Test.sh Status: 1 Output: NOTE: test_parselogs (parselogs.ParseLogsTest) DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; dmesg > /tmp/dmesg_output.log DEBUG: Waiting for process output: time: 1681160042.9354117, endtime: 1681160342.9334993 DEBUG: Data from SSH call: DEBUG: [Command returned '0' after 0.34 seconds] DEBUG: Command: dmesg > /tmp/dmesg_output.log Status: 0 Output: DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; test -f /var/log/ DEBUG: Waiting for process output: time: 1681160043.2752893, endtime: 1681160343.2732444 DEBUG: Data from SSH call: DEBUG: [Command returned '1' after 0.44 seconds] DEBUG: Command: test -f /var/log/ Status: 1 Output: DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; test -d /var/log/ DEBUG: Waiting for process output: time: 1681160043.7150087, endtime: 1681160343.7131748 DEBUG: Data from SSH call: DEBUG: [Command returned '0' after 0.34 seconds] DEBUG: Command: test -d /var/log/ Status: 0 Output: DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; find /var/log//*.log -maxdepth 1 -type f DEBUG: Waiting for process output: time: 1681160044.0599496, endtime: 1681160344.0580966 DEBUG: Partial data from SSH call: /var/log//postinstall.log DEBUG: Waiting for process output: time: 1681160044.4032319, endtime: 1681160344.4032302 DEBUG: Data from SSH call: /var/log//postinstall.log DEBUG: [Command returned '0' after 0.55 seconds] DEBUG: Command: find /var/log//*.log -maxdepth 1 -type f Status: 0 Output: /var/log//postinstall.log DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; test -f /var/log/dmesg DEBUG: Waiting for process output: time: 1681160044.6060293, endtime: 1681160344.604086 DEBUG: Data from SSH call: DEBUG: [Command returned '0' after 0.34 seconds] DEBUG: Command: test -f /var/log/dmesg Status: 0 Output: DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; test -f /tmp/dmesg_output.log DEBUG: Waiting for process output: time: 1681160044.9470973, endtime: 1681160344.9451468 DEBUG: Data from SSH call: DEBUG: [Command returned '0' after 0.33 seconds] DEBUG: Command: test -f /tmp/dmesg_output.log Status: 0 Output: DEBUG: [Running]$ scp -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR root@192.168.7.32:/var/log//postinstall.log /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/work/qemuarm64-poky-linux/core-image-ptest-liburi-perl/1.0-r0/target_logs DEBUG: Data from SSH call: DEBUG: [Command returned '0' after 0.16 seconds] DEBUG: [Running]$ scp -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR root@192.168.7.32:/var/log/dmesg /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/work/qemuarm64-poky-linux/core-image-ptest-liburi-perl/1.0-r0/target_logs DEBUG: Data from SSH call: DEBUG: [Command returned '0' after 0.14 seconds] DEBUG: [Running]$ scp -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR root@192.168.7.32:/tmp/dmesg_output.log /home/pokybuild/yocto-worker/qemuarm64-ptest/build/build/tmp/work/qemuarm64-poky-linux/core-image-ptest-liburi-perl/1.0-r0/target_logs DEBUG: Data from SSH call: DEBUG: [Command returned '0' after 0.15 seconds] DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; cat /proc/cpuinfo | grep "model name" | head -n1 | awk 'BEGIN{FS=":"}{print $2}' DEBUG: Waiting for process output: time: 1681160045.7457104, endtime: 1681160345.743998 DEBUG: Data from SSH call: DEBUG: [Command returned '0' after 0.34 seconds] DEBUG: Command: cat /proc/cpuinfo | grep "model name" | head -n1 | awk 'BEGIN{FS=":"}{print $2}' Status: 0 Output: DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; cat /proc/cpuinfo | grep "cpu cores" | head -n1 | awk {'print $4'} DEBUG: Waiting for process output: time: 1681160046.0901027, endtime: 1681160346.0863583 DEBUG: Data from SSH call: DEBUG: [Command returned '0' after 0.35 seconds] DEBUG: Command: cat /proc/cpuinfo | grep "cpu cores" | head -n1 | awk {'print $4'} Status: 0 Output: DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; cat /proc/cpuinfo | grep "processor" | wc -l DEBUG: Waiting for process output: time: 1681160046.433965, endtime: 1681160346.4321098 DEBUG: Partial data from SSH call: 4 DEBUG: Waiting for process output: time: 1681160046.7696142, endtime: 1681160346.7696128 DEBUG: Data from SSH call: 4 DEBUG: [Command returned '0' after 0.54 seconds] DEBUG: Command: cat /proc/cpuinfo | grep "processor" | wc -l Status: 0 Output: 4 DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; uname -m DEBUG: Waiting for process output: time: 1681160046.9923604, endtime: 1681160346.9717038 DEBUG: Partial data from SSH call: aarch64 DEBUG: Waiting for process output: time: 1681160047.325928, endtime: 1681160347.3259258 DEBUG: Data from SSH call: aarch64 DEBUG: [Command returned '0' after 0.56 seconds] DEBUG: Command: uname -m Status: 0 Output: aarch64 NOTE: ... ok NOTE: test_ptestrunner_expectfail (ptest.PtestRunnerTest) DEBUG: Checking if at least one of ptest-runner is installed DEBUG: Checking if ptest is in DISTRO_FEATURES or IMAGE_FEATURES DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; which ptest-runner DEBUG: Data from SSH call: /usr/bin/ptest-runner DEBUG: [Command returned '0' after 0.13 seconds] DEBUG: Command: which ptest-runner Status: 0 Output: /usr/bin/ptest-runner DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; ptest-runner -t 450 -d "/usr/lib" DEBUG: Data from SSH call: START: ptest-runner 2023-04-10T20:54 BEGIN: /usr/lib/liburi-perl/ptest 1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 PASS: t/news 1..2 ok 1 ok 2 PASS: t/clone 1..15 ok 1 - http://en.wikipedia.org/wiki/Punycode example encode ok 2 - http://en.wikipedia.org/wiki/Punycode example decode ok 3 - A encode ok 4 - A decode ok 5 - B encode ok 6 - B decode ok 7 - E encode ok 8 - E decode ok 9 - J encode ok 10 - J decode ok 11 - K encode ok 12 - K decode ok 13 - O encode ok 14 - O decode ok 15 - S encode PASS: t/punycode 1..12 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 PASS: t/old-file 1..0 # SKIP Need Business::ISBN 3.005 1..0 # SKIP Need Business::ISBN 3.005 SKIP: t/urn-isbn 1..9 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 PASS: t/rtsp 1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 PASS: t/old-absconf 1..17 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 PASS: t/split 1..1 # # Versions for all modules listed in static metadata (including optional ones): # # === Configure Requires === # # Module Want Have # ------------------- ---- ---- # ExtUtils::MakeMaker any 7.64 # # === Configure Suggests === # # Module Want Have # -------- ------- ---- # JSON::PP 2.27300 4.07 # # === Test Requires === # # Module Want Have # --------------------- ---- -------- # ExtUtils::MakeMaker any 7.64 # File::Spec any 3.84 # File::Spec::Functions any 3.84 # File::Temp any 0.2311 # Test::Fatal any 0.017 # Test::More 0.96 1.302190 # Test::Needs any 0.002010 # Test::Warnings any 0.031 # utf8 any 1.24 # # === Test Recommends === # # Module Want Have # ---------- -------- -------- # CPAN::Meta 2.120900 2.150010 # # === Runtime Requires === # # Module Want Have # ------------ ---- ----- # Carp any 1.52 # Cwd any 3.84 # Data::Dumper any 2.184 # Encode any 3.17 # Exporter 5.57 5.77 # MIME::Base64 2 3.16 # Net::Domain any 3.14 # Scalar::Util any 1.62 # constant any 1.33 # integer any 1.01 # overload any 1.35 # parent any 0.238 # strict any 1.12 # utf8 any 1.24 # warnings any 1.58 # # === Runtime Suggests === # # Module Want Have # -------------- ----- ------- # Business::ISBN 3.005 missing # Regexp::IPv6 0.03 missing # ok 1 - Reported prereqs PASS: t/00-report-prereqs 1..26 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 PASS: t/heuristic ok 1 - host ok 2 - port 1..2 PASS: t/ipv6 ok 1 - path_segments in list context ok 2 - path_segments in scalar context ok 3 - set path_segments in list context ok 4 - set path_segments in scalar context ok 5 - set path_segments in void context ok 6 - escaping special characters ok 7 - An object of class 'URI::_segment' isa 'URI::_segment' ok 8 - dealing with URI segments 1..8 PASS: t/path-segments ok 1 - Query parameters are sorted 1..1 PASS: t/sort-hash-query-form ok 1 - constant indicates NOT to treat square brackets as reserved characters ok 2 - sqb in path and request ok 3 - sqb in path and request and fragment ok 4 - sqb in userinfo, host, path, request and fragment ok 5 - sqb in userinfo, host, path, request and fragment ok 6 - scheme ok 7 - userinfo ok 8 - host ok 9 - ihost ok 10 - port ok 11 - default_port ok 12 - host_port ok 13 - is_secure ok 14 - path ok 15 - opaque ok 16 - fragment ok 17 - query ok 18 - as_string ok 19 - has_recognized_scheme ok 20 - as_iri ok 21 - abs (no change) ok 22 - rel ok 23 - authority ok 24 - path_query ok 25 - query_keywords ok 26 - segments ok 27 - scalar: query_form ok 28 - list: query_form ok 29 - query removed ok 30 - list: query_form ok 31 - query removed: canonical ok 32 - query ok 33 - segments ok 34 - rel/canonical ok 35 - basic IPv6 URI ok 36 - basic IPv6 URI ok 37 - userinfo added (unescaped) ok 38 - userinfo is escaped ok 39 - userinfo replaced (escaped) ok 40 - userinfo is escaped ok 41 - userinfo replaced (escaped2) ok 42 - userinfo is escaped2 ok 43 - userinfo replaced (escaped3) ok 44 - userinfo is escaped3 ok 45 - hostname replaced ok 46 - hostname replaced ok 47 - host: example.com ok 48 - same hosts (example.com) ok 49 - host: 127.0.0.1 ok 50 - same hosts (127.0.0.1) ok 51 - IPv6 host: fedc:ba98:7654:3210:fedc:ba98:7654:3210 ok 52 - same IPv6 hosts (fedc:ba98:7654:3210:fedc:ba98:7654:3210) ok 53 - IPv6 host: ::1 ok 54 - same IPv6 hosts (::1) ok 55 - path replaced ok 56 - fragment added ok 57 - authority replaced ok 58 - authority replaced ok 59 - authority replaced ok 60 - authority replaced ok 61 - authority replaced 1..61 PASS: t/sq-brackets 1..22 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 PASS: t/data 1..5 ok 1 ok 2 ok 3 ok 4 ok 5 PASS: t/old-relbase 1..24 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 # ldap://LDAP-HOST:389/o=University%20of%20Michigan,c=US?postalAddress?base?ObjectClass=*?FOO=Bar,bindname=CN%3DManager%CO%3dFoo # ldap://ldap-host/o=University%20of%20Michigan,c=US?postaladdress???foo=Bar,bindname=CN=Manager%CO=Foo ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 PASS: t/ldap ok 1 - constant indicates to treat square brackets as reserved characters (legacy) ok 2 - legacy: reserved square brackets not escaped ok 3 - legacy: reserved square brackets not escaped ok 4 - legacy: reserved square brackets not escaped ok 5 - legacy: reserved square brackets not escaped ok 6 - legacy: reserved square brackets not escaped ok 7 - legacy: reserved square brackets not escaped 1..7 PASS: t/sq-brackets-legacy 1..4 ok 1 ok 2 ok 3 ok 4 PASS: t/rsync 1..13 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 PASS: t/ftp 1..19 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 PASS: t/rfc2732 1..7 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 PASS: t/idna 1..24 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 PASS: t/iri 1..102 # t/roytest1.html ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 # t/roytest2.html ok 43 ok 44 ok 45 ok 46 ok 47 ok 48 ok 49 ok 50 ok 51 ok 52 ok 53 ok 54 ok 55 ok 56 ok 57 ok 58 ok 59 # t/roytest3.html ok 60 ok 61 ok 62 ok 63 ok 64 ok 65 ok 66 ok 67 ok 68 ok 69 ok 70 ok 71 ok 72 # t/roytest4.html ok 73 ok 74 ok 75 ok 76 ok 77 ok 78 ok 79 ok 80 ok 81 ok 82 ok 83 ok 84 ok 85 ok 86 ok 87 # t/roytest5.html ok 88 ok 89 ok 90 ok 91 ok 92 ok 93 ok 94 ok 95 ok 96 ok 97 ok 98 ok 99 ok 100 ok 101 ok 102 PASS: t/roy-test 1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 PASS: t/rel 1..19 ok 1 - query_form_hash get ok 2 - query_form_hash set ok 3 - query_param list keys ok 4 - query_param scalar return ok 5 - query_param list return ok 6 - query_param set return ok 7 - param order ok 8 - old values returned ok 9 ok 10 - query_param_delete ok 11 ok 12 ok 13 - delete by assigning empty list ok 14 - query_param from scratch ok 15 ok 16 ok 17 ok 18 ok 19 PASS: t/query-param # Turn lib path . into /usr/lib/liburi-perl/ptest/. # Self tests for URI::URL version 5.17... # Subtest: scheme tests # Testing 'file://host/fseg/fs?g/fseg' ok 1 - URI::URL->as_string ok 2 - URI::URL->host ok 3 - URI::URL->path # Testing 'ftp://0%3A:%40@h:0/0?0' ok 4 - URI::URL->netloc ok 5 - URI::URL->query ok 6 - URI::URL->password ok 7 - URI::URL->as_string ok 8 - URI::URL->host ok 9 - URI::URL->port ok 10 - URI::URL->params ok 11 - URI::URL->path ok 12 - URI::URL->user ok 13 - URI::URL->scheme # Testing 'ftp://host/a/b' ok 14 - URI::URL->as_string ok 15 - URI::URL->user ok 16 - URI::URL->host ok 17 - URI::URL->port ok 18 - URI::URL->path # Testing 'ftp://usr:pswd@web:1234/a/b;type=i' ok 19 - URI::URL->port ok 20 - URI::URL->host ok 21 - URI::URL->as_string ok 22 - URI::URL->password ok 23 - URI::URL->user ok 24 - URI::URL->path ok 25 - URI::URL->params # Testing 'gopher://gopher/2a_selector' ok 26 - URI::URL->selector ok 27 - URI::URL->gtype ok 28 - URI::URL->as_string # Testing 'gopher://host' ok 29 - URI::URL->as_string ok 30 - URI::URL->gtype # Testing 'gopher://host/' ok 31 - URI::URL->gtype ok 32 - URI::URL->as_string # Testing 'hTTp://web1.net/a/b/c/welcome#intro' ok 33 - URI::URL->query ok 34 - URI::URL->as_string ok 35 - URI::URL->port ok 36 - URI::URL->params ok 37 - URI::URL->eparams ok 38 - URI::URL->full_path ok 39 - URI::URL->equery ok 40 - URI::URL->host ok 41 - URI::URL->path ok 42 - URI::URL->frag ok 43 - URI::URL->epath ok 44 - URI::URL->scheme # Testing 'http://0:0/0/0;0?0#0' ok 45 - URI::URL->netloc ok 46 - URI::URL->query ok 47 - URI::URL->as_string ok 48 - URI::URL->host ok 49 - URI::URL->port ok 50 - URI::URL->path ok 51 - URI::URL->params ok 52 - URI::URL->frag ok 53 - URI::URL->scheme # Testing 'http://web.net' ok 54 - URI::URL->path ok 55 - URI::URL->frag ok 56 - URI::URL->scheme ok 57 - URI::URL->query ok 58 - URI::URL->full_path ok 59 - URI::URL->as_string ok 60 - URI::URL->host ok 61 - URI::URL->port # Testing 'http://web.net/' ok 62 - URI::URL->scheme ok 63 - URI::URL->frag ok 64 - URI::URL->path ok 65 - URI::URL->host ok 66 - URI::URL->port ok 67 - URI::URL->as_string ok 68 - URI::URL->query ok 69 - URI::URL->full_path # Testing 'http://web:1/a?query+text' ok 70 - URI::URL->frag ok 71 - URI::URL->host ok 72 - URI::URL->port ok 73 - URI::URL->scheme ok 74 - URI::URL->path ok 75 - URI::URL->query # Testing 'http:/0?0' ok 76 - URI::URL->as_string ok 77 - URI::URL->scheme ok 78 - URI::URL->path ok 79 - URI::URL->full_path ok 80 - URI::URL->query # Testing 'http:0' ok 81 - URI::URL->as_string ok 82 - URI::URL->scheme ok 83 - URI::URL->path ok 84 - URI::URL->query ok 85 - URI::URL->full_path # Testing 'mailto:libwww-perl@ics.uci.edu' ok 86 - URI::URL->encoded822addr ok 87 - URI::URL->address ok 88 - URI::URL->as_string # Testing 'news:*' ok 89 - URI::URL->groupart ok 90 - URI::URL->group ok 91 - URI::URL->as_string # Testing 'news:comp.lang.perl' ok 92 - URI::URL->group # Testing 'news:perl-faq/module-list-1-794455075@ig.co.uk' ok 93 - URI::URL->article # Testing 'nntp://news.com/comp.lang.perl/42' ok 94 - URI::URL->group # Testing 'rlogin://aas@a.sn.no' ok 95 - URI::URL->host ok 96 - URI::URL->user # Testing 'telnet://usr:pswd@web:12345/' ok 97 - URI::URL->host ok 98 - URI::URL->user ok 99 - URI::URL->password 1..99 ok 1 - scheme tests # Subtest: parts test ok 1 - URI::URL->as_string ok 2 - URI::URL->full_path ok 3 - URI::URL->as_string ok 4 - URI::URL->full_path ok 5 - URI::URL->as_string ok 6 - URI::URL->as_string ok 7 - URI::URL->as_string ok 8 - URI::URL->as_string ok 9 - URI::URL->as_string ok 10 - $url->keywords ok 11 - URI::URL->as_string ok 12 - $url->query_form ok 13 - URI::URL->as_string ok 14 - length ok 15 - query_form ok 16 - length ok 17 - sequence ok 18 - URI::URL->as_string # Subtest: netloc_test ok 1 - URI::URL->as_string ok 2 - URI::URL->as_string ok 3 - URI::URL->as_string ok 4 - URI::URL->as_string ok 5 - URI::URL->as_string ok 6 - URI::URL->as_string ok 7 - URI::URL->as_string ok 8 - URI::URL->as_string ok 9 - URI::URL->as_string ok 10 - URI::URL->as_string ok 11 - URI::URL->as_string ok 12 - URI::URL->as_string ok 13 - URI::URL->as_string ok 14 - URI::URL->as_string ok 15 - URI::URL->as_string ok 16 - URI::URL->as_string 1..16 ok 19 - netloc_test # Subtest: port_test ok 1 - port ok 2 - string ok 3 - port ok 4 - string ok 5 - port ok 6 - string ok 7 - port ok 8 - string 1..8 ok 20 - port_test ok 21 - URI::URL->as_string ok 22 - URI::URL->as_string ok 23 - URI::URL->as_string ok 24 - URI::URL->as_string ok 25 - URI::URL->as_string ok 26 - URI::URL->as_string ok 27 - URI::URL->as_string ok 28 - URI::URL->as_string ok 29 - URI::URL->as_string: "<" and ">" are gone ok 30 - 9 elements # Cracked result: http*UNDEF*UNDEF*host*80*/path*param*query*frag ok 31 - crack result ok 32 - 9 elements # Cracked result: UNDEF*anonymous*anonymous@*UNDEF*21*foo/bar*UNDEF*UNDEF*UNDEF ok 33 - 9 elements # Cracked result: ftp*u*p*host*21*/q?path*UNDEF*path*UNDEF ok 34 - crack result ok 35 - 9 elements ok 36 - passwd in anonymous crack # Cracked result: ftp*anonymous*passwd*ftp.sn.no*21*/pub*UNDEF*UNDEF*UNDEF ok 37 - crack result ok 38 - 9 elements # Cracked result: mailto*UNDEF*UNDEF*UNDEF*UNDEF*/aas@sn.no*UNDEF*UNDEF*UNDEF ok 39 - 9 elements # Cracked result: news*UNDEF*UNDEF*UNDEF*119*comp.lang.perl.misc*UNDEF*UNDEF*UNDEF ok 40 - crack result 1..40 ok 2 - parts test # Subtest: escape test ok 1 - URI::URL->as_string ok 2 - URI::URL->as_string ok 3 - URI::URL->as_string ok 4 - uri_escape->uri_unescape ok 5 - URI::URL->as_string ok 6 - URI::URL->as_string 1..6 ok 3 - escape test # Subtest: newlocal test ok 1 - URI::URL->as_string # Local directory is /tmp/cfSQPd2n0u/ ok 2 - URI::URL->as_string ok 3 - URI::URL->as_string ok 4 - URI::URL->as_string ok 5 - URI::URL->as_string ok 6 - URI::URL->as_string ok 7 - URI::URL->as_string ok 8 - URI::URL->as_string ok 9 - URI::URL->as_string ok 10 - URI::URL->as_string ok 11 - URI::URL->as_string ok 12 - URI::URL->as_string ok 13 - URI::URL->as_string ok 14 - URI::URL->as_string ok 15 - URI::URL->as_string ok 16 - URI::URL->as_string ok 17 - URI::URL->as_string ok 18 - URI::URL->as_string ok 19 - URI::URL->as_string ok 20 - URI::URL->as_string 1..20 ok 4 - newlocal test # Subtest: Test relative/absolute URI::URL parsing # Relative + Base => Expected Absolute URL # ------------------------------------------------ # g:h + http://a/b/c/d;p?q#f => g:h ok 1 - URI::URL->as_string # g + http://a/b/c/d;p?q#f => http://a/b/c/g ok 2 - URI::URL->as_string # ./g + http://a/b/c/d;p?q#f => http://a/b/c/g ok 3 - URI::URL->as_string # g/ + http://a/b/c/d;p?q#f => http://a/b/c/g/ ok 4 - URI::URL->as_string # /g + http://a/b/c/d;p?q#f => http://a/g ok 5 - URI::URL->as_string # //g + http://a/b/c/d;p?q#f => http://g ok 6 - URI::URL->as_string # g?y + http://a/b/c/d;p?q#f => http://a/b/c/g?y ok 7 - URI::URL->as_string # g?y/./x + http://a/b/c/d;p?q#f => http://a/b/c/g?y/./x ok 8 - URI::URL->as_string # #s + http://a/b/c/d;p?q#f => http://a/b/c/d;p?q#s ok 9 - URI::URL->as_string # g#s + http://a/b/c/d;p?q#f => http://a/b/c/g#s ok 10 - URI::URL->as_string # g#s/./x + http://a/b/c/d;p?q#f => http://a/b/c/g#s/./x ok 11 - URI::URL->as_string # g?y#s + http://a/b/c/d;p?q#f => http://a/b/c/g?y#s ok 12 - URI::URL->as_string # g;x + http://a/b/c/d;p?q#f => http://a/b/c/g;x ok 13 - URI::URL->as_string # g;x?y#s + http://a/b/c/d;p?q#f => http://a/b/c/g;x?y#s ok 14 - URI::URL->as_string # . + http://a/b/c/d;p?q#f => http://a/b/c/ ok 15 - URI::URL->as_string # ./ + http://a/b/c/d;p?q#f => http://a/b/c/ ok 16 - URI::URL->as_string # .. + http://a/b/c/d;p?q#f => http://a/b/ ok 17 - URI::URL->as_string # ../ + http://a/b/c/d;p?q#f => http://a/b/ ok 18 - URI::URL->as_string # ../g + http://a/b/c/d;p?q#f => http://a/b/g ok 19 - URI::URL->as_string # ../.. + http://a/b/c/d;p?q#f => http://a/ ok 20 - URI::URL->as_string # ../../ + http://a/b/c/d;p?q#f => http://a/ ok 21 - URI::URL->as_string # ../../g + http://a/b/c/d;p?q#f => http://a/g ok 22 - URI::URL->as_string # + http://a/b/c/d;p?q#f => http://a/b/c/d;p?q#f ok 23 - URI::URL->as_string # /./g + http://a/b/c/d;p?q#f => http://a/./g ok 24 - URI::URL->as_string # /../g + http://a/b/c/d;p?q#f => http://a/../g ok 25 - URI::URL->as_string # g. + http://a/b/c/d;p?q#f => http://a/b/c/g. ok 26 - URI::URL->as_string # .g + http://a/b/c/d;p?q#f => http://a/b/c/.g ok 27 - URI::URL->as_string # g.. + http://a/b/c/d;p?q#f => http://a/b/c/g.. ok 28 - URI::URL->as_string # ..g + http://a/b/c/d;p?q#f => http://a/b/c/..g ok 29 - URI::URL->as_string # ./../g + http://a/b/c/d;p?q#f => http://a/b/g ok 30 - URI::URL->as_string # ./g/. + http://a/b/c/d;p?q#f => http://a/b/c/g/ ok 31 - URI::URL->as_string # g/./h + http://a/b/c/d;p?q#f => http://a/b/c/g/h ok 32 - URI::URL->as_string # g/../h + http://a/b/c/d;p?q#f => http://a/b/c/h ok 33 - URI::URL->as_string # http:g + http://a/b/c/d;p?q#f => http:g ok 34 - URI::URL->as_string # http: + http://a/b/c/d;p?q#f => http: ok 35 - URI::URL->as_string # x/y//../z + http://a/b/c/d;p?q#f => http://a/b/c/x/y/z ok 36 - URI::URL->as_string # 1 + http://a/b/c/d;p?q#f => http://a/b/c/1 ok 37 - URI::URL->as_string # 0 + http://a/b/c/d;p?q#f => http://a/b/c/0 ok 38 - URI::URL->as_string # /0 + http://a/b/c/d;p?q#f => http://a/0 ok 39 - URI::URL->as_string ok 40 - identity ok 41 - URL canonicalised # -------- # http://abc/ + news:45664545 => http://abc/ ok 42 - ->as_string # news:abc + http://abc/ => news:abc ok 43 - ->as_string # abc + file:/test?aas => file:/abc ok 44 - ->as_string # ?foo + file:/abc => file:/abc?foo ok 45 - ->as_string # #foo + http://abc/a => http://abc/a#foo ok 46 - ->as_string # #foo + file:a => file:a#foo ok 47 - ->as_string # #foo + file:/a => file:/a#foo ok 48 - ->as_string # #foo + file:/a => file:/a#foo ok 49 - ->as_string # #foo + file://localhost/a => file://localhost/a#foo ok 50 - ->as_string # 123@sn.no + news:comp.lang.perl.misc => news:/123@sn.no ok 51 - ->as_string # no.perl + news:123@sn.no => news:/no.perl ok 52 - ->as_string # mailto:aas@a.sn.no+ http://www.sn.no/ => mailto:aas@a.sn.no ok 53 - ->as_string # http:foo + http://h/a/b => http://h/a/foo ok 54 - ->as_string # http:/foo + http://h/a/b => http://h/foo ok 55 - ->as_string # http:?foo + http://h/a/b => http://h/a/b?foo ok 56 - ->as_string # http:#foo + http://h/a/b => http://h/a/b#foo ok 57 - ->as_string # http:?foo#bar+ http://h/a/b => http://h/a/b?foo#bar ok 58 - ->as_string # file:/foo + http://h/a/b => file:/foo ok 59 - ->as_string # absolute test ok ok 60 - url('http://abc/a', 'http://abc')->rel = 'a' ok 61 - url('http://abc/a', 'http://abc/b')->rel = 'a' ok 62 - url('http://abc/a?q', 'http://abc/b')->rel = 'a?q' ok 63 - url('http://abc/a;p', 'http://abc/b')->rel = 'a;p' ok 64 - url('http://abc/a', 'http://abc/a/b/c/')->rel = '../../../a' ok 65 - url('http://abc/a/', 'http://abc/a/')->rel = './' ok 66 - url('http://abc/a\#f', 'http://abc/a')->rel = '\#f' ok 67 - url('file:/etc/motd', 'file:/')->rel = 'etc/motd' ok 68 - url('file:/etc/motd', 'file:/etc/passwd')->rel = 'motd' ok 69 - url('file:/etc/motd', 'file:/etc/rc2.d/')->rel = '../motd' ok 70 - url('file:/etc/motd', 'file:/usr/lib/doc')->rel = '../../etc/motd' ok 71 - url('file:', 'file:/etc/')->rel = '../' ok 72 - url('file:foo', 'file:/etc/')->rel = '../foo' ok 73 - url('mailto:aas', 'http://abc')->rel = 'mailto:aas' ok 74 - url('http://www.math.uio.no/doc/mail/top.html', 'http://www.math.uio.no/doc/linux/')->rel = '../mail/top.html' # relative test ok 1..74 ok 5 - Test relative/absolute URI::URL parsing # Subtest: eq test ok 1 - 1: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 2 - 2: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 3 - 3: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 4 - 4: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 5 - 5: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 6 - 6: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 7 - 7: http://www.sn.no/ ok 8 - 8: http://www.sn.no/ ok 9 - 10: ftp://ftp/%2Fetc ok 10 - 11: ftp://ftp/%2Fetc 1..10 ok 6 - eq test ok 7 - URI::URL->as_string ok 8 - URI::URL->path ok 9 - wash&go # URI::URL version 5.17 ok 1..9 PASS: t/old-base 1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 PASS: t/mms 1..48 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok 44 ok 45 ok 46 ok 47 ok 48 PASS: t/gopher ok 1 - == ok 2 - != 1..2 PASS: t/num_eq 1..4 ok 1 ok 2 ok 3 ok 4 PASS: t/urn-oid # store 1..3 # retrieve ok 1 ok 2 ok 3 PASS: t/storable 1..16 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 PASS: t/http ok 1 - no exception when trying to load a scheme handler class ok 2 - but URI still instantiated as foreign ok 3 - no exception when trying to load a scheme handler class ok 4 - but URI still instantiated as foreign 1..4 PASS: t/scheme-exceptions 1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 PASS: t/mix 1..48 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok 44 ok 45 ok 46 ok 47 ok 48 PASS: t/generic ok 1 - correctly created a URI from a utf8-downgrade string 1..1 PASS: t/escape-char ok 1 - parsing normal URI sets to() ok 2 - ... and stringification works ok 3 - to() returns old value ok 4 - ... and sets new value ok 5 - ... and stringification works ok 6 - to() accepts chars that need escaping ok 7 - ... and stringification escapes them ok 8 - ... and headers() returns the correct values ok 9 - setting multiple headers at once works ok 10 - ... and to() returns the new value ok 11 - ... and stringification works ok 12 - starting with an empty URI and setting to() works ok 13 - subaddress with `+` parsed correctly ok 14 - ... and stringification works ok 15 - IPv4 host name ok 16 - ... and stringification works ok 17 - IPv4 host name ok 18 - ... and stringification works 1..18 PASS: t/mailto ok 1 ok 2 ok 3 ok 4 ok 5 1..5 PASS: t/utf8 1..23 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 PASS: t/query ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 - it should accept slash in unwanted characters ok 9 - it should accept regex char group terminator in unwanted characters ok 10 - it should accept regex escape character at the end of unwanted characters ok 11 - it should recognize scalar interpolation injection in unwanted characters ok 12 - it should recognize array interpolation injection in unwanted characters ok 13 - it should recognize hash interpolation injection in unwanted characters ok 14 - it should recognize leading minus ok 15 - it should recognize leading ^- ok 16 - it should recognize character groups ok 17 - it should allow character class escapes ok 18 - regex characters like / and ^ allowed in range ok 19 - invalid range with max less than min throws exception ok 20 - it should allow character class escapes ok 21 - bad escapes emit warnings ok 22 - allows regexp objects ok 23 - allows regexp objects matching multiple characters ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 - no (unexpected) warnings (via done_testing) 1..29 PASS: t/escape 1..45 ok 1 - g:h => g:h ok 2 - g => http://a/b/c/g ok 3 - ./g => http://a/b/c/g ok 4 - g/ => http://a/b/c/g/ ok 5 - /g => http://a/g ok 6 - //g => http://g ok 7 - ?y => http://a/b/c/d;p?y ok 8 - g?y => http://a/b/c/g?y ok 9 - \#s => http://a/b/c/d;p?q\#s ok 10 - g\#s => http://a/b/c/g\#s ok 11 - g?y\#s => http://a/b/c/g?y\#s ok 12 - ;x => http://a/b/c/;x ok 13 - g;x => http://a/b/c/g;x ok 14 - g;x?y\#s => http://a/b/c/g;x?y\#s ok 15 - . => http://a/b/c/ ok 16 - ./ => http://a/b/c/ ok 17 - .. => http://a/b/ ok 18 - ../ => http://a/b/ ok 19 - ../g => http://a/b/g ok 20 - ../.. => http://a/ ok 21 - ../../ => http://a/ ok 22 - ../../g => http://a/g ok 23 - <> => http://a/b/c/d;p?q ok 24 - ../../../g => http://a/../g ok 25 - ../../../../g => http://a/../../g ok 26 - /./g => http://a/./g ok 27 - /../g => http://a/../g ok 28 - g. => http://a/b/c/g. ok 29 - .g => http://a/b/c/.g ok 30 - g.. => http://a/b/c/g.. ok 31 - ..g => http://a/b/c/..g ok 32 - ./../g => http://a/b/g ok 33 - ./g/. => http://a/b/c/g/ ok 34 - g/./h => http://a/b/c/g/h ok 35 - g/../h => http://a/b/c/h ok 36 - g;x=1/./y => http://a/b/c/g;x=1/y ok 37 - g;x=1/../y => http://a/b/c/y ok 38 - g?y/./x => http://a/b/c/g?y/./x ok 39 - g?y/../x => http://a/b/c/g?y/../x ok 40 - g\#s/./x => http://a/b/c/g\#s/./x ok 41 - g\#s/../x => http://a/b/c/g\#s/../x ok 42 - http:g => http:g ok 43 - http: => http: ok 44 - \#foo? => http://a/b/c/d;p?q\#foo? ok 45 - ?\#foo => http://a/b/c/d;p?\#foo # # # In the following cases we did not get back to where we started with rel() # 1: URI->new("http://a/b/c/g", "http://a/b/c/d;p?q")->rel ==> "g" (not "./g") # 1: URI->new("http://a/g", "http://a/b/c/d;p?q")->rel ==> "../../g" (not "/g") # 1: URI->new("http://g", "http://a/b/c/d;p?q")->rel ==> "http://g" (not "//g") # 1: URI->new("http://a/b/c/d;p?y", "http://a/b/c/d;p?q")->rel ==> "d;p?y" (not "?y") # 1: URI->new("http://a/b/c/d;p?q#s", "http://a/b/c/d;p?q")->rel ==> "d;p?q#s" (not "#s") # 1: URI->new("http://a/b/c/", "http://a/b/c/d;p?q")->rel ==> "./" (not ".") # 1: URI->new("http://a/b/", "http://a/b/c/d;p?q")->rel ==> "../" (not "..") # 1: URI->new("http://a/", "http://a/b/c/d;p?q")->rel ==> "../../" (not "../..") # 1: URI->new("http://a/b/c/d;p?q", "http://a/b/c/d;p?q")->rel ==> "d;p?q" (not "<>") # 1: URI->new("http://a/./g", "http://a/b/c/d;p?q")->rel ==> "../.././g" (not "/./g") # 1: URI->new("http://a/../g", "http://a/b/c/d;p?q")->rel ==> "../../../g" (not "/../g") # 1: URI->new("http://a/b/g", "http://a/b/c/d;p?q")->rel ==> "../g" (not "./../g") # 1: URI->new("http://a/b/c/g/", "http://a/b/c/d;p?q")->rel ==> "g/" (not "./g/.") # 1: URI->new("http://a/b/c/g/h", "http://a/b/c/d;p?q")->rel ==> "g/h" (not "g/./h") # 1: URI->new("http://a/b/c/h", "http://a/b/c/d;p?q")->rel ==> "h" (not "g/../h") # 1: URI->new("http://a/b/c/g;x=1/y", "http://a/b/c/d;p?q")->rel ==> "g;x=1/y" (not "g;x=1/./y") # 1: URI->new("http://a/b/c/y", "http://a/b/c/d;p?q")->rel ==> "y" (not "g;x=1/../y") # 1: URI->new("http://a/b/c/d;p?q#foo?", "http://a/b/c/d;p?q")->rel ==> "d;p?q#foo?" (not "#foo?") # 1: URI->new("http://a/b/c/d;p?#foo", "http://a/b/c/d;p?q")->rel ==> "d;p?#foo" (not "?#foo") PASS: t/abs 1..13 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 PASS: t/sip 1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 PASS: t/pop DURATION: 4 END: /usr/lib/liburi-perl/ptest 2023-04-10T20:54 STOP: ptest-runner TOTAL: 1 FAIL: 0 DEBUG: [Command returned '0' after 4.13 seconds] DEBUG: Command: ptest-runner -t 450 -d "/usr/lib" Status: 0 Output: START: ptest-runner 2023-04-10T20:54 BEGIN: /usr/lib/liburi-perl/ptest 1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 PASS: t/news 1..2 ok 1 ok 2 PASS: t/clone 1..15 ok 1 - http://en.wikipedia.org/wiki/Punycode example encode ok 2 - http://en.wikipedia.org/wiki/Punycode example decode ok 3 - A encode ok 4 - A decode ok 5 - B encode ok 6 - B decode ok 7 - E encode ok 8 - E decode ok 9 - J encode ok 10 - J decode ok 11 - K encode ok 12 - K decode ok 13 - O encode ok 14 - O decode ok 15 - S encode PASS: t/punycode 1..12 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 PASS: t/old-file 1..0 # SKIP Need Business::ISBN 3.005 1..0 # SKIP Need Business::ISBN 3.005 SKIP: t/urn-isbn 1..9 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 PASS: t/rtsp 1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 PASS: t/old-absconf 1..17 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 PASS: t/split 1..1 # # Versions for all modules listed in static metadata (including optional ones): # # === Configure Requires === # # Module Want Have # ------------------- ---- ---- # ExtUtils::MakeMaker any 7.64 # # === Configure Suggests === # # Module Want Have # -------- ------- ---- # JSON::PP 2.27300 4.07 # # === Test Requires === # # Module Want Have # --------------------- ---- -------- # ExtUtils::MakeMaker any 7.64 # File::Spec any 3.84 # File::Spec::Functions any 3.84 # File::Temp any 0.2311 # Test::Fatal any 0.017 # Test::More 0.96 1.302190 # Test::Needs any 0.002010 # Test::Warnings any 0.031 # utf8 any 1.24 # # === Test Recommends === # # Module Want Have # ---------- -------- -------- # CPAN::Meta 2.120900 2.150010 # # === Runtime Requires === # # Module Want Have # ------------ ---- ----- # Carp any 1.52 # Cwd any 3.84 # Data::Dumper any 2.184 # Encode any 3.17 # Exporter 5.57 5.77 # MIME::Base64 2 3.16 # Net::Domain any 3.14 # Scalar::Util any 1.62 # constant any 1.33 # integer any 1.01 # overload any 1.35 # parent any 0.238 # strict any 1.12 # utf8 any 1.24 # warnings any 1.58 # # === Runtime Suggests === # # Module Want Have # -------------- ----- ------- # Business::ISBN 3.005 missing # Regexp::IPv6 0.03 missing # ok 1 - Reported prereqs PASS: t/00-report-prereqs 1..26 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 PASS: t/heuristic ok 1 - host ok 2 - port 1..2 PASS: t/ipv6 ok 1 - path_segments in list context ok 2 - path_segments in scalar context ok 3 - set path_segments in list context ok 4 - set path_segments in scalar context ok 5 - set path_segments in void context ok 6 - escaping special characters ok 7 - An object of class 'URI::_segment' isa 'URI::_segment' ok 8 - dealing with URI segments 1..8 PASS: t/path-segments ok 1 - Query parameters are sorted 1..1 PASS: t/sort-hash-query-form ok 1 - constant indicates NOT to treat square brackets as reserved characters ok 2 - sqb in path and request ok 3 - sqb in path and request and fragment ok 4 - sqb in userinfo, host, path, request and fragment ok 5 - sqb in userinfo, host, path, request and fragment ok 6 - scheme ok 7 - userinfo ok 8 - host ok 9 - ihost ok 10 - port ok 11 - default_port ok 12 - host_port ok 13 - is_secure ok 14 - path ok 15 - opaque ok 16 - fragment ok 17 - query ok 18 - as_string ok 19 - has_recognized_scheme ok 20 - as_iri ok 21 - abs (no change) ok 22 - rel ok 23 - authority ok 24 - path_query ok 25 - query_keywords ok 26 - segments ok 27 - scalar: query_form ok 28 - list: query_form ok 29 - query removed ok 30 - list: query_form ok 31 - query removed: canonical ok 32 - query ok 33 - segments ok 34 - rel/canonical ok 35 - basic IPv6 URI ok 36 - basic IPv6 URI ok 37 - userinfo added (unescaped) ok 38 - userinfo is escaped ok 39 - userinfo replaced (escaped) ok 40 - userinfo is escaped ok 41 - userinfo replaced (escaped2) ok 42 - userinfo is escaped2 ok 43 - userinfo replaced (escaped3) ok 44 - userinfo is escaped3 ok 45 - hostname replaced ok 46 - hostname replaced ok 47 - host: example.com ok 48 - same hosts (example.com) ok 49 - host: 127.0.0.1 ok 50 - same hosts (127.0.0.1) ok 51 - IPv6 host: fedc:ba98:7654:3210:fedc:ba98:7654:3210 ok 52 - same IPv6 hosts (fedc:ba98:7654:3210:fedc:ba98:7654:3210) ok 53 - IPv6 host: ::1 ok 54 - same IPv6 hosts (::1) ok 55 - path replaced ok 56 - fragment added ok 57 - authority replaced ok 58 - authority replaced ok 59 - authority replaced ok 60 - authority replaced ok 61 - authority replaced 1..61 PASS: t/sq-brackets 1..22 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 PASS: t/data 1..5 ok 1 ok 2 ok 3 ok 4 ok 5 PASS: t/old-relbase 1..24 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 # ldap://LDAP-HOST:389/o=University%20of%20Michigan,c=US?postalAddress?base?ObjectClass=*?FOO=Bar,bindname=CN%3DManager%CO%3dFoo # ldap://ldap-host/o=University%20of%20Michigan,c=US?postaladdress???foo=Bar,bindname=CN=Manager%CO=Foo ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 PASS: t/ldap ok 1 - constant indicates to treat square brackets as reserved characters (legacy) ok 2 - legacy: reserved square brackets not escaped ok 3 - legacy: reserved square brackets not escaped ok 4 - legacy: reserved square brackets not escaped ok 5 - legacy: reserved square brackets not escaped ok 6 - legacy: reserved square brackets not escaped ok 7 - legacy: reserved square brackets not escaped 1..7 PASS: t/sq-brackets-legacy 1..4 ok 1 ok 2 ok 3 ok 4 PASS: t/rsync 1..13 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 PASS: t/ftp 1..19 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 PASS: t/rfc2732 1..7 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 PASS: t/idna 1..24 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 PASS: t/iri 1..102 # t/roytest1.html ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 # t/roytest2.html ok 43 ok 44 ok 45 ok 46 ok 47 ok 48 ok 49 ok 50 ok 51 ok 52 ok 53 ok 54 ok 55 ok 56 ok 57 ok 58 ok 59 # t/roytest3.html ok 60 ok 61 ok 62 ok 63 ok 64 ok 65 ok 66 ok 67 ok 68 ok 69 ok 70 ok 71 ok 72 # t/roytest4.html ok 73 ok 74 ok 75 ok 76 ok 77 ok 78 ok 79 ok 80 ok 81 ok 82 ok 83 ok 84 ok 85 ok 86 ok 87 # t/roytest5.html ok 88 ok 89 ok 90 ok 91 ok 92 ok 93 ok 94 ok 95 ok 96 ok 97 ok 98 ok 99 ok 100 ok 101 ok 102 PASS: t/roy-test 1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 PASS: t/rel 1..19 ok 1 - query_form_hash get ok 2 - query_form_hash set ok 3 - query_param list keys ok 4 - query_param scalar return ok 5 - query_param list return ok 6 - query_param set return ok 7 - param order ok 8 - old values returned ok 9 ok 10 - query_param_delete ok 11 ok 12 ok 13 - delete by assigning empty list ok 14 - query_param from scratch ok 15 ok 16 ok 17 ok 18 ok 19 PASS: t/query-param # Turn lib path . into /usr/lib/liburi-perl/ptest/. # Self tests for URI::URL version 5.17... # Subtest: scheme tests # Testing 'file://host/fseg/fs?g/fseg' ok 1 - URI::URL->as_string ok 2 - URI::URL->host ok 3 - URI::URL->path # Testing 'ftp://0%3A:%40@h:0/0?0' ok 4 - URI::URL->netloc ok 5 - URI::URL->query ok 6 - URI::URL->password ok 7 - URI::URL->as_string ok 8 - URI::URL->host ok 9 - URI::URL->port ok 10 - URI::URL->params ok 11 - URI::URL->path ok 12 - URI::URL->user ok 13 - URI::URL->scheme # Testing 'ftp://host/a/b' ok 14 - URI::URL->as_string ok 15 - URI::URL->user ok 16 - URI::URL->host ok 17 - URI::URL->port ok 18 - URI::URL->path # Testing 'ftp://usr:pswd@web:1234/a/b;type=i' ok 19 - URI::URL->port ok 20 - URI::URL->host ok 21 - URI::URL->as_string ok 22 - URI::URL->password ok 23 - URI::URL->user ok 24 - URI::URL->path ok 25 - URI::URL->params # Testing 'gopher://gopher/2a_selector' ok 26 - URI::URL->selector ok 27 - URI::URL->gtype ok 28 - URI::URL->as_string # Testing 'gopher://host' ok 29 - URI::URL->as_string ok 30 - URI::URL->gtype # Testing 'gopher://host/' ok 31 - URI::URL->gtype ok 32 - URI::URL->as_string # Testing 'hTTp://web1.net/a/b/c/welcome#intro' ok 33 - URI::URL->query ok 34 - URI::URL->as_string ok 35 - URI::URL->port ok 36 - URI::URL->params ok 37 - URI::URL->eparams ok 38 - URI::URL->full_path ok 39 - URI::URL->equery ok 40 - URI::URL->host ok 41 - URI::URL->path ok 42 - URI::URL->frag ok 43 - URI::URL->epath ok 44 - URI::URL->scheme # Testing 'http://0:0/0/0;0?0#0' ok 45 - URI::URL->netloc ok 46 - URI::URL->query ok 47 - URI::URL->as_string ok 48 - URI::URL->host ok 49 - URI::URL->port ok 50 - URI::URL->path ok 51 - URI::URL->params ok 52 - URI::URL->frag ok 53 - URI::URL->scheme # Testing 'http://web.net' ok 54 - URI::URL->path ok 55 - URI::URL->frag ok 56 - URI::URL->scheme ok 57 - URI::URL->query ok 58 - URI::URL->full_path ok 59 - URI::URL->as_string ok 60 - URI::URL->host ok 61 - URI::URL->port # Testing 'http://web.net/' ok 62 - URI::URL->scheme ok 63 - URI::URL->frag ok 64 - URI::URL->path ok 65 - URI::URL->host ok 66 - URI::URL->port ok 67 - URI::URL->as_string ok 68 - URI::URL->query ok 69 - URI::URL->full_path # Testing 'http://web:1/a?query+text' ok 70 - URI::URL->frag ok 71 - URI::URL->host ok 72 - URI::URL->port ok 73 - URI::URL->scheme ok 74 - URI::URL->path ok 75 - URI::URL->query # Testing 'http:/0?0' ok 76 - URI::URL->as_string ok 77 - URI::URL->scheme ok 78 - URI::URL->path ok 79 - URI::URL->full_path ok 80 - URI::URL->query # Testing 'http:0' ok 81 - URI::URL->as_string ok 82 - URI::URL->scheme ok 83 - URI::URL->path ok 84 - URI::URL->query ok 85 - URI::URL->full_path # Testing 'mailto:libwww-perl@ics.uci.edu' ok 86 - URI::URL->encoded822addr ok 87 - URI::URL->address ok 88 - URI::URL->as_string # Testing 'news:*' ok 89 - URI::URL->groupart ok 90 - URI::URL->group ok 91 - URI::URL->as_string # Testing 'news:comp.lang.perl' ok 92 - URI::URL->group # Testing 'news:perl-faq/module-list-1-794455075@ig.co.uk' ok 93 - URI::URL->article # Testing 'nntp://news.com/comp.lang.perl/42' ok 94 - URI::URL->group # Testing 'rlogin://aas@a.sn.no' ok 95 - URI::URL->host ok 96 - URI::URL->user # Testing 'telnet://usr:pswd@web:12345/' ok 97 - URI::URL->host ok 98 - URI::URL->user ok 99 - URI::URL->password 1..99 ok 1 - scheme tests # Subtest: parts test ok 1 - URI::URL->as_string ok 2 - URI::URL->full_path ok 3 - URI::URL->as_string ok 4 - URI::URL->full_path ok 5 - URI::URL->as_string ok 6 - URI::URL->as_string ok 7 - URI::URL->as_string ok 8 - URI::URL->as_string ok 9 - URI::URL->as_string ok 10 - $url->keywords ok 11 - URI::URL->as_string ok 12 - $url->query_form ok 13 - URI::URL->as_string ok 14 - length ok 15 - query_form ok 16 - length ok 17 - sequence ok 18 - URI::URL->as_string # Subtest: netloc_test ok 1 - URI::URL->as_string ok 2 - URI::URL->as_string ok 3 - URI::URL->as_string ok 4 - URI::URL->as_string ok 5 - URI::URL->as_string ok 6 - URI::URL->as_string ok 7 - URI::URL->as_string ok 8 - URI::URL->as_string ok 9 - URI::URL->as_string ok 10 - URI::URL->as_string ok 11 - URI::URL->as_string ok 12 - URI::URL->as_string ok 13 - URI::URL->as_string ok 14 - URI::URL->as_string ok 15 - URI::URL->as_string ok 16 - URI::URL->as_string 1..16 ok 19 - netloc_test # Subtest: port_test ok 1 - port ok 2 - string ok 3 - port ok 4 - string ok 5 - port ok 6 - string ok 7 - port ok 8 - string 1..8 ok 20 - port_test ok 21 - URI::URL->as_string ok 22 - URI::URL->as_string ok 23 - URI::URL->as_string ok 24 - URI::URL->as_string ok 25 - URI::URL->as_string ok 26 - URI::URL->as_string ok 27 - URI::URL->as_string ok 28 - URI::URL->as_string ok 29 - URI::URL->as_string: "<" and ">" are gone ok 30 - 9 elements # Cracked result: http*UNDEF*UNDEF*host*80*/path*param*query*frag ok 31 - crack result ok 32 - 9 elements # Cracked result: UNDEF*anonymous*anonymous@*UNDEF*21*foo/bar*UNDEF*UNDEF*UNDEF ok 33 - 9 elements # Cracked result: ftp*u*p*host*21*/q?path*UNDEF*path*UNDEF ok 34 - crack result ok 35 - 9 elements ok 36 - passwd in anonymous crack # Cracked result: ftp*anonymous*passwd*ftp.sn.no*21*/pub*UNDEF*UNDEF*UNDEF ok 37 - crack result ok 38 - 9 elements # Cracked result: mailto*UNDEF*UNDEF*UNDEF*UNDEF*/aas@sn.no*UNDEF*UNDEF*UNDEF ok 39 - 9 elements # Cracked result: news*UNDEF*UNDEF*UNDEF*119*comp.lang.perl.misc*UNDEF*UNDEF*UNDEF ok 40 - crack result 1..40 ok 2 - parts test # Subtest: escape test ok 1 - URI::URL->as_string ok 2 - URI::URL->as_string ok 3 - URI::URL->as_string ok 4 - uri_escape->uri_unescape ok 5 - URI::URL->as_string ok 6 - URI::URL->as_string 1..6 ok 3 - escape test # Subtest: newlocal test ok 1 - URI::URL->as_string # Local directory is /tmp/cfSQPd2n0u/ ok 2 - URI::URL->as_string ok 3 - URI::URL->as_string ok 4 - URI::URL->as_string ok 5 - URI::URL->as_string ok 6 - URI::URL->as_string ok 7 - URI::URL->as_string ok 8 - URI::URL->as_string ok 9 - URI::URL->as_string ok 10 - URI::URL->as_string ok 11 - URI::URL->as_string ok 12 - URI::URL->as_string ok 13 - URI::URL->as_string ok 14 - URI::URL->as_string ok 15 - URI::URL->as_string ok 16 - URI::URL->as_string ok 17 - URI::URL->as_string ok 18 - URI::URL->as_string ok 19 - URI::URL->as_string ok 20 - URI::URL->as_string 1..20 ok 4 - newlocal test # Subtest: Test relative/absolute URI::URL parsing # Relative + Base => Expected Absolute URL # ------------------------------------------------ # g:h + http://a/b/c/d;p?q#f => g:h ok 1 - URI::URL->as_string # g + http://a/b/c/d;p?q#f => http://a/b/c/g ok 2 - URI::URL->as_string # ./g + http://a/b/c/d;p?q#f => http://a/b/c/g ok 3 - URI::URL->as_string # g/ + http://a/b/c/d;p?q#f => http://a/b/c/g/ ok 4 - URI::URL->as_string # /g + http://a/b/c/d;p?q#f => http://a/g ok 5 - URI::URL->as_string # //g + http://a/b/c/d;p?q#f => http://g ok 6 - URI::URL->as_string # g?y + http://a/b/c/d;p?q#f => http://a/b/c/g?y ok 7 - URI::URL->as_string # g?y/./x + http://a/b/c/d;p?q#f => http://a/b/c/g?y/./x ok 8 - URI::URL->as_string # #s + http://a/b/c/d;p?q#f => http://a/b/c/d;p?q#s ok 9 - URI::URL->as_string # g#s + http://a/b/c/d;p?q#f => http://a/b/c/g#s ok 10 - URI::URL->as_string # g#s/./x + http://a/b/c/d;p?q#f => http://a/b/c/g#s/./x ok 11 - URI::URL->as_string # g?y#s + http://a/b/c/d;p?q#f => http://a/b/c/g?y#s ok 12 - URI::URL->as_string # g;x + http://a/b/c/d;p?q#f => http://a/b/c/g;x ok 13 - URI::URL->as_string # g;x?y#s + http://a/b/c/d;p?q#f => http://a/b/c/g;x?y#s ok 14 - URI::URL->as_string # . + http://a/b/c/d;p?q#f => http://a/b/c/ ok 15 - URI::URL->as_string # ./ + http://a/b/c/d;p?q#f => http://a/b/c/ ok 16 - URI::URL->as_string # .. + http://a/b/c/d;p?q#f => http://a/b/ ok 17 - URI::URL->as_string # ../ + http://a/b/c/d;p?q#f => http://a/b/ ok 18 - URI::URL->as_string # ../g + http://a/b/c/d;p?q#f => http://a/b/g ok 19 - URI::URL->as_string # ../.. + http://a/b/c/d;p?q#f => http://a/ ok 20 - URI::URL->as_string # ../../ + http://a/b/c/d;p?q#f => http://a/ ok 21 - URI::URL->as_string # ../../g + http://a/b/c/d;p?q#f => http://a/g ok 22 - URI::URL->as_string # + http://a/b/c/d;p?q#f => http://a/b/c/d;p?q#f ok 23 - URI::URL->as_string # /./g + http://a/b/c/d;p?q#f => http://a/./g ok 24 - URI::URL->as_string # /../g + http://a/b/c/d;p?q#f => http://a/../g ok 25 - URI::URL->as_string # g. + http://a/b/c/d;p?q#f => http://a/b/c/g. ok 26 - URI::URL->as_string # .g + http://a/b/c/d;p?q#f => http://a/b/c/.g ok 27 - URI::URL->as_string # g.. + http://a/b/c/d;p?q#f => http://a/b/c/g.. ok 28 - URI::URL->as_string # ..g + http://a/b/c/d;p?q#f => http://a/b/c/..g ok 29 - URI::URL->as_string # ./../g + http://a/b/c/d;p?q#f => http://a/b/g ok 30 - URI::URL->as_string # ./g/. + http://a/b/c/d;p?q#f => http://a/b/c/g/ ok 31 - URI::URL->as_string # g/./h + http://a/b/c/d;p?q#f => http://a/b/c/g/h ok 32 - URI::URL->as_string # g/../h + http://a/b/c/d;p?q#f => http://a/b/c/h ok 33 - URI::URL->as_string # http:g + http://a/b/c/d;p?q#f => http:g ok 34 - URI::URL->as_string # http: + http://a/b/c/d;p?q#f => http: ok 35 - URI::URL->as_string # x/y//../z + http://a/b/c/d;p?q#f => http://a/b/c/x/y/z ok 36 - URI::URL->as_string # 1 + http://a/b/c/d;p?q#f => http://a/b/c/1 ok 37 - URI::URL->as_string # 0 + http://a/b/c/d;p?q#f => http://a/b/c/0 ok 38 - URI::URL->as_string # /0 + http://a/b/c/d;p?q#f => http://a/0 ok 39 - URI::URL->as_string ok 40 - identity ok 41 - URL canonicalised # -------- # http://abc/ + news:45664545 => http://abc/ ok 42 - ->as_string # news:abc + http://abc/ => news:abc ok 43 - ->as_string # abc + file:/test?aas => file:/abc ok 44 - ->as_string # ?foo + file:/abc => file:/abc?foo ok 45 - ->as_string # #foo + http://abc/a => http://abc/a#foo ok 46 - ->as_string # #foo + file:a => file:a#foo ok 47 - ->as_string # #foo + file:/a => file:/a#foo ok 48 - ->as_string # #foo + file:/a => file:/a#foo ok 49 - ->as_string # #foo + file://localhost/a => file://localhost/a#foo ok 50 - ->as_string # 123@sn.no + news:comp.lang.perl.misc => news:/123@sn.no ok 51 - ->as_string # no.perl + news:123@sn.no => news:/no.perl ok 52 - ->as_string # mailto:aas@a.sn.no+ http://www.sn.no/ => mailto:aas@a.sn.no ok 53 - ->as_string # http:foo + http://h/a/b => http://h/a/foo ok 54 - ->as_string # http:/foo + http://h/a/b => http://h/foo ok 55 - ->as_string # http:?foo + http://h/a/b => http://h/a/b?foo ok 56 - ->as_string # http:#foo + http://h/a/b => http://h/a/b#foo ok 57 - ->as_string # http:?foo#bar+ http://h/a/b => http://h/a/b?foo#bar ok 58 - ->as_string # file:/foo + http://h/a/b => file:/foo ok 59 - ->as_string # absolute test ok ok 60 - url('http://abc/a', 'http://abc')->rel = 'a' ok 61 - url('http://abc/a', 'http://abc/b')->rel = 'a' ok 62 - url('http://abc/a?q', 'http://abc/b')->rel = 'a?q' ok 63 - url('http://abc/a;p', 'http://abc/b')->rel = 'a;p' ok 64 - url('http://abc/a', 'http://abc/a/b/c/')->rel = '../../../a' ok 65 - url('http://abc/a/', 'http://abc/a/')->rel = './' ok 66 - url('http://abc/a\#f', 'http://abc/a')->rel = '\#f' ok 67 - url('file:/etc/motd', 'file:/')->rel = 'etc/motd' ok 68 - url('file:/etc/motd', 'file:/etc/passwd')->rel = 'motd' ok 69 - url('file:/etc/motd', 'file:/etc/rc2.d/')->rel = '../motd' ok 70 - url('file:/etc/motd', 'file:/usr/lib/doc')->rel = '../../etc/motd' ok 71 - url('file:', 'file:/etc/')->rel = '../' ok 72 - url('file:foo', 'file:/etc/')->rel = '../foo' ok 73 - url('mailto:aas', 'http://abc')->rel = 'mailto:aas' ok 74 - url('http://www.math.uio.no/doc/mail/top.html', 'http://www.math.uio.no/doc/linux/')->rel = '../mail/top.html' # relative test ok 1..74 ok 5 - Test relative/absolute URI::URL parsing # Subtest: eq test ok 1 - 1: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 2 - 2: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 3 - 3: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 4 - 4: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 5 - 5: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 6 - 6: http://abc.com/~smith/home.html ne http://abc.com/~smith/home.html ok 7 - 7: http://www.sn.no/ ok 8 - 8: http://www.sn.no/ ok 9 - 10: ftp://ftp/%2Fetc ok 10 - 11: ftp://ftp/%2Fetc 1..10 ok 6 - eq test ok 7 - URI::URL->as_string ok 8 - URI::URL->path ok 9 - wash&go # URI::URL version 5.17 ok 1..9 PASS: t/old-base 1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 PASS: t/mms 1..48 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok 44 ok 45 ok 46 ok 47 ok 48 PASS: t/gopher ok 1 - == ok 2 - != 1..2 PASS: t/num_eq 1..4 ok 1 ok 2 ok 3 ok 4 PASS: t/urn-oid # store 1..3 # retrieve ok 1 ok 2 ok 3 PASS: t/storable 1..16 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 PASS: t/http ok 1 - no exception when trying to load a scheme handler class ok 2 - but URI still instantiated as foreign ok 3 - no exception when trying to load a scheme handler class ok 4 - but URI still instantiated as foreign 1..4 PASS: t/scheme-exceptions 1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 PASS: t/mix 1..48 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok 44 ok 45 ok 46 ok 47 ok 48 PASS: t/generic ok 1 - correctly created a URI from a utf8-downgrade string 1..1 PASS: t/escape-char ok 1 - parsing normal URI sets to() ok 2 - ... and stringification works ok 3 - to() returns old value ok 4 - ... and sets new value ok 5 - ... and stringification works ok 6 - to() accepts chars that need escaping ok 7 - ... and stringification escapes them ok 8 - ... and headers() returns the correct values ok 9 - setting multiple headers at once works ok 10 - ... and to() returns the new value ok 11 - ... and stringification works ok 12 - starting with an empty URI and setting to() works ok 13 - subaddress with `+` parsed correctly ok 14 - ... and stringification works ok 15 - IPv4 host name ok 16 - ... and stringification works ok 17 - IPv4 host name ok 18 - ... and stringification works 1..18 PASS: t/mailto ok 1 ok 2 ok 3 ok 4 ok 5 1..5 PASS: t/utf8 1..23 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 PASS: t/query ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 - it should accept slash in unwanted characters ok 9 - it should accept regex char group terminator in unwanted characters ok 10 - it should accept regex escape character at the end of unwanted characters ok 11 - it should recognize scalar interpolation injection in unwanted characters ok 12 - it should recognize array interpolation injection in unwanted characters ok 13 - it should recognize hash interpolation injection in unwanted characters ok 14 - it should recognize leading minus ok 15 - it should recognize leading ^- ok 16 - it should recognize character groups ok 17 - it should allow character class escapes ok 18 - regex characters like / and ^ allowed in range ok 19 - invalid range with max less than min throws exception ok 20 - it should allow character class escapes ok 21 - bad escapes emit warnings ok 22 - allows regexp objects ok 23 - allows regexp objects matching multiple characters ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 - no (unexpected) warnings (via done_testing) 1..29 PASS: t/escape 1..45 ok 1 - g:h => g:h ok 2 - g => http://a/b/c/g ok 3 - ./g => http://a/b/c/g ok 4 - g/ => http://a/b/c/g/ ok 5 - /g => http://a/g ok 6 - //g => http://g ok 7 - ?y => http://a/b/c/d;p?y ok 8 - g?y => http://a/b/c/g?y ok 9 - \#s => http://a/b/c/d;p?q\#s ok 10 - g\#s => http://a/b/c/g\#s ok 11 - g?y\#s => http://a/b/c/g?y\#s ok 12 - ;x => http://a/b/c/;x ok 13 - g;x => http://a/b/c/g;x ok 14 - g;x?y\#s => http://a/b/c/g;x?y\#s ok 15 - . => http://a/b/c/ ok 16 - ./ => http://a/b/c/ ok 17 - .. => http://a/b/ ok 18 - ../ => http://a/b/ ok 19 - ../g => http://a/b/g ok 20 - ../.. => http://a/ ok 21 - ../../ => http://a/ ok 22 - ../../g => http://a/g ok 23 - <> => http://a/b/c/d;p?q ok 24 - ../../../g => http://a/../g ok 25 - ../../../../g => http://a/../../g ok 26 - /./g => http://a/./g ok 27 - /../g => http://a/../g ok 28 - g. => http://a/b/c/g. ok 29 - .g => http://a/b/c/.g ok 30 - g.. => http://a/b/c/g.. ok 31 - ..g => http://a/b/c/..g ok 32 - ./../g => http://a/b/g ok 33 - ./g/. => http://a/b/c/g/ ok 34 - g/./h => http://a/b/c/g/h ok 35 - g/../h => http://a/b/c/h ok 36 - g;x=1/./y => http://a/b/c/g;x=1/y ok 37 - g;x=1/../y => http://a/b/c/y ok 38 - g?y/./x => http://a/b/c/g?y/./x ok 39 - g?y/../x => http://a/b/c/g?y/../x ok 40 - g\#s/./x => http://a/b/c/g\#s/./x ok 41 - g\#s/../x => http://a/b/c/g\#s/../x ok 42 - http:g => http:g ok 43 - http: => http: ok 44 - \#foo? => http://a/b/c/d;p?q\#foo? ok 45 - ?\#foo => http://a/b/c/d;p?\#foo # # # In the following cases we did not get back to where we started with rel() # 1: URI->new("http://a/b/c/g", "http://a/b/c/d;p?q")->rel ==> "g" (not "./g") # 1: URI->new("http://a/g", "http://a/b/c/d;p?q")->rel ==> "../../g" (not "/g") # 1: URI->new("http://g", "http://a/b/c/d;p?q")->rel ==> "http://g" (not "//g") # 1: URI->new("http://a/b/c/d;p?y", "http://a/b/c/d;p?q")->rel ==> "d;p?y" (not "?y") # 1: URI->new("http://a/b/c/d;p?q#s", "http://a/b/c/d;p?q")->rel ==> "d;p?q#s" (not "#s") # 1: URI->new("http://a/b/c/", "http://a/b/c/d;p?q")->rel ==> "./" (not ".") # 1: URI->new("http://a/b/", "http://a/b/c/d;p?q")->rel ==> "../" (not "..") # 1: URI->new("http://a/", "http://a/b/c/d;p?q")->rel ==> "../../" (not "../..") # 1: URI->new("http://a/b/c/d;p?q", "http://a/b/c/d;p?q")->rel ==> "d;p?q" (not "<>") # 1: URI->new("http://a/./g", "http://a/b/c/d;p?q")->rel ==> "../.././g" (not "/./g") # 1: URI->new("http://a/../g", "http://a/b/c/d;p?q")->rel ==> "../../../g" (not "/../g") # 1: URI->new("http://a/b/g", "http://a/b/c/d;p?q")->rel ==> "../g" (not "./../g") # 1: URI->new("http://a/b/c/g/", "http://a/b/c/d;p?q")->rel ==> "g/" (not "./g/.") # 1: URI->new("http://a/b/c/g/h", "http://a/b/c/d;p?q")->rel ==> "g/h" (not "g/./h") # 1: URI->new("http://a/b/c/h", "http://a/b/c/d;p?q")->rel ==> "h" (not "g/../h") # 1: URI->new("http://a/b/c/g;x=1/y", "http://a/b/c/d;p?q")->rel ==> "g;x=1/y" (not "g;x=1/./y") # 1: URI->new("http://a/b/c/y", "http://a/b/c/d;p?q")->rel ==> "y" (not "g;x=1/../y") # 1: URI->new("http://a/b/c/d;p?q#foo?", "http://a/b/c/d;p?q")->rel ==> "d;p?q#foo?" (not "#foo?") # 1: URI->new("http://a/b/c/d;p?#foo", "http://a/b/c/d;p?q")->rel ==> "d;p?#foo" (not "?#foo") PASS: t/abs 1..13 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 PASS: t/sip 1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 PASS: t/pop DURATION: 4 END: /usr/lib/liburi-perl/ptest 2023-04-10T20:54 STOP: ptest-runner TOTAL: 1 FAIL: 0 DEBUG: [Running]$ ssh -l root -o ServerAliveCountMax=2 -o ServerAliveInterval=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.32 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; dmesg | grep "Killed process" DEBUG: Data from SSH call: DEBUG: [Command returned '1' after 0.13 seconds] DEBUG: Command: dmesg | grep "Killed process" Status: 1 Output: NOTE: ... unexpected success NOTE: test_ptestrunner_expectsuccess (ptest.PtestRunnerTest) DEBUG: Checking if at least one of ptest-runner is installed DEBUG: Checking if ptest is in DISTRO_FEATURES or IMAGE_FEATURES NOTE: ... skipped 'Cannot run ptests without @expectedFailure as ptests are expected to fail' Cannot run ptests without @expectedFailure as ptests are expected to fail NOTE: ---------------------------------------------------------------------- NOTE: Ran 5 tests in 10.404s NOTE: OK NOTE: (skipped=1, unexpected successes=1) DEBUG: Stopping logging thread DEBUG: Stop event received DEBUG: Tearing down logging thread DEBUG: Sending SIGTERM to runqemu Output from runqemu: runqemu - INFO - Received signal: 15 runqemu - INFO - Cleaning up runqemu - INFO - Host uptime: 6139.76 runqemu - INFO - Removing /home/pokybuild/tmp/core-image-ptest-liburi-perl-qemuarm64.ext4.1797237 tput: No value for $TERM and no -T specified RESULTS: RESULTS - parselogs.ParseLogsTest.test_parselogs: PASSED (4.59s) RESULTS - ping.PingTest.test_ping: PASSED (0.01s) RESULTS - ptest.PtestRunnerTest.test_ptestrunner_expectfail: PASSED (4.40s) RESULTS - ssh.SSHTest.test_ssh: PASSED (1.06s) RESULTS - ptest.PtestRunnerTest.test_ptestrunner_expectsuccess: SKIPPED (0.00s) SUMMARY: core-image-ptest-liburi-perl () - Ran 5 tests in 10.405s core-image-ptest-liburi-perl - OK - All required tests passed (successes=3, skipped=1, failures=0, errors=0) DEBUG: Python function do_testimage finished