Thu Nov 7 20:43:05 UTC 2024 I: starting to build rakudo/trixie/armhf on jenkins on '2024-11-07 20:42' Thu Nov 7 20:43:05 UTC 2024 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/armhf_10/5925/console.log Thu Nov 7 20:43:05 UTC 2024 I: Downloading source for trixie/rakudo=2024.09-2 --2024-11-07 20:43:06-- http://deb.debian.org/debian/pool/main/r/rakudo/rakudo_2024.09-2.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2417 (2.4K) [text/prs.lines.tag] Saving to: ‘rakudo_2024.09-2.dsc’ 0K .. 100% 361M=0s 2024-11-07 20:43:06 (361 MB/s) - ‘rakudo_2024.09-2.dsc’ saved [2417/2417] Thu Nov 7 20:43:06 UTC 2024 I: rakudo_2024.09-2.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: rakudo Binary: rakudo Architecture: amd64 arm64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 loong64 mips mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x x32 Version: 2024.09-2 Maintainer: Debian Rakudo Maintainers Uploaders: Dominique Dumont , Daniel Dehennin , Mo Zhou , Timo Paulssen Homepage: https://rakudo.org/ Standards-Version: 4.7.0 Vcs-Browser: https://salsa.debian.org/perl6-team/rakudo Vcs-Git: https://salsa.debian.org/perl6-team/rakudo.git Build-Depends: debhelper-compat (= 13), libatomic-ops-dev, libffi-dev [mipsel], libkvm-dev [kfreebsd-any], libtommath-dev, libuv1-dev, moarvm-dev (>= 2024.09~), nqp (>= 2024.09~), perl Package-List: rakudo deb interpreters optional arch=amd64,arm64,armel,armhf,i386,kfreebsd-amd64,kfreebsd-i386,loong64,mips,mips64el,mipsel,powerpc,ppc64,ppc64el,riscv64,s390x,x32 Checksums-Sha1: 10837915fa9c0ed4c17c17e3bc309da09ceb5ab5 2179188 rakudo_2024.09.orig.tar.xz df59a20d76ddc4125d3a875d9db05d8a08113280 22856 rakudo_2024.09-2.debian.tar.xz Checksums-Sha256: d59c7a3e47369e5c7a889985c63b7875ec377da5171ffd66242897b8b7edf15a 2179188 rakudo_2024.09.orig.tar.xz e57cecad0b3bc7ec17d51d777ac05b87841625ddb04bcb9a7dd681820e7add19 22856 rakudo_2024.09-2.debian.tar.xz Files: cab2f9bbd50902bb76fd83494e03d28a 2179188 rakudo_2024.09.orig.tar.xz 6c9d11e33134b882875d6f38edf25d19 22856 rakudo_2024.09-2.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEn3I5/LZk8Qsz6dwDwx9P2UmrK2wFAmch6lUACgkQwx9P2Umr K2wxFQ/6AyoZ92lIoaHnVVCxY7EzwsXRZGf1e1cXpCizQ/bugxHFd+sijho4Sw5h yQi4H2q84j61vKIV9xwoNVObmEYKQjvYAGFBX6fX4phIWvHYEVwAFaGuVA1dj8h0 MnhGMxGh8jOsWubZ5Iz14x+jA8uK1d1uQPVQbp0flt+PjbjB/9LZriqGmFoogZWU csconYiecNQf9Ng7FeGO50Xfn2lirR99A2Jv2kvaoOfkphT8XvPR+9mzmAt0l/oQ xFsNmt5ShM1NVnNgksSMRZ+0hFGauvFi/8OKomGTv/y8XNSeUdypMuHojL4+uJ9M xYBLCN9ega+Pd5UNfKxsf6XQXW+YoIuFCMmze5wMQw7FqcDD+27hQwFubm+cEzFS 0USE4ICgA7UUw7YjHjbdJNHjFOrANO2cn31EdGCJrlXi4ggT6n0rQUPrImjuvbRy aIoGYXZX2XFwE3rmOgKlRJXnSjDGUGyqy5JL4OcVLnS6eGWue3cWmF3vtL9Bv9L4 QFMgTWqzPQnuehBzO6vDMBdbry0LoZBa0w1eqOpZvQpKVx+b1gMeBjkpJECYWRO2 C4MnaAtiXSY0WyAB955+lpTW1yP3PrIBDzrdt03dc9DdlMXF9sMjOyU+6x1K9YH5 m6V1EJctTX/YxH4I8KGqXjIiwCTn27pa321c5NmOiJ96N9/LsIk= =ce4x -----END PGP SIGNATURE----- Thu Nov 7 20:43:06 UTC 2024 I: Checking whether the package is not for us Thu Nov 7 20:43:06 UTC 2024 I: Starting 1st build on remote node wbq0-armhf-rb.debian.net. Thu Nov 7 20:43:06 UTC 2024 I: Preparing to do remote build '1' on wbq0-armhf-rb.debian.net. Thu Nov 7 22:28:17 UTC 2024 I: Deleting $TMPDIR on wbq0-armhf-rb.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Thu Nov 7 08:43:15 -12 2024 I: pbuilder-time-stamp: 1731012195 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [rakudo_2024.09-2.dsc] I: copying [./rakudo_2024.09.orig.tar.xz] I: copying [./rakudo_2024.09-2.debian.tar.xz] I: Extracting source gpgv: Signature made Wed Oct 30 08:12:05 2024 gpgv: using RSA key 9F7239FCB664F10B33E9DC03C31F4FD949AB2B6C gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./rakudo_2024.09-2.dsc: no acceptable signature found dpkg-source: info: extracting rakudo in rakudo-2024.09 dpkg-source: info: unpacking rakudo_2024.09.orig.tar.xz dpkg-source: info: unpacking rakudo_2024.09-2.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying fix-script-path dpkg-source: info: applying fix-perf-test dpkg-source: info: applying fix-test dpkg-source: info: applying fix-compiler-id I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/17092/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='armhf' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' DISTRIBUTION='trixie' HOME='/root' HOST_ARCH='armhf' IFS=' ' INVOCATION_ID='d9e66ddbabc14c1c943c76d78721be05' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='17092' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.Q4aqKDeP/pbuilderrc_Xm8f --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.Q4aqKDeP/b1 --logfile b1/build.log rakudo_2024.09-2.dsc' SUDO_GID='113' SUDO_UID='107' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://10.0.0.15:3142/' I: uname -a Linux wbq0 6.1.0-26-armmp #1 SMP Debian 6.1.112-1 (2024-09-30) armv7l GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Aug 4 21:30 /bin -> usr/bin I: user script /srv/workspace/pbuilder/17092/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: armhf Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), libatomic-ops-dev, libtommath-dev, libuv1-dev, moarvm-dev (>= 2024.09~), nqp (>= 2024.09~), perl dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19690 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on libatomic-ops-dev; however: Package libatomic-ops-dev is not installed. pbuilder-satisfydepends-dummy depends on libtommath-dev; however: Package libtommath-dev is not installed. pbuilder-satisfydepends-dummy depends on libuv1-dev; however: Package libuv1-dev is not installed. pbuilder-satisfydepends-dummy depends on moarvm-dev (>= 2024.09~); however: Package moarvm-dev is not installed. pbuilder-satisfydepends-dummy depends on nqp (>= 2024.09~); however: Package nqp is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} debhelper{a} dh-autoreconf{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libatomic-ops-dev{a} libdebhelper-perl{a} libelf1t64{a} libffi-dev{a} libfile-stripnondeterminism-perl{a} libicu72{a} libmagic-mgc{a} libmagic1t64{a} libpipeline1{a} libtommath-dev{a} libtommath1{a} libtool{a} libuchardet0{a} libuv1-dev{a} libuv1t64{a} libxml2{a} m4{a} man-db{a} moarvm{a} moarvm-dev{a} nqp{a} nqp-data{a} po-debconf{a} sensible-utils{a} The following packages are RECOMMENDED but will NOT be installed: curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl libtommath-doc lynx wget 0 packages upgraded, 39 newly installed, 0 to remove and 0 not upgraded. Need to get 21.9 MB of archives. After unpacking 85.9 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian trixie/main armhf sensible-utils all 0.0.24 [24.8 kB] Get: 2 http://deb.debian.org/debian trixie/main armhf libmagic-mgc armhf 1:5.45-3+b1 [314 kB] Get: 3 http://deb.debian.org/debian trixie/main armhf libmagic1t64 armhf 1:5.45-3+b1 [98.5 kB] Get: 4 http://deb.debian.org/debian trixie/main armhf file armhf 1:5.45-3+b1 [42.3 kB] Get: 5 http://deb.debian.org/debian trixie/main armhf gettext-base armhf 0.22.5-2 [195 kB] Get: 6 http://deb.debian.org/debian trixie/main armhf libuchardet0 armhf 0.0.8-1+b2 [65.6 kB] Get: 7 http://deb.debian.org/debian trixie/main armhf groff-base armhf 1.23.0-5 [1091 kB] Get: 8 http://deb.debian.org/debian trixie/main armhf bsdextrautils armhf 2.40.2-9 [88.8 kB] Get: 9 http://deb.debian.org/debian trixie/main armhf libpipeline1 armhf 1.5.8-1 [35.0 kB] Get: 10 http://deb.debian.org/debian trixie/main armhf man-db armhf 2.13.0-1 [1382 kB] Get: 11 http://deb.debian.org/debian trixie/main armhf m4 armhf 1.4.19-4 [264 kB] Get: 12 http://deb.debian.org/debian trixie/main armhf autoconf all 2.72-3 [493 kB] Get: 13 http://deb.debian.org/debian trixie/main armhf autotools-dev all 20220109.1 [51.6 kB] Get: 14 http://deb.debian.org/debian trixie/main armhf automake all 1:1.16.5-1.3 [823 kB] Get: 15 http://deb.debian.org/debian trixie/main armhf autopoint all 0.22.5-2 [723 kB] Get: 16 http://deb.debian.org/debian trixie/main armhf libdebhelper-perl all 13.20 [89.7 kB] Get: 17 http://deb.debian.org/debian trixie/main armhf libtool all 2.4.7-8 [517 kB] Get: 18 http://deb.debian.org/debian trixie/main armhf dh-autoreconf all 20 [17.1 kB] Get: 19 http://deb.debian.org/debian trixie/main armhf libarchive-zip-perl all 1.68-1 [104 kB] Get: 20 http://deb.debian.org/debian trixie/main armhf libfile-stripnondeterminism-perl all 1.14.0-1 [19.5 kB] Get: 21 http://deb.debian.org/debian trixie/main armhf dh-strip-nondeterminism all 1.14.0-1 [8448 B] Get: 22 http://deb.debian.org/debian trixie/main armhf libelf1t64 armhf 0.192-4 [184 kB] Get: 23 http://deb.debian.org/debian trixie/main armhf dwz armhf 0.15-1+b2 [106 kB] Get: 24 http://deb.debian.org/debian trixie/main armhf libicu72 armhf 72.1-5+b1 [9088 kB] Get: 25 http://deb.debian.org/debian trixie/main armhf libxml2 armhf 2.12.7+dfsg+really2.9.14-0.1 [604 kB] Get: 26 http://deb.debian.org/debian trixie/main armhf gettext armhf 0.22.5-2 [1485 kB] Get: 27 http://deb.debian.org/debian trixie/main armhf intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 28 http://deb.debian.org/debian trixie/main armhf po-debconf all 1.0.21+nmu1 [248 kB] Get: 29 http://deb.debian.org/debian trixie/main armhf debhelper all 13.20 [915 kB] Get: 30 http://deb.debian.org/debian trixie/main armhf libatomic-ops-dev armhf 7.8.2-1 [94.3 kB] Get: 31 http://deb.debian.org/debian trixie/main armhf libffi-dev armhf 3.4.6-1 [55.9 kB] Get: 32 http://deb.debian.org/debian trixie/main armhf libtommath1 armhf 1.3.0-1 [54.0 kB] Get: 33 http://deb.debian.org/debian trixie/main armhf libtommath-dev armhf 1.3.0-1 [67.2 kB] Get: 34 http://deb.debian.org/debian trixie/main armhf libuv1t64 armhf 1.48.0-6 [134 kB] Get: 35 http://deb.debian.org/debian trixie/main armhf libuv1-dev armhf 1.48.0-6 [170 kB] Get: 36 http://deb.debian.org/debian trixie/main armhf moarvm armhf 2024.09+dfsg-2 [1134 kB] Get: 37 http://deb.debian.org/debian trixie/main armhf moarvm-dev armhf 2024.09+dfsg-2 [393 kB] Get: 38 http://deb.debian.org/debian trixie/main armhf nqp-data all 2024.09+dfsg-2 [570 kB] Get: 39 http://deb.debian.org/debian trixie/main armhf nqp armhf 2024.09+dfsg-2 [80.0 kB] Fetched 21.9 MB in 2s (11.6 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package sensible-utils. (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 ... 19690 files and directories currently installed.) Preparing to unpack .../00-sensible-utils_0.0.24_all.deb ... Unpacking sensible-utils (0.0.24) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../01-libmagic-mgc_1%3a5.45-3+b1_armhf.deb ... Unpacking libmagic-mgc (1:5.45-3+b1) ... Selecting previously unselected package libmagic1t64:armhf. Preparing to unpack .../02-libmagic1t64_1%3a5.45-3+b1_armhf.deb ... Unpacking libmagic1t64:armhf (1:5.45-3+b1) ... Selecting previously unselected package file. Preparing to unpack .../03-file_1%3a5.45-3+b1_armhf.deb ... Unpacking file (1:5.45-3+b1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../04-gettext-base_0.22.5-2_armhf.deb ... Unpacking gettext-base (0.22.5-2) ... Selecting previously unselected package libuchardet0:armhf. Preparing to unpack .../05-libuchardet0_0.0.8-1+b2_armhf.deb ... Unpacking libuchardet0:armhf (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../06-groff-base_1.23.0-5_armhf.deb ... Unpacking groff-base (1.23.0-5) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../07-bsdextrautils_2.40.2-9_armhf.deb ... Unpacking bsdextrautils (2.40.2-9) ... Selecting previously unselected package libpipeline1:armhf. Preparing to unpack .../08-libpipeline1_1.5.8-1_armhf.deb ... Unpacking libpipeline1:armhf (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../09-man-db_2.13.0-1_armhf.deb ... Unpacking man-db (2.13.0-1) ... Selecting previously unselected package m4. Preparing to unpack .../10-m4_1.4.19-4_armhf.deb ... Unpacking m4 (1.4.19-4) ... Selecting previously unselected package autoconf. Preparing to unpack .../11-autoconf_2.72-3_all.deb ... Unpacking autoconf (2.72-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../12-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../13-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../14-autopoint_0.22.5-2_all.deb ... Unpacking autopoint (0.22.5-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../15-libdebhelper-perl_13.20_all.deb ... Unpacking libdebhelper-perl (13.20) ... Selecting previously unselected package libtool. Preparing to unpack .../16-libtool_2.4.7-8_all.deb ... Unpacking libtool (2.4.7-8) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../17-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../18-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../19-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../20-dh-strip-nondeterminism_1.14.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.14.0-1) ... Selecting previously unselected package libelf1t64:armhf. Preparing to unpack .../21-libelf1t64_0.192-4_armhf.deb ... Unpacking libelf1t64:armhf (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../22-dwz_0.15-1+b2_armhf.deb ... Unpacking dwz (0.15-1+b2) ... Selecting previously unselected package libicu72:armhf. Preparing to unpack .../23-libicu72_72.1-5+b1_armhf.deb ... Unpacking libicu72:armhf (72.1-5+b1) ... Selecting previously unselected package libxml2:armhf. Preparing to unpack .../24-libxml2_2.12.7+dfsg+really2.9.14-0.1_armhf.deb ... Unpacking libxml2:armhf (2.12.7+dfsg+really2.9.14-0.1) ... Selecting previously unselected package gettext. Preparing to unpack .../25-gettext_0.22.5-2_armhf.deb ... Unpacking gettext (0.22.5-2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../26-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../27-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../28-debhelper_13.20_all.deb ... Unpacking debhelper (13.20) ... Selecting previously unselected package libatomic-ops-dev:armhf. Preparing to unpack .../29-libatomic-ops-dev_7.8.2-1_armhf.deb ... Unpacking libatomic-ops-dev:armhf (7.8.2-1) ... Selecting previously unselected package libffi-dev:armhf. Preparing to unpack .../30-libffi-dev_3.4.6-1_armhf.deb ... Unpacking libffi-dev:armhf (3.4.6-1) ... Selecting previously unselected package libtommath1:armhf. Preparing to unpack .../31-libtommath1_1.3.0-1_armhf.deb ... Unpacking libtommath1:armhf (1.3.0-1) ... Selecting previously unselected package libtommath-dev:armhf. Preparing to unpack .../32-libtommath-dev_1.3.0-1_armhf.deb ... Unpacking libtommath-dev:armhf (1.3.0-1) ... Selecting previously unselected package libuv1t64:armhf. Preparing to unpack .../33-libuv1t64_1.48.0-6_armhf.deb ... Unpacking libuv1t64:armhf (1.48.0-6) ... Selecting previously unselected package libuv1-dev:armhf. Preparing to unpack .../34-libuv1-dev_1.48.0-6_armhf.deb ... Unpacking libuv1-dev:armhf (1.48.0-6) ... Selecting previously unselected package moarvm. Preparing to unpack .../35-moarvm_2024.09+dfsg-2_armhf.deb ... Unpacking moarvm (2024.09+dfsg-2) ... Selecting previously unselected package moarvm-dev. Preparing to unpack .../36-moarvm-dev_2024.09+dfsg-2_armhf.deb ... Unpacking moarvm-dev (2024.09+dfsg-2) ... Selecting previously unselected package nqp-data. Preparing to unpack .../37-nqp-data_2024.09+dfsg-2_all.deb ... Unpacking nqp-data (2024.09+dfsg-2) ... Selecting previously unselected package nqp. Preparing to unpack .../38-nqp_2024.09+dfsg-2_armhf.deb ... Unpacking nqp (2024.09+dfsg-2) ... Setting up libpipeline1:armhf (1.5.8-1) ... Setting up libicu72:armhf (72.1-5+b1) ... Setting up bsdextrautils (2.40.2-9) ... Setting up libmagic-mgc (1:5.45-3+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libtommath1:armhf (1.3.0-1) ... Setting up libdebhelper-perl (13.20) ... Setting up libuv1t64:armhf (1.48.0-6) ... Setting up libmagic1t64:armhf (1:5.45-3+b1) ... Setting up gettext-base (0.22.5-2) ... Setting up m4 (1.4.19-4) ... Setting up file (1:5.45-3+b1) ... Setting up libffi-dev:armhf (3.4.6-1) ... Setting up libelf1t64:armhf (0.192-4) ... Setting up libtommath-dev:armhf (1.3.0-1) ... Setting up autotools-dev (20220109.1) ... Setting up autopoint (0.22.5-2) ... Setting up autoconf (2.72-3) ... Setting up dwz (0.15-1+b2) ... Setting up sensible-utils (0.0.24) ... Setting up libuchardet0:armhf (0.0.8-1+b2) ... Setting up libatomic-ops-dev:armhf (7.8.2-1) ... Setting up moarvm (2024.09+dfsg-2) ... Setting up libxml2:armhf (2.12.7+dfsg+really2.9.14-0.1) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... Setting up libuv1-dev:armhf (1.48.0-6) ... Setting up gettext (0.22.5-2) ... Setting up libtool (2.4.7-8) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up dh-strip-nondeterminism (1.14.0-1) ... Setting up nqp-data (2024.09+dfsg-2) ... Setting up groff-base (1.23.0-5) ... Setting up nqp (2024.09+dfsg-2) ... Setting up moarvm-dev (2024.09+dfsg-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up man-db (2.13.0-1) ... Not building database; man-db/auto-update is not 'true'. Setting up debhelper (13.20) ... Processing triggers for libc-bin (2.40-3) ... Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/rakudo-2024.09/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../rakudo_2024.09-2_source.changes dpkg-buildpackage: info: source package rakudo dpkg-buildpackage: info: source version 2024.09-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Dominique Dumont dpkg-source --before-build . dpkg-buildpackage: info: host architecture armhf debian/rules clean dh clean dh_clean debian/rules binary dh binary dh_update_autotools_config dh_autoreconf debian/rules override_dh_auto_configure make[1]: Entering directory '/build/reproducible-path/rakudo-2024.09' perl -p -i -e 's/%%Debian-compiler-id%%/Debian-2024.09/' src/core.c/Compiler.pm6 Can't open src/core.c/Compiler.pm6: No such file or directory. perl Configure.pl --prefix=/usr --perl6-home=/usr/lib/perl6 --backends=moar Using /usr/bin/nqp-m (version 2024.09 / MoarVM 2024.09). Cleaning up ... You can now use 'make' to build Rakudo. After that, 'make test' will run some tests and 'make install' will install Rakudo. make[1]: Leaving directory '/build/reproducible-path/rakudo-2024.09' debian/rules override_dh_auto_build make[1]: Entering directory '/build/reproducible-path/rakudo-2024.09' dh_auto_build make -j3 "INSTALL=install --strip-program=true" make[2]: Entering directory '/build/reproducible-path/rakudo-2024.09' +++ Checking for moar NQP version +++ Generating gen/moar/Grammar.nqp +++ Generating gen/moar/World.nqp +++ Generating gen/moar/ModuleLoader.nqp +++ Generating gen/moar/Ops.nqp +++ Compiling dynext/libperl6_ops_moar.so +++ Generating gen/moar/Pod.nqp +++ Generating gen/moar/Actions.nqp +++ Generating gen/moar/RakuGrammar.nqp +++ Generating gen/moar/RakuActions.nqp +++ Generating gen/moar/Compiler.nqp +++ Generating gen/moar/Optimizer.nqp +++ Generating gen/moar/Metamodel.nqp +++ Generating gen/moar/SysConfig.nqp +++ Generating gen/moar/ast.nqp +++ Generating gen/moar/BOOTSTRAP/v6d.nqp +++ Generating gen/moar/BOOTSTRAP/v6e.nqp +++ Compiling inst-rakudo +++ Compiling inst-rakudo-debug +++ Compiling inst-rakudo-m +++ Compiling inst-rakudo-debug-m +++ Compiling inst-perl6 +++ Compiling inst-perl6-debug +++ Compiling inst-perl6-m +++ Compiling inst-perl6-debug-m +++ Expanding gen/moar/main-version.nqp +++ Compiling blib/Perl6/ModuleLoader.moarvm +++ Compiling blib/Perl6/Ops.moarvm +++ Compiling blib/Perl6/Pod.moarvm +++ Compiling blib/Perl6/SysConfig.moarvm +++ Generating gen/moar/rakudo-debug.nqp +++ Generating gen/moar/rakudo.nqp +++ Compiling blib/Perl6/Metamodel.moarvm +++ Compiling blib/Perl6/World.moarvm +++ Compiling blib/Perl6/Actions.moarvm +++ Compiling blib/Raku/Actions.moarvm +++ Compiling blib/Perl6/Optimizer.moarvm +++ Generating gen/moar/BOOTSTRAP/v6c.nqp +++ Compiling blib/Perl6/BOOTSTRAP/v6d.moarvm +++ Compiling blib/Perl6/BOOTSTRAP/v6e.moarvm +++ Compiling blib/Raku/Grammar.moarvm +++ Compiling blib/Perl6/Compiler.moarvm +++ Compiling blib/Perl6/BOOTSTRAP/v6c.moarvm +++ Compiling blib/Perl6/Grammar.moarvm +++ Compiling rakudo.moarvm +++ Compiling rakudo-debug.moarvm +++ Generating rakudo-gdb-m +++ Generating rakudo-lldb-m +++ Generating rakudo-valgrind-m +++ Generating perl6-gdb-m +++ Generating perl6-lldb-m +++ Generating perl6-valgrind-m +++ Compiling blib/CORE.c.setting.moarvm The following step can take a long time, please be patient. Stage start : 0.003 Stage parse : 1134.672 Stage syntaxcheck: 0.002 Stage ast : 0.001 Stage optimize : 227.917 Stage mast : 284.359 Stage mbc : 50.927 +++ Compiling blib/CORE.d.setting.moarvm The following step can take a long time, please be patient. Stage start : 0.004 Stage parse : 8.351 Stage syntaxcheck: 0.001 Stage ast : 0.001 Stage optimize : 0.642 Stage mast : 0.918 Stage mbc : 0.134 +++ Compiling blib/CORE.e.setting.moarvm The following step can take a long time, please be patient. Stage start : 0.005 Stage parse : 52.775 Stage syntaxcheck: 0.001 Stage ast : 0.001 Stage optimize : 7.177 Stage mast : 8.673 Stage mbc : 0.827 +++ Generating rakudo-m make[2]: Leaving directory '/build/reproducible-path/rakudo-2024.09' echo "Configuration:" Configuration: echo -n "NQP source-digest: " NQP source-digest: nqp --show-config | grep source-digest nqp::source-digest=c245bc27e150cfdc2b62b1c6fc165c8d07344e93 echo -n "raku source-digest: " raku source-digest: ./rakudo-m --show-config | grep source-digest Raku::source-digest=b084aeda8e16f35b252aab14fffcd4615b1d9b67 echo -n "raku compiler id: " raku compiler id: ./rakudo-m -e 'say $*PERL.compiler.id;' B202134926643267DBA87C686CDAE403DD76376F pod2man --name=perl6 docs/running.pod debian/perl6.1 make[1]: Leaving directory '/build/reproducible-path/rakudo-2024.09' debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/rakudo-2024.09' rm -f t/08-performance/99-misc.t echo "Skipping broken test. See https://github.com/rakudo/rakudo/issues/3824" Skipping broken test. See https://github.com/rakudo/rakudo/issues/3824 rm -f t/09-moar/01-profilers.t rm -f t/02-rakudo/repl.t make test || make test || make test || make test || MVM_SPESH_DISABLE=1 make test make[2]: Entering directory '/build/reproducible-path/rakudo-2024.09' '/usr/bin/perl' -I'/build/reproducible-path/rakudo-2024.09/tools/lib' -I'/build/reproducible-path/rakudo-2024.09/3rdparty/nqp-configure/lib' t/harness5 --moar t/01-sanity t/02-rakudo t/04-nativecall t/05-messages t/06-telemetry t/07-pod-to-text t/08-performance t/10-qast t/09-moar t/12-rakuast t/01-sanity/01-literals.t ....................................... 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 # test multiple escapes in string using diag output: 123 ok 21 ok 22 ok 23 ok 24 ok t/01-sanity/02-op-math.t ........................................ 1..14 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 t/01-sanity/03-op-logic.t ....................................... 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 ok t/01-sanity/04-op-cmp.t ......................................... 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 ok t/01-sanity/05-var.t ............................................ 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 ok t/01-sanity/06-op-inplace.t ..................................... 1..11 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok t/01-sanity/07-op-string.t ...................................... 1..18 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 t/01-sanity/08-var-array.t ...................................... 1..11 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok t/01-sanity/09-end-blocks.t ..................................... 1..2 ok 1 ok 2 ok t/01-sanity/10-regex.t .......................................... 1..11 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok t/01-sanity/11-tap.t ............................................ 1..10 ok 1 ok 2 ok # comment ok 4 ok 5 ok 6 foo ok 7 # skip ok 8 # skip bar not ok 9 # TODO not ok 10 # TODO baz ok t/01-sanity/12-counter.t ........................................ 1..4 ok 1 ok 2 ok 3 ok 4 ok t/01-sanity/13-equal.t .......................................... 1..4 ok 1 ok 2 ok 3 ok 4 ok t/01-sanity/14-if.t ............................................. 1..9 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok t/01-sanity/15-sub.t ............................................ 1..4 ok 1 ok 2 ok 3 ok 4 ok t/01-sanity/16-eqv.t ............................................ 1..1 ok 1 ok t/01-sanity/17-isa.t ............................................ 1..3 ok 1 ok 2 ok 3 ok t/01-sanity/18-simple-multisubs.t ............................... 1..2 ok 1 ok 2 ok t/01-sanity/19-say.t ............................................ 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 ok t/01-sanity/20-defined.t ........................................ 1..3 ok 1 ok 2 ok 3 ok t/01-sanity/21-try.t ............................................ 1..4 ok 1 ok 2 ok 3 ok 4 ok t/01-sanity/53-transpose.t ...................................... 1..26 ok 1 - TRANSPOSE foof,f,a -> aooa ok 2 - TRANSPOSE foof,f,ab -> abooab ok 3 - TRANSPOSE foof,f,ff -> ffooff ok 4 - TRANSPOSE foof,f, -> oo ok 5 - TRANSPOSE offo,f,a -> oaao ok 6 - TRANSPOSE offo,f,ab -> oababo ok 7 - TRANSPOSE offo,f,ff -> offffo ok 8 - TRANSPOSE offo,f, -> oo ok 9 - TRANSPOSE foof,fo,a -> aof ok 10 - TRANSPOSE foof,fo,ab -> abof ok 11 - TRANSPOSE foof,fo,ff -> ffof ok 12 - TRANSPOSE foof,fo, -> of ok 13 - TRANSPOSE offo,fo,a -> ofa ok 14 - TRANSPOSE offo,fo,ab -> ofab ok 15 - TRANSPOSE offo,fo,ff -> offf ok 16 - TRANSPOSE offo,fo, -> of ok 17 - TRANSPOSE ofof,fo,a -> oaf ok 18 - TRANSPOSE ofof,fo,ab -> oabf ok 19 - TRANSPOSE ofof,fo,ff -> offf ok 20 - TRANSPOSE ofof,fo, -> of ok 21 - TRANSPOSE oooo,o, -> ok 22 - TRANSPOSE oooo,o,x -> xxxx ok 23 - TRANSPOSE oooo,o,xx -> xxxxxxxx ok 24 - TRANSPOSE oooo,x, -> oooo ok 25 - TRANSPOSE oooo,x,y -> oooo ok 26 - TRANSPOSE oooo,x,yy -> oooo ok t/01-sanity/55-use-trace.t ...................................... 1..3 ok 1 - did we get a Proc? ok 2 - is the program output ok? ok 3 - is the trace ok? ok t/01-sanity/56-use-isms.t ....................................... 1..8 ok 1 - Can we run p5ish code without it complaining ok 2 - Did the code with 'use isms' actually run ok 3 - Can we run p5ish code without it complaining ok 4 - Did the code with 'use isms ' actually run ok 5 - Can we run C++ish code without it complaining ok 6 - Did the code with 'use isms' actually run ok 7 - Can we run C++ish code without it complaining ok 8 - Did the code with 'use isms ' actually run ok t/01-sanity/99-test-basic.t ..................................... ok 1 - pass($desc) ok 2 - ok with description ok 3 - ok returns True ok 4 - ok 5 - ok returns True not ok 6 - calling ok False # TODO testing failure # Failed test 'calling ok False' # at t/01-sanity/99-test-basic.t line 16 ok 7 - failure returns False ok 8 - nok with description ok 9 - nok 0 returns True ok 10 - ok 11 - nok 0 returns True not ok 12 - nok 1 with description # TODO tesing nok True # Failed test 'nok 1 with description' # at t/01-sanity/99-test-basic.t line 27 ok 13 - nok 1 returns False ok 14 - is with description ok 15 - is returns True ok 16 - not ok 17 - is 1, 0; with description # TODO failing is # Failed test 'is 1, 0; with description' # at t/01-sanity/99-test-basic.t line 37 # expected: '0' # got: '1' ok 18 - is 1, 0; returns False ok 19 - isnt with description ok 20 - isnt 1, 0; returns True ok 21 - not ok 22 - isnt 1,1, with description # TODO testing isnt 1,1 # Failed test 'isnt 1,1, with description' # at t/01-sanity/99-test-basic.t line 47 # expected: anything except '1' # got: '1' ok 23 - isnt 1, 1; returns False not ok 24 - this should fail, to test todo() # TODO testing todo twice # Failed test 'this should fail, to test todo()' # at t/01-sanity/99-test-basic.t line 51 not ok 25 - this should also fail, to test todo() # TODO testing todo twice # Failed test 'this should also fail, to test todo()' # at t/01-sanity/99-test-basic.t line 52 ok 26 - passing test (todo is done) not ok 27 - todo with no count covers one test # TODO todo with no count # Failed test 'todo with no count covers one test' # at t/01-sanity/99-test-basic.t line 56 ok 28 - passing test (not todo) ok 29 - # SKIP skip with reason ok 30 - # SKIP ok 31 - # SKIP skip with count and reason ok 32 - # SKIP skip with count and reason # diag works, FYI not ok 33 - flunk # TODO testing flunk # Failed test 'flunk' # at t/01-sanity/99-test-basic.t line 68 ok 34 - isa-ok with message ok 35 - isa-ok returns True ok 36 - The object is-a 'Int' not ok 37 - The object is-a 'Int' # TODO failing isa-ok returns False # Failed test 'The object is-a 'Int'' # at t/01-sanity/99-test-basic.t line 78 # Actual type: Str ok 38 - Failing isa-ok returns False ok 39 - skip() dies when given the arguments in the wrong order ok 40 - dies-ok returns True not ok 41 - dies-ok {1} # TODO failing dies-ok returns False # Failed test 'dies-ok {1}' # at t/01-sanity/99-test-basic.t line 88 ok 42 - dies-ok returns False if code did not die ok 43 - dies-ok ok 44 - ok 45 - lives_ok ok 46 - lives-ok returns True ok 47 - not ok 48 - lives-ok { die } # TODO failing lives-ok returns False # Failed test 'lives-ok { die }' # at t/01-sanity/99-test-basic.t line 100 # Died ok 49 - failing lives-ok returns False ok 50 - eval-dies-ok ok 51 - eavl-dies-ok returns True ok 52 - not ok 53 - eval-dies-ok 1 fails # TODO eval-dies-ok 1 returns False # Failed test 'eval-dies-ok 1 fails' # at t/01-sanity/99-test-basic.t line 109 ok 54 - eval-dies-ok 1 returns False ok 55 - eval-lives-ok ok 56 - eval-lives-ok 1 returns True ok 57 - not ok 58 - lives-ok { die } # TODO failing eval-lives-ok returns False # Failed test 'lives-ok { die }' # at t/01-sanity/99-test-basic.t line 118 # Error: Died ok 59 - failing eval-lives-ok returns False ok 60 - is-deeply ok 61 - is-deeply returns True ok 62 - not ok 63 - is-deeply with exta key fails # TODO failing is-deeply returns False # Failed test 'is-deeply with exta key fails' # at t/01-sanity/99-test-basic.t line 140 # expected: ${} # got: ${:a(1)} ok 64 - failing is-deeply returns False ok 65 - Comparing eq Buf not ok 66 - # TODO Comparing 2 not eq Buf, should not pass # Failed test at t/01-sanity/99-test-basic.t line 148 # expected: Buf.new(43) # got: Buf.new(42) ok 67 - Comparing neq Buf 1..67 ok t/02-rakudo/03-cmp-ok.t ......................................... 1..7 # Subtest: string comparators 1..13 ok 1 - ok 2 - ok 3 - "foo" eq "foo" ok 4 - "a" lt "b" ok 5 - "b" gt "a" ok 6 - 1 < 2 ok 7 - 2 >= 1 not ok 8 - 2 < 1 # TODO should fail due to requested comparison # Failed test '2 < 1' # at t/02-rakudo/03-cmp-ok.t line 14 # expected: 1 # matcher: 'infix:«<»' # got: 2 ok 9 - should fail due to requested comparison not ok 10 - "foo" eq "bar" # TODO should fail due to requested comparison # Failed test '"foo" eq "bar"' # at t/02-rakudo/03-cmp-ok.t line 14 # expected: "bar" # matcher: 'infix:' # got: "foo" ok 11 - should fail due to requested comparison not ok 12 - # TODO should fail due to requested comparison # Failed test at t/02-rakudo/03-cmp-ok.t line 14 # Could not use '"non-exisistant-op"' as a comparator. If you are trying to use a meta operator, pass it as a Callable instead of a string: &[non-exisistant-op] ok 13 - should fail due to requested comparison ok 1 - string comparators # Subtest: &[] comparators 1..11 ok 1 - ok 2 - ok 3 - "foo" eq "foo" ok 4 - "a" lt "b" ok 5 - "b" gt "a" ok 6 - 1 < 2 ok 7 - 2 >= 1 not ok 8 - 2 < 1 # TODO should fail due to requested comparison # Failed test '2 < 1' # at t/02-rakudo/03-cmp-ok.t line 30 # expected: 1 # matcher: 'infix:«<»' # got: 2 ok 9 - should fail due to requested comparison not ok 10 - "foo" eq "bar" # TODO should fail due to requested comparison # Failed test '"foo" eq "bar"' # at t/02-rakudo/03-cmp-ok.t line 30 # expected: "bar" # matcher: 'infix:' # got: "foo" ok 11 - should fail due to requested comparison ok 2 - &[] comparators # Subtest: custom operators (in code) 1..6 ok 1 - comparing using a fancy operator (Callable version) ok 2 - comparing using a fancy operator (Str version) not ok 3 - failing comparison custom op (Callable) # TODO should fail due to requested comparison # Failed test 'failing comparison custom op (Callable)' # at t/02-rakudo/03-cmp-ok.t line 45 # expected: 1 # matcher: 'infix:<◀>' # got: 2 ok 4 - should fail due to requested comparison not ok 5 - failing comparison custom op (Str) # TODO should fail due to requested comparison # Failed test 'failing comparison custom op (Str)' # at t/02-rakudo/03-cmp-ok.t line 45 # expected: 1 # matcher: 'infix:<◀>' # got: 2 ok 6 - should fail due to requested comparison ok 3 - custom operators (in code) # Subtest: custom operators (in nested scope) 1..6 ok 1 - passing, Callable ok 2 - passing, Str not ok 3 - failing, Callable # TODO should fail due to requested comparison # Failed test 'failing, Callable' # at t/02-rakudo/03-cmp-ok.t line 53 # expected: 1 # matcher: 'infix:<◀>' # got: 2 ok 4 - should fail due to requested comparison not ok 5 - failing, Str # TODO should fail due to requested comparison # Failed test 'failing, Str' # at t/02-rakudo/03-cmp-ok.t line 53 # expected: 1 # matcher: 'infix:<◀>' # got: 2 ok 6 - should fail due to requested comparison ok 4 - custom operators (in nested scope) # Subtest: custom operators (imported) 1..24 ok 1 - passing <=! op, Callable ok 2 - passing <=! op, Str ok 3 - passing <=» op, Str ok 4 - passing « op, Callable ok 5 - passing « op, Str ok 6 - passing <« op, Str ok 7 - passing >» op, Str ok 8 - passing <«>» op, Str not ok 9 - failing <=! op, Callable # TODO should fail due to requested comparison # Failed test 'failing <=! op, Callable' # at t/02-rakudo/03-cmp-ok.t line 65 # expected: 1 # matcher: 'infix:«<=!»' # got: 2 ok 10 - should fail due to requested comparison not ok 11 - failing <=! op, Str # TODO should fail due to requested comparison # Failed test 'failing <=! op, Str' # at t/02-rakudo/03-cmp-ok.t line 65 # expected: 1 # matcher: 'infix:«<=!»' # got: 2 ok 12 - should fail due to requested comparison not ok 13 - failing <=» op, Str # TODO should fail due to requested comparison # Failed test 'failing <=» op, Str' # at t/02-rakudo/03-cmp-ok.t line 65 # expected: 1 # matcher: 'infix:<\<=»>' # got: 2 ok 14 - should fail due to requested comparison not ok 15 - failing « op, Callable # TODO should fail due to requested comparison # Failed test 'failing « op, Callable' # at t/02-rakudo/03-cmp-ok.t line 65 # expected: 1 # matcher: 'infix:<«>' # got: 2 ok 16 - should fail due to requested comparison not ok 17 - failing « op, Str # TODO should fail due to requested comparison # Failed test 'failing « op, Str' # at t/02-rakudo/03-cmp-ok.t line 65 # expected: 1 # matcher: 'infix:<«>' # got: 2 ok 18 - should fail due to requested comparison not ok 19 - failing <« op, Str # TODO should fail due to requested comparison # Failed test 'failing <« op, Str' # at t/02-rakudo/03-cmp-ok.t line 65 # expected: 1 # matcher: 'infix:<\<«>' # got: 2 ok 20 - should fail due to requested comparison not ok 21 - failing >» op, Str # TODO should fail due to requested comparison # Failed test 'failing >» op, Str' # at t/02-rakudo/03-cmp-ok.t line 65 # expected: 1 # matcher: 'infix:<\>»>' # got: 2 ok 22 - should fail due to requested comparison not ok 23 - failing <«>» op, Str # TODO should fail due to requested comparison # Failed test 'failing <«>» op, Str' # at t/02-rakudo/03-cmp-ok.t line 65 # expected: 1 # matcher: 'infix:<\<«\>»>' # got: 2 ok 24 - should fail due to requested comparison ok 5 - custom operators (imported) # Subtest: no EVAL exploit (RT#128283) 1..2 not ok 1 - # TODO should fail due to requested comparison # Failed test at t/02-rakudo/03-cmp-ok.t line 97 # Could not use '"~~>;exit; ;exit; ' | '⁰/₀' / ok 9 - 0/0 is not in -Inf^..^Inf range ok t/02-rakudo/06-is.t ............................................. 1..6 not ok 1 - # TODO should fail due to requested comparison # Failed test at t/02-rakudo/06-is.t line 11 # expected: 'Mu<74090528>' # got: (Mu) ok 2 - should fail due to requested comparison not ok 3 - # TODO should fail due to requested comparison # Failed test at t/02-rakudo/06-is.t line 12 # expected: (Mu) # got: 'Mu<74090696>' ok 4 - should fail due to requested comparison ok 5 - is(Mu:U, Mu:U) passes ok 6 - is(Mu:D, Mu:D) passes ok t/02-rakudo/07-implementation-detail-6.c.t ...................... 1..4 ok 1 - were any global uppercase CORE:: subs added ok 2 - were any global uppercase SETTING:: subs added ok 3 - were any global lowercase CORE:: subs added ok 4 - were any global lowercase SETTING:: subs added ok t/02-rakudo/07-implementation-detail-6.d.t ...................... 1..4 ok 1 - were any global uppercase CORE:: subs added ok 2 - were any global uppercase SETTING:: subs added ok 3 - were any global lowercase CORE:: subs added ok 4 - were any global lowercase SETTING:: subs added ok t/02-rakudo/07-implementation-detail-6.e.t ...................... 1..4 ok 1 - were any global uppercase CORE:: subs added ok 2 - were any global uppercase SETTING:: subs added ok 3 - were any global lowercase CORE:: subs added ok 4 - were any global lowercase SETTING:: subs added ok t/02-rakudo/08-inline-native-arith.t ............................ 1..4 ok 1 - $i * 2 inlines to mul_i when $i is declared as int ok 2 - can trialbiand to a sig with slurpy named param ok 3 - trial bind notices `where` in the capture ok 4 - trial bind notices `where` in the named slurpy ok t/02-rakudo/08-repeat.t ......................................... 1..5 ok 1 - concatenating strings with `~` that would create a too large result dies ok 2 - repeating strings with `x` that would create a too large result dies ok 3 - repeat count equal to the NQP limit works ok 4 - correct result for count equal to the NQP limit # Subtest: too large repeat count throws instead of going negative 1..2 ok 1 - code dies ok 2 - right exception type (Exception) ok 5 - too large repeat count throws instead of going negative ok t/02-rakudo/08-slangs.t ......................................... 1..1 # Subtest: no crash when giving an Actions class to .refine_slang 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - no crash when giving an Actions class to .refine_slang ok t/02-rakudo/09-thread-id-after-await.t .......................... 1..1 # original ok 1 - Correct dynamic seen after invokving continuation on different thread ok t/02-rakudo/10-nqp-ops.t ........................................ 1..2 ok 1 - p6bindattrinvres with getattr of bigint does not crash # Subtest: getlexdyn op does not segfault 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - getlexdyn op does not segfault ok t/02-rakudo/11-deprecated.t ..................................... 1..2 # Subtest: no deprecation message with \(v6.d, v6.e, :lang-vers) 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - no deprecation message with \(v6.d, v6.e, :lang-vers) # Subtest: shows deprecation message with \(v6.d, v6.e, :lang-vers) 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - shows deprecation message with \(v6.d, v6.e, :lang-vers) ok t/02-rakudo/12-proto-arity-count.t .............................. 1..346 ok 1 - `&abs`'s proto's .count and .arity are good ok 2 - `&acos`'s proto's .count and .arity are good ok 3 - `&acosec`'s proto's .count and .arity are good ok 4 - `&acosech`'s proto's .count and .arity are good ok 5 - `&acosh`'s proto's .count and .arity are good ok 6 - `&acotan`'s proto's .count and .arity are good ok 7 - `&acotanh`'s proto's .count and .arity are good ok 8 - `&all`'s proto's .count and .arity are good ok 9 - `&any`'s proto's .count and .arity are good ok 10 - `&append`'s proto's .count and .arity are good ok 11 - `&asec`'s proto's .count and .arity are good ok 12 - `&asech`'s proto's .count and .arity are good ok 13 - `&asin`'s proto's .count and .arity are good ok 14 - `&asinh`'s proto's .count and .arity are good ok 15 - `&atan`'s proto's .count and .arity are good ok 16 - `&atan2`'s proto's .count and .arity are good ok 17 - `&atanh`'s proto's .count and .arity are good ok 18 - `&atomic-add-fetch`'s proto's .count and .arity are good ok 19 - `&atomic-assign`'s proto's .count and .arity are good ok 20 - `&atomic-dec-fetch`'s proto's .count and .arity are good ok 21 - `&atomic-fetch`'s proto's .count and .arity are good ok 22 - `&atomic-fetch-add`'s proto's .count and .arity are good ok 23 - `&atomic-fetch-dec`'s proto's .count and .arity are good ok 24 - `&atomic-fetch-inc`'s proto's .count and .arity are good ok 25 - `&atomic-fetch-sub`'s proto's .count and .arity are good ok 26 - `&atomic-inc-fetch`'s proto's .count and .arity are good ok 27 - `&atomic-sub-fetch`'s proto's .count and .arity are good ok 28 - `&await`'s proto's .count and .arity are good ok 29 - `&bag`'s proto's .count and .arity are good ok 30 - `&cache`'s proto's .count and .arity are good ok 31 - `&cas`'s proto's .count and .arity are good ok 32 - `&categorize`'s proto's .count and .arity are good ok 33 - `&ceiling`'s proto's .count and .arity are good ok 34 - `&chars`'s proto's .count and .arity are good ok 35 - `&chdir`'s proto's .count and .arity are good ok 36 - `&chmod`'s proto's .count and .arity are good ok 37 - `&chomp`'s proto's .count and .arity are good ok 38 - `&chop`'s proto's .count and .arity are good ok 39 - `&chr`'s proto's .count and .arity are good ok 40 - `&chrs`'s proto's .count and .arity are good ok 41 - `&circumfix:<[ ]>`'s proto's .count and .arity are good ok 42 - `&circumfix:<{ }>`'s proto's .count and .arity are good ok 43 - `&cis`'s proto's .count and .arity are good ok 44 - `&classify`'s proto's .count and .arity are good ok 45 - `&close`'s proto's .count and .arity are good ok 46 - `&comb`'s proto's .count and .arity are good ok 47 - `&combinations`'s proto's .count and .arity are good ok 48 - `©`'s proto's .count and .arity are good ok 49 - `&cos`'s proto's .count and .arity are good ok 50 - `&cosec`'s proto's .count and .arity are good ok 51 - `&cosech`'s proto's .count and .arity are good ok 52 - `&cosh`'s proto's .count and .arity are good ok 53 - `&cotan`'s proto's .count and .arity are good ok 54 - `&cotanh`'s proto's .count and .arity are good ok 55 - `&deepmap`'s proto's .count and .arity are good ok 56 - `&defined`'s proto's .count and .arity are good ok 57 - `&die`'s proto's .count and .arity are good ok 58 - `&duckmap`'s proto's .count and .arity are good ok 59 - `&elems`'s proto's .count and .arity are good ok 60 - `&end`'s proto's .count and .arity are good ok 61 - `&EVAL`'s proto's .count and .arity are good ok 62 - `&EVALFILE`'s proto's .count and .arity are good ok 63 - `&exit`'s proto's .count and .arity are good ok 64 - `&exp`'s proto's .count and .arity are good ok 65 - `&expmod`'s proto's .count and .arity are good ok 66 - `&fail`'s proto's .count and .arity are good ok 67 - `&fc`'s proto's .count and .arity are good ok 68 - `&first`'s proto's .count and .arity are good ok 69 - `&flat`'s proto's .count and .arity are good ok 70 - `&flip`'s proto's .count and .arity are good ok 71 - `&floor`'s proto's .count and .arity are good ok 72 - `&full-barrier`'s proto's .count and .arity are good ok 73 - `&get`'s proto's .count and .arity are good ok 74 - `&getc`'s proto's .count and .arity are good ok 75 - `&gethostname`'s proto's .count and .arity are good ok 76 - `&gist`'s proto's .count and .arity are good ok 77 - `&goto`'s proto's .count and .arity are good ok 78 - `&grep`'s proto's .count and .arity are good ok 79 - `&hash`'s proto's .count and .arity are good ok 80 - `&index`'s proto's .count and .arity are good ok 81 - `&indices`'s proto's .count and .arity are good ok 82 - `&indir`'s proto's .count and .arity are good ok 83 - `&infix:<^^>`'s proto's .count and .arity are good ok 84 - `&infix:<^>`'s proto's .count and .arity are good ok 85 - `&infix:<^..^>`'s proto's .count and .arity are good ok 86 - `&infix:<^..>`'s proto's .count and .arity are good ok 87 - `&infix:<~^>`'s proto's .count and .arity are good ok 88 - `&infix:<~~>`'s proto's .count and .arity are good ok 89 - `&infix:<~>`'s proto's .count and .arity are good ok 90 - `&infix:<~|>`'s proto's .count and .arity are good ok 91 - `&infix:<~&>`'s proto's .count and .arity are good ok 92 - `&infix:«(<=)»`'s proto's .count and .arity are good ok 93 - `&infix:«(<)»`'s proto's .count and .arity are good ok 94 - # SKIP `infix:«(<+)»` is not a multi ok 95 - `&infix:«(>=)»`'s proto's .count and .arity are good ok 96 - `&infix:«(>)»`'s proto's .count and .arity are good ok 97 - # SKIP `infix:«(>+)»` is not a multi ok 98 - `&infix:<=~=>`'s proto's .count and .arity are good ok 99 - `&infix:<===>`'s proto's .count and .arity are good ok 100 - `&infix:<==>`'s proto's .count and .arity are good ok 101 - `&infix:<=:=>`'s proto's .count and .arity are good ok 102 - `&infix:<|>`'s proto's .count and .arity are good ok 103 - `&infix:<||>`'s proto's .count and .arity are good ok 104 - `&infix:<->`'s proto's .count and .arity are good ok 105 - `&infix:<,>`'s proto's .count and .arity are good ok 106 - `&infix:`'s proto's .count and .arity are good ok 107 - `&infix:`'s proto's .count and .arity are good ok 108 - `&infix:`'s proto's .count and .arity are good ok 109 - `&infix:`'s proto's .count and .arity are good ok 110 - `&infix:`'s proto's .count and .arity are good ok 111 - `&infix:`'s proto's .count and .arity are good ok 112 - `&infix:`'s proto's .count and .arity are good ok 113 - `&infix:<..^>`'s proto's .count and .arity are good ok 114 - `&infix:<..>`'s proto's .count and .arity are good ok 115 - `&infix:<...^>`'s proto's .count and .arity are good ok 116 - `&infix:<...>`'s proto's .count and .arity are good ok 117 - `&infix:<(^)>`'s proto's .count and .arity are good ok 118 - `&infix:<(|)>`'s proto's .count and .arity are good ok 119 - `&infix:<(-)>`'s proto's .count and .arity are good ok 120 - `&infix:<(.)>`'s proto's .count and .arity are good ok 121 - `&infix:<(&)>`'s proto's .count and .arity are good ok 122 - `&infix:<(+)>`'s proto's .count and .arity are good ok 123 - `&infix:<*>`'s proto's .count and .arity are good ok 124 - `&infix:<**>`'s proto's .count and .arity are good ok 125 - `&infix:<&>`'s proto's .count and .arity are good ok 126 - `&infix:<&&>`'s proto's .count and .arity are good ok 127 - `&infix:<%>`'s proto's .count and .arity are good ok 128 - `&infix:<%%>`'s proto's .count and .arity are good ok 129 - `&infix:<+^>`'s proto's .count and .arity are good ok 130 - `&infix:<+>`'s proto's .count and .arity are good ok 131 - `&infix:<+|>`'s proto's .count and .arity are good ok 132 - `&infix:<+&>`'s proto's .count and .arity are good ok 133 - `&infix:<...^>`'s proto's .count and .arity are good ok 134 - `&infix:<⚛=>`'s proto's .count and .arity are good ok 135 - `&infix:<⊄>`'s proto's .count and .arity are good ok 136 - `&infix:<⊃>`'s proto's .count and .arity are good ok 137 - `&infix:<⊅>`'s proto's .count and .arity are good ok 138 - `&infix:<∉>`'s proto's .count and .arity are good ok 139 - `&infix:<(cont)>`'s proto's .count and .arity are good ok 140 - `&infix:<∌>`'s proto's .count and .arity are good ok 141 - `&infix:<...>`'s proto's .count and .arity are good ok 142 - `&infix:<⊈>`'s proto's .count and .arity are good ok 143 - `&infix:<⊇>`'s proto's .count and .arity are good ok 144 - `&infix:<⊉>`'s proto's .count and .arity are good ok 145 - # SKIP `infix:<≼>` is not a multi ok 146 - # SKIP `infix:<≽>` is not a multi ok 147 - `&infix:<⚛-=>`'s proto's .count and .arity are good ok 148 - `&infix:<⚛+=>`'s proto's .count and .arity are good ok 149 - `&infix:«<=>»`'s proto's .count and .arity are good ok 150 - `&infix:«<=»`'s proto's .count and .arity are good ok 151 - `&infix:«<»`'s proto's .count and .arity are good ok 152 - `&infix:«=>»`'s proto's .count and .arity are good ok 153 - `&infix:«>=»`'s proto's .count and .arity are good ok 154 - `&infix:«>»`'s proto's .count and .arity are good ok 155 - `&infix:«+<»`'s proto's .count and .arity are good ok 156 - `&infix:«+>»`'s proto's .count and .arity are good ok 157 - `&infix:`'s proto's .count and .arity are good ok 158 - `&infix:`'s proto's .count and .arity are good ok 159 - `&infix:`'s proto's .count and .arity are good ok 160 - `&infix:`'s proto's .count and .arity are good ok 161 - `&infix:`'s proto's .count and .arity are good ok 162 - `&infix:`'s proto's .count and .arity are good ok 163 - `&infix:`'s proto's .count and .arity are good ok 164 - `&infix:<(cont)>`'s proto's .count and .arity are good ok 165 - `&infix:
`'s proto's .count and .arity are good ok 166 - `&infix:`'s proto's .count and .arity are good ok 167 - `&infix:<(elem)>`'s proto's .count and .arity are good ok 168 - `&infix:`'s proto's .count and .arity are good ok 169 - `&infix:`'s proto's .count and .arity are good ok 170 - `&infix:`'s proto's .count and .arity are good ok 171 - `&infix:`'s proto's .count and .arity are good ok 172 - `&infix:`'s proto's .count and .arity are good ok 173 - `&infix:`'s proto's .count and .arity are good ok 174 - `&infix:`'s proto's .count and .arity are good ok 175 - `&infix:`'s proto's .count and .arity are good ok 176 - `&infix:`'s proto's .count and .arity are good ok 177 - `&infix:`'s proto's .count and .arity are good ok 178 - `&infix:`'s proto's .count and .arity are good ok 179 - `&infix:`'s proto's .count and .arity are good ok 180 - `&infix:`'s proto's .count and .arity are good ok 181 - `&infix:`'s proto's .count and .arity are good ok 182 - `&infix:`'s proto's .count and .arity are good ok 183 - `&infix:`'s proto's .count and .arity are good ok 184 - `&infix:`'s proto's .count and .arity are good ok 185 - `&infix:`'s proto's .count and .arity are good ok 186 - `&infix:`'s proto's .count and .arity are good ok 187 - `&infix:`'s proto's .count and .arity are good ok 188 - `&infix:`'s proto's .count and .arity are good ok 189 - `&infix:`'s proto's .count and .arity are good ok 190 - `&infix:`'s proto's .count and .arity are good ok 191 - `&infix:`'s proto's .count and .arity are good ok 192 - `&is-prime`'s proto's .count and .arity are good ok 193 - `&item`'s proto's .count and .arity are good ok 194 - `&join`'s proto's .count and .arity are good ok 195 - `&keys`'s proto's .count and .arity are good ok 196 - `&kv`'s proto's .count and .arity are good ok 197 - `&last`'s proto's .count and .arity are good ok 198 - `&lc`'s proto's .count and .arity are good ok 199 - `&lines`'s proto's .count and .arity are good ok 200 - `&link`'s proto's .count and .arity are good ok 201 - `&list`'s proto's .count and .arity are good ok 202 - `&log`'s proto's .count and .arity are good ok 203 - `&log10`'s proto's .count and .arity are good ok 204 - `&log2`'s proto's .count and .arity are good ok 205 - `&lsb`'s proto's .count and .arity are good ok 206 - # SKIP `make` is not a multi ok 207 - `&map`'s proto's .count and .arity are good ok 208 - `&max`'s proto's .count and .arity are good ok 209 - `&min`'s proto's .count and .arity are good ok 210 - `&minmax`'s proto's .count and .arity are good ok 211 - `&mix`'s proto's .count and .arity are good ok 212 - `&mkdir`'s proto's .count and .arity are good ok 213 - `&move`'s proto's .count and .arity are good ok 214 - `&msb`'s proto's .count and .arity are good ok 215 - `&next`'s proto's .count and .arity are good ok 216 - `&nodemap`'s proto's .count and .arity are good ok 217 - `&none`'s proto's .count and .arity are good ok 218 - `¬`'s proto's .count and .arity are good ok 219 - `¬e`'s proto's .count and .arity are good ok 220 - `&one`'s proto's .count and .arity are good ok 221 - `&open`'s proto's .count and .arity are good ok 222 - `&ord`'s proto's .count and .arity are good ok 223 - `&ords`'s proto's .count and .arity are good ok 224 - `&pair`'s proto's .count and .arity are good ok 225 - `&pairs`'s proto's .count and .arity are good ok 226 - `&parse-base`'s proto's .count and .arity are good ok 227 - `&permutations`'s proto's .count and .arity are good ok 228 - `&pick`'s proto's .count and .arity are good ok 229 - `&pop`'s proto's .count and .arity are good ok 230 - `&postcircumfix:<[ ]>`'s proto's .count and .arity are good ok 231 - `&postcircumfix:<[; ]>`'s proto's .count and .arity are good ok 232 - `&postcircumfix:<{ }>`'s proto's .count and .arity are good ok 233 - `&postcircumfix:<{; }>`'s proto's .count and .arity are good ok 234 - `&postfix:<-->`'s proto's .count and .arity are good ok 235 - `&postfix:<++>`'s proto's .count and .arity are good ok 236 - `&postfix:<ⁿ>`'s proto's .count and .arity are good ok 237 - `&postfix:<⚛-->`'s proto's .count and .arity are good ok 238 - `&postfix:<⚛++>`'s proto's .count and .arity are good ok 239 - `&postfix:`'s proto's .count and .arity are good ok 240 - `&prefix:<^>`'s proto's .count and .arity are good ok 241 - `&prefix:<~^>`'s proto's .count and .arity are good ok 242 - `&prefix:<~>`'s proto's .count and .arity are good ok 243 - `&prefix:<|>`'s proto's .count and .arity are good ok 244 - `&prefix:<->`'s proto's .count and .arity are good ok 245 - `&prefix:<-->`'s proto's .count and .arity are good ok 246 - `&prefix:<--⚛>`'s proto's .count and .arity are good ok 247 - `&prefix:`'s proto's .count and .arity are good ok 248 - `&prefix:`'s proto's .count and .arity are good ok 249 - `&prefix:`'s proto's .count and .arity are good ok 250 - `&prefix:<+^>`'s proto's .count and .arity are good ok 251 - `&prefix:<+>`'s proto's .count and .arity are good ok 252 - `&prefix:<++>`'s proto's .count and .arity are good ok 253 - `&prefix:<++⚛>`'s proto's .count and .arity are good ok 254 - `&prefix:<⚛>`'s proto's .count and .arity are good ok 255 - `&prefix:`'s proto's .count and .arity are good ok 256 - `&prefix:`'s proto's .count and .arity are good ok 257 - `&prepend`'s proto's .count and .arity are good ok 258 - `&print`'s proto's .count and .arity are good ok 259 - `&printf`'s proto's .count and .arity are good ok 260 - `&produce`'s proto's .count and .arity are good ok 261 - `&prompt`'s proto's .count and .arity are good ok 262 - `&push`'s proto's .count and .arity are good ok 263 - `&put`'s proto's .count and .arity are good ok 264 - `&rand`'s proto's .count and .arity are good ok 265 - `&redo`'s proto's .count and .arity are good ok 266 - `&reduce`'s proto's .count and .arity are good ok 267 - `&rename`'s proto's .count and .arity are good ok 268 - `&repeated`'s proto's .count and .arity are good ok 269 - `&return`'s proto's .count and .arity are good ok 270 - `&return-rw`'s proto's .count and .arity are good ok 271 - `&reverse`'s proto's .count and .arity are good ok 272 - `&rindex`'s proto's .count and .arity are good ok 273 - `&rmdir`'s proto's .count and .arity are good ok 274 - `&roll`'s proto's .count and .arity are good ok 275 - `&roots`'s proto's .count and .arity are good ok 276 - `&rotate`'s proto's .count and .arity are good ok 277 - `&round`'s proto's .count and .arity are good ok 278 - `&roundrobin`'s proto's .count and .arity are good ok 279 - `&run`'s proto's .count and .arity are good ok 280 - `&samecase`'s proto's .count and .arity are good ok 281 - `&samemark`'s proto's .count and .arity are good ok 282 - `&say`'s proto's .count and .arity are good ok 283 - `&sec`'s proto's .count and .arity are good ok 284 - `&sech`'s proto's .count and .arity are good ok 285 - `&set`'s proto's .count and .arity are good ok 286 - `&shell`'s proto's .count and .arity are good ok 287 - `&shift`'s proto's .count and .arity are good ok 288 - `&sign`'s proto's .count and .arity are good ok 289 - `&signal`'s proto's .count and .arity are good ok 290 - `&sin`'s proto's .count and .arity are good ok 291 - `&sinh`'s proto's .count and .arity are good ok 292 - `&sleep`'s proto's .count and .arity are good ok 293 - `&sleep-timer`'s proto's .count and .arity are good ok 294 - `&sleep-until`'s proto's .count and .arity are good ok 295 - `&slip`'s proto's .count and .arity are good ok 296 - `&so`'s proto's .count and .arity are good ok 297 - `&sort`'s proto's .count and .arity are good ok 298 - `&splice`'s proto's .count and .arity are good ok 299 - `&split`'s proto's .count and .arity are good ok 300 - `&sprintf`'s proto's .count and .arity are good ok 301 - `&sqrt`'s proto's .count and .arity are good ok 302 - `&squish`'s proto's .count and .arity are good ok 303 - `&srand`'s proto's .count and .arity are good ok 304 - `&subbuf-rw`'s proto's .count and .arity are good ok 305 - `&substr`'s proto's .count and .arity are good ok 306 - `&substr-rw`'s proto's .count and .arity are good ok 307 - `&succeed`'s proto's .count and .arity are good ok 308 - `&sum`'s proto's .count and .arity are good ok 309 - `&symlink`'s proto's .count and .arity are good ok 310 - `&take`'s proto's .count and .arity are good ok 311 - `&take-rw`'s proto's .count and .arity are good ok 312 - `&tan`'s proto's .count and .arity are good ok 313 - `&tanh`'s proto's .count and .arity are good ok 314 - `&tc`'s proto's .count and .arity are good ok 315 - `&tclc`'s proto's .count and .arity are good ok 316 - `&trait_mod:`'s proto's .count and .arity are good ok 317 - `&trait_mod:`'s proto's .count and .arity are good ok 318 - `&trait_mod:`'s proto's .count and .arity are good ok 319 - `&trait_mod:`'s proto's .count and .arity are good ok 320 - `&trait_mod:`'s proto's .count and .arity are good ok 321 - `&trait_mod:`'s proto's .count and .arity are good ok 322 - `&trait_mod:`'s proto's .count and .arity are good ok 323 - `&trait_mod:`'s proto's .count and .arity are good ok 324 - `&trim`'s proto's .count and .arity are good ok 325 - `&trim-leading`'s proto's .count and .arity are good ok 326 - `&trim-trailing`'s proto's .count and .arity are good ok 327 - `&truncate`'s proto's .count and .arity are good ok 328 - `&uc`'s proto's .count and .arity are good ok 329 - `&UNBASE`'s proto's .count and .arity are good ok 330 - `&undefine`'s proto's .count and .arity are good ok 331 - `&unimatch`'s proto's .count and .arity are good ok 332 - `&uniname`'s proto's .count and .arity are good ok 333 - `&uninames`'s proto's .count and .arity are good ok 334 - `&uniparse`'s proto's .count and .arity are good ok 335 - `&uniprop`'s proto's .count and .arity are good ok 336 - `&uniprops`'s proto's .count and .arity are good ok 337 - `&unique`'s proto's .count and .arity are good ok 338 - `&unival`'s proto's .count and .arity are good ok 339 - `&univals`'s proto's .count and .arity are good ok 340 - `&unlink`'s proto's .count and .arity are good ok 341 - `&unpolar`'s proto's .count and .arity are good ok 342 - `&unshift`'s proto's .count and .arity are good ok 343 - `&values`'s proto's .count and .arity are good ok 344 - `&warn`'s proto's .count and .arity are good ok 345 - `&wordcase`'s proto's .count and .arity are good ok 346 - `&words`'s proto's .count and .arity are good ok t/02-rakudo/13-exceptions.t ..................................... 1..14 # Subtest: exception isn't lost 1..3 ok 1 - 'sub foo ( ::T $val ) { my T $a is default($val); }; foo(42)' died ok 2 - right exception type (X::Parameter::Default::TypeCheck) ok 3 - .message matches rx:s/Default value \'\(\w+\)\' will never bind to a variable of type T/ ok 1 - exception isn't lost # Subtest: calling multi sub that expects a rw native argument with a literal is caught at compile time 1..2 ok 1 - 'multi sub f(int $foo is rw) { }; f(42)' died ok 2 - right exception type (X::Comp) ok 2 - calling multi sub that expects a rw native argument with a literal is caught at compile time # Subtest: calling multi sub that expects a rw non-native argument with a literal is caught at compile time 1..2 ok 1 - 'multi sub f(Int $foo is rw) { }; f(42)' died ok 2 - right exception type (X::Comp) ok 3 - calling multi sub that expects a rw non-native argument with a literal is caught at compile time # Subtest: inheriting from uncomposed parent 1..2 ok 1 - 'my \parent := Metamodel::ClassHOW.new_type(:name('Parent')); # my \child := Metamodel::ClassHOW.new_type(:name('Child')); # child.^add_parent(parent); # child.^compose; # ' died ok 2 - right exception type (X::Inheritance::NotComposed) ok 4 - inheriting from uncomposed parent # Subtest: passing an initializer when role cannot accept it 1..2 ok 1 - 'role R {}; my $foo = 42 but R(1)' died ok 2 - right exception type (X::Role::Initialization) ok 5 - passing an initializer when role cannot accept it # Subtest: Sigiled variables can be rebound 1..3 ok 1 - $-sigiled variable can be rebound ok 2 - @-sigiled variable can be rebound ok 3 - %-sigiled variable can be rebound ok 6 - Sigiled variables can be rebound # Subtest: Scalars in signatures be rebound if they are 'copy' or 'rw' 1..2 ok 1 - Scalars in function signatures can be rebound when they are 'is copy' ok 2 - Scalars in function signatures can be rebound when they are 'is rw' (and get a writable container) ok 7 - Scalars in signatures be rebound if they are 'copy' or 'rw' # Subtest: Scalars in signatures that aren't 'copy' or 'rw' cannot be rebound 1..4 # Subtest: Scalars in function signatures cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'$bound-scalar-in-sig'/, /'signature'/) ok 1 - Scalars in function signatures cannot be rebound # Subtest: Scalars in function signatures cannot be rebound even if they have a type constraint 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'$bound-scalar-with-type'/, /'signature'/) ok 2 - Scalars in function signatures cannot be rebound even if they have a type constraint # Subtest: Scalars in bound signatures cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'$bound-scalar'/, /'signature'/) ok 3 - Scalars in bound signatures cannot be rebound # Subtest: Scalars in more complex bound signatures cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'$bound-scalar'/, /'signature'/) ok 4 - Scalars in more complex bound signatures cannot be rebound ok 8 - Scalars in signatures that aren't 'copy' or 'rw' cannot be rebound # Subtest: Positional and Associative variables in signatures can be rebound if they are 'copy' 1..4 ok 1 - Positional variables in function signatures can be rebound when they are 'is copy' ok 2 - Positional variables in bound signatures can be rebound when they are 'is copy' ok 3 - Associative variables in function signatures can be rebound when they are 'is copy' ok 4 - Associative variables bound in signatures can be rebound when they are 'is copy' ok 9 - Positional and Associative variables in signatures can be rebound if they are 'copy' # Subtest: Positional and Associative variables in signatures that aren't 'copy' cannot be rebound 1..4 # Subtest: Positional variables in function signatures cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'@bound-positional-in-sig'/, /'signature'/) ok 1 - Positional variables in function signatures cannot be rebound # Subtest: Positional variables in bound signatures cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'@bound-positional'/, /'signature'/) ok 2 - Positional variables in bound signatures cannot be rebound # Subtest: Associative variables in function signatures cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'%bound-associative-in-sig'/, /'signature'/) ok 3 - Associative variables in function signatures cannot be rebound # Subtest: Associative variables in bound signatures cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'%bound-associative'/, /'signature'/) ok 4 - Associative variables in bound signatures cannot be rebound ok 10 - Positional and Associative variables in signatures that aren't 'copy' cannot be rebound # Subtest: Sigilless "variables" can never be rebound 1..4 # Subtest: Sigilless scalar terms cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'sigilless'/, none(/'signature'/)) ok 1 - Sigilless scalar terms cannot be rebound # Subtest: Sigilless positional terms cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'sigilless-array'/, none(/'signature'/)) ok 2 - Sigilless positional terms cannot be rebound # Subtest: Sigilless associative terms cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'sigilless-hash'/, none(/'signature'/)) ok 3 - Sigilless associative terms cannot be rebound # Subtest: Constants cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'con'/, none(/'signature'/)) ok 4 - Constants cannot be rebound ok 11 - Sigilless "variables" can never be rebound # Subtest: Code items can never be rebound 1..2 # Subtest: A sub cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'&f'/, none(/'signature'/)) ok 1 - A sub cannot be rebound # Subtest: A regex cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'®-exp'/, none(/'signature'/)) ok 2 - A regex cannot be rebound ok 12 - Code items can never be rebound # Subtest: Terms can never be rebound 1..4 # Subtest: A class cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'C'/, none(/'signature'/)) ok 1 - A class cannot be rebound # Subtest: A role cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'R'/, none(/'signature'/)) ok 2 - A role cannot be rebound # Subtest: A grammar cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'G'/, none(/'signature'/)) ok 3 - A grammar cannot be rebound # Subtest: Native types cannot be rebound 1..3 ok 1 - code dies ok 2 - right exception type (X::Bind::Rebind) ok 3 - .message matches all(/'int'/, none(/'signature'/)) ok 4 - Native types cannot be rebound ok 13 - Terms can never be rebound # Subtest: Items that were never bound don't throw *re*binding errors 1..8 ok 1 - Binding to a native type doesn't throw X::Bind::Rebind # Subtest: Binding to a native type throws X::Bind::NativeType 1..2 ok 1 - code dies ok 2 - right exception type (X::Bind::NativeType) ok 2 - Binding to a native type throws X::Bind::NativeType ok 3 - Binding to a literal doesn't throw X::Bind::Rebind # Subtest: Binding to a literal throws X::Bind 1..2 ok 1 - code dies ok 2 - right exception type (X::Bind) ok 4 - Binding to a literal throws X::Bind ok 5 - Binding to a function call LHS doesn't throw X::Bind::Rebind # Subtest: Binding to a function call LHS throws X::Bind 1..2 ok 1 - code dies ok 2 - right exception type (X::Bind) ok 6 - Binding to a function call LHS throws X::Bind ok 7 - Binding to a pseudo-package LHS doesn't throw X::Bind::Rebind # Subtest: Binding to a pseudo-package LHS throws X::Bind 1..2 ok 1 - code dies ok 2 - right exception type (X::Bind) ok 8 - Binding to a pseudo-package LHS throws X::Bind ok 14 - Items that were never bound don't throw *re*binding errors ok t/02-rakudo/14-revisions.t ...................................... 1..3 # Subtest: CORE.setting Revision 1..3 # Subtest: CORE.setting 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - CORE.setting # Subtest: CORE.d.setting 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - CORE.d.setting # Subtest: CORE.e.setting 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 3 - CORE.e.setting ok 1 - CORE.setting Revision # Subtest: Modifiers 1..4 # Subtest: 6.e without PREVIEW dies 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - 6.e without PREVIEW dies # Subtest: v6.d.TEST loads CORE.d.setting 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - v6.d.TEST loads CORE.d.setting # Subtest: Deprecated modifier generates a warning 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 3 - Deprecated modifier generates a warning # Subtest: Unknown modifier dies 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 4 - Unknown modifier dies ok 2 - Modifiers # Subtest: Class Version 1..3 # Subtest: 6.c class version 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - 6.c class version # Subtest: 6.c class version on 6.d compiler 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - 6.c class version on 6.d compiler # Subtest: 6.e class version 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 3 - 6.e class version ok 3 - Class Version ok t/02-rakudo/15-gh_1202.t ........................................ 1..2 ok 1 - shell output ok 2 - all runs completed ok t/02-rakudo/16-begin-time-eval.t ................................ ok 1 - Module loaded successfully 1..1 ok t/02-rakudo/17-cli.t ............................................ 1..3 ok 1 - `raku -V` succeeds ok 2 - `raku -V` prints configuration options ok 3 - `raku -V` doesn't print to STDERR ok t/02-rakudo/18-pseudostash.t .................................... 1..3 # Subtest: CLIENT:: doesn't fail on NQP packages for 6.c 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - CLIENT:: doesn't fail on NQP packages for 6.c # Subtest: CLIENT:: doesn't fail on NQP packages for 6.d 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - CLIENT:: doesn't fail on NQP packages for 6.d # Subtest: CLIENT:: doesn't fail on NQP packages for 6.e.PREVIEW 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 3 - CLIENT:: doesn't fail on NQP packages for 6.e.PREVIEW ok t/02-rakudo/19-mkdir.t .......................................... 1..1 # Subtest: did we fails-like X::IO::Mkdir? 1..2 ok 1 - code returned a Failure # Subtest: Failure threw when sunk 1..2 ok 1 - code dies ok 2 - right exception type (X::IO::Mkdir) ok 2 - Failure threw when sunk ok 1 - did we fails-like X::IO::Mkdir? ok t/02-rakudo/20-generic-class.rakutest ........................... 1..8 # Subtest: Before Instantiations ok 1 - role attribute type name before instantiations ok 2 - role attribute type archetypes are that of a generic class ok 3 - role attribute type is-generic method ok 4 - role attribute type instance archetypes is generic 1..4 ok 1 - Before Instantiations ok 2 - attribute type is the first instantiation ok 3 - method body resolves generic class into the first instatiation ok 4 - class instantiated over role's Str:D argument ok 5 - attribute type is the second instantiation ok 6 - method body resolves generic class into the second instatiation ok 7 - class instantiated over role's Int:D arguments # Subtest: After Instantiations ok 1 - role attribute type name before instantiations ok 2 - role attribute type archetypes are that of a generic class ok 3 - role attribute type is-generic method ok 4 - role attribute type instance archetypes is generic 1..4 ok 8 - After Instantiations ok t/02-rakudo/99-misc.t ........................................... 1..10 # Subtest: IO::Handle.raku.EVAL roundtrips 1..7 ok 1 - type object ok 2 - instance ok 3 - path ok 4 - chomp ok 5 - nl-in ok 6 - nl-out ok 7 - encoding ok 1 - IO::Handle.raku.EVAL roundtrips # Subtest: profiler does not crash 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - profiler does not crash ok 3 - no crash when defining multiple routines with tightnes ok 4 - parametarization of a DefiniteHOW does not complain about complex coercers # Subtest: postfix-to-prefix-inc-dec opt does not rewrite custom ops 1..5 # Subtest: custom classes 1..2 ok 1 - postfix increment ok 2 - postfix decrement ok 1 - custom classes # Subtest: core types (Int) 1..2 ok 1 - postfix increment ok 2 - postfix decrement ok 2 - core types (Int) # Subtest: core types (Num) 1..2 ok 1 - postfix increment ok 2 - postfix decrement ok 3 - core types (Num) # Subtest: core types (native int) 1..2 ok 1 - postfix increment ok 2 - postfix decrement ok 4 - core types (native int) # Subtest: core types (native num) 1..2 ok 1 - postfix increment ok 2 - postfix decrement ok 5 - core types (native num) ok 5 - postfix-to-prefix-inc-dec opt does not rewrite custom ops ok 6 - regex blocks update their lexical variables right # Subtest: collation experiment 1..2 # Subtest: $*COLLATION.set no longer requires experimental pragma 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - $*COLLATION.set no longer requires experimental pragma # Subtest: we can still use the pragma (to support old code) 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - we can still use the pragma (to support old code) ok 7 - collation experiment # Subtest: Distribution::Resource can be stringified ok 1 - Can use .raku Use of uninitialized value of type Distribution::Resource in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at t/02-rakudo/99-misc.t line 141 ok 2 - Can use .Str ok 3 - Can use .gist 1..3 ok 8 - Distribution::Resource can be stringified ok 9 - Subclassing of Parameter works ok 10 - Parameter takes by-name parameters itself ok t/02-rakudo/dd.t ................................................ 1..2 # Subtest: Failures don't get marked as handled in &dd 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - Failures don't get marked as handled in &dd # Subtest: Junctions do not crash 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - Junctions do not crash ok t/02-rakudo/dump.t .............................................. 1..44 ok 1 - DUMP(:U) is .raku (Mu) ok 2 - DUMP(:U) is .raku (Junction) ok 3 - DUMP(:U) is .raku (Any) ok 4 - DUMP(:U) is .raku (Bool) ok 5 - DUMP(:U) is .raku (Cool) ok 6 - DUMP(:U) is .raku (Str) ok 7 - DUMP(:U) is .raku (Int) ok 8 - DUMP(:U) is .raku (Num) ok 9 - DUMP(:U) is .raku (Rat) ok 10 - DUMP(:U) is .raku (FatRat) ok 11 - DUMP(:U) is .raku (Complex) ok 12 - DUMP(:U) is .raku (Duration) ok 13 - DUMP(:U) is .raku (Instant) not ok 14 - DUMP(Bool:D) is .Str (False) # TODO NYI # Failed test 'DUMP(Bool:D) is .Str (False)' # at t/02-rakudo/dump.t line 22 # expected: 'False' # got: 'Bool::False' not ok 15 - DUMP(Bool:D) is .Str (True) # TODO NYI # Failed test 'DUMP(Bool:D) is .Str (True)' # at t/02-rakudo/dump.t line 23 # expected: 'True' # got: 'Bool::True' ok 16 - DUMP(Int:D) is .raku (0) ok 17 - DUMP(Int:D) is .raku (1) ok 18 - DUMP(Int:D) is .raku (-128) ok 19 - DUMP(Int:D) is .raku (123456789) ok 20 - DUMP(Int:D) is .raku (1 +< 100) ok 21 - DUMP(Num:D) is .raku (0e0) ok 22 - DUMP(Num:D) is .raku (-0e0) ok 23 - DUMP(Num:D) is .raku (Inf) ok 24 - DUMP(Num:D) is .raku (-Inf) ok 25 - DUMP(Num:D) is .raku (NaN) ok 26 - DUMP(Rat:D) is .raku (0.0) ok 27 - DUMP(Rat:D) is .raku (-0.0) ok 28 - DUMP(Rat:D) is .raku (1.1) ok 29 - DUMP(Rat:D) is .raku (-1.1) ok 30 - DUMP(Rat:D) is .raku (22/7) ok 31 - DUMP(Rat:D) is .raku (-22/7) ok 32 - DUMP(Complex:D) is .raku (0i) ok 33 - DUMP(Complex:D) is .raku (-0i) ok 34 - DUMP(Complex:D) is .raku (0+0i) ok 35 - DUMP(Complex:D) is .raku (0-0i) ok 36 - DUMP(Complex:D) is .raku (-0+0i) ok 37 - DUMP(Complex:D) is .raku (-0-0i) ok 38 - DUMP(Complex:D) is .raku (1+1i) ok 39 - DUMP(Complex:D) is .raku (1-1i) ok 40 - DUMP(Complex:D) is .raku (-1+1i) ok 41 - DUMP(Complex:D) is .raku (-1-1i) not ok 42 - DUMP(int) dumps as a literal # TODO NYI (can it even?) # Failed test 'DUMP(int) dumps as a literal' # at t/02-rakudo/dump.t line 62 # expected: '42' # got: '▶42' not ok 43 - DUMP(num) dumps as a literal # TODO NYI (can it even?) # Failed test 'DUMP(num) dumps as a literal' # at t/02-rakudo/dump.t line 63 # expected: '12345e0' # got: '▶12345e0' not ok 44 - DUMP(str) dumps as a literal # TODO NYI (can it even?) # Failed test 'DUMP(str) dumps as a literal' # at t/02-rakudo/dump.t line 64 # expected: '"a string"' # got: '▶"a string"' ok t/02-rakudo/reproducible-builds.t ............................... ok 1 - Both precompilation runs resulted in the same checksum 1..1 ok t/02-rakudo/v6.d-tests/01-deprecations.t ........................ 1..1 ok 1 - ok t/04-nativecall/00-misc.t ....................................... ok 1 - are all identifiers reachable? ok 2 - body of a native sub declared in a role body replaced ok 3 - body of a native sub declared in a BEGIN block replaced ok 4 - optimizer doesn't inline the native sub's original body # Subtest: no segfaults when using NC routine after using it during precomp 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 5 - no segfaults when using NC routine after using it during precomp 1..5 ok t/04-nativecall/01-argless.t .................................... 1..14 ok 1 - survived the call ok 2 - called argless function returning int32 ok 3 - called argless function returning int32 ok 4 - called argless function returning char ok 5 - called argless function returning char ok 6 - called argless function returning long long ok 7 - called argless function returning long long ok 8 - called argless function returning pointer ok 9 - called argless function returning pointer ok 10 - called argless function returning string ok 11 - called argless function returning string ok 12 - called long_and_complicated_name ok 13 - called argless closure ok 14 - called argless closure ok t/04-nativecall/02-simple-args.t ................................ 1..21 ok 1 - passed int 42 ok 2 - passed two shorts ok 3 - passed an int32, int16 and int8 ok 4 - passed a double ok 5 - passed a NaN (double) ok 6 - passed a float ok 7 - passed a NaN (float) ok 8 - passed a string ok 9 - defined/undefined works on the same callsite ok 10 - defined/undefined works on the same callsite ok 11 - checked previously passed string ok 12 - wrapped sub ok 13 - passed int64 0xFFFFFFFFFF ok 14 - passed uint8 0xFE ok 15 - # SKIP Cannot test TakeUint16(0xFFFE) with clang without -O0 ok 16 - passed uint32 0xFFFFFFFE ok 17 - passed size_t 42 ok 18 - passed ssize_t -42 ok 19 - Proxy works ok 20 - defined/undefined works after Proxy arg ok 21 - defined/undefined works after Proxy arg ok t/04-nativecall/03-simple-returns.t ............................. 1..20 ok 1 - returning int works ok 2 - returning int works ok 3 - returning negative int works ok 4 - returning negative int works ok 5 - returning short works ok 6 - returning short works ok 7 - returning negative short works ok 8 - returning negative short works ok 9 - returning char works ok 10 - returning char works ok 11 - returning double works ok 12 - returning float works ok 13 - returning string works ok 14 - returning null string pointer ok 15 - returning int64 works ok 16 - returning negative int64 works ok 17 - returning negative int64 works ok 18 - returning uint8 works ok 19 - returning uint16 works ok 20 - returning uint32 works ok t/04-nativecall/04-pointers.t ................................... 1..22 ok 1 - Got passed back the pointer I returned ok 2 - Non-NULL pointer is trueish ok 3 - Calling .Int on non-NULL pointer is trueish ok 4 - Calling prefix:<+> on non-NULL pointer is trueish ok 5 - Pointer roundtrips okay using .raku and EVAL ok 6 - Numerical value of Pointer.new is 0 ok 7 - Pointer.new(0) has 0 numerical value ok 8 - Pointer.new(1234) has numerical value 1234 ok 9 - Pointer.new accepts a native int too ok 10 - A returned NULL pointer is the Pointer type object itself ok 11 - typed pointer deref method ok 12 - typed pointer array dereference ok 13 - typed pointer increment ok 14 - .add(-1) ok 15 - typed pointer incremented (1) ok 16 - typed pointer incremented (2) ok 17 - typed pointer decrement ok 18 - typed pointer incremented (1) ok 19 - typed pointer incremented (2) ok 20 - .add(2) ok 21 - Signature matching with Pointer[int32] works ok 22 - Signature matching with CArray[Int] works ok t/04-nativecall/05-arrays.t ..................................... 1..47 ok 1 - returning double array (1) ok 2 - returning double array (2) ok 3 - returning double array (3) ok 4 - passing double array ok 5 - returning string array (1) ok 6 - returning string array (2) ok 7 - passing string array ok 8 - getting last element of managed array ok 9 - getting uninitialized element in managed array ok 10 - CArray.elems works (int) ok 11 - .new with values creates an array containing those values (int) - 1 ok 12 - .new with values creates an array containing those values (int) - 2 ok 13 - .new with values creates an array containing those values (int) - 3 ok 14 - .new with values creates an array containing those values (int) - 4 ok 15 - CArray.elems works (num) ok 16 - .new with values creates an array containing those values (num) - 1 ok 17 - .new with values creates an array containing those values (num) - 2 ok 18 - .new with values creates an array containing those values (num) - 3 ok 19 - .new with values creates an array containing those values (num) - 4 ok 20 - long in struct in element 0 ok 21 - long in struct in element 1 ok 22 - long in struct in element 2 ok 23 - out-of-bounds access on managed array ok 24 - struct in position 0..2, C-side ok 25 - Setting a type object in the array passes a NULL to the C side ok 26 - byte in element 0 ok 27 - byte in element 1 ok 28 - byte in element 2 ok 29 - byte in position 0..2, C-side ok 30 - byte in position 0..2, C-side ok 31 - float in element 0 ok 32 - float in element 1 ok 33 - float in element 2 ok 34 - sum of float array ok 35 - creating CArray with no arguments works ok 36 - creating CArray with () as argument does not hang ok 37 - creating CArray with several positionals works ok 38 - creating CArray with one Positional positional works ok 39 - unsigned uint8 value ok 40 - native int as index to CArray does not crash ok 41 - CArray.^shortname shows sane value # Subtest: CArray allocation 1..3 ok 1 - Allocation works with Int typed CArray ok 2 - Allocation works with Num typed CArray ok 3 - Allocation works with miscellaneously typed CArray ok 42 - CArray allocation ok 43 - can we build with a CArray attribute ok 44 - can we create a Buf from a CArray ok 45 - can we create a Blob from a CArray ok 46 - Indexing with WhateverStar works on CArray ok 47 - Make sure optimisation didn't break anything ok t/04-nativecall/06-struct.t ..................................... 1..34 ok 1 - getting long ok 2 - getting num ok 3 - getting int8 ok 4 - getting num32 ok 5 - getting CArray and element ok 6 - getting long from C-created struct ok 7 - getting num from C-created struct ok 8 - getting int8 from C-created struct ok 9 - getting num32 from C-created struct ok 10 - C-created array member, elem 1 ok 11 - C-created array member, elem 2 ok 12 - C-created array member, elem 3 ok 13 - field 1 from struct 1 in struct ok 14 - field 2 from struct 1 in struct ok 15 - field 1 from struct 2 in struct ok 16 - field 2 from struct 2 in struct ok 17 - CPointer object in struct ok 18 - first string in struct ok 19 - second string in struct ok 20 - C-side values in struct ok 21 - Setting a CArray struct element to type object passes a NULL to C ok 22 - C-side values in struct struct ok 23 - C-side strict values in struct ok 24 - and the int after is 42 ok 25 - nested first is 101 ok 26 - nested second is 77 ok 27 - struct with inlined structs has correct size # Subtest: did we throws-like Exception? 1..3 ok 1 - 'class EmptyCStructTest is repr { };' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|70836512) ... } ok 28 - did we throws-like Exception? ok 29 - Can inline fixed sizes array (1) ok 30 - Can inline fixed sizes array (2) ok 31 - Can inline fixed sizes array (3) ok 32 - Can inline fixed sizes array (4) ok 33 - Can inline fixed sizes array (5) ok 34 - Can inline fixed sizes array (6) ok t/04-nativecall/07-writebarrier.t ............................... 1..7 ok 1 - pointer in struct before twiddle ok 2 - pointer in struct after twiddle ok 3 - array element 1 after twiddle ok 4 - array element 2 after twiddle ok 5 - array element 3 after twiddle ok 6 - ignore NULL arguments ok 7 - struct value after refresh ok t/04-nativecall/08-callbacks.t .................................. 1..13 ok 1 - simple callback ok 2 - simple callback ok 3 - optional callback with Code type object ok 4 - optional callback with Pointer type object ok 5 - int callback argument ok 6 - string callback argument ok 7 - struct callback string argument ok 8 - struct callback int argument ok 9 - callback returned a float to C ok 10 - callback returned a string to C ok 11 - callback returned a struct to C ok 12 - ok 13 - ok t/04-nativecall/09-nativecast.t ................................. 1..9 ok 1 - casting int * to CArray[uint32] works ok 2 - casting to CStruct works ok 3 - casting to int32 works ok 4 - casting to int16 works ok 5 - casting to int8 works ok 6 - casting to num64 works ok 7 - casting to num32 works ok 8 - casting to str works ok 9 - casting null pointer to str ok t/04-nativecall/10-cglobals.t ................................... 1..7 ok 1 - global int works ok 2 - global short works ok 3 - global char works ok 4 - global double works ok 5 - global float works ok 6 - global string works ok 7 - global null string pointer ok t/04-nativecall/11-cpp.t ........................................ 1..22 ok 1 - sizeof(Derived1) ok 2 - can instantiate C++ class ok 3 - can instantiate the same C++ class again using « .= » ok 4 - can read attribute foo ok 5 - can read attribute bar ok 6 - can read attribute baz ok 7 - can read attribute cx ok 8 - can read attribute cy ok 9 - can read attribute c ok 10 - sizeof(Derived2) ok 11 - can instantiate C++ class with vtable ok 12 - can read attribute foo ok 13 - can read attribute bar ok 14 - can read attribute baz ok 15 - can read attribute cx ok 16 - can read attribute cy ok 17 - can read attribute c ok 18 - can read typed pointer attribute ok 19 - can pass arguments to method ok 20 - name mangling of parameter `const int` ok 21 - name mangling of parameter `int *` ok 22 - name mangling of parameter `const int *` ok t/04-nativecall/12-sizeof.t ..................................... 1..17 ok 1 - sizeof(Foo) ok 2 - sizeof(Bar) ok 3 - sizeof(Baz) ok 4 - sizeof(Buz) ok 5 - sizeof(int) ok 6 - sizeof(long) ok 7 - sizeof(Pointer) ok 8 - sizeof(bool) ok 9 - sizeof(size_t) ok 10 - sizeof(foo1) ok 11 - sizeof(foo2) ok 12 - sizeof(foo3) ok 13 - sizeof(foo4) ok 14 - sizeof(foo5) ok 15 - sizeof(foo6) ok 16 - sizeof(foo7) ok 17 - sizeof(foo8) ok t/04-nativecall/13-cpp-mangling.t ............................... 1..26 ok 1 - void mangling ok 2 - bool mangling ok 3 - char mangling ok 4 - short mangling ok 5 - int mangling ok 6 - long mangling ok 7 - long long mangling ok 8 - float mangling ok 9 - double mangling ok 10 - string mangling ok 11 - CArray mangling ok 12 - Pointer mangling ok 13 - bool* mangling ok 14 - char* mangling ok 15 - short* mangling ok 16 - int* mangling ok 17 - long* mangling ok 18 - long long* mangling ok 19 - float* mangling ok 20 - double* mangling ok 21 - uint mangling ok 22 - ushort mangling ok 23 - uchar mangling ok 24 - int64 mangling ok 25 - unsigned long long mangling ok 26 - uint64 mangling ok t/04-nativecall/13-union.t ...................................... 1..28 ok 1 - sizeof union is sizeof biggest member ok 2 - sizeof(MyStruct) ok 3 - getting long ok 4 - getting num ok 5 - getting int8 ok 6 - getting num32 ok 7 - getting long from C-created struct ok 8 - getting num from C-created struct ok 9 - getting int8 from C-created struct ok 10 - getting num32 from C-created struct ok 11 - long in union ok 12 - int in union ok 13 - short in union ok 14 - char in union ok 15 - sizeof(MyStruct2) ok 16 - getting long from C-created struct ok 17 - getting num from C-created struct ok 18 - getting int8 from C-created struct ok 19 - getting num32 from C-created struct ok 20 - long in union* ok 21 - int in union* ok 22 - short in union* ok 23 - char in union* ok 24 - sizeof(UnionOfStructs) ok 25 - member a of union is-a MyStruct ok 26 - member b of union is-a YourStruct ok 27 - a.byte was set to 42 by C ok 28 - b.byte must be the same ok t/04-nativecall/14-rw-attrs.t ................................... 1..16 ok 1 - got initialized (long) ok 2 - got initialized (double) ok 3 - got initialized (char) ok 4 - got initialized (float) ok 5 - set in C (long) ok 6 - set in C (double) ok 7 - set in C (char) ok 8 - set in C (float) ok 9 - set in Raku (long) ok 10 - set in Raku (double) ok 11 - set in Raku (char) ok 12 - set in Raku (float) ok 13 - C confirms (long) ok 14 - C confirms (double) ok 15 - C confirms (char) ok 16 - C confirms (float) ok t/04-nativecall/15-rw-args.t .................................... 1..24 ok 1 - Raku's rw variable was set by C (char) ok 2 - Raku's rw variable was passed and returned by C (char) ok 3 - Raku's rw variable was set by C (short) ok 4 - Raku's rw variable was passed and returned by C (short) ok 5 - Raku's rw variable was set by C (long) ok 6 - Raku's rw variable was passed and returned by C (long) ok 7 - Raku's rw variable was set by C (long long) ok 8 - Raku's rw variable was passed and returned by C (longlong) ok 9 - Raku's rw variable was set by C (float) ok 10 - Raku's rw variable was passed and returned by C (float) ok 11 - Raku's rw variable was set by C (double) ok 12 - Raku's rw variable was passed and returned by C (double) ok 13 - Raku's rw variable was set by C (unsigned char) ok 14 - Raku's rw variable was passed and returned by C (unsigned char) ok 15 - Raku's rw variable was set by C (unsigned short) ok 16 - Raku's rw variable was passed and returned by C (unsigned short) ok 17 - Raku's rw variable was set by C (unsigned long) ok 18 - Raku's rw variable was passed and returned by C (unsigned long) ok 19 - Raku's rw variable was set by C (unsigned long long) ok 20 - Raku's rw variable was passed and returned by C (unsigned long long) ok 21 - Raku's rw variable was set by C (size_t) ok 22 - Raku's rw variable was passed and returned by C (size_t) ok 23 - Can pass an instantiated pointer with rw-trait to C ok 24 - Raku's rw variable was set by C (pointer) ok t/04-nativecall/16-rt125408.t ................................... 1..1 ok 1 - stayed fixed ok t/04-nativecall/16-rt125729.t ................................... 1..1 ok 1 - symbol reexported by NativeCall used to cause trouble ok t/04-nativecall/17-libnames.t ................................... 1..7 ok 1 - foo is libfoo.so and should warn ok 2 - foo , 1 is libfoo.so.1 ok 3 - foo , v1.2.3 is libfoo.so.1.2.3 ok 4 - libfoo.so is libfoo.so ok 5 - ./foo is ./libfoo.so ok 6 - ./libfoo.so is ./libfoo.so ok 7 - /libfoo.so is /libfoo.so ok t/04-nativecall/18-routine-sig-sanity.t ......................... ok 1 - Taking a pointer is fine ok 2 - Taking a Pointer[int32] is fine # Subtest: Taking a Pointer[Int] is NOT fine 1..2 ok 1 - code dies ok 2 - right exception type (X::FailOnWarn) ok 3 - Taking a Pointer[Int] is NOT fine ok 4 - Taking a CStruct is fine ok 5 - Taking a CArray is fine ok 6 - Taking a Buf is fine # Subtest: Taking a CArray[int] is not fine 1..2 ok 1 - code dies ok 2 - right exception type (X::FailOnWarn) ok 7 - Taking a CArray[int] is not fine # Subtest: Taking a Raku class is NOT fine 1..2 ok 1 - code dies ok 2 - right exception type (X::FailOnWarn) ok 8 - Taking a Raku class is NOT fine ok 9 - Taking a int32 is fine # Subtest: Taking a Int is NOT fine 1..2 ok 1 - code dies ok 2 - right exception type (X::FailOnWarn) ok 10 - Taking a Int is NOT fine # Subtest: Taking a int is NOT fine 1..2 ok 1 - code dies ok 2 - right exception type (X::FailOnWarn) ok 11 - Taking a int is NOT fine ok 12 - Taking a num32 is fine # Subtest: Taking a Num is NOT fine 1..2 ok 1 - code dies ok 2 - right exception type (X::FailOnWarn) ok 13 - Taking a Num is NOT fine # Subtest: Taking a num is NOT fine 1..2 ok 1 - code dies ok 2 - right exception type (X::FailOnWarn) ok 14 - Taking a num is NOT fine ok 15 - Taking a Str is fine ok 16 - FIXME: Taking a str is buggy but should be fine? ok 17 - Returning a pointer is fine ok 18 - Returning a CStruct is fine ok 19 - Returning a CArray is fine ok 20 - Returning a int32 is fine # Subtest: Returning a Int is NOT fine 1..2 ok 1 - code dies ok 2 - right exception type (X::FailOnWarn) ok 21 - Returning a Int is NOT fine # Subtest: Returning a int is NOT fine 1..2 ok 1 - code dies ok 2 - right exception type (X::FailOnWarn) ok 22 - Returning a int is NOT fine ok 23 - Returning a num32 is fine # Subtest: Returning a Num is NOT fine 1..2 ok 1 - code dies ok 2 - right exception type (X::FailOnWarn) ok 24 - Returning a Num is NOT fine # Subtest: Returning a num is NOT fine 1..2 ok 1 - code dies ok 2 - right exception type (X::FailOnWarn) ok 25 - Returning a num is NOT fine ok 26 - Returning a bool is fine ok 27 - FIXME: Returning a Bool maybe be bugged ok 28 - Taking an encoded Str is fine ok 29 - Returning an encoded Str is fine ok 30 - Good trait declaration ok 31 - Embeded type ok 32 - Void function ok 33 - Method are silly ok 34 - Blob should work ok 35 - Return a type in its definition 1..35 ok t/04-nativecall/19-function-pointers.t .......................... 1..1 ok 1 - Pointer cast to Raku Sub ok t/04-nativecall/20-concurrent.t ................................. 1..3 ok 1 - Correct results when running native code across threads ok 2 - A sleeping native call does not block running/GC in another thread ok 3 - Can call native function while one in another thread is sleeping ok t/04-nativecall/21-callback-other-thread.t ...................... 1..9 ok 1 - Sanity check: Calling callback on thread that set it works ok 2 - Calling callback on another thread works (4) ok 3 - Calling callback on another thread works (6) ok 4 - Calling callback on another thread works (1) ok 5 - Calling callback on another thread works (2) ok 6 - Calling callback on another thread works (7) ok 7 - Calling callback on another thread works (5) ok 8 - Calling callback on another thread works (3) ok 9 - Calling callback on another thread works (0) ok t/04-nativecall/22-method.t ..................................... 1..2 ok 1 - native sub as method ok 2 - and got the result we expected ok t/04-nativecall/23-incomplete-types.t ........................... 1..6 # Subtest: did we throws-like Exception? 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches /inline.*before.*definition/ ok 1 - did we throws-like Exception? # Subtest: did we throws-like Exception? 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches /inline.*before.*definition/ ok 2 - did we throws-like Exception? # Subtest: did we throws-like Exception? 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches /inline.*before.*definition/ ok 3 - did we throws-like Exception? # Subtest: did we throws-like Exception? 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches /inline.*before.*definition/ ok 4 - did we throws-like Exception? # Subtest: did we throws-like Exception? 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches /inline.*before.*definition/ ok 5 - did we throws-like Exception? # Subtest: did we throws-like Exception? 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches /inline.*before.*definition/ ok 6 - did we throws-like Exception? ok t/04-nativecall/24-cpp_param_letter.t ........................... 1..76 ok 1 - The object is-a 'Str' ok 2 - test GNU Bool with :p, :r, :f ok 3 - The object is-a 'Str' ok 4 - test GNU int16 with :i, :s, :f ok 5 - The object is-a 'Str' ok 6 - test GNU int32 with :t, :c, :j ok 7 - The object is-a 'Str' ok 8 - test GNU int64 with :b, :s, :m ok 9 - The object is-a 'Str' ok 10 - test GNU int8 with :i, :s, :w ok 11 - The object is-a 'Str' ok 12 - test GNU NativeCall::Types::CArray[int] with :, :j, :l ok 13 - The object is-a 'Str' ok 14 - test GNU NativeCall::Types::long with :m, :n, :i ok 15 - The object is-a 'Str' ok 16 - test GNU NativeCall::Types::longlong with :j, :d, :l ok 17 - The object is-a 'Str' ok 18 - test GNU NativeCall::Types::Pointer[int] with :, :c, :v ok 19 - The object is-a 'Str' ok 20 - test GNU NativeCall::Types::ulong with :p, :x, :d ok 21 - The object is-a 'Str' ok 22 - test GNU NativeCall::Types::ulonglong with :y, :h, :n ok 23 - The object is-a 'Str' ok 24 - test GNU NativeCall::Types::void with :y, :j, :q ok 25 - The object is-a 'Str' ok 26 - test GNU num32 with :z, :n, :r ok 27 - The object is-a 'Str' ok 28 - test GNU num64 with :y, :f, :m ok 29 - The object is-a 'Str' ok 30 - test GNU Str with :, :t, :l ok 31 - The object is-a 'Str' ok 32 - test GNU uint16 with :l, :c, :s ok 33 - The object is-a 'Str' ok 34 - test GNU uint32 with :p, :k, :l ok 35 - The object is-a 'Str' ok 36 - test GNU uint64 with :y, :f, :r ok 37 - The object is-a 'Str' ok 38 - test GNU uint8 with :z, :h, :j ok 39 - The object is-a 'Str' ok 40 - test MSVC Bool with :b, :f, :g ok 41 - The object is-a 'Str' ok 42 - test MSVC int16 with :h, :l, :q ok 43 - The object is-a 'Str' ok 44 - test MSVC int32 with :l, :u, :e ok 45 - The object is-a 'Str' ok 46 - test MSVC int64 with :e, :b, :f ok 47 - The object is-a 'Str' ok 48 - test MSVC int8 with :p, :l, :b ok 49 - The object is-a 'Str' ok 50 - test MSVC NativeCall::Types::CArray[int] with :e, :z, :s ok 51 - The object is-a 'Str' ok 52 - test MSVC NativeCall::Types::long with :e, :l, :q ok 53 - The object is-a 'Str' ok 54 - test MSVC NativeCall::Types::longlong with :e, :v, :y ok 55 - The object is-a 'Str' ok 56 - test MSVC NativeCall::Types::Pointer[int] with :r, :v, :u ok 57 - The object is-a 'Str' ok 58 - test MSVC NativeCall::Types::ulong with :t, :e, :d ok 59 - The object is-a 'Str' ok 60 - test MSVC NativeCall::Types::ulonglong with :a, :x, :t ok 61 - The object is-a 'Str' ok 62 - test MSVC NativeCall::Types::void with :v, :s, :c ok 63 - The object is-a 'Str' ok 64 - test MSVC num32 with :d, :x, :q ok 65 - The object is-a 'Str' ok 66 - test MSVC num64 with :s, :z, :f ok 67 - The object is-a 'Str' ok 68 - test MSVC Str with :b, :p, :n ok 69 - The object is-a 'Str' ok 70 - test MSVC uint16 with :e, :r, :u ok 71 - The object is-a 'Str' ok 72 - test MSVC uint32 with :y, :d, :m ok 73 - The object is-a 'Str' ok 74 - test MSVC uint64 with :o, :f, :x ok 75 - The object is-a 'Str' ok 76 - test MSVC uint8 with :e, :t, :u ok t/05-messages/01-errors.t ....................................... 1..51 # Subtest: point out matching `is rw` candidates when passing non-rw 1..3 ok 1 - '1++' died ok 2 - right exception type (X::Multi::NoMatch) ok 3 - .message matches /'but require mutable arguments'/ ok 1 - point out matching `is rw` candidates when passing non-rw # Subtest: curly quotes are not called smart quotes 1..6 # Subtest: ‘ (U+2018) quote is called curly, not smart 1..3 ok 1 - '‘' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|66615728) ... } ok 1 - ‘ (U+2018) quote is called curly, not smart # Subtest: ‚ (U+201A) quote is called curly, not smart 1..3 ok 1 - '‚' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|66616288) ... } ok 2 - ‚ (U+201A) quote is called curly, not smart # Subtest: ’ (U+2019) quote is called curly, not smart 1..3 ok 1 - '’' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|66616408) ... } ok 3 - ’ (U+2019) quote is called curly, not smart # Subtest: “ (U+201C) quote is called curly, not smart 1..3 ok 1 - '“' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|60054704) ... } ok 4 - “ (U+201C) quote is called curly, not smart # Subtest: „ (U+201E) quote is called curly, not smart 1..3 ok 1 - '„' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|60054944) ... } ok 5 - „ (U+201E) quote is called curly, not smart # Subtest: ” (U+201D) quote is called curly, not smart 1..3 ok 1 - '”' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|60055064) ... } ok 6 - ” (U+201D) quote is called curly, not smart ok 2 - curly quotes are not called smart quotes # Subtest: typing "return" instead of "returns" gives a fixing hint 1..3 ok 1 - 'sub infix:<$>() return Nil {}' died ok 2 - right exception type (X::AdHoc) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|60057544) ... } ok 3 - typing "return" instead of "returns" gives a fixing hint # Subtest: .Rat.nude on non-numeric string does not reference guts in error 1..3 ok 1 - ''4x'.Rat.nude' died ok 2 - right exception type (X::Str::Numeric) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|68490864) ... } ok 4 - .Rat.nude on non-numeric string does not reference guts in error # Subtest: stub code does not reference guts when executed 1..3 ok 1 - '…' died ok 2 - right exception type (X::StubCode) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|70052432) ... } ok 5 - stub code does not reference guts when executed # Subtest: chr with large codepoints throws useful error 1..6 # Subtest: "chr 2⁶³-1" 1..3 ok 1 - 'chr 2⁶³-1' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|68805304) ... } ok 1 - "chr 2⁶³-1" # Subtest: "(2⁶³-1).chr" 1..3 ok 1 - '(2⁶³-1).chr' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|68806824) ... } ok 2 - "(2⁶³-1).chr" # Subtest: "chr 2⁶³" 1..3 ok 1 - 'chr 2⁶³' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|68808304) ... } ok 3 - "chr 2⁶³" # Subtest: "2⁶³.chr" 1..3 ok 1 - '2⁶³.chr' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|84667152) ... } ok 4 - "2⁶³.chr" # Subtest: "chr 2¹⁰⁰" 1..3 ok 1 - 'chr 2¹⁰⁰' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|84668632) ... } ok 5 - "chr 2¹⁰⁰" # Subtest: "(2¹⁰⁰).chr" 1..3 ok 1 - '(2¹⁰⁰).chr' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|84670152) ... } ok 6 - "(2¹⁰⁰).chr" ok 6 - chr with large codepoints throws useful error # Subtest: <-> does not prevent an error suggesting to use `do for` 1..3 ok 1 - 'my @a = for 1..3 <-> { $_ }' died ok 2 - right exception type (Exception) ok 3 - .message matches /«'do for'»/ ok 7 - <-> does not prevent an error suggesting to use `do for` # Subtest: making an "is rw" parameter optional dies with adequate error message and mentions the parameter name 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot use 'is rw' on optional parameter '$bar'. ok 8 - making an "is rw" parameter optional dies with adequate error message and mentions the parameter name # Subtest: making an "is rw" parameter optional dies with adequate error message and mentions the parameter name 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot use 'is rw' on optional parameter '$bar'. ok 9 - making an "is rw" parameter optional dies with adequate error message and mentions the parameter name # Subtest: a space in a literal param to a MAIN() multi makes the suggestion quoted 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 10 - a space in a literal param to a MAIN() multi makes the suggestion quoted # Subtest: a double qoute in a literal param to a MAIN() multi makes the suggestion quoted 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 11 - a double qoute in a literal param to a MAIN() multi makes the suggestion quoted # Subtest: a single qoute in a literal param to a MAIN() multi makes the suggestion quoted 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 12 - a single qoute in a literal param to a MAIN() multi makes the suggestion quoted # Subtest: The message when trying to pun a role with required methods should have the names of the child, parent, required methods, and suggest "does" 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches all(/<<'C'>>/, /<<'R'>>/, /<<'a,' \s* 'c'>>/, /<<'does'>>/) ok 13 - The message when trying to pun a role with required methods should have the names of the child, parent, required methods, and suggest "does" # Subtest: types and names shown in the exception message are correct 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches all(/Parameter/, /\W '$a'>>/, /<<'f'>>/, /<>/, /<>/, /<<'Mu'>>/, /<<'Int'>>/, /\W '.new'>>/) ok 14 - types and names shown in the exception message are correct # Subtest: types shown in the exception message are correct 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches all(/'Parameter'/, /\W '$a'>>/, /<<'f'>>/, /<>/, /<>/, /<<'Mu'>>/, /<<'Int'>>/, /<<'multi'>>/) ok 15 - types shown in the exception message are correct # Subtest: did we throws-like Exception? 1..3 ok 1 - 'X::NYI.fail' died ok 2 - right exception type (Exception) ok 3 - .message matches all(/'Invocant'/, /<<$meth>>/, /<<'must be an object instance'>>/, /<<'not a type object'>>/, /<<'Exception'>>/, /<<'X::NYI'>>/, /\W '.new'>>/) ok 16 - did we throws-like Exception? # Subtest: did we throws-like Exception? 1..3 ok 1 - 'X::NYI.die' died ok 2 - right exception type (Exception) ok 3 - .message matches all(/'Invocant'/, /<<$meth>>/, /<<'must be an object instance'>>/, /<<'not a type object'>>/, /<<'Exception'>>/, /<<'X::NYI'>>/, /\W '.new'>>/) ok 17 - did we throws-like Exception? # Subtest: did we throws-like Exception? 1..3 ok 1 - 'X::NYI.throw' died ok 2 - right exception type (Exception) ok 3 - .message matches all(/'Invocant'/, /<<$meth>>/, /<<'must be an object instance'>>/, /<<'not a type object'>>/, /<<'Exception'>>/, /<<'X::NYI'>>/, /\W '.new'>>/) ok 18 - did we throws-like Exception? # Subtest: did we throws-like Exception? 1..3 ok 1 - 'X::NYI.rethrow' died ok 2 - right exception type (Exception) ok 3 - .message matches all(/'Invocant'/, /<<$meth>>/, /<<'must be an object instance'>>/, /<<'not a type object'>>/, /<<'Exception'>>/, /<<'X::NYI'>>/, /\W '.new'>>/) ok 19 - did we throws-like Exception? # Subtest: did we throws-like Exception? 1..3 ok 1 - 'X::NYI.resume' died ok 2 - right exception type (Exception) ok 3 - .message matches all(/'Invocant'/, /<<$meth>>/, /<<'must be an object instance'>>/, /<<'not a type object'>>/, /<<'Exception'>>/, /<<'X::NYI'>>/, /\W '.new'>>/) ok 20 - did we throws-like Exception? # Subtest: sinking to a code object in a feed suggests calling the routine 1..3 ok 1 - '3 ==> &sin ==> &say' died ok 2 - right exception type (Exception) ok 3 - .message matches /<<'sin()'\W/ ok 21 - sinking to a code object in a feed suggests calling the routine # Subtest: trying to instantiate a non-class gives the name in the error 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches /'cannot create' .+ «RT122232»/ ok 22 - trying to instantiate a non-class gives the name in the error # Subtest: trying to instantiate a non-class gives the name in the error 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches /'cannot create' .+ «RT122232»/ ok 23 - trying to instantiate a non-class gives the name in the error # Subtest: non-ASCII digits > 7 in leading-zero-octal warning 1..2 ok 1 - STDOUT is right ok 2 - STDERR mentions the end-result is not valid octal ok 24 - non-ASCII digits > 7 in leading-zero-octal warning # Subtest: wrong arity in a signature has correct values in error message 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches all(/<<'Too many'>>/, /<<'expected 1'>>/, /<<'got 2'>>/) ok 25 - wrong arity in a signature has correct values in error message # Subtest: wrong arity in a signature has correct values in error message 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches all(/<<'Too few'>>/, /<<'expected 2'>>/, /<<'got 1'>>/) ok 26 - wrong arity in a signature has correct values in error message # Subtest: wrong arity in a sub-signature has correct values in error message 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches all(/<<'Too many'>>/, /<<'expected 1'>>/, /<<'got 2'>>/, /<<'sub-signature'>>/) ok 27 - wrong arity in a sub-signature has correct values in error message # Subtest: wrong arity in a sub-signature with a named parameter has correct values in error message 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches all(/<<'Too few'>>/, /<<'expected 2'>>/, /<<'got 1'>>/, /<<'sub-signature'>>/, /<<'parameter @bar'>>/) ok 28 - wrong arity in a sub-signature with a named parameter has correct values in error message # Subtest: wrong arity in a signature mentions the name of the sub 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches /<<'foo'>>/ ok 29 - wrong arity in a signature mentions the name of the sub # Subtest: wrong arity in a signature mentions the name of the method 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches /<<'foo'>>/ ok 30 - wrong arity in a signature mentions the name of the method # Subtest: .length on non-List Cool 1..3 ok 1 - '42.length ' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|87305272) ... } ok 31 - .length on non-List Cool # Subtest: .length on List 1..3 ok 1 - '[].length ' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|86970792) ... } ok 32 - .length on List # Subtest: .length on non-Cool 1..3 ok 1 - 'bag(1).length ' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|81808592) ... } ok 33 - .length on non-Cool # Subtest: &length 1..3 ok 1 - 'length 42 ' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|82114880) ... } ok 34 - &length # Subtest: error points out only only proto is defined 1..3 ok 1 - code dies ok 2 - right exception type (X::Multi::NoMatch) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|82119520) ... } ok 35 - error points out only only proto is defined # Subtest: error points out only only proto is defined (Blob.split) 1..3 ok 1 - code dies ok 2 - right exception type (X::Multi::NoMatch) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|82119880) ... } ok 36 - error points out only only proto is defined (Blob.split) # Subtest: error points out only only proto is defined (Blob.splice) 1..3 ok 1 - code dies ok 2 - right exception type (X::Multi::NoMatch) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|82120120) ... } ok 37 - error points out only only proto is defined (Blob.splice) # Subtest: a private method of the same name as the public missing method is suggested 1..3 ok 1 - ' class RT123078_1 { method foo { self.bar }; method !bar { }; method baz { } }; RT123078_1.new.foo ' died ok 2 - right exception type (X::Method::NotFound) ok 3 - .message matches all(/<<"No such method 'bar'" \W/, /<<'RT123078_1'>>/, /\W '!bar'>>/, /<<'baz'>>/) ok 38 - a private method of the same name as the public missing method is suggested # Subtest: a public method of the same name as the missing private method is suggested 1..3 ok 1 - ' class RT123078_2 { method foo { self!bar }; method bar { }; method baz { } } ' died ok 2 - right exception type (X::Method::NotFound) ok 3 - .message matches all(/<<"No such private method '!bar'" \W/, /<<'RT123078_2'>>/, /<<'bar'>>/, /<<'baz'>>/) ok 39 - a public method of the same name as the missing private method is suggested # Subtest: a private method of the same name as the public missing method is not suggested for out-of-class call 1..4 ok 1 - ' class RT123078_3 { method !bar { }; method baz { } }; RT123078_3.new.bar ' died ok 2 - right exception type (X::Method::NotFound) ok 3 - .suggestions matches (Bag VAR baz) ok 4 - .message matches all(/<<"No such method 'bar'" \W/, /<<'RT123078_3'>>/, /\s+ Did \s+ you \s+ mean/) ok 40 - a private method of the same name as the public missing method is not suggested for out-of-class call # Subtest: potentially common misspelling gives the right suggestion 1..3 ok 1 - ' .uniq ' died ok 2 - right exception type (X::Method::NotFound) ok 3 - .message matches all(/<<"No such method 'uniq'" \W/, /<<'unique'>>/) ok 41 - potentially common misspelling gives the right suggestion # Subtest: longer method names are suggested also 1..3 ok 1 - ' ‘foo’.starts-wizh(‘f’) ' died ok 2 - right exception type (X::Method::NotFound) ok 3 - .message matches all(/<<"No such method 'starts-wizh'" \W/, /<<'starts-with'>>/) ok 42 - longer method names are suggested also # Subtest: Ancestor submethods should not be typo-suggested 1..3 ok 1 - ' class GH1758_1 { submethod x { }; }; class B is GH1758_1 {}; B.new._ ' died ok 2 - right exception type (X::Method::NotFound) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|90959304) ... } ok 43 - Ancestor submethods should not be typo-suggested # Subtest: Submethods at the same inheritance level should be typo-suggested 1..3 ok 1 - ' class GH1758_2 { submethod x { };}; GH1758_2.new._ ' died ok 2 - right exception type (X::Method::NotFound) ok 3 - .message matches /"Did you mean 'x'"/ ok 44 - Submethods at the same inheritance level should be typo-suggested # Subtest: `IO::Socket::INET.new: :listen` fails with useful error 1..3 ok 1 - got a Failure ok 2 - Failure is unhandled ok 3 - error mentions port ok 45 - `IO::Socket::INET.new: :listen` fails with useful error # Subtest: `use v5` in code does not try to load non-existent modules 1..2 ok 1 - 'use v5' died ok 2 - right exception type (X::Language::Unsupported) ok 46 - `use v5` in code does not try to load non-existent modules # Subtest: Duration.new with bad args does not reference guts 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 47 - Duration.new with bad args does not reference guts # Subtest: sane error when missing variables with my and where 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 48 - sane error when missing variables with my and where # Subtest: sane NYI error for num32 Blob 1..3 ok 1 - 'Blob[num32].new: 2e0' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|91341224) ... } ok 49 - sane NYI error for num32 Blob # Subtest: callframe.my throws sane NYI error message 1..2 ok 1 - 'callframe.callframe(1).my.raku' died ok 2 - right exception type (X::NYI) ok 50 - callframe.my throws sane NYI error message # Subtest: .new on native types works (deprecated; will die) 1..18 # Subtest: int no args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92406600) ... } ok 1 - int no args # Subtest: int with args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92406720) ... } ok 2 - int with args # Subtest: int8 no args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92406760) ... } ok 3 - int8 no args # Subtest: int8 with args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92406800) ... } ok 4 - int8 with args # Subtest: int16 no args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92406840) ... } ok 5 - int16 no args # Subtest: int16 with args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92406880) ... } ok 6 - int16 with args # Subtest: int32 no args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92406920) ... } ok 7 - int32 no args # Subtest: int32 with args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92406960) ... } ok 8 - int32 with args # Subtest: int64 no args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92407000) ... } ok 9 - int64 no args # Subtest: int64 with args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92407040) ... } ok 10 - int64 with args # Subtest: num no args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92407080) ... } ok 11 - num no args # Subtest: num with args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92407120) ... } ok 12 - num with args # Subtest: num32 no args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92407160) ... } ok 13 - num32 no args # Subtest: num32 with args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92407200) ... } ok 14 - num32 with args # Subtest: num64 no args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92407240) ... } ok 15 - num64 no args # Subtest: num64 with args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92407280) ... } ok 16 - num64 with args # Subtest: str no args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92407320) ... } ok 17 - str no args # Subtest: str with args 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|92407360) ... } ok 18 - str with args ok 51 - .new on native types works (deprecated; will die) ok t/05-messages/02-errors.t ....................................... 1..47 # Subtest: :2(1) suggests using 1.base(2) 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - :2(1) suggests using 1.base(2) # Subtest: anonymous subs get '' in arity error messages 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches / '' / ok 2 - anonymous subs get '' in arity error messages # Subtest: did we throws-like X::TypeCheck::Binding::Parameter? 1..3 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Binding::Parameter) ok 3 - .message matches /'type check failed'/ ok 3 - did we throws-like X::TypeCheck::Binding::Parameter? ok 4 - auto-generated methods present in .^methods # Subtest: Failure.new(Exception.new) does not segfault 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 5 - Failure.new(Exception.new) does not segfault # Subtest: Trying to assign to immutable List element gives useful error 1..3 ok 1 - code dies ok 2 - right exception type (X::Assignment::RO) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|18375880) ... } ok 6 - Trying to assign to immutable List element gives useful error # Subtest: death in whenevered Supply referenced original location of throw 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 7 - death in whenevered Supply referenced original location of throw # Subtest: using wrong sigil on var suggests correct variable name 1..3 # Subtest: @array for $array 1..3 ok 1 - 'my @foo; $foo[1] = 42' died ok 2 - right exception type (X::Undeclared) ok 3 - .message matches /'Did you mean' .+ '@foo'/ ok 1 - @array for $array # Subtest: %hash for $hash 1..3 ok 1 - 'my %foo; $foo<2> = 42' died ok 2 - right exception type (X::Undeclared) ok 3 - .message matches /'Did you mean' .+ '%foo'/ ok 2 - %hash for $hash # Subtest: @foo and %foo for $foo, when both are declared 1..3 ok 1 - 'my @foo; my %foo; $foo<2> = 42' died ok 2 - right exception type (X::Undeclared) ok 3 - .message matches /'Did you mean' .+ [ '@foo' .+ '%foo' | '%foo' .+ '@foo' ]/ ok 3 - @foo and %foo for $foo, when both are declared ok 8 - using wrong sigil on var suggests correct variable name # Subtest: RO assignment indicates value of the thing being assigned into 1..3 ok 1 - 'my $x; $x = 50; 42 = $x' died ok 2 - right exception type (X::Assignment::RO) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|71327936) ... } ok 9 - RO assignment indicates value of the thing being assigned into # Subtest: declaring enum with uninitialized hash warns about it 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 10 - declaring enum with uninitialized hash warns about it # Subtest: error with `=end FOO` suggests Pod mistake and offers `=begin FOO` 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 11 - error with `=end FOO` suggests Pod mistake and offers `=begin FOO` # Subtest: error for `=for` suggests it might be a Pod mistake 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 12 - error for `=for` suggests it might be a Pod mistake # Subtest: `say 1 if;` does not repeat error 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 13 - `say 1 if;` does not repeat error # Subtest: `say 1 unless;` does not repeat error 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 14 - `say 1 unless;` does not repeat error # Subtest: C3 linearization mentions line number 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 15 - C3 linearization mentions line number # Subtest: no guts spillage with `(:::[])` 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 16 - no guts spillage with `(:::[])` # Subtest: cmp-ok with Str metaop comparator suggests a working alternative` 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 17 - cmp-ok with Str metaop comparator suggests a working alternative` # Subtest: an ambiguous call includes the arguments in the error message 1..3 ok 1 - code dies ok 2 - right exception type (X::Multi::Ambiguous) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|2922367440) ... } ok 18 - an ambiguous call includes the arguments in the error message # Subtest: sprintf %d directive with one directive and no corresponding argument throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Str::Sprintf::Directives::Count) ok 3 - .args-have matches 0 ok 4 - .args-used matches 1 ok 19 - sprintf %d directive with one directive and no corresponding argument throws # Subtest: error message when binding to native int array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot bind to a native int array ok 20 - error message when binding to native int array # Subtest: error message when :deleting from native int array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot delete from a native int array ok 21 - error message when :deleting from native int array # Subtest: error message when binding to native int array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot bind to a native int array ok 22 - error message when binding to native int array # Subtest: error message when :deleting from shaped native int array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot delete from a native int array ok 23 - error message when :deleting from shaped native int array # Subtest: error message when binding to native num array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot bind to a native num array ok 24 - error message when binding to native num array # Subtest: error message when :deleting from native num array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot delete from a native num array ok 25 - error message when :deleting from native num array # Subtest: error message when binding to native num array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot bind to a native num array ok 26 - error message when binding to native num array # Subtest: error message when :deleting from shaped native num array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot delete from a native num array ok 27 - error message when :deleting from shaped native num array # Subtest: error message when binding to native str array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot bind to a native str array ok 28 - error message when binding to native str array # Subtest: error message when :deleting from native str array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot delete from a native str array ok 29 - error message when :deleting from native str array # Subtest: error message when binding to native str array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot bind to a native str array ok 30 - error message when binding to native str array # Subtest: error message when :deleting from shaped native str array 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches Cannot delete from a native str array ok 31 - error message when :deleting from shaped native str array # Subtest: USAGE with subsets/where and variables with quotes 1..3 # Subtest: named params 1..3 # Subtest: mentions subset name 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - mentions subset name # Subtest: Type + where clauses shown sanely 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - Type + where clauses shown sanely # Subtest: subset + where clauses shown sanely 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 3 - subset + where clauses shown sanely ok 1 - named params # Subtest: anon positional params 1..3 # Subtest: mentions subset name 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - mentions subset name # Subtest: where clauses shown sanely 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - where clauses shown sanely # Subtest: subset + where clauses shown sanely 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 3 - subset + where clauses shown sanely ok 2 - anon positional params # Subtest: variable name does not get special quote treatment 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 3 - variable name does not get special quote treatment ok 32 - USAGE with subsets/where and variables with quotes # Subtest: :bundling and negation/explicit arguments 1..6 # Subtest: cannot combine bundling with explicit arguments 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - cannot combine bundling with explicit arguments # Subtest: cannot combine bundling with explicit arguments, even the empty string 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - cannot combine bundling with explicit arguments, even the empty string # Subtest: cannot combine bundling with explicit arguments, even a nil argument 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 3 - cannot combine bundling with explicit arguments, even a nil argument # Subtest: can pass explicit argument to a single option, even with bundling enabled 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 4 - can pass explicit argument to a single option, even with bundling enabled # Subtest: cannot combine bundling with negation 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 5 - cannot combine bundling with negation # Subtest: can negate single option, even with bundling enabled 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 6 - can negate single option, even with bundling enabled ok 33 - :bundling and negation/explicit arguments # Subtest: did we throws-like X::OutOfRange? 1..3 ok 1 - code dies ok 2 - right exception type (X::OutOfRange) ok 3 - .message matches /'Start argument to substr' .+ 'should be in 0..3' .+ '*-5'/ ok 34 - did we throws-like X::OutOfRange? # Subtest: did we throws-like X::OutOfRange? 1..3 ok 1 - code dies ok 2 - right exception type (X::OutOfRange) ok 3 - .message matches /'should be in 0..0' .+ '*-1000'/ ok 35 - did we throws-like X::OutOfRange? # Subtest: .tap block with incorrect signature must fail 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 36 - .tap block with incorrect signature must fail # Subtest: .tap block with incorrect signature must fail 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 37 - .tap block with incorrect signature must fail # Subtest: X::Multi::NoMatch does not dump entire contents of variables 1..3 ok 1 - ' # multi z (@a, Int, :$x where 1) {} # multi z (@a, Str, :$x where 1) {} # my @a = 1..200; z(@a, <1>, :x[1..200]) # ' died ok 2 - right exception type (X::Multi::NoMatch) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|2884613192) ... } ok 38 - X::Multi::NoMatch does not dump entire contents of variables # Subtest: X::Assignment::RO does not dump entire contents of variables 1..3 ok 1 - 'Set.new(1..300)<42> = 42' died ok 2 - right exception type (X::Assignment::RO) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|77294520) ... } ok 39 - X::Assignment::RO does not dump entire contents of variables # Subtest: cannot use Int type object as an operand 1..14 # Subtest: A Rational instance cannot be added by an Int type object 1..2 ok 1 - '(1/1)+Int' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 1 - A Rational instance cannot be added by an Int type object # Subtest: An Int type object cannot be added by a Rational instance 1..2 ok 1 - 'Int+(1/1)' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 2 - An Int type object cannot be added by a Rational instance # Subtest: A Rational instance cannot be subtracted by an Int type object 1..2 ok 1 - '(1/1)-Int' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 3 - A Rational instance cannot be subtracted by an Int type object # Subtest: An Int type object cannot be subtracted by a Rational instance 1..2 ok 1 - 'Int-(1/1)' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 4 - An Int type object cannot be subtracted by a Rational instance # Subtest: A Rational instance cannot be multiplied by an Int type object 1..2 ok 1 - '(1/1)*Int' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 5 - A Rational instance cannot be multiplied by an Int type object # Subtest: An Int type object cannot be multiplied by a Rational instance 1..2 ok 1 - 'Int*(1/1)' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 6 - An Int type object cannot be multiplied by a Rational instance # Subtest: A Rational instance cannot be divided by an Int type object 1..2 ok 1 - '(1/1)/Int' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 7 - A Rational instance cannot be divided by an Int type object # Subtest: An Int type object cannot be divided by a Rational instance 1..2 ok 1 - 'Int/(1/1)' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 8 - An Int type object cannot be divided by a Rational instance # Subtest: An Int type object cannot be divided by an Int type object 1..2 ok 1 - 'Int/Int' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 9 - An Int type object cannot be divided by an Int type object # Subtest: An Int type object cannot be divided by an Int instance 1..2 ok 1 - 'Int/1' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 10 - An Int type object cannot be divided by an Int instance # Subtest: An Int instance cannot be divided by an Int type object 1..2 ok 1 - '1/Int' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 11 - An Int instance cannot be divided by an Int type object # Subtest: A Rational instance modulo an Int type object is incalculable 1..2 ok 1 - '(1/1)%Int' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 12 - A Rational instance modulo an Int type object is incalculable # Subtest: An Int type object modulo a Rational instance is incalculable 1..2 ok 1 - 'Int%(1/1)' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 13 - An Int type object modulo a Rational instance is incalculable # Subtest: A Rational instance cannot be powered by an Int type object 1..2 ok 1 - '(1/1)**Int' died ok 2 - right exception type (X::Numeric::Uninitialized) ok 14 - A Rational instance cannot be powered by an Int type object ok 40 - cannot use Int type object as an operand # Subtest: unit-scoped sub def mentions potential unwanted semicolon 1..3 ok 1 - 'sub meows;' died ok 2 - right exception type (X::UnitScope::Invalid) ok 3 - .message matches / # "placed a semicolon after routine's definition" # / ok 41 - unit-scoped sub def mentions potential unwanted semicolon # Subtest: Trying to assign to immutable Range element gives useful error 1..3 ok 1 - code dies ok 2 - right exception type (X::Assignment::RO) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|78835104) ... } ok 42 - Trying to assign to immutable Range element gives useful error # Subtest: optimizer flag gets propagated to EVAL 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 43 - optimizer flag gets propagated to EVAL # Subtest: suggests to use "use v6;" or "use v6.c;" when "use 6.0" is called 1..3 ok 1 - 'use 6.0;' died ok 2 - right exception type (X::Undeclared::Symbols) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|83842496) ... } ok 44 - suggests to use "use v6;" or "use v6.c;" when "use 6.0" is called # Subtest: suggests to use "use v6;" or "use v6.c;" when "need 6.0" is called 1..3 ok 1 - 'need 6.0;' died ok 2 - right exception type (X::Undeclared::Symbols) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|82620512) ... } ok 45 - suggests to use "use v6;" or "use v6.c;" when "need 6.0" is called # Subtest: suggests to use "use v6;" or "use v6.c;" when "need v6.0" is called 1..3 ok 1 - 'need v6.0;' died ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|82621272) ... } ok 46 - suggests to use "use v6;" or "use v6.c;" when "need v6.0" is called # Subtest: detached non-alpha method says what the problem is 1..3 ok 1 - '^42 .^methods.say' died ok 2 - right exception type (X::Syntax::Malformed) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|82622112) ... } ok 47 - detached non-alpha method says what the problem is ok t/05-messages/03-errors.t ....................................... 1..26 # Subtest: .map does not explode in optimizer 1..3 # Subtest: Hash 1..2 ok 1 - '^4 .map: {}' died ok 2 - right exception type (X::Cannot::Map) ok 1 - Hash # Subtest: Int 1..2 ok 1 - '^4 .map: 42' died ok 2 - right exception type (X::Cannot::Map) ok 2 - Int ok 3 - subroutine ok 1 - .map does not explode in optimizer # Subtest: nodemap mentions right action when throwing on lazies 1..3 ok 1 - '(lazy ).nodemap: {;}' died ok 2 - right exception type (X::Cannot::Lazy) ok 3 - .action matches nodemap ok 2 - nodemap mentions right action when throwing on lazies # Subtest: using substr instead of subst 1..3 ok 1 - ''x'.substr: /x/, 'x'' died ok 2 - right exception type (Exception) ok 3 - .message matches /「did you mean 'subst'」/ ok 3 - using substr instead of subst # Subtest: errors from sprintf include location of error 1..3 ok 1 - 'sprintf "%d", class Foo {}.new' died ok 2 - right exception type (X::Str::Sprintf::Directives::BadType) ok 3 - .gist matches /«line\s+\d+$$/ ok 4 - errors from sprintf include location of error # Subtest: subsets get named in typecheck errors 1..4 # Subtest: type only, with wrong type given 1..3 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Binding::Parameter) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|90700448) ... } ok 1 - type only, with wrong type given # Subtest: type + where, with wrong type given 1..3 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Binding::Parameter) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|90700688) ... } ok 2 - type + where, with wrong type given # Subtest: type only, with failing constraint 1..3 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Binding::Parameter) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|90701448) ... } ok 3 - type only, with failing constraint # Subtest: type + where, with failing constraint 1..3 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Binding::Parameter) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|90701608) ... } ok 4 - type + where, with failing constraint ok 5 - subsets get named in typecheck errors # Subtest: like/unlike failures give useful diagnostics 1..2 # Subtest: `like` says it wanted a match, not just "expected" 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - `like` says it wanted a match, not just "expected" # Subtest: `unlike` says it wanted no match, not just "expected" 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - `unlike` says it wanted no match, not just "expected" ok 6 - like/unlike failures give useful diagnostics # Subtest: trying to bind Proc::Async to unopened handle gives useful error 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|94083896) ... } ok 7 - trying to bind Proc::Async to unopened handle gives useful error # Subtest: unclosed hash quote index operator <> message 1..2 # Subtest: good error message for unclosed <> hash operator 1..3 ok 1 - ' # # say $< # # ' died ok 2 - right exception type (X::Comp::AdHoc) ok 3 - .gist matches all(/:i:s<\'/, /:s< hash operator # Subtest: better and shorter error message for unclosed <> hash operator 1..3 ok 1 - 'say $<' died ok 2 - right exception type (X::Comp::AdHoc) not ok 3 - .gist matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|94091136) ... } # TODO remove "expecting any of:" # Failed test '.gist matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|94091136) ... }' # at SETTING::src/core.c/Rakudo/Iterator.rakumod line 5725 # Expected: -> ;; $_? is raw = OUTER::<$_> { #`(Block|94091136) ... } # Got: ===SORRY!=== Error while compiling /build/reproducible-path/rakudo-2024.09/EVAL_6 # Unable to parse quote-words subscript; couldn't find '>' (corresponding '<' was at line 1) # at /build/reproducible-path/rakudo-2024.09/EVAL_6:1 # ------> say $<⏏ # expecting any of: # argument list # term not ok 2 - better and shorter error message for unclosed <> hash operator # TODO remove "expecting any of:" # Failed test 'better and shorter error message for unclosed <> hash operator' # at t/05-messages/03-errors.t line 80 ok 8 - unclosed hash quote index operator <> message # Subtest: Don't report "missing semicolon" when semicolon present with complicated punctuation. 1..3 ok 1 - 'Int:erator:$;' died ok 2 - right exception type (X::InvalidTypeSmiley) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|91689344) ... } ok 9 - Don't report "missing semicolon" when semicolon present with complicated punctuation. # Subtest: non-found module in core namespace is not claimed to be built-in 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 10 - non-found module in core namespace is not claimed to be built-in # Subtest: X::TypeCheck does not prematurely chop off the .raku 1..3 ok 1 - ' # my class Supercalifragilisticexpialidocious {}; # (my $x := my class {}.new).^set_name: ; # -> Supercalifragilisticexpialidocious {}($x) # ' died ok 2 - right exception type (X::TypeCheck) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|91695224) ... } ok 11 - X::TypeCheck does not prematurely chop off the .raku # Subtest: .polymod with zero divisor does not reference guts in error 1..4 # Subtest: Int 1..3 ok 1 - code dies ok 2 - right exception type (X::Numeric::DivideByZero) ok 3 - .gist matches /^ [ . ]+ $/ ok 1 - Int # Subtest: Real 1..3 ok 1 - code dies ok 2 - right exception type (X::Numeric::DivideByZero) ok 3 - .gist matches /^ [ . ]+ $/ ok 2 - Real # Subtest: Int (lazy) 1..3 ok 1 - code dies ok 2 - right exception type (X::Numeric::DivideByZero) ok 3 - .gist matches /^ [ . ]+ $/ ok 3 - Int (lazy) # Subtest: Real (lazy) 1..3 ok 1 - code dies ok 2 - right exception type (X::Numeric::DivideByZero) ok 3 - .gist matches /^ [ . ]+ $/ ok 4 - Real (lazy) ok 12 - .polymod with zero divisor does not reference guts in error # Subtest: ++.++ construct does not throw LTA errors 1..2 ok 1 - '++.++' died ok 2 - right exception type (X::Multi::NoMatch) ok 13 - ++.++ construct does not throw LTA errors # Subtest: lack of whitespace in while (0){} suggests misparse as hash subscript 1..3 ok 1 - 'while (0){}' died ok 2 - right exception type (X::Syntax::Missing) ok 3 - .message matches /'whitespace' .* 'before curlies' .* 'hash subscript'/ ok 14 - lack of whitespace in while (0){} suggests misparse as hash subscript # Subtest: runtime time errors do not contain ==SORRY== 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 15 - runtime time errors do not contain ==SORRY== # Subtest: `quantifier with %` error includes the token it appears in 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 16 - `quantifier with %` error includes the token it appears in # Subtest: using two `returns` traits does not cry about unhandled CONTROl exceptions 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 17 - using two `returns` traits does not cry about unhandled CONTROl exceptions # Subtest: .classify() on Any throws 1..2 ok 1 - code dies ok 2 - right exception type (Exception) ok 18 - .classify() on Any throws # Subtest: .categorize() on Any throws 1..2 ok 1 - code dies ok 2 - right exception type (Exception) ok 19 - .categorize() on Any throws # Subtest: numeric backslash errors do not get accompanied by confusing others 1..3 # Subtest: regex 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - regex # Subtest: double quotes 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - double quotes # Subtest: :qq:cc quoter 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 3 - :qq:cc quoter ok 20 - numeric backslash errors do not get accompanied by confusing others # Subtest: heredoc trimming warnings do not reference guts 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 21 - heredoc trimming warnings do not reference guts ok 22 - X::OutOfRange does not stringify given Ranges # Subtest: Use placeholder variables in a method should yield a useful error message 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 23 - Use placeholder variables in a method should yield a useful error message # Subtest: Role methods implemented by a class are checked for return type as well as for arguments 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 24 - Role methods implemented by a class are checked for return type as well as for arguments # Subtest: Absurd adverbing results in a proper error message 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 25 - Absurd adverbing results in a proper error message # Subtest: An attempt to use a closed handle results in a proper error message 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 26 - An attempt to use a closed handle results in a proper error message ok t/05-messages/10-warnings.t ..................................... 1..9 # Subtest: Supply.interval with negative value warns 1..2 ok 1 - useful warning ok 2 - intervaled code ran ok 1 - Supply.interval with negative value warns # Subtest: no useless-use warning on return when KEEP/UNDO phasers used 1..3 # Subtest: we get warnings with phasers that do not care about return value 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - we get warnings with phasers that do not care about return value # Subtest: no warnings with KEEP phaser 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - no warnings with KEEP phaser # Subtest: no warnings with UNDO phaser 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 3 - no warnings with UNDO phaser ok 2 - no useless-use warning on return when KEEP/UNDO phasers used # Subtest: no useless-use warning in andthen/notandthen/orelse/ chains 1..2 # Subtest: we get warnings when last value is useless 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - we get warnings when last value is useless # Subtest: no warnings when last value is useful 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - no warnings when last value is useful ok 3 - no useless-use warning in andthen/notandthen/orelse/ chains # Subtest: no spurious warnings when invoking colonpaired routine 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 4 - no spurious warnings when invoking colonpaired routine # Subtest: metaops + metaassign op do not produce spurious warnings 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 5 - metaops + metaassign op do not produce spurious warnings # Subtest: no spurious warnings with `try` thunks in blocks 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 6 - no spurious warnings with `try` thunks in blocks # Subtest: no warnings when sinking variables 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 7 - no warnings when sinking variables # Subtest: args to macros do not cause useless use warnings 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 8 - args to macros do not cause useless use warnings # Subtest: ignored shape specification issues a warning 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 9 - ignored shape specification issues a warning ok t/05-messages/11-overflow.t ..................................... 1..2 # Subtest: .roll 1..3 # Subtest: (1) 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|72838888) ... } ok 1 - (1) # Subtest: (2) 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|72839648) ... } ok 2 - (2) # Subtest: (3) 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|77109472) ... } ok 3 - (3) ok 1 - .roll # Subtest: .indent 1..6 # Subtest: (1) 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|77112392) ... } ok 1 - (1) # Subtest: (2) 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|77112512) ... } ok 2 - (2) # Subtest: (3) 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|77112632) ... } ok 3 - (3) # Subtest: (4) 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|77116192) ... } ok 4 - (4) # Subtest: (5) 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|77116312) ... } ok 5 - (5) # Subtest: (6) 1..3 ok 1 - code dies ok 2 - right exception type (Exception) ok 3 - .message matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|77116432) ... } ok 6 - (6) ok 2 - .indent ok t/05-messages/moar/01-errors.t .................................. 1..1 # Subtest: no SEGV with failed opens of MVM debug files 1..3 # Subtest: MVM_SPESH_LOG 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - MVM_SPESH_LOG # Subtest: MVM_DYNVAR_LOG 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - MVM_DYNVAR_LOG # Subtest: MVM_COVERAGE_LOG 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 3 - MVM_COVERAGE_LOG ok 1 - no SEGV with failed opens of MVM debug files ok t/05-messages/v6.d-tests/01-errors.t ............................ 1..1 # Subtest: giving await non-Awaitable things throws 1..2 ok 1 - code dies ok 2 - right exception type (Exception) ok 1 - giving await non-Awaitable things throws ok t/06-telemetry/01-basic.t ....................................... 1..42 ok 1 - did we get a Telemetry object from T ok 2 - did we get a non-zero value for wallclock using AT-KEY ok 3 - did we get a non-zero value for wallclock with a method ok 4 - did we get a non-zero value for cpu using AT-KEY ok 5 - did we get a non-zero value for cpu with a method ok 6 - did we get a non-zero value for max-rss using AT-KEY ok 7 - did we get a non-zero value for max-rss with a method ok 8 - did we get a Telemetry object from T.raku.EVAL ok 9 - did wallclock roundtrip ok in Telemetry? ok 10 - did cpu roundtrip ok in Telemetry? ok 11 - did max-rss roundtrip ok in Telemetry? ok 12 - Did we get a Telemetry::Period ok 13 - did we get a non-zero value for wallclock using AT-KEY ok 14 - did we get a non-zero value for wallclock using AT-KEY ok 15 - did we get a non-zero value for cpu using AT-KEY ok 16 - did we get a non-zero value for cpu using AT-KEY ok 17 - did we get a Telemetry::Period object from period.raku.EVAL ok 18 - did wallclock roundtrip ok in Telemetry::Period? ok 19 - did cpu roundtrip ok in Telemetry::Period? ok 20 - did max-rss roundtrip ok in Telemetry::Period? ok 21 - did it contain a Sampler ok 22 - there are 2 default default instruments ok 23 - did we get a Telemetry::Instrument::Usage ok 24 - did we get a Telemetry::Instrument::ThreadPool ok 25 - was &snap exported ok 26 - was &snapper exported ok 27 - was &periods exported ok 28 - was &report exported ok 29 - was &safe-ctrl-c exported ok 30 - was &T exported ok 31 - did the snap return nothing ok 32 - did periods auto-add an extra snap? ok 33 - is it a Telemetry::Period ok 34 - Did the call to periods remove all of the snaps? ok 35 - did the snapper return nothing ok 36 - did the snapper start taking snaps ok 37 - did the snapper actually stop ok 38 - did the snapper start taking snaps ok 39 - did we only get the header of the report ok 40 - line 1 of report ok 41 - line 2 of report # Subtest: giving unknown column in RAKUDO_REPORT_COLUMNS warns instead of crashing 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 42 - giving unknown column in RAKUDO_REPORT_COLUMNS warns instead of crashing ok t/06-telemetry/02-usage.t ....................................... 1..194 ok 1 - return Nil when setting with Str ok 2 - Was one instrument set with Str ok 3 - do we get the right class when setting with Str ok 4 - return Nil when setting with Telemetry::Instrument::Usage ok 5 - Was one instrument set with Telemetry::Instrument::Usage ok 6 - do we get the right class when setting with Telemetry::Instrument::Usage ok 7 - are the columns in alphabetical order ok 8 - The object is-a 'Telemetry::Instrument::Usage::Snap' ok 9 - Did we get a Any after roundtripping ok 10 - did we get the same value for cpu ok 11 - did we get the same value for cpu-sys ok 12 - did we get the same value for cpu-user ok 13 - did we get the same value for cpus ok 14 - did we get the same value for id-rss ok 15 - did we get the same value for inb ok 16 - did we get the same value for invcsw ok 17 - did we get the same value for is-rss ok 18 - did we get the same value for ix-rss ok 19 - did we get the same value for majf ok 20 - did we get the same value for max-rss ok 21 - did we get the same value for minf ok 22 - did we get the same value for mrcv ok 23 - did we get the same value for msnd ok 24 - did we get the same value for nsig ok 25 - did we get the same value for nswp ok 26 - did we get the same value for outb ok 27 - did we get the same value for util% ok 28 - did we get the same value for volcsw ok 29 - did we get the same value for wallclock ok 30 - did we get a Snap object from first set of values ok 31 - did we get a Telemetry object from $S1 ok 32 - does cpu exist in Telemetry? ok 33 - did we get a non-zero value for cpu using AT-KEY ok 34 - did we get a non-zero value for cpu with a method ok 35 - did AT-KEY and method on T give the same value ok 36 - does cpu-sys exist in Telemetry? ok 37 - did we get a non-zero value for cpu-sys using AT-KEY ok 38 - did we get a non-zero value for cpu-sys with a method ok 39 - did AT-KEY and method on T give the same value ok 40 - does cpu-user exist in Telemetry? ok 41 - did we get a non-zero value for cpu-user using AT-KEY ok 42 - did we get a non-zero value for cpu-user with a method ok 43 - did AT-KEY and method on T give the same value ok 44 - does cpus exist in Telemetry? ok 45 - did we get a non-zero value for cpus using AT-KEY ok 46 - did we get a non-zero value for cpus with a method ok 47 - did AT-KEY and method on T give the same value ok 48 - does id-rss exist in Telemetry? ok 49 - did we get a non-zero value for id-rss using AT-KEY ok 50 - did we get a non-zero value for id-rss with a method ok 51 - did AT-KEY and method on T give the same value ok 52 - does inb exist in Telemetry? ok 53 - did we get a non-zero value for inb using AT-KEY ok 54 - did we get a non-zero value for inb with a method ok 55 - did AT-KEY and method on T give the same value ok 56 - does invcsw exist in Telemetry? ok 57 - did we get a non-zero value for invcsw using AT-KEY ok 58 - did we get a non-zero value for invcsw with a method ok 59 - did AT-KEY and method on T give the same value ok 60 - does is-rss exist in Telemetry? ok 61 - did we get a non-zero value for is-rss using AT-KEY ok 62 - did we get a non-zero value for is-rss with a method ok 63 - did AT-KEY and method on T give the same value ok 64 - does ix-rss exist in Telemetry? ok 65 - did we get a non-zero value for ix-rss using AT-KEY ok 66 - did we get a non-zero value for ix-rss with a method ok 67 - did AT-KEY and method on T give the same value ok 68 - does majf exist in Telemetry? ok 69 - did we get a non-zero value for majf using AT-KEY ok 70 - did we get a non-zero value for majf with a method ok 71 - did AT-KEY and method on T give the same value ok 72 - does max-rss exist in Telemetry? ok 73 - did we get a non-zero value for max-rss using AT-KEY ok 74 - did we get a non-zero value for max-rss with a method ok 75 - did AT-KEY and method on T give the same value ok 76 - does minf exist in Telemetry? ok 77 - did we get a non-zero value for minf using AT-KEY ok 78 - did we get a non-zero value for minf with a method ok 79 - did AT-KEY and method on T give the same value ok 80 - does mrcv exist in Telemetry? ok 81 - did we get a non-zero value for mrcv using AT-KEY ok 82 - did we get a non-zero value for mrcv with a method ok 83 - did AT-KEY and method on T give the same value ok 84 - does msnd exist in Telemetry? ok 85 - did we get a non-zero value for msnd using AT-KEY ok 86 - did we get a non-zero value for msnd with a method ok 87 - did AT-KEY and method on T give the same value ok 88 - does nsig exist in Telemetry? ok 89 - did we get a non-zero value for nsig using AT-KEY ok 90 - did we get a non-zero value for nsig with a method ok 91 - did AT-KEY and method on T give the same value ok 92 - does nswp exist in Telemetry? ok 93 - did we get a non-zero value for nswp using AT-KEY ok 94 - did we get a non-zero value for nswp with a method ok 95 - did AT-KEY and method on T give the same value ok 96 - does outb exist in Telemetry? ok 97 - did we get a non-zero value for outb using AT-KEY ok 98 - did we get a non-zero value for outb with a method ok 99 - did AT-KEY and method on T give the same value ok 100 - does util% exist in Telemetry? ok 101 - did we get a non-zero value for util% using AT-KEY ok 102 - did we get a non-zero value for util% with a method ok 103 - did AT-KEY and method on T give the same value ok 104 - does volcsw exist in Telemetry? ok 105 - did we get a non-zero value for volcsw using AT-KEY ok 106 - did we get a non-zero value for volcsw with a method ok 107 - did AT-KEY and method on T give the same value ok 108 - does wallclock exist in Telemetry? ok 109 - did we get a non-zero value for wallclock using AT-KEY ok 110 - did we get a non-zero value for wallclock with a method ok 111 - did AT-KEY and method on T give the same value ok 112 - did we get a Snap object from second set of values ok 113 - did we get a Telemetry object from $S2 ok 114 - Did we get a T::Period ok 115 - does cpu exist in Telemetry::Period? ok 116 - did we get a positive value for cpu using AT-KEY ok 117 - did we get a positive value for cpu using AT-KEY ok 118 - did AT-KEY/method on T:P give same value for cpu ok 119 - does cpu-sys exist in Telemetry::Period? ok 120 - did we get a positive value for cpu-sys using AT-KEY ok 121 - did we get a positive value for cpu-sys using AT-KEY ok 122 - did AT-KEY/method on T:P give same value for cpu-sys ok 123 - does cpu-user exist in Telemetry::Period? ok 124 - did we get a positive value for cpu-user using AT-KEY ok 125 - did we get a positive value for cpu-user using AT-KEY ok 126 - did AT-KEY/method on T:P give same value for cpu-user ok 127 - does cpus exist in Telemetry::Period? ok 128 - did we get a positive value for cpus using AT-KEY ok 129 - did we get a positive value for cpus using AT-KEY ok 130 - did AT-KEY/method on T:P give same value for cpus ok 131 - does id-rss exist in Telemetry::Period? ok 132 - did we get a positive value for id-rss using AT-KEY ok 133 - did we get a positive value for id-rss using AT-KEY ok 134 - did AT-KEY/method on T:P give same value for id-rss ok 135 - does inb exist in Telemetry::Period? ok 136 - did we get a positive value for inb using AT-KEY ok 137 - did we get a positive value for inb using AT-KEY ok 138 - did AT-KEY/method on T:P give same value for inb ok 139 - does invcsw exist in Telemetry::Period? ok 140 - did we get a positive value for invcsw using AT-KEY ok 141 - did we get a positive value for invcsw using AT-KEY ok 142 - did AT-KEY/method on T:P give same value for invcsw ok 143 - does is-rss exist in Telemetry::Period? ok 144 - did we get a positive value for is-rss using AT-KEY ok 145 - did we get a positive value for is-rss using AT-KEY ok 146 - did AT-KEY/method on T:P give same value for is-rss ok 147 - does ix-rss exist in Telemetry::Period? ok 148 - did we get a positive value for ix-rss using AT-KEY ok 149 - did we get a positive value for ix-rss using AT-KEY ok 150 - did AT-KEY/method on T:P give same value for ix-rss ok 151 - does majf exist in Telemetry::Period? ok 152 - did we get a positive value for majf using AT-KEY ok 153 - did we get a positive value for majf using AT-KEY ok 154 - did AT-KEY/method on T:P give same value for majf ok 155 - does max-rss exist in Telemetry::Period? ok 156 - did we get a positive value for max-rss using AT-KEY ok 157 - did we get a positive value for max-rss using AT-KEY ok 158 - did AT-KEY/method on T:P give same value for max-rss ok 159 - does minf exist in Telemetry::Period? ok 160 - did we get a positive value for minf using AT-KEY ok 161 - did we get a positive value for minf using AT-KEY ok 162 - did AT-KEY/method on T:P give same value for minf ok 163 - does mrcv exist in Telemetry::Period? ok 164 - did we get a positive value for mrcv using AT-KEY ok 165 - did we get a positive value for mrcv using AT-KEY ok 166 - did AT-KEY/method on T:P give same value for mrcv ok 167 - does msnd exist in Telemetry::Period? ok 168 - did we get a positive value for msnd using AT-KEY ok 169 - did we get a positive value for msnd using AT-KEY ok 170 - did AT-KEY/method on T:P give same value for msnd ok 171 - does nsig exist in Telemetry::Period? ok 172 - did we get a positive value for nsig using AT-KEY ok 173 - did we get a positive value for nsig using AT-KEY ok 174 - did AT-KEY/method on T:P give same value for nsig ok 175 - does nswp exist in Telemetry::Period? ok 176 - did we get a positive value for nswp using AT-KEY ok 177 - did we get a positive value for nswp using AT-KEY ok 178 - did AT-KEY/method on T:P give same value for nswp ok 179 - does outb exist in Telemetry::Period? ok 180 - did we get a positive value for outb using AT-KEY ok 181 - did we get a positive value for outb using AT-KEY ok 182 - did AT-KEY/method on T:P give same value for outb ok 183 - does util% exist in Telemetry::Period? ok 184 - did we get a positive value for util% using AT-KEY ok 185 - did we get a positive value for util% using AT-KEY ok 186 - did AT-KEY/method on T:P give same value for util% ok 187 - does volcsw exist in Telemetry::Period? ok 188 - did we get a positive value for volcsw using AT-KEY ok 189 - did we get a positive value for volcsw using AT-KEY ok 190 - did AT-KEY/method on T:P give same value for volcsw ok 191 - does wallclock exist in Telemetry::Period? ok 192 - did we get a positive value for wallclock using AT-KEY ok 193 - did we get a positive value for wallclock using AT-KEY ok 194 - did AT-KEY/method on T:P give same value for wallclock ok t/06-telemetry/03-thread.t ...................................... 1..68 ok 1 - return Nil when setting with Str ok 2 - Was one instrument set with Str ok 3 - do we get the right class when setting with Str ok 4 - return Nil when setting with Telemetry::Instrument::Thread ok 5 - Was one instrument set with Telemetry::Instrument::Thread ok 6 - do we get the right class when setting with Telemetry::Instrument::Thread ok 7 - are the columns in alphabetical order ok 8 - The object is-a 'Telemetry::Instrument::Thread::Snap' ok 9 - Did we get a Any after roundtripping ok 10 - did we get the same value for tad ok 11 - did we get the same value for tcd ok 12 - did we get the same value for thid ok 13 - did we get the same value for tjd ok 14 - did we get the same value for tsd ok 15 - did we get the same value for tys ok 16 - did we get a Snap object from first set of values ok 17 - did we get a Telemetry object from $S1 ok 18 - does tad exist in Telemetry? ok 19 - did we get a non-zero value for tad using AT-KEY ok 20 - did we get a non-zero value for tad with a method ok 21 - did AT-KEY and method on T give the same value ok 22 - does tcd exist in Telemetry? ok 23 - did we get a non-zero value for tcd using AT-KEY ok 24 - did we get a non-zero value for tcd with a method ok 25 - did AT-KEY and method on T give the same value ok 26 - does thid exist in Telemetry? ok 27 - did we get a non-zero value for thid using AT-KEY ok 28 - did we get a non-zero value for thid with a method ok 29 - did AT-KEY and method on T give the same value ok 30 - does tjd exist in Telemetry? ok 31 - did we get a non-zero value for tjd using AT-KEY ok 32 - did we get a non-zero value for tjd with a method ok 33 - did AT-KEY and method on T give the same value ok 34 - does tsd exist in Telemetry? ok 35 - did we get a non-zero value for tsd using AT-KEY ok 36 - did we get a non-zero value for tsd with a method ok 37 - did AT-KEY and method on T give the same value ok 38 - does tys exist in Telemetry? ok 39 - did we get a non-zero value for tys using AT-KEY ok 40 - did we get a non-zero value for tys with a method ok 41 - did AT-KEY and method on T give the same value ok 42 - did we get a Snap object from second set of values ok 43 - did we get a Telemetry object from $S2 ok 44 - Did we get a T::Period ok 45 - does tad exist in Telemetry::Period? ok 46 - did we get a positive value for tad using AT-KEY ok 47 - did we get a positive value for tad using AT-KEY ok 48 - did AT-KEY/method on T:P give same value for tad ok 49 - does tcd exist in Telemetry::Period? ok 50 - did we get a positive value for tcd using AT-KEY ok 51 - did we get a positive value for tcd using AT-KEY ok 52 - did AT-KEY/method on T:P give same value for tcd ok 53 - does thid exist in Telemetry::Period? ok 54 - did we get a positive value for thid using AT-KEY ok 55 - did we get a positive value for thid using AT-KEY ok 56 - did AT-KEY/method on T:P give same value for thid ok 57 - does tjd exist in Telemetry::Period? ok 58 - did we get a positive value for tjd using AT-KEY ok 59 - did we get a positive value for tjd using AT-KEY ok 60 - did AT-KEY/method on T:P give same value for tjd ok 61 - does tsd exist in Telemetry::Period? ok 62 - did we get a positive value for tsd using AT-KEY ok 63 - did we get a positive value for tsd using AT-KEY ok 64 - did AT-KEY/method on T:P give same value for tsd ok 65 - does tys exist in Telemetry::Period? ok 66 - did we get a positive value for tys using AT-KEY ok 67 - did we get a positive value for tys using AT-KEY ok 68 - did AT-KEY/method on T:P give same value for tys ok t/06-telemetry/04-threadpool.t .................................. 1..104 ok 1 - return Nil when setting with Str ok 2 - Was one instrument set with Str ok 3 - do we get the right class when setting with Str ok 4 - return Nil when setting with Telemetry::Instrument::ThreadPool ok 5 - Was one instrument set with Telemetry::Instrument::ThreadPool ok 6 - do we get the right class when setting with Telemetry::Instrument::ThreadPool ok 7 - are the columns in alphabetical order ok 8 - The object is-a 'Telemetry::Instrument::ThreadPool::Snap' ok 9 - Did we get a Any after roundtripping ok 10 - did we get the same value for atc ok 11 - did we get the same value for atq ok 12 - did we get the same value for aw ok 13 - did we get the same value for gtc ok 14 - did we get the same value for gtq ok 15 - did we get the same value for gw ok 16 - did we get the same value for s ok 17 - did we get the same value for ttc ok 18 - did we get the same value for ttq ok 19 - did we get the same value for tw ok 20 - did we get a Snap object from first set of values ok 21 - did we get a Telemetry object from $S1 ok 22 - does atc exist in Telemetry? ok 23 - did we get a non-zero value for atc using AT-KEY ok 24 - did we get a non-zero value for atc with a method ok 25 - did AT-KEY and method on T give the same value ok 26 - does atq exist in Telemetry? ok 27 - did we get a non-zero value for atq using AT-KEY ok 28 - did we get a non-zero value for atq with a method ok 29 - did AT-KEY and method on T give the same value ok 30 - does aw exist in Telemetry? ok 31 - did we get a non-zero value for aw using AT-KEY ok 32 - did we get a non-zero value for aw with a method ok 33 - did AT-KEY and method on T give the same value ok 34 - does gtc exist in Telemetry? ok 35 - did we get a non-zero value for gtc using AT-KEY ok 36 - did we get a non-zero value for gtc with a method ok 37 - did AT-KEY and method on T give the same value ok 38 - does gtq exist in Telemetry? ok 39 - did we get a non-zero value for gtq using AT-KEY ok 40 - did we get a non-zero value for gtq with a method ok 41 - did AT-KEY and method on T give the same value ok 42 - does gw exist in Telemetry? ok 43 - did we get a non-zero value for gw using AT-KEY ok 44 - did we get a non-zero value for gw with a method ok 45 - did AT-KEY and method on T give the same value ok 46 - does s exist in Telemetry? ok 47 - did we get a non-zero value for s using AT-KEY ok 48 - did we get a non-zero value for s with a method ok 49 - did AT-KEY and method on T give the same value ok 50 - does ttc exist in Telemetry? ok 51 - did we get a non-zero value for ttc using AT-KEY ok 52 - did we get a non-zero value for ttc with a method ok 53 - did AT-KEY and method on T give the same value ok 54 - does ttq exist in Telemetry? ok 55 - did we get a non-zero value for ttq using AT-KEY ok 56 - did we get a non-zero value for ttq with a method ok 57 - did AT-KEY and method on T give the same value ok 58 - does tw exist in Telemetry? ok 59 - did we get a non-zero value for tw using AT-KEY ok 60 - did we get a non-zero value for tw with a method ok 61 - did AT-KEY and method on T give the same value ok 62 - did we get a Snap object from second set of values ok 63 - did we get a Telemetry object from $S2 ok 64 - Did we get a T::Period ok 65 - does atc exist in Telemetry::Period? ok 66 - did we get a positive value for atc using AT-KEY ok 67 - did we get a positive value for atc using AT-KEY ok 68 - did AT-KEY/method on T:P give same value for atc ok 69 - does atq exist in Telemetry::Period? ok 70 - did we get a positive value for atq using AT-KEY ok 71 - did we get a positive value for atq using AT-KEY ok 72 - did AT-KEY/method on T:P give same value for atq ok 73 - does aw exist in Telemetry::Period? ok 74 - did we get a positive value for aw using AT-KEY ok 75 - did we get a positive value for aw using AT-KEY ok 76 - did AT-KEY/method on T:P give same value for aw ok 77 - does gtc exist in Telemetry::Period? ok 78 - did we get a positive value for gtc using AT-KEY ok 79 - did we get a positive value for gtc using AT-KEY ok 80 - did AT-KEY/method on T:P give same value for gtc ok 81 - does gtq exist in Telemetry::Period? ok 82 - did we get a positive value for gtq using AT-KEY ok 83 - did we get a positive value for gtq using AT-KEY ok 84 - did AT-KEY/method on T:P give same value for gtq ok 85 - does gw exist in Telemetry::Period? ok 86 - did we get a positive value for gw using AT-KEY ok 87 - did we get a positive value for gw using AT-KEY ok 88 - did AT-KEY/method on T:P give same value for gw ok 89 - does s exist in Telemetry::Period? ok 90 - did we get a positive value for s using AT-KEY ok 91 - did we get a positive value for s using AT-KEY ok 92 - did AT-KEY/method on T:P give same value for s ok 93 - does ttc exist in Telemetry::Period? ok 94 - did we get a positive value for ttc using AT-KEY ok 95 - did we get a positive value for ttc using AT-KEY ok 96 - did AT-KEY/method on T:P give same value for ttc ok 97 - does ttq exist in Telemetry::Period? ok 98 - did we get a positive value for ttq using AT-KEY ok 99 - did we get a positive value for ttq using AT-KEY ok 100 - did AT-KEY/method on T:P give same value for ttq ok 101 - does tw exist in Telemetry::Period? ok 102 - did we get a positive value for tw using AT-KEY ok 103 - did we get a positive value for tw using AT-KEY ok 104 - did AT-KEY/method on T:P give same value for tw ok t/07-pod-to-text/01-whitespace.t ................................ 1..4 # Subtest: Code blocks 1..3 ok 1 - Empty lines don't get added spaces ok 2 - Plain continuation lines are aligned ok 3 - Formatting Codes in code block ok 1 - Code blocks # Subtest: Input blocks 1..3 ok 1 - Empty lines don't get added spaces ok 2 - Plain continuation lines are aligned ok 3 - Formatting Codes in input block ok 2 - Input blocks # Subtest: Output blocks 1..3 ok 1 - Empty lines don't get added spaces ok 2 - Plain continuation lines are aligned ok 3 - Formatting Codes in output block ok 3 - Output blocks # Subtest: Tables 1..1 ok 1 - Final table row is not space-padded ok 4 - Tables ok t/07-pod-to-text/02-input-output.t .............................. 1..20 ok 1 - The object is-a 'Pod::Block::Code' ok 2 - ok 3 - The object is-a 'Pod::Block::Code' ok 4 - ok 5 - The object is-a 'Pod::Block::Code' ok 6 - ok 7 - The object is-a 'Pod::Block::Code' ok 8 - ok 9 - The object is-a 'Pod::Block::Code' ok 10 - ok 11 - The object is-a 'Pod::Block::Code' ok 12 - ok 13 - The object is-a 'Pod::Block::Code' ok 14 - ok 15 - The object is-a 'Pod::Block::Code' ok 16 - ok 17 - The object is-a 'Pod::Block::Code' ok 18 - ok 19 - The object is-a 'Pod::Defn' ok 20 - ok t/08-performance/01-iterators.t ................................. 1..6 ok 1 - combinations() iterator implements efficient .count-only ok 2 - combinations() iterator implements efficient .bool-only ok 3 - &permutations() iterator implements efficient .count-only ok 4 - &permutations() iterator implements efficient .bool-only ok 5 - .permutations() iterator implements efficient .count-only ok 6 - .permutations() iterator implements efficient .bool-only ok t/08-performance/02-qast-rewrites.t ............................. 1..4 # Subtest: postfix-inc/dec on natives gets overwritten to prefix 1..8 ok 1 - int, void context ++ ok 2 - int, non-void context ++ ok 3 - int, void context -- ok 4 - int, non-void context -- ok 5 - num, void context ++ ok 6 - num, non-void context ++ ok 7 - num, void context -- ok 8 - num, non-void context -- ok 1 - postfix-inc/dec on natives gets overwritten to prefix # Subtest: .dispatch:<.=> gets rewritten to simple ops 1..15 ok 1 - (my Int $x .=new).="{"new"}"(42); ok 2 - my Int $x; .=new andthen .=new orelse .=new; ok 3 - my \foo .= new ok 4 - my Int \foo .= new ok 5 - my Int $a; .=new without $a ok 6 - my Int $a; .=new with $a ok 7 - my Int $a; $a .= new ok 8 - my @a; @a .= new ok 9 - my @a .= new ok 10 - my %a; %a .= new ok 11 - my %a .= new ok 12 - my &a; &a .= new ok 13 - my &a .= new ok 14 - my $b = "meows"; $b .= WHAT ok 15 - my @b = ; @b .= sort ok 2 - .dispatch:<.=> gets rewritten to simple ops # Subtest: for {} 1..13 ok 1 - for ^10 {} case gets optimized entirely ok 2 - for 1..10 {} case gets optimized entirely ok 3 - for 1..^10 {} case gets optimized entirely ok 4 - for 1^..10 {} case gets optimized entirely ok 5 - for 1^..^10 {} case gets optimized entirely ok 6 - for 1...10 {} case gets optimized entirely ok 7 - for 1, 2...10 {} case gets optimized entirely ok 8 - for 10...2 {} case gets optimized entirely ok 9 - for 1,3...9 {} case gets optimized entirely ok 10 - for 9,7...1 {} case gets optimized entirely ok 11 - for ^10 .reverse {} case gets optimized entirely ok 12 - simple `for ^10 {}` case gets `p6forstmt` op to use ok 13 - named arg does not accidentally get counted as a positional ok 3 - for {} # Subtest: nested metaops get fully rewritten away from &METAOP sub calls 1..2 ok 1 - (//=)+= ok 2 - ((((//=)+=) //=) +=) ok 4 - nested metaops get fully rewritten away from &METAOP sub calls ok t/08-performance/03-optimizer-regressions.t ..................... 1..1 ok 1 - Smartmatch optimization does not lead to non-Mu:U object smartmatching with Mu:U ok t/08-performance/05-processkeys.t ............................... 1..2 ok 1 - control for $*EXECUTABLE ok 2 - No unexpected entries in PROCESS:: ok t/09-moar/00-misc.t ............................................. 1..5 # Subtest: no SPESH crashes with duplicate `use Test` 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - no SPESH crashes with duplicate `use Test` ok 2 - No SEGV when many threads try to change the debug type name ok 3 - does srand produce same rand_I values ok 4 - does srand produce same rand_n values ok 5 - Repeatedly trying to clone a Lock does not lead to a crash ok t/09-moar/General_Category__UnicodeData__2.t .................... ok 1 - Property: General_Category from file: UnicodeData.txt (Correct: 34924 Wrong: 0) 1..1 ok t/09-moar/General_Category__extracted-DerivedGeneralCategory.t .. ok 1 - Property: General_Category=Cn from file: extracted/DerivedGeneralCategory.txt (Correct: 825324 Wrong: 21). Todo'd if < 21 failures. 1..1 ok t/09-moar/Line_Break__LineBreak.t ............................... ok 1 - Property: Line_Break=ID from file: LineBreak.txt (Correct: 109886 Wrong: 62579). Todo'd if < 62579 failures. ok 2 - Property: Line_Break=PR from file: LineBreak.txt (Correct: 52 Wrong: 15). Todo'd if < 15 failures. 1..2 ok t/09-moar/NAME__UnicodeData.t ................................... ok 1 - Property: NAME from file: UnicodeData.txt (Correct: 277530 Wrong: 0) 1..1 ok t/10-qast/00-misc.t ............................................. 1..1 ok 1 - whatever curries with 3+ args do not duplicate p6bindsig op ok t/12-rakuast/block.rakutest ..................................... 1..5 # Subtest: A pointy block node evaluates to a Block # -> { # 101 # } ok 1 - deparse ok 2 - AST: A pointy block node evaluates to a Block ok 3 - AST: The block has no parameters ok 4 - AST: The block has 0 arity ok 5 - AST: The block has 0 count ok 6 - AST: Invoking the block returns the expected value ok 7 - AST: Invoking the block with an argument dies ok 8 - Str: A pointy block node evaluates to a Block ok 9 - Str: The block has no parameters ok 10 - Str: The block has 0 arity ok 11 - Str: The block has 0 count ok 12 - Str: Invoking the block returns the expected value ok 13 - Str: Invoking the block with an argument dies ok 14 - Raku: A pointy block node evaluates to a Block ok 15 - Raku: The block has no parameters ok 16 - Raku: The block has 0 arity ok 17 - Raku: The block has 0 count ok 18 - Raku: Invoking the block returns the expected value ok 19 - Raku: Invoking the block with an argument dies 1..19 ok 1 - A pointy block node evaluates to a Block # Subtest: A pointy block node taking a parameter evaluates to a Block # -> $param { # $param # } ok 1 - deparse ok 2 - AST: A pointy block node taking a parameter evaluates to a Block ok 3 - AST: The block has one parameters ok 4 - AST: The block has 1 arity ok 5 - AST: The block has 1 count ok 6 - AST: Invoking the block with an argument returns the expected value ok 7 - AST: Argument is bound read-only ok 8 - AST: Invoking the block without an argument dies ok 9 - Str: A pointy block node taking a parameter evaluates to a Block ok 10 - Str: The block has one parameters ok 11 - Str: The block has 1 arity ok 12 - Str: The block has 1 count ok 13 - Str: Invoking the block with an argument returns the expected value ok 14 - Str: Argument is bound read-only ok 15 - Str: Invoking the block without an argument dies ok 16 - Raku: A pointy block node taking a parameter evaluates to a Block ok 17 - Raku: The block has one parameters ok 18 - Raku: The block has 1 arity ok 19 - Raku: The block has 1 count ok 20 - Raku: Invoking the block with an argument returns the expected value ok 21 - Raku: Argument is bound read-only ok 22 - Raku: Invoking the block without an argument dies 1..22 ok 2 - A pointy block node taking a parameter evaluates to a Block # Subtest: Bare block at statement level is executed # { # $x++ # } ok 1 - deparse ok 2 - AST: Bare block at statement level is executed ok 3 - AST: Side-effects were performed as expected ok 4 - Str: Bare block at statement level is executed ok 5 - Str: Side-effects were performed as expected ok 6 - Raku: Bare block at statement level is executed ok 7 - Raku: Side-effects were performed as expected 1..7 ok 3 - Bare block at statement level is executed # Subtest: Bare block in parentheses evaluates to Block # ({ # $x++ # }) ok 1 - deparse ok 2 - AST: Bare block in parentheses evaluates to Block ok 3 - AST: Block has arity 0 ok 4 - AST: Block has count 1 ok 5 - AST: No side-effects were performed ok 6 - AST: Can evaluate the returned block ok 7 - AST: Block did perform side-effects when evaluated ok 8 - Str: Bare block in parentheses evaluates to Block ok 9 - Str: Block has arity 0 ok 10 - Str: Block has count 1 ok 11 - Str: No side-effects were performed ok 12 - Str: Can evaluate the returned block ok 13 - Str: Block did perform side-effects when evaluated 1..13 ok 4 - Bare block in parentheses evaluates to Block # Subtest: Block has default parameter # ({ # $_ # }) ok 1 - deparse ok 2 - AST: Block has default AST parameter ok 3 - AST: That AST parameter is optional ok 4 - Str: Block has default Str parameter ok 5 - Str: That Str parameter is optional 1..5 ok 5 - Block has default parameter ok t/12-rakuast/call-method.rakutest ............................... 1..15 # Subtest: Can make a call on a method without arguments # TestTarget.route ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - Can make a call on a method without arguments # Subtest: Can make a call on a submethod without arguments # TestTarget.subby ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - Can make a call on a submethod without arguments # Subtest: Can make a call on a method with positional arguments # TestTarget.subtract(14, 6) ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - Can make a call on a method with positional arguments # Subtest: Method call WHAT compiles into MOP primitive # 42.WHAT ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - Method call WHAT compiles into MOP primitive # Subtest: Method call HOW compiles into MOP primitive # 42.HOW ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - Method call HOW compiles into MOP primitive # Subtest: Method call WHO compiles into MOP primitive # 42.WHO ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - Method call WHO compiles into MOP primitive # Subtest: Method call DEFINITE compiles into MOP primitive # 42.DEFINITE ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 7 - Method call DEFINITE compiles into MOP primitive # Subtest: Method call REPR compiles into MOP primitive # 42.REPR ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 8 - Method call REPR compiles into MOP primitive # Subtest: Can make a quoted call on a method without arguments # TestTarget."route"() ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 9 - Can make a quoted call on a method without arguments # Subtest: Can make a quoted call on a method with positional arguments # TestTarget."subtract"(14, 6) ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 10 - Can make a quoted call on a method with positional arguments # Subtest: Can make a meta-method call # 42.^name ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 11 - Can make a meta-method call # Subtest: Can make a method call if the method exists # TestTarget.?subtract(50, 8) ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 12 - Can make a method call if the method exists # Subtest: Can make a method call if the method does not exist # TestTarget.?dunno ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 13 - Can make a method call if the method does not exist # Subtest: Can make a private method call # A!private ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 14 - Can make a private method call # Subtest: Can make a method call on a sub # "foo".&uc() ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 15 - Can make a method call on a sub ok t/12-rakuast/call-name.rakutest ................................. 1..8 # Subtest: Can make a named call with no arguments # no-args() ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - Can make a named call with no arguments # Subtest: Can make a named call with one positional argument # one-arg(5) ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - Can make a named call with one positional argument # Subtest: Can make a named call with two positional arguments # two-args(5, 3) ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - Can make a named call with two positional arguments # Subtest: Can make a named call with two named arguments # two-named(n1 => 200, n2 => 4) ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - Can make a named call with two named arguments # Subtest: Duplicated named arguments are correctly handled # two-named(n1 => 200, n2 => 4, n1 => 400) ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - Duplicated named arguments are correctly handled # Subtest: Can make a call on a term with two positional arguments # $target(9, 4) ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - Can make a call on a term with two positional arguments # Subtest: Can make a call that flattens into array # no-args(|@args) ok 1 - deparsed ok 2 - AST: flattening empty list ok 3 - Str: flattening empty list ok 4 - Raku: flattening empty list # two-args(|@args) ok 5 - deparsed ok 6 - AST: two positional arguments ok 7 - Str: two positional arguments ok 8 - Raku: two positional arguments 1..8 ok 7 - Can make a call that flattens into array # Subtest: Can make a call that flattens into hash # no-args(|%args) ok 1 - deparsed ok 2 - AST: flattening empty list ok 3 - Str: flattening empty list ok 4 - Raku: flattening empty list # two-named(|%args) ok 5 - deparsed ok 6 - AST: flattening two named arguments ok 7 - Str: flattening two named arguments ok 8 - Raku: flattening two named arguments 1..8 ok 8 - Can make a call that flattens into hash ok t/12-rakuast/circumfix.rakutest ................................. 1..7 # Subtest: Parenthesized expressions compile correctly # 2 * (3 + 4) ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - Parenthesized expressions compile correctly # Subtest: Multi-statement semilist compiles into a List # (3, 4) ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - Multi-statement semilist compiles into a List # Subtest: Array composer produces an array # [9, 10, 11] ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - Array composer produces an array # Subtest: Array composer works correctly with a single argument # [5 .. 9] ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - Array composer works correctly with a single argument # Subtest: Empty hash composer works correctly # {} ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - Empty hash composer works correctly # Subtest: Hash composer with fatarrow works correctly # {a => 42} ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - Hash composer with fatarrow works correctly # Subtest: Hash composer with list of fat arrows works correctly # {x => 11, y => 22} ok 1 - deparsed ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 7 - Hash composer with list of fat arrows works correctly ok t/12-rakuast/class.rakutest ..................................... 1..13 # Subtest: Create an empty class # my class MyTestClass { } ok 1 - deparse ok 2 - AST: Class evaluates to a type object ok 3 - AST: Correct class name ok 4 - AST: Correct representation ok 5 - Str: Class evaluates to a type object ok 6 - Str: Correct class name ok 7 - Str: Correct representation ok 8 - Raku: Class evaluates to a type object ok 9 - Raku: Correct class name ok 10 - Raku: Correct representation 1..10 ok 1 - Create an empty class # Subtest: Create a class with a method # my class TestClassWithMethods { # method test-meth { # 456 # } # } ok 1 - deparse ok 2 - AST: Class with method evaluates to a type object ok 3 - AST: Correct class name ok 4 - AST: The class has a test-meth method ok 5 - AST: Can call method without signature and get expected value ok 6 - Str: Class with method evaluates to a type object ok 7 - Str: Correct class name ok 8 - Str: The class has a test-meth method ok 9 - Str: Can call method without signature and get expected value ok 10 - Raku: Class with method evaluates to a type object ok 11 - Raku: Correct class name ok 12 - Raku: The class has a test-meth method ok 13 - Raku: Can call method without signature and get expected value 1..13 ok 2 - Create a class with a method # Subtest: Create a class with a submethod # my class TestClassWithSubmethods { # submethod test-submeth { # 137 # } # } ok 1 - deparse ok 2 - AST: Class with method evaluates to a type object ok 3 - AST: Correct class name ok 4 - AST: The class has a test-submeth method ok 5 - AST: Can call method without signature and get expected value ok 6 - Str: Class with method evaluates to a type object ok 7 - Str: Correct class name ok 8 - Str: The class has a test-submeth method ok 9 - Str: Can call method without signature and get expected value ok 10 - Raku: Class with method evaluates to a type object ok 11 - Raku: Correct class name ok 12 - Raku: The class has a test-submeth method ok 13 - Raku: Can call method without signature and get expected value 1..13 ok 3 - Create a class with a submethod # Subtest: Check lexically resolving of a class # my class LexicalTestClass { } # LexicalTestClass ok 1 - deparse ok 2 - AST: Got type object back from looking up package ok 3 - AST: Resolved lexically to the correct class ok 4 - AST: Was not installed globally ok 5 - Str: Got type object back from looking up package ok 6 - Str: Resolved lexically to the correct class ok 7 - Str: Was not installed globally ok 8 - Raku: Got type object back from looking up package ok 9 - Raku: Resolved lexically to the correct class ok 10 - Raku: Was not installed globally 1..10 ok 4 - Check lexically resolving of a class # Subtest: Check globally resolving of a class # class OurTestClassAST { } # OurTestClassAST ok 1 - deparse ok 2 - Got type object back from looking up our-scoped package ok 3 - Resolved to the correct class ok 4 - Was installed globally ok 5 - Correct thing installed # class OurTestClassStr { } # OurTestClassStr ok 6 - deparse ok 7 - Got type object back from looking up our-scoped package ok 8 - Resolved to the correct class ok 9 - Was installed globally ok 10 - Correct thing installed # class OurTestClassRaku { } # OurTestClassRaku ok 11 - deparse ok 12 - Got type object back from looking up our-scoped package ok 13 - Resolved to the correct class ok 14 - Was installed globally ok 15 - Correct thing installed 1..15 ok 5 - Check globally resolving of a class # Subtest: our class inside an enclosing module # class OurEnclosedClassAST { } # OurEnclosedClassAST ok 1 - deparse ok 2 - AST: EVAL of package AST inside a module works # TODO bug in enclosed package naming ok 3 - AST: Was not installed globally ok 4 - AST: Was installed in the current package ok 5 - AST: Correct thing installed # class OurEnclosedClassStr { } # OurEnclosedClassStr ok 6 - deparse ok 7 - Str: EVAL of package AST inside a module works ok 8 - Str: Was not installed globally ok 9 - Str: Was installed in the current package ok 10 - Str: Correct thing installed # class OurEnclosedClassRaku { } # OurEnclosedClassRaku ok 11 - deparse ok 12 - Raku: EVAL of package AST inside a module works ok 13 - Raku: Was not installed globally ok 14 - Raku: Was installed in the current package ok 15 - Raku: Correct thing installed 1..15 ok 6 - our class inside an enclosing module # Subtest: class with attribute # my class TestClassWithAttribute { # has $!foo # } ok 1 - deparse ok 2 - AST: Class with attribute evluates to a type object ok 3 - AST: Correct class name ok 4 - AST: Class has one attribute ok 5 - AST: Correct attribute name ok 6 - AST: Correct (default) type ok 7 - AST: Correctly claims to have no accessor ok 8 - AST: No accessor method was generated ok 9 - Str: Class with attribute evluates to a type object ok 10 - Str: Correct class name ok 11 - Str: Class has one attribute ok 12 - Str: Correct attribute name ok 13 - Str: Correct (default) type ok 14 - Str: Correctly claims to have no accessor ok 15 - Str: No accessor method was generated ok 16 - Raku: Class with attribute evluates to a type object ok 17 - Raku: Correct class name ok 18 - Raku: Class has one attribute ok 19 - Raku: Correct attribute name ok 20 - Raku: Correct (default) type ok 21 - Raku: Correctly claims to have no accessor ok 22 - Raku: No accessor method was generated 1..22 ok 7 - class with attribute # Subtest: class with attribute and accessor # my class TestClassWithAttributeAccessor { # has Int $.foo # } ok 1 - deparse ok 2 - AST: Class with attribute with accessor evluates to a type object ok 3 - AST: Correct class name ok 4 - AST: Class has one attribute ok 5 - AST: Correct attribute name ok 6 - AST: Correct type constraint ok 7 - AST: Correctly claims to have an accessor ok 8 - AST: Seems like an accessor method was generated ok 9 - AST: Accessor and default constructor work fine ok 10 - Str: Class with attribute with accessor evluates to a type object ok 11 - Str: Correct class name ok 12 - Str: Class has one attribute ok 13 - Str: Correct attribute name ok 14 - Str: Correct type constraint ok 15 - Str: Correctly claims to have an accessor ok 16 - Str: Seems like an accessor method was generated ok 17 - Str: Accessor and default constructor work fine ok 18 - Raku: Class with attribute with accessor evluates to a type object ok 19 - Raku: Correct class name ok 20 - Raku: Class has one attribute ok 21 - Raku: Correct attribute name ok 22 - Raku: Correct type constraint ok 23 - Raku: Correctly claims to have an accessor ok 24 - Raku: Seems like an accessor method was generated ok 25 - Raku: Accessor and default constructor work fine 1..25 ok 8 - class with attribute and accessor # Subtest: class with accessor usage # my class TestClassWithAttributeUsage { # has Int $.bar; # method test-meth { # $!bar # } # method test-accessor { # $.bar # } # } ok 1 - deparse ok 2 - AST: Class with accessor usage evaluates to a type object ok 3 - AST: Correct class name ok 4 - AST: Attribute access compiles correctly ok 5 - Str: Class with accessor usage evaluates to a type object ok 6 - Str: Correct class name ok 7 - Str: Attribute access compiles correctly ok 8 - Raku: Class with accessor usage evaluates to a type object ok 9 - Raku: Correct class name ok 10 - Raku: Attribute access compiles correctly 1..10 ok 9 - class with accessor usage # Subtest: class with does trait really does the role # my class TestRoleTarget does TestRole { } ok 1 - deparse ok 2 - AST: Class with does trait gets correct name ok 3 - AST: Class with does trait does the role ok 4 - AST: The role method can be called ok 5 - Str: Class with does trait gets correct name ok 6 - Str: Class with does trait does the role ok 7 - Str: The role method can be called ok 8 - Raku: Class with does trait gets correct name ok 9 - Raku: Class with does trait does the role ok 10 - Raku: The role method can be called 1..10 ok 10 - class with does trait really does the role # Subtest: class with is trait really inherits # my class TestChild is TestBase { } ok 1 - deparse ok 2 - AST: Class with is trait gets correct name ok 3 - AST: Class with is trait inherits the base class ok 4 - AST: A base class method can be called ok 5 - Str: Class with is trait gets correct name ok 6 - Str: Class with is trait inherits the base class ok 7 - Str: A base class method can be called ok 8 - Raku: Class with is trait gets correct name ok 9 - Raku: Class with is trait inherits the base class ok 10 - Raku: A base class method can be called 1..10 ok 11 - class with is trait really inherits # Subtest: class that hides Any # my class HidesAny hides Any { # method list { # nextsame() # } # } ok 1 - deparse ok 2 - AST: Class with hides trait gets correct name ok 3 - AST: Calling .list will not dispatch to Any.list ok 4 - Str: Class with hides trait gets correct name ok 5 - Str: Calling .list will not dispatch to Any.list ok 6 - Raku: Class with hides trait gets correct name ok 7 - Raku: Calling .list will not dispatch to Any.list 1..7 ok 12 - class that hides Any # Subtest: unit scoped class # #| leading # unit class Goo; #= trailing # method goo { # 42 # } ok 1 - deparse ok 2 - AST: unit scoped class is returned ok 3 - AST: Calling .goo works 1..3 ok 13 - unit scoped class ok t/12-rakuast/contextualizer.rakutest ............................ 1..7 # Subtest: Item contextualizer from empty sequence # $() ok 1 - deparse ok 2 - AST: Contextualizer gives expected result ok 3 - Str: Contextualizer gives expected result ok 4 - Raku: Contextualizer gives expected result 1..4 ok 1 - Item contextualizer from empty sequence # Subtest: Hash contextualizer from empty sequence # %() ok 1 - deparse ok 2 - AST: Contextualizer gives expected result ok 3 - Str: Contextualizer gives expected result ok 4 - Raku: Contextualizer gives expected result 1..4 ok 2 - Hash contextualizer from empty sequence # Subtest: List contextualizer from empty sequence # @() ok 1 - deparse ok 2 - AST: Contextualizer gives expected result ok 3 - Str: Contextualizer gives expected result ok 4 - Raku: Contextualizer gives expected result 1..4 ok 3 - List contextualizer from empty sequence # Subtest: Item contextualizer with single value # $(42) ok 1 - deparse ok 2 - AST: Contextualizer gives expected result ok 3 - Str: Contextualizer gives expected result ok 4 - Raku: Contextualizer gives expected result 1..4 ok 4 - Item contextualizer with single value # Subtest: Item contextualizer with multiple values # $(42, 666) ok 1 - deparse ok 2 - AST: Contextualizer gives expected result ok 3 - Str: Contextualizer gives expected result ok 4 - Raku: Contextualizer gives expected result 1..4 ok 5 - Item contextualizer with multiple values # Subtest: Hash contextualizer from pairs # %(a => 1, b => 2) ok 1 - deparse ok 2 - AST: Contextualizer gives expected result ok 3 - Str: Contextualizer gives expected result ok 4 - Raku: Contextualizer gives expected result 1..4 ok 6 - Hash contextualizer from pairs # Subtest: List contextualizer from pairs # @(a => 1, b => 2) ok 1 - deparse ok 2 - AST: Contextualizer gives expected result ok 3 - Str: Contextualizer gives expected result ok 4 - Raku: Contextualizer gives expected result 1..4 ok 7 - List contextualizer from pairs ok t/12-rakuast/doc-block.rakutest ................................. 1..11 # Subtest: simple documentation # =begin doc # # This is documentation # # =end doc # ok 1 - Str: deparse ok 2 - Raku: deparse 1..2 ok 1 - simple documentation # Subtest: simple documentation abbreviated # =doc This is documentation ok 1 - Str: deparse ok 2 - Raku: deparse 1..2 ok 2 - simple documentation abbreviated # Subtest: simple documentation with markup # =begin doc # # This is Bumentation # # =end doc # ok 1 - Str: deparse ok 2 - Raku: deparse 1..2 ok 3 - simple documentation with markup # Subtest: simple documentation in a statementlist (1) # 42 # =begin doc # # This is documentation # # =end doc # ok 1 - do we get the final result ok 2 - Str: deparse ok 3 - Raku: deparse 1..3 ok 4 - simple documentation in a statementlist (1) # Subtest: simple documentation in a statementlist (2) # =begin doc # # This is documentation # # =end doc # # 42 ok 1 - do we get the final result ok 2 - Str: deparse ok 3 - Raku: deparse 1..3 ok 5 - simple documentation in a statementlist (2) # Subtest: abbreviated documentation in a statementlist (1) # 42 # =head1 This is documentation ok 1 - do we get the final result ok 2 - Str: deparse ok 3 - Raku: deparse 1..3 ok 6 - abbreviated documentation in a statementlist (1) # Subtest: abbreviated documentation in a statementlist (2) # =head1 # This is documentation # # 42 ok 1 - do we get the final result ok 2 - Str: deparse ok 3 - Raku: deparse 1..3 ok 7 - abbreviated documentation in a statementlist (2) # Subtest: alias directive in a statement list # =alias FOO bar # = 137 # 42 ok 1 - do we get the final result ok 2 - Str: deparse ok 3 - Raku: deparse 1..3 ok 8 - alias directive in a statement list # Subtest: row directive in a statement list # =begin table # # =row :align # =end table # # 42 ok 1 - Str: deparse ok 2 - Raku: deparse 1..2 ok 9 - row directive in a statement list # Subtest: column directive in a statement list # =begin table # # =column :align # =end table # # 42 ok 1 - Str: deparse ok 2 - Raku: deparse 1..2 ok 10 - column directive in a statement list # Subtest: abbreviated defn in a statement list # =defn Foo Bar # baz # # 42 ok 1 - do we get the final result ok 2 - Str: deparse ok 3 - Raku: deparse 1..3 ok 11 - abbreviated defn in a statement list ok t/12-rakuast/doc-declarator.rakutest ............................ 1..20 # Subtest: Simple leading and trailing pod declarator test # #| leading comment # sub a { #= trailing comment # 42 # } ok 1 - Str: deparse ok 2 - Raku: deparse 1..2 ok 1 - Simple leading and trailing pod declarator test # Subtest: Simple block with leading and trailing pod test # #| leading comment # { #= trailing comment # 42 # }, $=pod ok 1 - deparse ok 2 - AST: did we get a block ok 3 - AST: can it run and return value ok 4 - AST: did we get an Array ok 5 - AST: does it have one element ok 6 - AST: did we get a Pod::Block::Declarator ok 7 - AST: is the object the target of the declarator ok 8 - AST: is the leading comment correct ok 9 - AST: is the trailing comment correct ok 10 - Str: did we get a block ok 11 - Str: can it run and return value ok 12 - Str: did we get an Array ok 13 - Str: does it have one element ok 14 - Str: did we get a Pod::Block::Declarator ok 15 - Str: is the object the target of the declarator ok 16 - Str: is the leading comment correct ok 17 - Str: is the trailing comment correct ok 18 - Raku: did we get a block ok 19 - Raku: can it run and return value ok 20 - Raku: did we get an Array ok 21 - Raku: does it have one element ok 22 - Raku: did we get a Pod::Block::Declarator ok 23 - Raku: is the object the target of the declarator ok 24 - Raku: is the leading comment correct ok 25 - Raku: is the trailing comment correct 1..25 ok 2 - Simple block with leading and trailing pod test # Subtest: Simple pointy block with leading and trailing pod test # #| leading comment # -> { #= trailing comment # 42 # }, $=pod ok 1 - deparse ok 2 - AST: did we get a block ok 3 - AST: can it run and return value ok 4 - AST: did we get an Array ok 5 - AST: does it have one element ok 6 - AST: did we get a Pod::Block::Declarator ok 7 - AST: is the object the target of the declarator ok 8 - AST: is the leading comment correct ok 9 - AST: is the trailing comment correct ok 10 - Str: did we get a block ok 11 - Str: can it run and return value ok 12 - Str: did we get an Array ok 13 - Str: does it have one element ok 14 - Str: did we get a Pod::Block::Declarator ok 15 - Str: is the object the target of the declarator ok 16 - Str: is the leading comment correct ok 17 - Str: is the trailing comment correct ok 18 - Raku: did we get a block ok 19 - Raku: can it run and return value ok 20 - Raku: did we get an Array ok 21 - Raku: does it have one element ok 22 - Raku: did we get a Pod::Block::Declarator ok 23 - Raku: is the object the target of the declarator ok 24 - Raku: is the leading comment correct ok 25 - Raku: is the trailing comment correct 1..25 ok 3 - Simple pointy block with leading and trailing pod test # Subtest: Simple sub with leading and trailing pod test # #| leading comment # sub a { #= trailing comment # 42 # }, $=pod ok 1 - deparse ok 2 - AST: did we get a sub ok 3 - AST: did it get the right name ok 4 - AST: can it run and return value ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a sub ok 12 - Str: did it get the right name ok 13 - Str: can it run and return value ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct ok 19 - Str: is the trailing comment correct ok 20 - Raku: did we get a sub ok 21 - Raku: did it get the right name ok 22 - Raku: can it run and return value ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 4 - Simple sub with leading and trailing pod test # Subtest: Simple class with declarator pod # #| leading comment # my class A { #= trailing comment # }, $=pod ok 1 - deparse ok 2 - AST: did we get a class ok 3 - AST: did it get the right name ok 4 - AST: can it instantiate ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a class ok 12 - Str: did it get the right name ok 13 - Str: can it instantiate ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct ok 19 - Str: is the trailing comment correct ok 20 - Raku: did we get a class ok 21 - Raku: did it get the right name ok 22 - Raku: can it instantiate ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 5 - Simple class with declarator pod # Subtest: Simple class with declarator pod, one attribute # my class A { # #| leading comment # has $.foo #= trailing comment # }, $=pod ok 1 - deparse ok 2 - AST: did we get a class ok 3 - AST: did it get the right name ok 4 - AST: can it instantiate ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a class ok 12 - Str: did it get the right name ok 13 - Str: can it instantiate ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct not ok 19 - Str: is the trailing comment correct # TODO Str: trailing comment dropped somehow # Failed test 'Str: is the trailing comment correct' # at t/12-rakuast/doc-declarator.rakutest line 58 # expected: "trailing comment" # got: Nil ok 20 - Raku: did we get a class ok 21 - Raku: did it get the right name ok 22 - Raku: can it instantiate ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 6 - Simple class with declarator pod, one attribute # Subtest: Simple class with declarator pod, two attributes # my class A { # #| leading comment # has $.foo; #= trailing comment # has $.bar # }, $=pod ok 1 - deparse ok 2 - AST: did we get a class ok 3 - AST: did it get the right name ok 4 - AST: can it instantiate ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a class ok 12 - Str: did it get the right name ok 13 - Str: can it instantiate ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct ok 19 - Str: is the trailing comment correct ok 20 - Raku: did we get a class ok 21 - Raku: did it get the right name ok 22 - Raku: can it instantiate ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 7 - Simple class with declarator pod, two attributes # Subtest: Simple class with declarator pod, one method # my class A { # #| leading comment # method foo { #= trailing comment # } # }, $=pod ok 1 - deparse ok 2 - AST: did we get a class ok 3 - AST: did it get the right name ok 4 - AST: can it instantiate ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a class ok 12 - Str: did it get the right name ok 13 - Str: can it instantiate ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct ok 19 - Str: is the trailing comment correct ok 20 - Raku: did we get a class ok 21 - Raku: did it get the right name ok 22 - Raku: can it instantiate ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 8 - Simple class with declarator pod, one method # Subtest: Simple class with declarator pod, one submethod # my class A { # #| leading comment # submethod foo { #= trailing comment # } # }, $=pod ok 1 - deparse ok 2 - AST: did we get a class ok 3 - AST: did it get the right name ok 4 - AST: can it instantiate ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a class ok 12 - Str: did it get the right name ok 13 - Str: can it instantiate ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct ok 19 - Str: is the trailing comment correct ok 20 - Raku: did we get a class ok 21 - Raku: did it get the right name ok 22 - Raku: can it instantiate ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 9 - Simple class with declarator pod, one submethod # Subtest: Simple class with declarator pod, one private method # my class A { # #| leading comment # method !foo { #= trailing comment # } # }, $=pod ok 1 - deparse ok 2 - AST: did we get a class ok 3 - AST: did it get the right name ok 4 - AST: can it instantiate ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a class ok 12 - Str: did it get the right name ok 13 - Str: can it instantiate ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct ok 19 - Str: is the trailing comment correct ok 20 - Raku: did we get a class ok 21 - Raku: did it get the right name ok 22 - Raku: can it instantiate ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 10 - Simple class with declarator pod, one private method # Subtest: Simple class with declarator pod, one meta method # my class A { # #| leading comment # method ^foo { #= trailing comment # } # }, $=pod ok 1 - deparse ok 2 - AST: did we get a class ok 3 - AST: did it get the right name ok 4 - AST: can it instantiate ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a class ok 12 - Str: did it get the right name ok 13 - Str: can it instantiate ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct ok 19 - Str: is the trailing comment correct ok 20 - Raku: did we get a class ok 21 - Raku: did it get the right name ok 22 - Raku: can it instantiate ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 11 - Simple class with declarator pod, one meta method # Subtest: Simple class with declarator pod, two methods # my class A { # #| leading comment # method foo { #= trailing comment # } # method bar { } # }, $=pod ok 1 - deparse ok 2 - AST: did we get a class ok 3 - AST: did it get the right name ok 4 - AST: can it instantiate ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a class ok 12 - Str: did it get the right name ok 13 - Str: can it instantiate ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct ok 19 - Str: is the trailing comment correct ok 20 - Raku: did we get a class ok 21 - Raku: did it get the right name ok 22 - Raku: can it instantiate ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 12 - Simple class with declarator pod, two methods # Subtest: Simple enum with declarator pod # #| leading comment # my enum Foo #= trailing comment # , $=pod ok 1 - deparse ok 2 - AST: did we get a Map ok 3 - AST: did we get an Array ok 4 - AST: does it have one element ok 5 - AST: did we get a Pod::Block::Declarator ok 6 - AST: is the leading comment correct ok 7 - AST: is the trailing comment correct ok 8 - Str: did we get a Map ok 9 - Str: did we get an Array ok 10 - Str: does it have one element ok 11 - Str: did we get a Pod::Block::Declarator ok 12 - Str: is the leading comment correct not ok 13 - Str: is the trailing comment correct # TODO Str: trailing comment dropped somehow # Failed test 'Str: is the trailing comment correct' # at t/12-rakuast/doc-declarator.rakutest line 58 # expected: "trailing comment" # got: Nil ok 14 - Raku: did we get a Map ok 15 - Raku: did we get an Array ok 16 - Raku: does it have one element ok 17 - Raku: did we get a Pod::Block::Declarator ok 18 - Raku: is the leading comment correct ok 19 - Raku: is the trailing comment correct 1..19 ok 13 - Simple enum with declarator pod # Subtest: Simple subset with declarator pod # #| leading comment # my subset Foo of Int #= trailing comment # , $=pod ok 1 - deparse ok 2 - AST: did we get a subset ok 3 - AST: did it get the right name ok 4 - AST: does the subset accept Int ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a subset ok 12 - Str: did it get the right name ok 13 - Str: does the subset accept Int ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct not ok 19 - Str: is the trailing comment correct # TODO Str: trailing comment dropped somehow # Failed test 'Str: is the trailing comment correct' # at t/12-rakuast/doc-declarator.rakutest line 58 # expected: "trailing comment" # got: Nil ok 20 - Raku: did we get a subset ok 21 - Raku: did it get the right name ok 22 - Raku: does the subset accept Int ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 14 - Simple subset with declarator pod # Subtest: Simple regex with declarator pod # #| leading comment # my regex foo { #= trailing comment # bar }, $=pod ok 1 - deparse ok 2 - AST: did we get a regex ok 3 - AST: did it get the right name ok 4 - AST: did we get an Array ok 5 - AST: does it have one element ok 6 - AST: did we get a Pod::Block::Declarator ok 7 - AST: is the object the target of the declarator ok 8 - AST: is the leading comment correct ok 9 - AST: is the trailing comment correct ok 10 - Str: did we get a regex ok 11 - Str: did it get the right name ok 12 - Str: did we get an Array ok 13 - Str: does it have one element ok 14 - Str: did we get a Pod::Block::Declarator ok 15 - Str: is the object the target of the declarator ok 16 - Str: is the leading comment correct ok 17 - Str: is the trailing comment correct ok 18 - Raku: did we get a regex ok 19 - Raku: did it get the right name ok 20 - Raku: did we get an Array ok 21 - Raku: does it have one element ok 22 - Raku: did we get a Pod::Block::Declarator ok 23 - Raku: is the object the target of the declarator ok 24 - Raku: is the leading comment correct ok 25 - Raku: is the trailing comment correct 1..25 ok 15 - Simple regex with declarator pod # Subtest: Sub with declarator pod on parameter (1) # sub a ( # #| leading comment # $b #= trailing comment # ) { }, $=pod ok 1 - deparse ok 2 - AST: did we get a sub ok 3 - AST: did sub get the right name ok 4 - AST: did parameter get the right name ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a sub ok 12 - Str: did sub get the right name ok 13 - Str: did parameter get the right name ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct ok 19 - Str: is the trailing comment correct ok 20 - Raku: did we get a sub ok 21 - Raku: did sub get the right name ok 22 - Raku: did parameter get the right name ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 16 - Sub with declarator pod on parameter (1) # Subtest: Sub with declarator pod on parameter (2) # sub a ( # #| leading comment # $b, #= trailing comment # $c # ) { }, $=pod ok 1 - deparse ok 2 - AST: did we get a sub ok 3 - AST: did sub get the right name ok 4 - AST: did parameter get the right name ok 5 - AST: did we get an Array ok 6 - AST: does it have one element ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading comment correct ok 10 - AST: is the trailing comment correct ok 11 - Str: did we get a sub ok 12 - Str: did sub get the right name ok 13 - Str: did parameter get the right name ok 14 - Str: did we get an Array ok 15 - Str: does it have one element ok 16 - Str: did we get a Pod::Block::Declarator ok 17 - Str: is the object the target of the declarator ok 18 - Str: is the leading comment correct ok 19 - Str: is the trailing comment correct ok 20 - Raku: did we get a sub ok 21 - Raku: did sub get the right name ok 22 - Raku: did parameter get the right name ok 23 - Raku: did we get an Array ok 24 - Raku: does it have one element ok 25 - Raku: did we get a Pod::Block::Declarator ok 26 - Raku: is the object the target of the declarator ok 27 - Raku: is the leading comment correct ok 28 - Raku: is the trailing comment correct 1..28 ok 17 - Sub with declarator pod on parameter (2) # Subtest: Sub with declarator pod on parameter (3) # sub a ( # #| leading comment b # $b, # #| leading comment c # $c # ) { }, $=pod ok 1 - deparse ok 2 - AST: did we get a sub ok 3 - AST: did sub get the right name ok 4 - AST: did first parameter get the right name ok 5 - AST: did second parameter get the right name ok 6 - AST: did we get an Array ok 7 - AST: does it have two elements ok 8 - AST: did we get a Pod::Block::Declarator ok 9 - AST: is the object the target of the declarator ok 10 - AST: is the leading comment b correct ok 11 - AST: did we get a Pod::Block::Declarator ok 12 - AST: is the object the target of the declarator ok 13 - AST: is the leading comment c correct ok 14 - Str: did we get a sub ok 15 - Str: did sub get the right name ok 16 - Str: did first parameter get the right name ok 17 - Str: did second parameter get the right name ok 18 - Str: did we get an Array ok 19 - Str: does it have two elements ok 20 - Str: did we get a Pod::Block::Declarator ok 21 - Str: is the object the target of the declarator ok 22 - Str: is the leading comment b correct ok 23 - Str: did we get a Pod::Block::Declarator ok 24 - Str: is the object the target of the declarator ok 25 - Str: is the leading comment c correct ok 26 - Raku: did we get a sub ok 27 - Raku: did sub get the right name ok 28 - Raku: did first parameter get the right name ok 29 - Raku: did second parameter get the right name ok 30 - Raku: did we get an Array ok 31 - Raku: does it have two elements ok 32 - Raku: did we get a Pod::Block::Declarator ok 33 - Raku: is the object the target of the declarator ok 34 - Raku: is the leading comment b correct ok 35 - Raku: did we get a Pod::Block::Declarator ok 36 - Raku: is the object the target of the declarator ok 37 - Raku: is the leading comment c correct 1..37 ok 18 - Sub with declarator pod on parameter (3) # Subtest: Sub with declarator pod on parameter (4) # #| leading sub # sub a ( #= trailing sub # #| leading param # $b #= trailing param # ) { }, $=pod ok 1 - deparse ok 2 - AST: did we get a sub ok 3 - AST: did sub get the right name ok 4 - AST: did parameter get the right name ok 5 - AST: did we get an Array ok 6 - AST: does it have two elements ok 7 - AST: did we get a Pod::Block::Declarator ok 8 - AST: is the object the target of the declarator ok 9 - AST: is the leading sub correct ok 10 - AST: is the trailing sub correct ok 11 - AST: did we get a Pod::Block::Declarator ok 12 - AST: is the object the target of the declarator ok 13 - AST: is the leading param correct ok 14 - AST: is the trailing param correct ok 15 - Str: did we get a sub ok 16 - Str: did sub get the right name ok 17 - Str: did parameter get the right name ok 18 - Str: did we get an Array ok 19 - Str: does it have two elements ok 20 - Str: did we get a Pod::Block::Declarator ok 21 - Str: is the object the target of the declarator ok 22 - Str: is the leading sub correct ok 23 - Str: is the trailing sub correct ok 24 - Str: did we get a Pod::Block::Declarator ok 25 - Str: is the object the target of the declarator ok 26 - Str: is the leading param correct ok 27 - Str: is the trailing param correct ok 28 - Raku: did we get a sub ok 29 - Raku: did sub get the right name ok 30 - Raku: did parameter get the right name ok 31 - Raku: did we get an Array ok 32 - Raku: does it have two elements ok 33 - Raku: did we get a Pod::Block::Declarator ok 34 - Raku: is the object the target of the declarator ok 35 - Raku: is the leading sub correct ok 36 - Raku: is the trailing sub correct ok 37 - Raku: did we get a Pod::Block::Declarator ok 38 - Raku: is the object the target of the declarator ok 39 - Raku: is the leading param correct ok 40 - Raku: is the trailing param correct 1..40 ok 19 - Sub with declarator pod on parameter (4) # Subtest: a simple lexical var # #| leading B # my $foo #= trailing C # , $=pod ok 1 - deparse ok 2 - did we find the paragraphs ok 1..2 ok 20 - a simple lexical var ok t/12-rakuast/doc-markup.rakutest ................................ 1..4 # Subtest: simple bold markup # B ok 1 - Str: deparse ok 2 - Raku: deparse 1..2 ok 1 - simple bold markup # Subtest: simple bold with italics markup # B bold> ok 1 - Str: deparse ok 2 - Raku: deparse 1..2 ok 2 - simple bold with italics markup # Subtest: link with code markup # L Programming Language|https://raku.org> ok 1 - Str: deparse ok 2 - Raku: deparse 1..2 ok 3 - link with code markup # Subtest: index entry with multiple lemmas # D ok 1 - Str: deparse ok 2 - Raku: deparse # M ok 3 - Str: deparse ok 4 - Raku: deparse # X ok 5 - Str: deparse ok 6 - Raku: deparse 1..6 ok 4 - index entry with multiple lemmas ok t/12-rakuast/enum.rakutest ...................................... 1..3 # Subtest: Simple enum # enum foo ok 1 - deparse ok 2 - AST: did it produce the right Map ok 3 - AST: was the enum installed Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 21 ok 4 - AST: first enum element Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 23 not ok 5 - AST: second enum element # TODO keys are not yet installed in OUR:: # Failed test 'AST: second enum element' # at t/12-rakuast/enum.rakutest line 42 # expected: 1 # got: 0 Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 25 not ok 6 - AST: third enum element # TODO keys are not yet installed in OUR:: # Failed test 'AST: third enum element' # at t/12-rakuast/enum.rakutest line 42 # expected: 2 # got: 0 ok 7 - Str: did it produce the right Map ok 8 - Str: was the enum installed ok 9 - Str: first enum element ok 10 - Str: second enum element # TODO keys are not yet installed in OUR:: ok 11 - Str: third enum element # TODO keys are not yet installed in OUR:: ok 12 - Raku: did it produce the right Map ok 13 - Raku: was the enum installed Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 21 ok 14 - Raku: first enum element Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 23 not ok 15 - Raku: second enum element # TODO keys are not yet installed in OUR:: # Failed test 'Raku: second enum element' # at t/12-rakuast/enum.rakutest line 44 # expected: 1 # got: 0 Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 25 not ok 16 - Raku: third enum element # TODO keys are not yet installed in OUR:: # Failed test 'Raku: third enum element' # at t/12-rakuast/enum.rakutest line 44 # expected: 2 # got: 0 1..16 ok 1 - Simple enum # Subtest: Simple lexical enum # my enum foo ; # MY:: ok 1 - deparse ok 2 - AST: is the constant *not* in OUR:: ok 3 - AST: was enum installed ok 4 - AST: first enum element ok 5 - AST: second enum element ok 6 - AST: third enum element ok 7 - Str: is the constant *not* in OUR:: ok 8 - Str: was enum installed ok 9 - Str: first enum element ok 10 - Str: second enum element ok 11 - Str: third enum element ok 12 - Raku: is the constant *not* in OUR:: ok 13 - Raku: was enum installed ok 14 - Raku: first enum element ok 15 - Raku: second enum element ok 16 - Raku: third enum element 1..16 ok 2 - Simple lexical enum # Subtest: Enum with preset values # enum foo (:0a, :1b, :2c) ok 1 - deparse ok 2 - AST: did it produce the right Map ok 3 - AST: was the enum installed Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 21 ok 4 - AST: first enum element Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 23 not ok 5 - AST: second enum element # TODO keys are not yet installed in OUR:: # Failed test 'AST: second enum element' # at t/12-rakuast/enum.rakutest line 118 # expected: 1 # got: 0 Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 25 not ok 6 - AST: third enum element # TODO keys are not yet installed in OUR:: # Failed test 'AST: third enum element' # at t/12-rakuast/enum.rakutest line 118 # expected: 2 # got: 0 ok 7 - Str: did it produce the right Map ok 8 - Str: was the enum installed ok 9 - Str: first enum element ok 10 - Str: second enum element # TODO keys are not yet installed in OUR:: ok 11 - Str: third enum element # TODO keys are not yet installed in OUR:: ok 12 - Raku: did it produce the right Map ok 13 - Raku: was the enum installed Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 21 ok 14 - Raku: first enum element Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 23 not ok 15 - Raku: second enum element # TODO keys are not yet installed in OUR:: # Failed test 'Raku: second enum element' # at t/12-rakuast/enum.rakutest line 120 # expected: 1 # got: 0 Use of uninitialized value of type Any in numeric context in sub test-enum at t/12-rakuast/enum.rakutest line 25 not ok 16 - Raku: third enum element # TODO keys are not yet installed in OUR:: # Failed test 'Raku: third enum element' # at t/12-rakuast/enum.rakutest line 120 # expected: 2 # got: 0 1..16 ok 3 - Enum with preset values ok t/12-rakuast/errors.rakutest .................................... 1..1 # Subtest: did we throws-like X::Syntax::Self::WithoutObject? 1..2 ok 1 - code dies ok 2 - right exception type (X::Syntax::Self::WithoutObject) ok 1 - did we throws-like X::Syntax::Self::WithoutObject? ok t/12-rakuast/heredocs.rakutest .................................. 1..12 # Subtest: One-part heredoc with literal piece # qq:to/CODE/ # hello # # goodbye # CODE ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - One-part heredoc with literal piece # Subtest: Heredoc with interpolated string variable works # qq:to/MESSAGE/ # $str world # MESSAGE ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - Heredoc with interpolated string variable works # Subtest: Heredoc with interpolated integer variable # qq:to/INTY/ # $int is the answer # INTY ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - Heredoc with interpolated integer variable # Subtest: Heredoc with 3 parts works # qq:to/MORE/ # The answer is $int of course! # MORE ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - Heredoc with 3 parts works # Subtest: Heredoc involving an interpolated block # qq:to// # An { # $bv # } block # ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - Heredoc involving an interpolated block # Subtest: words processor splits a heredoc into words # qq:w:to/WORDS/ # foo bar 42 # WORDS ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - words processor splits a heredoc into words # Subtest: Words processor applied to a heredoc with interpolation # qq:w:to/WORDS/ # ba$stuff 66 # WORDS ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 7 - Words processor applied to a heredoc with interpolation # Subtest: Using the val processor alone on a heredoc # qq:v:to/VAL/ # 42 # VAL ok 1 - deparse ok 2 - AST not ok 3 - Str # TODO problem in parsing static heredocs and :v # Failed test 'Str' # at t/12-rakuast/heredocs.rakutest line 181 # expected: IntStr.new(42, "42\n") # got: "42\n" ok 4 - Raku # TODO problem in parsing static heredocs and :v 1..4 ok 8 - Using the val processor alone on a heredoc # Subtest: Using the val processor in heredoc with interpolation # qq:v:to/VAL/ # 4$end # VAL ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 9 - Using the val processor in heredoc with interpolation # Subtest: Using the words and val processor in a heredoc # qq:w:v:to/VALS/ # foo bar 42 # VALS ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 10 - Using the words and val processor in a heredoc # Subtest: Words processor applied to a heredoc with interpolation # qq:w:v:to/HUH/ # ba$stuff 66 # HUH ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 11 - Words processor applied to a heredoc with interpolation # Subtest: Using the exec processor alone gives expected result # qq:x:to/GO/ # echo 123 # GO ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 12 - Using the exec processor alone gives expected result ok t/12-rakuast/highlight.rakutest ................................. 1..32 # Subtest: 'use nqp' not allowed 1..3 ok 1 - code dies ok 2 - right exception type (SafeActions::X::NotAllowedHighlighting) ok 3 - .what matches use nqp ok 1 - 'use nqp' not allowed # Subtest: 'use MONKEY' not allowed 1..3 ok 1 - code dies ok 2 - right exception type (SafeActions::X::NotAllowedHighlighting) ok 3 - .what matches use MONKEY ok 2 - 'use MONKEY' not allowed # Subtest: 'use MONKEY-GUTS' not allowed 1..3 ok 1 - code dies ok 2 - right exception type (SafeActions::X::NotAllowedHighlighting) ok 3 - .what matches use MONKEY-GUTS ok 3 - 'use MONKEY-GUTS' not allowed # Subtest: 'use Test' not allowed 1..3 ok 1 - code dies ok 2 - right exception type (SafeActions::X::NotAllowedHighlighting) ok 3 - .what matches module loading ok 4 - 'use Test' not allowed # Subtest: use and pass 1..2 ok 1 - using default ok 2 - using mapping ok 5 - use and pass # Subtest: class and attributes 1..2 ok 1 - using default ok 2 - using mapping ok 6 - class and attributes # Subtest: vars, if and say 1..2 ok 1 - using default ok 2 - using mapping ok 7 - vars, if and say # Subtest: simple regex 1..2 ok 1 - using default ok 2 - using mapping ok 8 - simple regex # Subtest: =alias 1..2 ok 1 - using default ok 2 - using mapping ok 9 - =alias # Subtest: =defn 1..2 ok 1 - using default ok 2 - using mapping ok 10 - =defn # Subtest: =for defn 1..2 ok 1 - using default ok 2 - using mapping ok 11 - =for defn # Subtest: =begin defn 1..2 ok 1 - using default ok 2 - using mapping ok 12 - =begin defn # Subtest: =config zip 1..2 ok 1 - using default ok 2 - using mapping ok 13 - =config zip # Subtest: =config zap 1..2 ok 1 - using default ok 2 - using mapping ok 14 - =config zap # Subtest: =config zop 1..2 ok 1 - using default ok 2 - using mapping ok 15 - =config zop # Subtest: =place zip 1..2 ok 1 - using default ok 2 - using mapping ok 16 - =place zip # Subtest: =place zap 1..2 ok 1 - using default ok 2 - using mapping ok 17 - =place zap # Subtest: =place zop 1..2 ok 1 - using default ok 2 - using mapping ok 18 - =place zop # Subtest: no statements, =finish 1..2 ok 1 - using default ok 2 - using mapping ok 19 - no statements, =finish # Subtest: statements, =finish 1..2 ok 1 - using default ok 2 - using mapping ok 20 - statements, =finish # Subtest: no statements, no =finish 1..2 ok 1 - using default ok 2 - using mapping ok 21 - no statements, no =finish # Subtest: =code 1..2 ok 1 - using default ok 2 - using mapping ok 22 - =code # Subtest: =for code 1..2 ok 1 - using default ok 2 - using mapping ok 23 - =for code # Subtest: =begin code 1..2 ok 1 - using default ok 2 - using mapping ok 24 - =begin code # Subtest: implicit code block 1..2 ok 1 - using default ok 2 - using mapping ok 25 - implicit code block # Subtest: procedural table 1..2 ok 1 - using default ok 2 - using mapping ok 26 - procedural table # Subtest: declarator doc 1..2 ok 1 - using default ok 2 - using mapping ok 27 - declarator doc # Subtest: abbreviated visual table 1..2 ok 1 - using default ok 2 - using mapping ok 28 - abbreviated visual table # Subtest: for visual table 1..2 ok 1 - using default ok 2 - using mapping ok 29 - for visual table # Subtest: visual table 1..2 ok 1 - using default ok 2 - using mapping ok 30 - visual table # Subtest: use v6 (1) 1..2 ok 1 - using default ok 2 - using mapping ok 31 - use v6 (1) # Subtest: use v6 (2) 1..2 ok 1 - using default ok 2 - using mapping ok 32 - use v6 (2) ok t/12-rakuast/label.rakutest ..................................... 1..19 ok 1 - .new constructs a label ok 2 - is the name correct ok 3 - is default scope ok ok 4 - are allowed-scopes ok ok 5 - Deparses in an expected way # Subtest: Statement list with labels evaluates to its final statement # FOO: ++$x; # BAR: ; # ++$y ok 1 - deparse 1..1 ok 6 - Statement list with labels evaluates to its final statement # Subtest: Basic if structure with a label # FOO: if $a { # 1 # } ok 1 - deparse 1..1 ok 7 - Basic if structure with a label # Subtest: Basic with structure with label # FOO: with $a -> $x { # $x # } ok 1 - deparse 1..1 ok 8 - Basic with structure with label # Subtest: simple unless with a false condition and a label # FOO: unless $x { # ++$y # } ok 1 - deparse 1..1 ok 9 - simple unless with a false condition and a label # Subtest: simple without with an undefined condition and a label # FOO: without $x { # $y++ # } ok 1 - deparse 1..1 ok 10 - simple without with an undefined condition and a label # Subtest: given with explicit signature # FOO: given $a -> $x { # $x # } ok 1 - deparse 1..1 ok 11 - given with explicit signature # Subtest: While loop at statement level evaluates to Nil # FOO: while $x { # --$x # } ok 1 - deparse ok 2 - AST: while loop at statement level evaluates to Nil ok 3 - AST: Loop variable was decremented to zero ok 4 - Str: while loop at statement level evaluates to Nil ok 5 - Str: Loop variable was decremented to zero 1..5 ok 12 - While loop at statement level evaluates to Nil # Subtest: Until loop at statement level evaluates to Nil # FOO: until !$x { # --$x # } ok 1 - deparse ok 2 - AST: until loop at statement level evaluates to Nil ok 3 - AST: Loop variable was decremented to zero ok 4 - Str: until loop at statement level evaluates to Nil ok 5 - Str: Loop variable was decremented to zero 1..5 ok 13 - Until loop at statement level evaluates to Nil # Subtest: Repeat while loop at statement level evaluates to Nil # FOO: repeat { # --$x # } while $x ok 1 - deparse ok 2 - AST: repeat until loop at statement level evaluates to Nil ok 3 - AST: loop variable decremented to 0 ok 4 - Str: repeat until loop at statement level evaluates to Nil ok 5 - Str: loop variable decremented to 0 1..5 ok 14 - Repeat while loop at statement level evaluates to Nil # Subtest: Repeat until loop at statement level evaluates to Nil # FOO: repeat { # --$x # } until $x ok 1 - deparse ok 2 - AST: repeat until loop at statement level evaluates to Nil ok 3 - AST: loop ran once ok 4 - DEPARSE: repeat until loop at statement level evaluates to Nil ok 5 - DEPARSE: loop ran once 1..5 ok 15 - Repeat until loop at statement level evaluates to Nil # Subtest: Loop block with setup and increment expression # FOO: loop (my $i = 9; $i; --$i) { # ++$count # } ok 1 - deparse ok 2 - AST: loop with setup and increment evaluates to Nil ok 3 - AST: loop ran as expected ok 4 - Str: loop with setup and increment evaluates to Nil ok 5 - Str: loop ran as expected 1..5 ok 16 - Loop block with setup and increment expression # Subtest: Statement level for loop # FOO: for 2 .. 7 -> $x { # ++$count # } ok 1 - deparse ok 2 - AST: for loop evaluates to Nil ok 3 - AST: loop ran with expected number of times ok 4 - Str: for loop evaluates to Nil ok 5 - Str: loop ran with expected number of times 1..5 ok 17 - Statement level for loop # FOO: use Test; # ok(1, "use statements work") ok 18 - deparse # Subtest: check parsing of 'need' pragma # FOO: need Test ok 1 - deparse 1..1 ok 19 - check parsing of 'need' pragma ok t/12-rakuast/literals.rakutest .................................. 1..9 # Subtest: RakuAST::IntLiteral with constant 1..4 # 42 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku ok 1 - RakuAST::IntLiteral with constant # Subtest: RakuAST::IntLiteral with calculated value 1..4 # 106 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku ok 2 - RakuAST::IntLiteral with calculated value # Subtest: RakuAST::NumLiteral with constant 1..4 # 400e0 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku ok 3 - RakuAST::NumLiteral with constant # Subtest: RakuAST::NumLiteral with calculated value 1..4 # 20050e0 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku ok 4 - RakuAST::NumLiteral with calculated value # Subtest: RakuAST::RatLiteral with constant 1..4 # 1.5 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku ok 5 - RakuAST::RatLiteral with constant # Subtest: RakuAST::RatLiteral with calculated value 1..4 # 4.5 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku ok 6 - RakuAST::RatLiteral with calculated value # Subtest: RakuAST::ComplexLiteral with constant 1..4 # <42+6.66i> ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku ok 7 - RakuAST::ComplexLiteral with constant # Subtest: RakuAST::VersionLiteral with constant 1..4 # v4.2 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku ok 8 - RakuAST::VersionLiteral with constant # Subtest: RakuAST::VersionLiteral with constructed version 1..4 # v6.66 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku ok 9 - RakuAST::VersionLiteral with constructed version ok t/12-rakuast/meta-operators.rakutest ............................ 1..11 # Subtest: Negate meta-op evaluates to expected value # 1 !== 2 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - Negate meta-op evaluates to expected value # Subtest: Assignment meta-op evaluates to expected value # $a += 3 ok 1 - deparse ok 2 - AST: evaluates to expected value ok 3 - AST: Really did mutate the variable ok 4 - Str: evaluates to expected value ok 5 - Str: Really did mutate the variable ok 6 - Raku: evaluates to expected value ok 7 - Raku: Really did mutate the variable 1..7 ok 2 - Assignment meta-op evaluates to expected value # Subtest: Reverse meta-op evaluates to expected value # 42 R- 666 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - Reverse meta-op evaluates to expected value # Subtest: Cross meta-op evaluates to expected value # (1, 2) X+ (1, 3) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - Cross meta-op evaluates to expected value # Subtest: Hyper meta-op evaluates to expected value # (1, 2) >>+>> 1 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - Hyper meta-op evaluates to expected value # Subtest: Hypering evaluates to expected value # >>.uc ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - Hypering evaluates to expected value # Subtest: Zip meta-op evaluates to expected value # (1, 2) Z== (1, 3) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 7 - Zip meta-op evaluates to expected value # Subtest: Assignment meta-op with short-circuit || evaluates to true LHS # $test ||= $update++ ok 1 - deparse ok 2 - AST: short-circuit || evaluates to true LHS ok 3 - AST: Really did short-circuit, and not evaluate RHS ok 4 - Str: short-circuit || evaluates to true LHS ok 5 - Str: Really did short-circuit, and not evaluate RHS ok 6 - Raku: short-circuit || evaluates to true LHS ok 7 - Raku: Really did short-circuit, and not evaluate RHS ok 8 - Str: short-circuit || evaluates to true LHS ok 9 - Str: Really did short-circuit, and not evaluate RHS ok 10 - AST: no short-circuit || evaluates to RHS when LHS false ok 11 - AST: Really did evaluate RHS ok 12 - Str: no short-circuit || evaluates to RHS when LHS false ok 13 - Str: Really did evaluate RHS ok 14 - Raku: no short-circuit || evaluates to RHS when LHS false ok 15 - Raku: Really did evaluate RHS 1..15 ok 8 - Assignment meta-op with short-circuit || evaluates to true LHS # Subtest: Literal reduce meta-op on left associative operator # [+] 1, 2, 3 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 9 - Literal reduce meta-op on left associative operator # Subtest: Array reduce meta-op on left associative operator # [+] @a ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 10 - Array reduce meta-op on left associative operator # Subtest: Triangle reduce meta-op on left associative operator # [\+] 1, 2, 3 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 11 - Triangle reduce meta-op on left associative operator ok t/12-rakuast/name.rakutest ...................................... 1..4 # Subtest: name from identifier ok 1 - .from-identifier constructs a name ok 2 - The element is considered an identifier ok 3 - Has one part ok 4 - Name has a single part ok 5 - Part has expected name ok 6 - Deparses in an expected way ok 7 - rakufies in an expected way 1..7 ok 1 - name from identifier # Subtest: name from identifier parts ok 1 - .from-identifier-parts constructs a name ok 2 - the element is NOT considered an identifier ok 3 - Has two parts ok 4 - first part is simple ok 5 - second part is simple ok 6 - part 1 has expected name ok 7 - part 2 has expected name ok 8 - deparses in an expected way ok 9 - rakufies in an expected way 1..9 ok 2 - name from identifier parts # Subtest: name from different parts ok 1 - .new constructs a name ok 2 - the element is NOT considered an identifier ok 3 - Has two parts ok 4 - first part is simple ok 5 - second part is empty ok 6 - part 1 has expected name ok 7 - deparses in an expected way ok 8 - rakufies in an expected way 1..8 ok 3 - name from different parts # Subtest: name from expressions ok 1 - .new constructs a name ok 2 - the element is NOT considered an identifier ok 3 - Has one parts ok 4 - second part is ok ok 5 - deparses in an expected way ok 6 - rakufies in an expected way 1..6 ok 4 - name from expressions ok t/12-rakuast/nqp.rakutest ....................................... 1..4 # Subtest: Check number of chars # nqp::chars($x) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - Check number of chars # Subtest: Check constant # nqp::const::STAT_FILESIZE ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - Check constant # Subtest: Set up a lookup hash # nqp::hash("a", 42, "b", 666) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - Set up a lookup hash # Subtest: Set up a list # nqp::list("a", "b", "c") ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - Set up a list ok t/12-rakuast/operators.rakutest ................................. 1..30 # Subtest: Application of an infix operator on two literals # 44 + 22 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - Application of an infix operator on two literals # Subtest: The special form || operator works (1) # 22 || 44 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - The special form || operator works (1) # Subtest: The special form || operator works (2) # 0 || 44 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - The special form || operator works (2) # Subtest: The special form or operator works (1) # 22 or 44 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - The special form or operator works (1) # Subtest: The special form or operator works (2) # 0 or 44 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - The special form or operator works (2) # Subtest: The special form && operator works (1) # 22 && 44 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - The special form && operator works (1) # Subtest: The special form && operator works (2) # 0 && 44 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 7 - The special form && operator works (2) # Subtest: The special form and operator works (1) # 22 and 44 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 8 - The special form and operator works (1) # Subtest: The special form and operator works (2) # 0 and 44 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 9 - The special form and operator works (2) # Subtest: Application of a prefix operator to a literal (1) # ?2 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 10 - Application of a prefix operator to a literal (1) # Subtest: Application of a prefix operator to a literal (2) # ?0 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 11 - Application of a prefix operator to a literal (2) # Subtest: Basic assignment to a Scalar container # $a = 4 ok 1 - deparse ok 2 - AST: return value is ok ok 3 - AST: was variable set ok ok 4 - Str: return value is ok ok 5 - Str: was variable set ok ok 6 - Raku: return value is ok ok 7 - Raku: was variable set ok 1..7 ok 12 - Basic assignment to a Scalar container # Subtest: Application of a list infix operator on three operands # 10, 11, 12 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 13 - Application of a list infix operator on three operands # Subtest: Application of a list infix operator on no operands # () ok 1 - deparse ok 2 - AST ok 3 - Str 1..3 ok 14 - Application of a list infix operator on no operands # Subtest: Chaining operator has correct outcome # 5 > $x++ > 3 ok 1 - deparse ok 2 - AST: did the expression get evaluated ok 3 - AST: was the update done ok 4 - Str: did the expression get evaluated ok 5 - Str: was the update done ok 6 - Raku: did the expression get evaluated ok 7 - Raku: was the update done 1..7 ok 15 - Chaining operator has correct outcome # Subtest: Correct outcome of ternary operator # $a ?? 22 !! 33 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku ok 5 - AST ok 6 - Str ok 7 - Raku 1..7 ok 16 - Correct outcome of ternary operator # Subtest: Correct outcome of nested ternary operator # $a # ?? $b # ?? 22 # !! 33 # !! 44 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku ok 5 - AST ok 6 - Str ok 7 - Raku ok 8 - AST ok 9 - Str ok 10 - Raku ok 11 - AST ok 12 - Str ok 13 - Raku 1..13 ok 17 - Correct outcome of nested ternary operator # Subtest: Application of dotty infix `.` # "foo" .uc ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 18 - Application of dotty infix `.` # Subtest: Application of dotty infix `.=` evaluates to expected value # $var .= tc ok 1 - deparse ok 2 - AST: did we get the right value ok 3 - AST: was the value stored ok 4 - Str: did we get the right value ok 5 - Str: was the value stored ok 6 - Raku: did we get the right value ok 7 - Raku: was the value stored 1..7 ok 19 - Application of dotty infix `.=` evaluates to expected value # Subtest: Application of a function infix on two literals # 44 [&sum] 22 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 20 - Application of a function infix on two literals # Subtest: Application of ff # @source.grep({ "A" ff "B" }) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 21 - Application of ff # Subtest: Application of ^ff # @source.grep({ "A" ^ff "B" }) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 22 - Application of ^ff # Subtest: Application of ff^ # @source.grep({ "A" ff^ "B" }) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 23 - Application of ff^ # Subtest: Application of ^ff^ # @source.grep({ "A" ^ff^ "B" }) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 24 - Application of ^ff^ # Subtest: Application of fff # @source.grep({ / A/ fff / B/ }) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 25 - Application of fff # Subtest: Application of ^fff # @source.grep({ / A/ ^fff / B/ }) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 26 - Application of ^fff # Subtest: Application of fff^ # @source.grep({ / A/ fff^ / B/ }) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 27 - Application of fff^ # Subtest: Application of ^fff^ # @source.grep({ / A/ ^fff^ / B/ }) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 28 - Application of ^fff^ # Subtest: Feed operation ==> # @a ==> map(&flip) ==> @b ok 1 - deparse ok 2 - AST: EVAL ==> ok 3 - AST: stored ==> ok 4 - Str: EVAL ==> ok 5 - Str: stored ==> ok 6 - Raku: EVAL ==> ok 7 - Raku: stored ==> 1..7 ok 29 - Feed operation ==> # Subtest: Feed operation <== # @b <== map(&flip) <== @a ok 1 - deparse ok 2 - AST: EVAL <== ok 3 - AST: stored <== ok 4 - Str: EVAL <== ok 5 - Str: stored <== ok 6 - Raku: EVAL <== ok 7 - Raku: stored <== 1..7 ok 30 - Feed operation <== ok t/12-rakuast/origins.rakutest ................................... 1..2 # Subtest: Locations 1..12 # Subtest: Position 3 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 1 - Position 3 # Subtest: Position 14 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 2 - Position 14 # Subtest: Position 18 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 3 - Position 18 # Subtest: Position 53 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 4 - Position 53 # Subtest: Position 58 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 5 - Position 58 # Subtest: Position 61 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 6 - Position 61 # Subtest: Position 83 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 7 - Position 83 # Subtest: Position 86 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 8 - Position 86 # Subtest: Position 98 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 9 - Position 98 # Subtest: Position 113 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 10 - Position 113 # Subtest: Position 131 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 11 - Position 131 # Subtest: Position 135 1..2 # Subtest: Non-key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 1 - Non-key node # Subtest: Key node 1..5 ok 1 - node type ok 2 - attribute file ok 3 - attribute from ok 4 - attribute line ok 5 - attribute orig-line ok 2 - Key node ok 12 - Position 135 ok 1 - Locations # Subtest: Backtrace with line directive 1..1 # Subtest: die after a line directive 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 1 - die after a line directive ok 2 - Backtrace with line directive ok t/12-rakuast/pair.rakutest ...................................... 1..8 # Subtest: Fat arrow syntax forms a Pair # answer => 42 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - Fat arrow syntax forms a Pair # Subtest: True colonpair forms a Pair with value True # :r ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - True colonpair forms a Pair with value True # Subtest: False colonpair forms a Pair with value False # :!r ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - False colonpair forms a Pair with value False # Subtest: Number colonpair forms a Pair with the correct Int value # :42answer ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - Number colonpair forms a Pair with the correct Int value # Subtest: Value colonpair forms a Pair with the correct value (1) # :cheese("stilton") ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - Value colonpair forms a Pair with the correct value (1) # Subtest: Value colonpair forms a Pair with the correct value (2) # :cheese ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - Value colonpair forms a Pair with the correct value (2) # Subtest: Value colonpair forms a Pair with the correct value (3) # :cheese ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 7 - Value colonpair forms a Pair with the correct value (3) # Subtest: Variable colonpair forms a Pair that looks up the variable # :$curry ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 8 - Variable colonpair forms a Pair that looks up the variable ok t/12-rakuast/placeholder.rakutest ............................... 1..6 # Subtest: Placeholder positional parameter # sub { # $^pos # } ok 1 - deparse ok 2 - AST: Sub has one params elem ok 3 - AST: The block has 1 arity ok 4 - AST: The block has 1 count ok 5 - AST: Correct variable name ok 6 - AST: It is not optional ok 7 - AST: Invoking the sub with a positional argument works ok 8 - AST: Invoking the sub without an argument dies ok 9 - Str: Sub has one params elem ok 10 - Str: The block has 1 arity ok 11 - Str: The block has 1 count ok 12 - Str: Correct variable name ok 13 - Str: It is not optional ok 14 - Str: Invoking the sub with a positional argument works ok 15 - Str: Invoking the sub without an argument dies ok 16 - Raku: Sub has one params elem ok 17 - Raku: The block has 1 arity ok 18 - Raku: The block has 1 count ok 19 - Raku: Correct variable name ok 20 - Raku: It is not optional ok 21 - Raku: Invoking the sub with a positional argument works ok 22 - Raku: Invoking the sub without an argument dies 1..22 ok 1 - Placeholder positional parameter # Subtest: Placeholder named parameter # sub { # $:named # } ok 1 - deparse ok 2 - AST: Sub has one params elem ok 3 - AST: The block has 0 arity ok 4 - AST: The block has 0 count ok 5 - AST: Correct variable name ok 6 - AST: Correct named name ok 7 - AST: It is not optional ok 8 - AST: Invoking the sub with a named argument works ok 9 - AST: Invoking the sub without an argument dies ok 10 - Str: Sub has one params elem ok 11 - Str: The block has 0 arity ok 12 - Str: The block has 0 count ok 13 - Str: Correct variable name ok 14 - Str: Correct named name ok 15 - Str: It is not optional ok 16 - Str: Invoking the sub with a named argument works ok 17 - Str: Invoking the sub without an argument dies 1..17 ok 2 - Placeholder named parameter # Subtest: Placeholder slurpy array # sub { # @_ # } ok 1 - deparse ok 2 - AST: Sub has one params elem ok 3 - AST: The block has 0 arity ok 4 - AST: The block has Inf count ok 5 - AST: Correct variable name ok 6 - AST: It is not optional ok 7 - AST: Invoking sub with a list works ok 8 - AST: Invoking the sub without arguments works ok 9 - Str: Sub has one params elem ok 10 - Str: The block has 0 arity ok 11 - Str: The block has Inf count ok 12 - Str: Correct variable name ok 13 - Str: It is not optional ok 14 - Str: Invoking sub with a list works ok 15 - Str: Invoking the sub without arguments works 1..15 ok 3 - Placeholder slurpy array # Subtest: Placeholder slurpy hash # sub { # %_ # } ok 1 - deparse ok 2 - AST: Sub has one params elem ok 3 - AST: The block has 0 arity ok 4 - AST: The block has 0 count ok 5 - AST: Correct variable name ok 6 - AST: It is not optional ok 7 - AST: Invoking sub with nameds works ok 8 - AST: Invoking the sub without arguments works ok 9 - Str: Sub has one params elem ok 10 - Str: The block has 0 arity ok 11 - Str: The block has 0 count ok 12 - Str: Correct variable name ok 13 - Str: It is not optional ok 14 - Str: Invoking sub with nameds works ok 15 - Str: Invoking the sub without arguments works 1..15 ok 4 - Placeholder slurpy hash # Subtest: Placeholder fake slurpy array # sub (@_) { # @_ # } ok 1 - deparse ok 2 - AST: Sub has one params elem ok 3 - AST: The block has 1 arity ok 4 - AST: The block has 1 count ok 5 - AST: Correct variable name ok 6 - AST: It is not optional ok 7 - AST: Invoking sub with a list works ok 8 - AST: Invoking the sub with empty list works ok 9 - Str: Sub has one params elem ok 10 - Str: The block has 1 arity ok 11 - Str: The block has 1 count ok 12 - Str: Correct variable name ok 13 - Str: It is not optional ok 14 - Str: Invoking sub with a list works ok 15 - Str: Invoking the sub with empty list works 1..15 ok 5 - Placeholder fake slurpy array # Subtest: Placeholder fake slurpy hash # sub (%_) { # %_ # } ok 1 - deparse ok 2 - AST: Sub has one params elem ok 3 - AST: The block has 1 arity ok 4 - AST: The block has 1 count ok 5 - AST: Correct variable name ok 6 - AST: It is not optional ok 7 - AST: Invoking sub with hash works ok 8 - AST: Invoking the sub with empty hash ok 9 - Str: Sub has one params elem ok 10 - Str: The block has 1 arity ok 11 - Str: The block has 1 count ok 12 - Str: Correct variable name ok 13 - Str: It is not optional ok 14 - Str: Invoking sub with hash works ok 15 - Str: Invoking the sub with empty hash 1..15 ok 6 - Placeholder fake slurpy hash ok t/12-rakuast/postfix.rakutest ................................... 1..20 # Subtest: Application of a positive power postfix operator # 3²² ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - Application of a positive power postfix operator # Subtest: Application of a negative power postfix operator # 4⁻² ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - Application of a negative power postfix operator # Subtest: Application of a (user-defined) postfix operator to a literal # 4! ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - Application of a (user-defined) postfix operator to a literal # Subtest: Basic single-dimension array index # @a[5] ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - Basic single-dimension array index # Subtest: Basic single-dimension array index with colonpair # @a[5]:exists ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - Basic single-dimension array index with colonpair # Subtest: Zen array slice # @a[] ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - Zen array slice # Subtest: Zen array slice # @a[]:v ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 7 - Zen array slice # Subtest: Multi-dimensional array indexing # @a[2; 1] ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 8 - Multi-dimensional array indexing # Subtest: Basic single-dimension hash index # %h{"s"} ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 9 - Basic single-dimension hash index # Subtest: Basic single-dimension hash index with colonpairs # %h{"s"}:p ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 10 - Basic single-dimension hash index with colonpairs # Subtest: Zen hash slice # %h{} ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 11 - Zen hash slice # Subtest: Zen hash slice with colonpairs # %h{}:k ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 12 - Zen hash slice with colonpairs # Subtest: Basic literal hash index # %h ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 13 - Basic literal hash index # Subtest: Basic literal hash index with colonpairs # %h:exists ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 14 - Basic literal hash index with colonpairs # Subtest: Literal hash index with multiple keys # %h ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 15 - Literal hash index with multiple keys # Subtest: Literal hash index with multiple keys with colonpairs # %h:exists ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 16 - Literal hash index with multiple keys with colonpairs # Subtest: Empty literal hash index works as zen slice # %h<> ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 17 - Empty literal hash index works as zen slice # Subtest: Empty literal hash index works as zen slice with colonpairs # %h<>:v ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 18 - Empty literal hash index works as zen slice with colonpairs # Subtest: Multi-dimensional hash indexing # %h{"y"; "a"} ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 19 - Multi-dimensional hash indexing # Subtest: Multi-dimensional hash indexing with colonpairs # %h{"y"; "a"}:v ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 20 - Multi-dimensional hash indexing with colonpairs ok t/12-rakuast/regex-assertion.rakutest ........................... 1..27 # Subtest: Named assertion matches correctly # / / ok 1 - deparse ok 2 - AST: did we get correct match ok 3 - AST: correct match keys ok 4 - AST: correct match captured ok 5 - Str: did we get correct match ok 6 - Str: correct match keys ok 7 - Str: correct match captured ok 8 - Raku: did we get correct match ok 9 - Raku: correct match keys ok 10 - Raku: correct match captured 1..10 ok 1 - Named assertion matches correctly # Subtest: Non-capturing named assertion matches correctly # / <.alpha>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 2 - Non-capturing named assertion matches correctly # Subtest: Named assertion with alias matches correctly # / / ok 1 - deparse ok 2 - AST: did we get correct match ok 3 - AST: correct match keys ok 4 - AST: correct match captured (original name) ok 5 - AST: correct match captured (aliased name) ok 6 - Str: did we get correct match ok 7 - Str: correct match keys ok 8 - Str: correct match captured (original name) ok 9 - Str: correct match captured (aliased name) 1..9 ok 3 - Named assertion with alias matches correctly # Subtest: Non-capturing named assertion with alias matches correctly # / / ok 1 - deparse ok 2 - AST: did we get correct match ok 3 - AST: correct match keys ok 4 - AST: correct match captured (aliased name) ok 5 - Str: did we get correct match ok 6 - Str: correct match keys ok 7 - Str: correct match captured (aliased name) 1..7 ok 4 - Non-capturing named assertion with alias matches correctly # Subtest: Lookahead assertion with named rule works # / \w/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 5 - Lookahead assertion with named rule works # Subtest: Negated lookahead assertion with named rule works # / \w/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 6 - Negated lookahead assertion with named rule works # Subtest: Lookahead assertion calling before with a regex arg works # / \w/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 7 - Lookahead assertion calling before with a regex arg works # Subtest: Negated lookahead assertion calling before with a regex arg works # / \w/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 8 - Negated lookahead assertion calling before with a regex arg works # Subtest: Character class enumeration assertion works # / <+[a \d c..f]>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 9 - Character class enumeration assertion works # Subtest: Negated character class enumeration assertion works # / <-[a \d c..f]>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 10 - Negated character class enumeration assertion works # Subtest: Character property assertion works # / <+:N>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 11 - Character property assertion works # Subtest: Inverted character property assertion works # / <+:!N>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 12 - Inverted character property assertion works # Subtest: Negated character property assertion works # / <-:N>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 13 - Negated character property assertion works # Subtest: Multiple character property assertion works # / <+:L -:Lu>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 14 - Multiple character property assertion works # Subtest: Character property with expression assertion works # / <+:Block("Basic Latin")>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 15 - Character property with expression assertion works # Subtest: Negated character property with expression assertion works # / <-:Block("Basic Latin")>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 16 - Negated character property with expression assertion works # Subtest: Rule assertion works # / <+alpha>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 17 - Rule assertion works # Subtest: Negated rule assertion works # / <-alpha>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 18 - Negated rule assertion works # Subtest: Multiple rule assertions work # / <+alpha -xdigit>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 19 - Multiple rule assertions work # Subtest: Pass assertion works # / a / ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 20 - Pass assertion works # Subtest: Fail assertion works # / a / ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL ok 2 - Str: EVAL ok 3 - Raku: EVAL ok 2 - doesn't match 1..2 ok 21 - Fail assertion works # Subtest: Assertion with predicate block works # / o/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 22 - Assertion with predicate block works # Subtest: Negated assertion with predicate block works # / o/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 23 - Negated assertion with predicate block works # Subtest: Assertion with interpolated var works # / <$expected>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 24 - Assertion with interpolated var works # Subtest: Assertion with interpolated block works # / o<{ # "o" # }>/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 25 - Assertion with interpolated block works # Subtest: Assertion with recursive ast works # / o[<~~> | a]/ ok 1 - deparse # Subtest: matches 1..9 ok 1 - AST: EVAL ok 2 - AST: No positional captures ok 3 - AST: No named captures ok 4 - Str: EVAL ok 5 - Str: No positional captures ok 6 - Str: No named captures ok 7 - Raku: EVAL ok 8 - Raku: No positional captures ok 9 - Raku: No named captures ok 2 - matches 1..2 ok 26 - Assertion with recursive ast works # Subtest: Assertion with callable works # / <&abc>/ ok 1 - deparse ok 2 - AST: EVAL ok 3 - AST: No positional captures ok 4 - AST: No named captures ok 5 - Str: EVAL ok 6 - Str: No positional captures ok 7 - Str: No named captures ok 8 - Raku: EVAL ok 9 - Raku: No positional captures ok 10 - Raku: No named captures 1..10 ok 27 - Assertion with callable works ok t/12-rakuast/regex-charclass.rakutest ........................... 1..5 # Subtest: All of the simple character classes # / ."\b"\r\d\e\f\h\n\0\s\t\v\w/ ok 1 - deparse ok 2 - AST: pass case ok 3 - Str: pass case ok 4 - Raku: pass case 1..4 ok 1 - All of the simple character classes # Subtest: All of the simple character classes than can be negated # / \R\D\E\F\H\N\S\T\V\W/ ok 1 - deparse ok 2 - AST: pass case ok 3 - Str: pass case ok 4 - Raku: pass case 1..4 ok 2 - All of the simple character classes than can be negated # Subtest: A single unicode character specified by name # / \c[COMMA]/ ok 1 - deparse ok 2 - AST: pass case ok 3 - Str: pass case ok 4 - Raku: pass case 1..4 ok 3 - A single unicode character specified by name # Subtest: Multiple unicode characters specified by name # / \c[REGIONAL INDICATOR SYMBOL LETTER U, REGIONAL INDICATOR SYMBOL LETTER A]/ ok 1 - deparse ok 2 - AST: pass case ok 3 - Str: pass case ok 4 - Raku: pass case 1..4 ok 4 - Multiple unicode characters specified by name # Subtest: Multiple unicode characters specified by name negated # / \C[REGIONAL INDICATOR SYMBOL LETTER U, REGIONAL INDICATOR SYMBOL LETTER A]/ ok 1 - deparse ok 2 - AST: pass case ok 3 - Str: pass case ok 4 - Raku: pass case 1..4 ok 5 - Multiple unicode characters specified by name negated ok t/12-rakuast/regex-declaration.rakutest ......................... 1..3 # Subtest: Simple regex declaration # my regex aplus { a+ } ok 1 - deparse ok 2 - AST: is the name ok ok 3 - AST: did we get correct match ok 4 - AST: did we get match for 'aaaa' ok 5 - AST: did it not match with ratchet ok 6 - Str: is the name ok ok 7 - Str: did we get correct match ok 8 - Str: did we get match for 'aaaa' ok 9 - Str: did it not match with ratchet ok 10 - Raku: is the name ok ok 11 - Raku: did we get correct match ok 12 - Raku: did we get match for 'aaaa' ok 13 - Raku: did it not match with ratchet 1..13 ok 1 - Simple regex declaration # Subtest: Simple token declaration # my token aplus { a+ } ok 1 - deparse ok 2 - AST: is the name ok ok 3 - AST: did we get match ok 4 - AST: did we get match for 'aaaa' ok 5 - AST: did it not match ok 6 - Str: is the name ok ok 7 - Str: did we get match ok 8 - Str: did we get match for 'aaaa' ok 9 - Str: did it not match ok 10 - Raku: is the name ok ok 11 - Raku: did we get match ok 12 - Raku: did we get match for 'aaaa' ok 13 - Raku: did it not match 1..13 ok 2 - Simple token declaration # Subtest: Simple rule declaration # my rule aplus { a+ } ok 1 - deparse ok 2 - AST: is the name ok ok 3 - AST: did we get match for 'aaaa' ok 4 - AST: did we get match for 'aaaa ' ok 5 - AST: did it not match ok 6 - Str: is the name ok ok 7 - Str: did we get match for 'aaaa' ok 8 - Str: did we get match for 'aaaa ' ok 9 - Str: did it not match ok 10 - Raku: is the name ok ok 11 - Raku: did we get match for 'aaaa' ok 12 - Raku: did we get match for 'aaaa ' ok 13 - Raku: did it not match 1..13 ok 3 - Simple rule declaration ok t/12-rakuast/regex-substitution.rakutest ........................ 1..7 # Subtest: Simple literal substitution on topic # s/o/x/ ok 1 - deparse ok 2 - AST: did we get right return value ok 3 - AST: did it set $/ correctly ok 4 - AST: is topic changed ok 5 - Str: did we get right return value ok 6 - Str: did it set $/ correctly ok 7 - Str: is topic changed ok 8 - Raku: did we get right return value ok 9 - Raku: did it set $/ correctly ok 10 - Raku: is topic changed 1..10 ok 1 - Simple literal substitution on topic # Subtest: Simple literal modification on topic # S/o/x/ ok 1 - deparse ok 2 - AST: did we get right return value ok 3 - AST: did it set $/ correctly ok 4 - AST: is topic unchanged ok 5 - Str: did we get right return value ok 6 - Str: did it set $/ correctly ok 7 - Str: is topic unchanged ok 8 - Raku: did we get right return value ok 9 - Raku: did it set $/ correctly ok 10 - Raku: is topic unchanged 1..10 ok 2 - Simple literal modification on topic # Subtest: Simple literal substitution using infix syntax # s{o} = "x" ok 1 - deparse ok 2 - AST: did we get right return value ok 3 - AST: did it set $/ correctly ok 4 - AST: is the result correct ok 5 - Str: did we get right return value ok 6 - Str: did it set $/ correctly ok 7 - Str: is the result correct ok 8 - Raku: did we get right return value ok 9 - Raku: did it set $/ correctly ok 10 - Raku: is the result correct 1..10 ok 3 - Simple literal substitution using infix syntax # Subtest: Simple literal substitution on variable # $string ~~ s/o/x/ ok 1 - deparse ok 2 - AST: did we get right return value ok 3 - AST: did it set $/ correctly ok 4 - AST: is the result correct ok 5 - Str: did we get right return value ok 6 - Str: did it set $/ correctly ok 7 - Str: is the result correct ok 8 - Raku: did we get right return value ok 9 - Raku: did it set $/ correctly ok 10 - Raku: is the result correct 1..10 ok 4 - Simple literal substitution on variable # Subtest: Simple literal substitution on variable with adverbs # $string ~~ s:g:i/O/x/ ok 1 - deparse ok 2 - AST: did we get right return value ok 3 - AST: did it set $/ correctly ok 4 - AST: is the result correct ok 5 - Str: did we get right return value ok 6 - Str: did it set $/ correctly ok 7 - Str: is the result correct ok 8 - Raku: did we get right return value ok 9 - Raku: did it set $/ correctly ok 10 - Raku: is the result correct 1..10 ok 5 - Simple literal substitution on variable with adverbs # Subtest: Simple variable substitution on variable # $string ~~ s/o/$x/ ok 1 - deparse ok 2 - AST: did we get right return value ok 3 - AST: did it set $/ correctly ok 4 - AST: is the result correct ok 5 - Str: did we get right return value ok 6 - Str: did it set $/ correctly ok 7 - Str: is the result correct ok 8 - Raku: did we get right return value ok 9 - Raku: did it set $/ correctly ok 10 - Raku: is the result correct 1..10 ok 6 - Simple variable substitution on variable # Subtest: Simple Callable substitution on variable # $string ~~ s/o/{ # $x # }/ ok 1 - deparse ok 2 - AST: did we get right return value ok 3 - AST: did it set $/ correctly ok 4 - AST: is the result correct ok 5 - Str: did we get right return value ok 6 - Str: did it set $/ correctly ok 7 - Str: is the result correct ok 8 - Raku: did we get right return value ok 9 - Raku: did it set $/ correctly ok 10 - Raku: is the result correct 1..10 ok 7 - Simple Callable substitution on variable ok t/12-rakuast/regex.rakutest ..................................... 1..55 # Subtest: Simple literal regex # / foo/ ok 1 - deparse ok 2 - AST: start of string ok 3 - AST: middle of string ok 4 - AST: not matched ok 5 - Str: start of string ok 6 - Str: middle of string ok 7 - Str: not matched ok 8 - Raku: start of string ok 9 - Raku: middle of string ok 10 - Raku: not matched 1..10 ok 1 - Simple literal regex # Subtest: Sequential alternation takes first match even if second is longer # / b|| bc/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 2 - Sequential alternation takes first match even if second is longer # Subtest: Sequential alternation takes second match if first fails # / x|| bc/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 3 - Sequential alternation takes second match if first fails # Subtest: Sequential alternation fails if no alternative matches # / x|| y/ ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 4 - Sequential alternation fails if no alternative matches # Subtest: LTM alternation takes longest match even if it is not first # / b| bc/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 5 - LTM alternation takes longest match even if it is not first # Subtest: Alternation takes second match if first fails # / x| bc/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 6 - Alternation takes second match if first fails # Subtest: Alternation fails if no alternative matches # / x| y/ ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 7 - Alternation fails if no alternative matches # Subtest: Conjunction matches when both items match # / .& c/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 8 - Conjunction matches when both items match # Subtest: Conjunction fails when one item does not match # / .& x/ ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 9 - Conjunction fails when one item does not match # Subtest: Conjunction fails when items match different lengths # / .& cd/ ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 10 - Conjunction fails when items match different lengths # Subtest: Sequence needs one thing to match after the other (pass case) # / .d/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 11 - Sequence needs one thing to match after the other (pass case) # Subtest: Sequence needs one thing to match after the other (failure case) # / .a/ ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 12 - Sequence needs one thing to match after the other (failure case) # Subtest: Beginning of string anchor works (pass case) # / ^ ./ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 13 - Beginning of string anchor works (pass case) # Subtest: Beginning of string anchor works (failure case) # / ^ b/ ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 14 - Beginning of string anchor works (failure case) # Subtest: Beginning of line anchor works (pass case) # / ^^ ./ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 15 - Beginning of line anchor works (pass case) # Subtest: Beginning of line anchor works (failure case) # / ^^ b/ ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 16 - Beginning of line anchor works (failure case) # Subtest: End of string anchor works (pass case) # / .$ / ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 17 - End of string anchor works (pass case) # Subtest: End of string anchor works (failure case) # / b$ / ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 18 - End of string anchor works (failure case) # Subtest: End of line anchor works (pass case) # / .$$ / ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 19 - End of line anchor works (pass case) # Subtest: End of line anchor works (failure case) # / b$$ / ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 20 - End of line anchor works (failure case) # Subtest: Right word boundary works # / .e>> / ok 1 - deparse ok 2 - AST: pass case ok 3 - AST: fail case ok 4 - Str: pass case ok 5 - Str: fail case ok 6 - Raku: pass case ok 7 - Raku: fail case 1..7 ok 21 - Right word boundary works # Subtest: Left word boundary works # / << .t/ ok 1 - deparse ok 2 - AST: pass case ok 3 - AST: fail case ok 4 - Str: pass case ok 5 - Str: fail case ok 6 - Raku: pass case ok 7 - Raku: fail case 1..7 ok 22 - Left word boundary works # Subtest: Quantified + built-in character class matches # / \d+/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 23 - Quantified + built-in character class matches # Subtest: Quantified * built-in character class matches # / \d*/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 24 - Quantified * built-in character class matches # Subtest: Quantified ? built-in character class matches # / \d?/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 25 - Quantified ? built-in character class matches # Subtest: Quantified ** built-in character class matches # / \d** 1^..^5/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 26 - Quantified ** built-in character class matches # Subtest: Quantified negated built-in character class matches # / \D+/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 27 - Quantified negated built-in character class matches # Subtest: Quantified built-in character class matches (frugal mode) # / \d+?/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 28 - Quantified built-in character class matches (frugal mode) # Subtest: Quantified negated built-in character class matches (frugal mode) # / \D+?/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 29 - Quantified negated built-in character class matches (frugal mode) # Subtest: Greedy quantifier will backtrack # / ^ \d+!9/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 30 - Greedy quantifier will backtrack # Subtest: Ratchet quantifier will not backtrack # / ^ \d+:9/ ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 31 - Ratchet quantifier will not backtrack # Subtest: Separator works (non-trailing case) # / \d+% ","/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 32 - Separator works (non-trailing case) # Subtest: Separator works (trailing case) # / \d+%% ","/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 33 - Separator works (trailing case) # Subtest: Separator must be between every quantified item # / \d+% ","/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 34 - Separator must be between every quantified item # Subtest: Regex groups compile correctly # / [\d+]+% ","/ ok 1 - deparse ok 2 - AST: did we get correct match ok 3 - AST: no positional captures from non-capturing group ok 4 - AST: no named captures from non-capturing group ok 5 - Str: did we get correct match ok 6 - Str: no positional captures from non-capturing group ok 7 - Str: no named captures from non-capturing group ok 8 - Raku: did we get correct match ok 9 - Raku: no positional captures from non-capturing group ok 10 - Raku: no named captures from non-capturing group 1..10 ok 35 - Regex groups compile correctly # Subtest: Regex with two positional capturing groups matches correctly # / (\w)\d(\w)/ ok 1 - deparse ok 2 - AST: did we get correct match ok 3 - AST: Two positional captures ok 4 - AST: First positional capture is correct ok 5 - AST: Second positional capture is correct ok 6 - AST: No named captures ok 7 - Str: did we get correct match ok 8 - Str: Two positional captures ok 9 - Str: First positional capture is correct ok 10 - Str: Second positional capture is correct ok 11 - Str: No named captures ok 12 - Raku: did we get correct match ok 13 - Raku: Two positional captures ok 14 - Raku: First positional capture is correct ok 15 - Raku: Second positional capture is correct ok 16 - Raku: No named captures 1..16 ok 36 - Regex with two positional capturing groups matches correctly # Subtest: Match from and match to markers works # / b<( \d)> c/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 37 - Match from and match to markers works # Subtest: Match involving a quoted string literal works # / lie/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 38 - Match involving a quoted string literal works # Subtest: Match involving a quoted string with interpolation works # / "e$end"/ ok 1 - deparse ok 2 - EVAL over RakuAST ok 3 - EVAL over deparsed AST 1..3 ok 39 - Match involving a quoted string with interpolation works # Subtest: Match involving quote words works # / <{ qqw/link inky linky/ }>/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 40 - Match involving quote words works # Subtest: Match with positional backreference # / (o)$0/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 41 - Match with positional backreference # Subtest: Match with named backreference # / $=o$/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 42 - Match with named backreference # Subtest: Match with interpolated variable # / $expected/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 43 - Match with interpolated variable # Subtest: Match with block # / o{ # is($/, "o", "block") # }o/ ok 1 - deparse # Subtest: matches 1..6 ok 1 - block ok 2 - AST: EVAL is ok 3 - block ok 4 - Str: EVAL is ok 5 - block ok 6 - Raku: EVAL is ok 2 - matches 1..2 ok 44 - Match with block # Subtest: Match with variable definition # / o:my $foo; o/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 45 - Match with variable definition # Subtest: Match with ignoring case # / :i oo/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 46 - Match with ignoring case # Subtest: Match with *not* ignoring case # / :!i OO/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 47 - Match with *not* ignoring case # Subtest: No match with *not* ignoring case # / :!i oo/ ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 48 - No match with *not* ignoring case # Subtest: Match with ignoring mark # / :m oo/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 49 - Match with ignoring mark # Subtest: Match with *not* ignoring mark # / :!m ôô/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 50 - Match with *not* ignoring mark # Subtest: No match with *not* ignoring mark # / :!m oo/ ok 1 - deparse # Subtest: doesn't match 1..3 ok 1 - AST: EVAL nok ok 2 - Str: EVAL nok ok 3 - Raku: EVAL nok ok 2 - doesn't match 1..2 ok 51 - No match with *not* ignoring mark # Subtest: Match with ratchet # / o:r o/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 52 - Match with ratchet # Subtest: Match without ratchet # / o:!r o/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 53 - Match without ratchet # Subtest: Match with sigspace # / o:s o / ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 54 - Match with sigspace # Subtest: Match without sigspace # / o :!s o/ ok 1 - deparse # Subtest: matches 1..3 ok 1 - AST: EVAL is ok 2 - Str: EVAL is ok 3 - Raku: EVAL is ok 2 - matches 1..2 ok 55 - Match without sigspace ok t/12-rakuast/role.rakutest ...................................... 1..6 # Subtest: creating an empty role # my role Frobnicator { } ok 1 - deparse ok 2 - AST: role gets correct name ok 3 - AST: does the role auto-pun ok 4 - AST: class gets correct name ok 5 - AST: can it be instantiated ok 6 - AST: did the role get consumed ok 7 - Str: role gets correct name ok 8 - Str: does the role auto-pun ok 9 - Str: class gets correct name ok 10 - Str: can it be instantiated not ok 11 - Str: did the role get consumed # TODO needs work on consuming the role # Failed test 'Str: did the role get consumed' # at t/12-rakuast/role.rakutest line 41 # Type: Zippo doesn't do role Frobnicator ok 12 - Raku: role gets correct name ok 13 - Raku: does the role auto-pun ok 14 - Raku: class gets correct name ok 15 - Raku: can it be instantiated not ok 16 - Raku: did the role get consumed # TODO needs work on consuming the role # Failed test 'Raku: did the role get consumed' # at t/12-rakuast/role.rakutest line 41 # Type: Zippo doesn't do role Frobnicator 1..16 ok 1 - creating an empty role # Subtest: creating a role with an attribute # my role A { # has $.a = 42 # } ok 1 - deparse ok 2 - AST: role gets correct name ok 3 - AST: does the role auto-pun (1) ok 4 - AST: did the attribute get initialized (1) ok 5 - AST: does the role auto-pun (2) ok 6 - AST: did the attribute get initialized (2) ok 7 - Str: role gets correct name ok 8 - Str: does the role auto-pun (1) ok 9 - Str: did the attribute get initialized (1) ok 10 - Str: does the role auto-pun (2) ok 11 - Str: did the attribute get initialized (2) ok 12 - Raku: role gets correct name ok 13 - Raku: does the role auto-pun (1) ok 14 - Raku: did the attribute get initialized (1) ok 15 - Raku: does the role auto-pun (2) ok 16 - Raku: did the attribute get initialized (2) 1..16 ok 2 - creating a role with an attribute # Subtest: creating a role that does another role # my role B does Positional { } ok 1 - deparse ok 2 - AST: role gets correct name ok 3 - AST: can we see the roles it does ok 4 - AST: does the role auto-pun ok 5 - Str: role gets correct name ok 6 - Str: can we see the roles it does ok 7 - Str: does the role auto-pun ok 8 - Raku: role gets correct name ok 9 - Raku: can we see the roles it does ok 10 - Raku: does the role auto-pun 1..10 ok 3 - creating a role that does another role # Subtest: creating a role that does a parameterized role # my role C does Rational[Int, Int] { } ok 1 - deparse ok 2 - AST: role gets correct name ok 3 - AST: can we see the roles it does ok 4 - AST: does the role auto-pun ok 5 - AST: did we get a rational 0 ok 6 - AST: did we get a rational 1 ok 7 - AST: did we get a rational 1/3 ok 8 - Str: role gets correct name ok 9 - Str: can we see the roles it does ok 10 - Str: does the role auto-pun ok 11 - Str: did we get a rational 0 ok 12 - Str: did we get a rational 1 ok 13 - Str: did we get a rational 1/3 ok 14 - Raku: role gets correct name ok 15 - Raku: can we see the roles it does ok 16 - Raku: does the role auto-pun ok 17 - Raku: did we get a rational 0 ok 18 - Raku: did we get a rational 1 ok 19 - Raku: did we get a rational 1/3 1..19 ok 4 - creating a role that does a parameterized role # Subtest: creating a parameterized role # my role D[$a = 42] { # method a { # $a # } # } ok 1 - deparse ok 2 - AST: role gets correct name ok 3 - AST: can we see the roles it does ok 4 - AST: does the role auto-pun (1) ok 5 - AST: did the default value get set ok 6 - AST: does the role auto-pun (2) ok 7 - AST: did the value get set ok 8 - Str: role gets correct name ok 9 - Str: can we see the roles it does ok 10 - Str: does the role auto-pun (1) ok 11 - Str: did the default value get set ok 12 - Str: does the role auto-pun (2) ok 13 - Str: did the value get set ok 14 - Raku: role gets correct name ok 15 - Raku: can we see the roles it does ok 16 - Raku: does the role auto-pun (1) ok 17 - Raku: did the default value get set ok 18 - Raku: does the role auto-pun (2) ok 19 - Raku: did the value get set 1..19 ok 5 - creating a parameterized role # Subtest: creating a parameterized role with a type capture # my role E[::T = Str] { # method a (T:D $a) { # $a # } # } ok 1 - deparse ok 2 - AST: role gets correct name ok 3 - AST: can we see the roles it does ok 4 - AST: does the role auto-pun (1) ok 5 - AST: value returned (1) ok 6 - AST: does uninstantiated type die (1) # TODO :D not yet being applied in type check ok 7 - AST: does incorrect type die (1) ok 8 - AST: does the role auto-pun (2) ok 9 - AST: value returned (2) ok 10 - AST: does uninstantiated type die (2) # TODO :D not yet being applied in type check ok 11 - AST: does incorrect type die (2) ok 12 - Str: role gets correct name ok 13 - Str: can we see the roles it does ok 14 - Str: does the role auto-pun (1) ok 15 - Str: value returned (1) ok 16 - Str: does uninstantiated type die (1) # TODO :D not yet being applied in type check ok 17 - Str: does incorrect type die (1) ok 18 - Str: does the role auto-pun (2) ok 19 - Str: value returned (2) ok 20 - Str: does uninstantiated type die (2) # TODO :D not yet being applied in type check ok 21 - Str: does incorrect type die (2) ok 22 - Raku: role gets correct name ok 23 - Raku: can we see the roles it does ok 24 - Raku: does the role auto-pun (1) ok 25 - Raku: value returned (1) ok 26 - Raku: does uninstantiated type die (1) # TODO :D not yet being applied in type check ok 27 - Raku: does incorrect type die (1) ok 28 - Raku: does the role auto-pun (2) ok 29 - Raku: value returned (2) ok 30 - Raku: does uninstantiated type die (2) # TODO :D not yet being applied in type check ok 31 - Raku: does incorrect type die (2) 1..31 ok 6 - creating a parameterized role with a type capture ok t/12-rakuast/signature.rakutest ................................. 1..13 # Subtest: Default type for block and routine # sub ($param) { } ok 1 - deparse ok 2 - AST: Default type of sub ok 3 - Str: Default type of sub ok 4 - Raku: Default type of sub 1..4 ok 1 - Default type for block and routine # Subtest: Default type for block and routine # -> $param { } ok 1 - deparse ok 2 - AST: Default type of block ok 3 - Str: Default type of block ok 4 - Raku: Default type of block 1..4 ok 2 - Default type for block and routine # Subtest: Type constraint is enforced on Scalar # sub (Int $x) { } ok 1 - deparse ok 2 - AST: Specified type is introspectable ok 3 - AST: Passing correct type lives ok 4 - AST: Passing wrong type dies ok 5 - Str: Specified type is introspectable ok 6 - Str: Passing correct type lives ok 7 - Str: Passing wrong type dies ok 8 - Raku: Specified type is introspectable ok 9 - Raku: Passing correct type lives ok 10 - Raku: Passing wrong type dies 1..10 ok 3 - Type constraint is enforced on Scalar # Subtest: Anonymous parameter still enforces type constraint # sub (Int) { } ok 1 - deparse ok 2 - AST: Specified type is introspectable ok 3 - AST: Passing correct type lives ok 4 - AST: Passing wrong type dies ok 5 - Str: Specified type is introspectable ok 6 - Str: Passing correct type lives ok 7 - Str: Passing wrong type dies ok 8 - Raku: Specified type is introspectable ok 9 - Raku: Passing correct type lives ok 10 - Raku: Passing wrong type dies 1..10 ok 4 - Anonymous parameter still enforces type constraint # Subtest: Optional Scalar parameter defaults to type object # sub (Int $x?) { # $x # } ok 1 - deparse ok 2 - AST: Parameter introspects as optional ok 3 - AST: Correct arity ok 4 - AST: Correct count ok 5 - AST: Passing an argument gets the value ok 6 - AST: Passing no argument gets the type object ok 7 - Str: Parameter introspects as optional ok 8 - Str: Correct arity ok 9 - Str: Correct count ok 10 - Str: Passing an argument gets the value ok 11 - Str: Passing no argument gets the type object ok 12 - Raku: Parameter introspects as optional ok 13 - Raku: Correct arity ok 14 - Raku: Correct count ok 15 - Raku: Passing an argument gets the value ok 16 - Raku: Passing no argument gets the type object 1..16 ok 5 - Optional Scalar parameter defaults to type object # Subtest: One required named parameter # sub (:$named!) { # $named # } ok 1 - deparse ok 2 - AST: Sub has one params elem ok 3 - AST: The block has 0 arity ok 4 - AST: The block has 0 count ok 5 - AST: Correct variable name ok 6 - AST: Correct named name ok 7 - AST: It is not optional ok 8 - AST: Invoking the sub with a named argument works ok 9 - AST: Invoking the sub without an argument dies ok 10 - Str: Sub has one params elem ok 11 - Str: The block has 0 arity ok 12 - Str: The block has 0 count ok 13 - Str: Correct variable name ok 14 - Str: Correct named name ok 15 - Str: It is not optional ok 16 - Str: Invoking the sub with a named argument works ok 17 - Str: Invoking the sub without an argument dies ok 18 - Raku: Sub has one params elem ok 19 - Raku: The block has 0 arity ok 20 - Raku: The block has 0 count ok 21 - Raku: Correct variable name ok 22 - Raku: Correct named name ok 23 - Raku: It is not optional ok 24 - Raku: Invoking the sub with a named argument works ok 25 - Raku: Invoking the sub without an argument dies 1..25 ok 6 - One required named parameter # Subtest: Required named parameter with alias # sub (:first(:fst($var))!) { # $var # } ok 1 - deparse ok 2 - AST: Sub has one params elem ok 3 - AST: The block has 0 arity ok 4 - AST: The block has 0 count ok 5 - AST: Correct variable name ok 6 - AST: Correct named names ok 7 - AST: It is not optional ok 8 - AST: Invoking the sub with first alias works ok 9 - AST: Invoking the sub with second alias works ok 10 - AST: Invoking the sub without an argument dies ok 11 - AST: Invoking the sub with non-named name dies ok 12 - Str: Sub has one params elem ok 13 - Str: The block has 0 arity ok 14 - Str: The block has 0 count ok 15 - Str: Correct variable name ok 16 - Str: Correct named names ok 17 - Str: It is not optional ok 18 - Str: Invoking the sub with first alias works ok 19 - Str: Invoking the sub with second alias works ok 20 - Str: Invoking the sub without an argument dies ok 21 - Str: Invoking the sub with non-named name dies ok 22 - Raku: Sub has one params elem ok 23 - Raku: The block has 0 arity ok 24 - Raku: The block has 0 count ok 25 - Raku: Correct variable name ok 26 - Raku: Correct named names ok 27 - Raku: It is not optional ok 28 - Raku: Invoking the sub with first alias works ok 29 - Raku: Invoking the sub with second alias works ok 30 - Raku: Invoking the sub without an argument dies ok 31 - Raku: Invoking the sub with non-named name dies 1..31 ok 7 - Required named parameter with alias # Subtest: Slurpy hash parameter # sub (*%h) { # %h # } ok 1 - deparse ok 2 - AST: Parameter introspects as slurpy ok 3 - AST: Parameter introspects as named ok 4 - AST: Correct arity ok 5 - AST: Correct count ok 6 - AST: Passing no argument gets empty hash ok 7 - AST: Passing one named argument has correct hash ok 8 - AST: Passing two named arguments has correct hash ok 9 - Str: Parameter introspects as slurpy ok 10 - Str: Parameter introspects as named ok 11 - Str: Correct arity ok 12 - Str: Correct count ok 13 - Str: Passing no argument gets empty hash ok 14 - Str: Passing one named argument has correct hash ok 15 - Str: Passing two named arguments has correct hash ok 16 - Raku: Parameter introspects as slurpy ok 17 - Raku: Parameter introspects as named ok 18 - Raku: Correct arity ok 19 - Raku: Correct count ok 20 - Raku: Passing no argument gets empty hash ok 21 - Raku: Passing one named argument has correct hash ok 22 - Raku: Passing two named arguments has correct hash 1..22 ok 8 - Slurpy hash parameter # Subtest: Slurpy flattening array parameter # sub (*@a) { # @a # } ok 1 - deparse ok 2 - AST: Parameter introspects as slurpy ok 3 - AST: Parameter does not introspect as named ok 4 - AST: Correct arity ok 5 - AST: Correct count ok 6 - AST: Passing no argument gets empty array ok 7 - AST: Passing one argument has correct array ok 8 - AST: Passing two arguments has correct array ok 9 - AST: Flattening happens ok 10 - Str: Parameter introspects as slurpy ok 11 - Str: Parameter does not introspect as named ok 12 - Str: Correct arity ok 13 - Str: Correct count ok 14 - Str: Passing no argument gets empty array ok 15 - Str: Passing one argument has correct array ok 16 - Str: Passing two arguments has correct array ok 17 - Str: Flattening happens ok 18 - Raku: Parameter introspects as slurpy ok 19 - Raku: Parameter does not introspect as named ok 20 - Raku: Correct arity ok 21 - Raku: Correct count ok 22 - Raku: Passing no argument gets empty array ok 23 - Raku: Passing one argument has correct array ok 24 - Raku: Passing two arguments has correct array ok 25 - Raku: Flattening happens 1..25 ok 9 - Slurpy flattening array parameter # Subtest: Slurpy non-flattening array parameter # sub (**@a) { # @a # } ok 1 - deparse ok 2 - AST: Parameter introspects as slurpy ok 3 - AST: Parameter does not introspect as named ok 4 - AST: Correct arity ok 5 - AST: Correct count ok 6 - AST: Passing no argument gets empty array ok 7 - AST: Passing one argument has correct array ok 8 - AST: Passing two arguments has correct array ok 9 - AST: Flattening does not happen ok 10 - AST: Passing a list results in one-element array with the list ok 11 - Str: Parameter introspects as slurpy ok 12 - Str: Parameter does not introspect as named ok 13 - Str: Correct arity ok 14 - Str: Correct count ok 15 - Str: Passing no argument gets empty array ok 16 - Str: Passing one argument has correct array ok 17 - Str: Passing two arguments has correct array ok 18 - Str: Flattening does not happen ok 19 - Str: Passing a list results in one-element array with the list ok 20 - Raku: Parameter introspects as slurpy ok 21 - Raku: Parameter does not introspect as named ok 22 - Raku: Correct arity ok 23 - Raku: Correct count ok 24 - Raku: Passing no argument gets empty array ok 25 - Raku: Passing one argument has correct array ok 26 - Raku: Passing two arguments has correct array ok 27 - Raku: Flattening does not happen ok 28 - Raku: Passing a list results in one-element array with the list 1..28 ok 10 - Slurpy non-flattening array parameter # Subtest: Slurpy single arg rule array parameter # sub (+@a) { # @a # } ok 1 - deparse ok 2 - AST: Parameter introspects as slurpy ok 3 - AST: Parameter does not introspect as named ok 4 - AST: Correct arity ok 5 - AST: Correct count ok 6 - AST: Passing no argument gets empty array ok 7 - AST: Passing one argument has correct array ok 8 - AST: Passing two arguments has correct array ok 9 - AST: Flattening does not happen ok 10 - AST: Passing a list is treated as the single argument ok 11 - Str: Parameter introspects as slurpy ok 12 - Str: Parameter does not introspect as named ok 13 - Str: Correct arity ok 14 - Str: Correct count ok 15 - Str: Passing no argument gets empty array ok 16 - Str: Passing one argument has correct array ok 17 - Str: Passing two arguments has correct array ok 18 - Str: Flattening does not happen ok 19 - Str: Passing a list is treated as the single argument ok 20 - Raku: Parameter introspects as slurpy ok 21 - Raku: Parameter does not introspect as named ok 22 - Raku: Correct arity ok 23 - Raku: Correct count ok 24 - Raku: Passing no argument gets empty array ok 25 - Raku: Passing one argument has correct array ok 26 - Raku: Passing two arguments has correct array ok 27 - Raku: Flattening does not happen ok 28 - Raku: Passing a list is treated as the single argument 1..28 ok 11 - Slurpy single arg rule array parameter # Subtest: Sigilless parameter # sub (Int \trm) { # trm # } ok 1 - deparse ok 2 - AST: Type is introspectable ok 3 - AST: The name matches ok 4 - AST: The term can be resolved in the sub ok 5 - AST: Passing wrong type dies ok 6 - Str: Type is introspectable ok 7 - Str: The name matches ok 8 - Str: The term can be resolved in the sub ok 9 - Str: Passing wrong type dies ok 10 - Raku: Type is introspectable ok 11 - Raku: The name matches ok 12 - Raku: The term can be resolved in the sub ok 13 - Raku: Passing wrong type dies 1..13 ok 12 - Sigilless parameter # Subtest: Capture parameter # sub (|c) { # c # } ok 1 - deparse ok 2 - AST: Parameter introspects as a capture ok 3 - AST: Correct arity ok 4 - AST: Correct count ok 5 - AST: Passing no argument gets empty capture ok 6 - AST: Passing positional arguments gets correct capture ok 7 - AST: Flattening does not happen ok 8 - AST: Passing named arguments gets correct capture ok 9 - AST: Passing a mix of positional and named arguments gets correct capture ok 10 - Str: Parameter introspects as a capture ok 11 - Str: Correct arity ok 12 - Str: Correct count ok 13 - Str: Passing no argument gets empty capture ok 14 - Str: Passing positional arguments gets correct capture ok 15 - Str: Flattening does not happen ok 16 - Str: Passing named arguments gets correct capture ok 17 - Str: Passing a mix of positional and named arguments gets correct capture ok 18 - Raku: Parameter introspects as a capture ok 19 - Raku: Correct arity ok 20 - Raku: Correct count ok 21 - Raku: Passing no argument gets empty capture ok 22 - Raku: Passing positional arguments gets correct capture ok 23 - Raku: Flattening does not happen ok 24 - Raku: Passing named arguments gets correct capture ok 25 - Raku: Passing a mix of positional and named arguments gets correct capture 1..25 ok 13 - Capture parameter ok t/12-rakuast/statement-mods.rakutest ............................ 1..14 # Subtest: The postfix "if" statement works with a true expression # 42 if 666 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - The postfix "if" statement works with a true expression # Subtest: The postfix "if" statement works with a false expression # 42 if "" ok 1 - deparse ok 2 - AST ok 3 - AST ok 4 - AST 1..4 ok 2 - The postfix "if" statement works with a false expression # Subtest: The postfix "unless" statement works with a false expression # 42 unless "" ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - The postfix "unless" statement works with a false expression # Subtest: The postfix "unless" statement works with a true expression # 42 unless 666 ok 1 - deparse ok 2 - AST ok 3 - AST ok 4 - AST 1..4 ok 4 - The postfix "unless" statement works with a true expression # Subtest: The postfix "with" statement works with defined expression # $_ * 2 with 42 ok 1 - deparse WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_17: Useless use of "*" in expression "$_ * 2" in sink context (line 1) ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - The postfix "with" statement works with defined expression # Subtest: The postfix "with" statement works with a type object # $_ * 2 with Int ok 1 - deparse ok 2 - AST WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_21: Useless use of "*" in expression "$_ * 2" in sink context (line 1) ok 3 - AST ok 4 - AST 1..4 ok 6 - The postfix "with" statement works with a type object # Subtest: The postfix "without" statement works with defined expression # $_ * 2 without 42 ok 1 - deparse ok 2 - AST WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_25: Useless use of "*" in expression "$_ * 2" in sink context (line 1) ok 3 - AST ok 4 - AST 1..4 ok 7 - The postfix "without" statement works with defined expression # Subtest: The postfix "given" statement works with defined expression # $_ * 2 given 42 ok 1 - deparse WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_29: Useless use of "*" in expression "$_ * 2" in sink context (line 1) ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 8 - The postfix "given" statement works with defined expression # Subtest: The postfix "without" statement works with a type object # .Str without Int ok 1 - deparse Use of uninitialized value of type Int in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at t/12-rakuast/statement-mods.rakutest line 187 Use of uninitialized value of type Int in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at EVAL_33 line 1 Use of uninitialized value of type Int in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at t/12-rakuast/statement-mods.rakutest line 187 ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 9 - The postfix "without" statement works with a type object # Subtest: The postfix "when" statement works # $_ = 42; # 666 when 42 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 10 - The postfix "when" statement works # Subtest: The postfix "given" statement works with a type object # .Str given Int ok 1 - deparse Use of uninitialized value of type Int in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at t/12-rakuast/statement-mods.rakutest line 235 Use of uninitialized value of type Int in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at EVAL_41 line 1 Use of uninitialized value of type Int in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at t/12-rakuast/statement-mods.rakutest line 235 ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 11 - The postfix "given" statement works with a type object # Subtest: The postfix "while" statement works # ++$foo while $foo < 5 ok 1 - deparse ok 2 - AST ok 3 - AST ok 4 - Str ok 5 - Str ok 6 - Raku ok 7 - Raku 1..7 ok 12 - The postfix "while" statement works # Subtest: The postfix "until" statement works # ++$foo until $foo >= 5 ok 1 - deparse ok 2 - AST ok 3 - ok 4 - Str ok 5 - ok 6 - Raku ok 7 - 1..7 ok 13 - The postfix "until" statement works # Subtest: The postfix "for" statement works # ++$foo for 1 .. 5 ok 1 - deparse ok 2 - AST ok 3 - AST ok 4 - Str ok 5 - Str ok 6 - Raku ok 7 - Raku 1..7 ok 14 - The postfix "for" statement works ok t/12-rakuast/statement-phaser.rakutest .......................... 1..36 # Subtest: BEGIN phaser producing a literal expression works # BEGIN 12 ok 1 - deparse ok 2 - # SKIP BEGIN phaser is having some issues yet ok 3 - # SKIP BEGIN phaser is having some issues yet 1..3 ok 1 - BEGIN phaser producing a literal expression works # Subtest: Block with CATCH/default handles exception and evaluates to Nil # { # CATCH { # default { # $handled++ # } # } # die("oops") # } ok 1 - deparse ok 2 - AST: block with CATCH/default handles exception, evaluates to Nil ok 3 - AST: the exception handler ran once ok 4 - AST: $! in the outer scope has the exception ok 5 - Str: block with CATCH/default handles exception, evaluates to Nil ok 6 - Str: the exception handler ran once ok 7 - Str: $! in the outer scope has the exception ok 8 - Raku: block with CATCH/default handles exception, evaluates to Nil ok 9 - Raku: the exception handler ran once ok 10 - Raku: $! in the outer scope has the exception 1..10 ok 2 - Block with CATCH/default handles exception and evaluates to Nil # Subtest: Exception is rethrown if unhandled # { # CATCH { } # die("gosh") # } ok 1 - deparse # Subtest: AST: exception is rethrown if unhandled 1..3 ok 1 - code dies ok 2 - right exception type (X::AdHoc) ok 3 - .message matches /gosh/ ok 2 - AST: exception is rethrown if unhandled # Subtest: Str: exception is rethrown if unhandled 1..3 ok 1 - code dies ok 2 - right exception type (X::AdHoc) ok 3 - .message matches /gosh/ ok 3 - Str: exception is rethrown if unhandled # Subtest: Raku: exception is rethrown if unhandled 1..3 ok 1 - code dies ok 2 - right exception type (X::AdHoc) ok 3 - .message matches /gosh/ ok 4 - Raku: exception is rethrown if unhandled 1..4 ok 3 - Exception is rethrown if unhandled # Subtest: CONTROL phaser catching a warning # CONTROL { # isa-ok($_, CX::Warn); # .resume # } # warn(); # 42 1..7 ok 1 - deparse ok 2 - The object is-a 'CX::Warn' ok 3 - The object is-a 'CX::Warn' ok 4 - The object is-a 'CX::Warn' ok 5 - AST ok 6 - Str ok 7 - Raku ok 4 - CONTROL phaser catching a warning # Subtest: CATCH phaser catching an exception # CATCH { # todo("Getting a warning instead of an exception???"); # isa-ok($_, X::AdHoc); # .resume # } # die(); # 666 1..7 ok 1 - deparse not ok 2 - The object is-a 'X::AdHoc' # TODO Getting a warning instead of an exception??? # Failed test 'The object is-a 'X::AdHoc'' # at SETTING::src/core.c/Exception.rakumod line 65 # Actual type: CX::Warn not ok 3 - The object is-a 'X::AdHoc' # TODO Getting a warning instead of an exception??? # Failed test 'The object is-a 'X::AdHoc'' # at EVAL_14 line 3 # Actual type: CX::Warn not ok 4 - The object is-a 'X::AdHoc' # TODO Getting a warning instead of an exception??? # Failed test 'The object is-a 'X::AdHoc'' # at SETTING::src/core.c/Exception.rakumod line 65 # Actual type: CX::Warn ok 5 - AST ok 6 - Str ok 7 - Raku ok 5 - CATCH phaser catching an exception # Subtest: Block with INIT phaser thunk # -> { # INIT ++$init # } ok 1 - deparse ok 2 - AST: did we get a Block ok 3 - AST: INIT actually ran ok 4 - AST: INIT phaser returns expression ok 5 - Str: did we get a Block ok 6 - Str: INIT actually ran ok 7 - Str: INIT phaser returns expression ok 8 - Raku: did we get a Block ok 9 - Raku: INIT actually ran ok 10 - Raku: INIT phaser returns expression 1..10 ok 6 - Block with INIT phaser thunk # Subtest: Block with INIT phaser block # -> { # INIT { # ++$init; # 42 # } # } ok 1 - deparse ok 2 - AST: did we get a Block ok 3 - AST: INIT actually ran ok 4 - AST: INIT phaser returns expression ok 5 - Str: did we get a Block ok 6 - Str: INIT actually ran ok 7 - Str: INIT phaser returns expression ok 8 - Raku: did we get a Block ok 9 - Raku: INIT actually ran ok 10 - Raku: INIT phaser returns expression 1..10 ok 7 - Block with INIT phaser block # Subtest: Block with ENTER phaser thunk # -> { # ENTER ++$enter # } ok 1 - deparse ok 2 - AST: did we get a Block ok 3 - AST: ENTER phaser returns expression ok 4 - AST: ENTER actually ran ok 5 - Str: did we get a Block ok 6 - Str: ENTER phaser returns expression ok 7 - Str: ENTER actually ran ok 8 - Raku: did we get a Block ok 9 - Raku: ENTER phaser returns expression ok 10 - Raku: ENTER actually ran 1..10 ok 8 - Block with ENTER phaser thunk # Subtest: Block with ENTER phaser block # -> { # ENTER { # ++$enter; # 42 # } # } ok 1 - deparse ok 2 - AST: did we get a Block ok 3 - AST: ENTER phaser returns expression ok 4 - AST: ENTER actually ran ok 5 - Str: did we get a Block ok 6 - Str: ENTER phaser returns expression ok 7 - Str: ENTER actually ran ok 8 - Raku: did we get a Block ok 9 - Raku: ENTER phaser returns expression ok 10 - Raku: ENTER actually ran 1..10 ok 9 - Block with ENTER phaser block # Subtest: LEAVE phaser thunk being run # { # $done = False; # LEAVE pass("leaving"); # $done = True # } 1..10 ok 1 - deparse ok 2 - leaving ok 3 - AST: result correct ok 4 - AST: did block run to completion ok 5 - leaving ok 6 - Str: result correct ok 7 - Str: did block run to completion ok 8 - leaving ok 9 - Raku: result correct ok 10 - Raku: did block run to completion ok 10 - LEAVE phaser thunk being run # Subtest: LEAVE phaser block being run # { # $done = False; # LEAVE { # pass("leaving") # } # $done = True # } 1..10 ok 1 - deparse ok 2 - leaving ok 3 - AST: result correct ok 4 - AST: did block run to completion ok 5 - leaving ok 6 - Str: result correct ok 7 - Str: did block run to completion ok 8 - leaving ok 9 - Raku: result correct ok 10 - Raku: did block run to completion ok 11 - LEAVE phaser block being run # Subtest: KEEP / UNDO phaser thunk successful exit # -> { # KEEP ++$keep; # UNDO ++$undo; # 42 # } ok 1 - deparse ok 2 - AST: KEEP did *not* run yet ok 3 - AST: UNDO did *not* run yet ok 4 - AST: did we get a Block ok 5 - AST: exited block correctly ok 6 - AST: KEEP actually ran ok 7 - AST: UNDO did *not* run ok 8 - Str: KEEP did *not* run yet ok 9 - Str: UNDO did *not* run yet ok 10 - Str: did we get a Block ok 11 - Str: exited block correctly ok 12 - Str: KEEP actually ran ok 13 - Str: UNDO did *not* run ok 14 - Raku: KEEP did *not* run yet ok 15 - Raku: UNDO did *not* run yet ok 16 - Raku: did we get a Block ok 17 - Raku: exited block correctly ok 18 - Raku: KEEP actually ran ok 19 - Raku: UNDO did *not* run 1..19 ok 12 - KEEP / UNDO phaser thunk successful exit # Subtest: KEEP / UNDO phaser block successful exit # -> { # KEEP { # ++$keep # } # UNDO { # ++$undo # } # 42 # } ok 1 - deparse ok 2 - AST: KEEP did *not* run yet ok 3 - AST: UNDO did *not* run yet ok 4 - AST: did we get a Block ok 5 - AST: exited block correctly ok 6 - AST: KEEP actually ran ok 7 - AST: UNDO did *not* run ok 8 - Str: KEEP did *not* run yet ok 9 - Str: UNDO did *not* run yet ok 10 - Str: did we get a Block ok 11 - Str: exited block correctly ok 12 - Str: KEEP actually ran ok 13 - Str: UNDO did *not* run ok 14 - Raku: KEEP did *not* run yet ok 15 - Raku: UNDO did *not* run yet ok 16 - Raku: did we get a Block ok 17 - Raku: exited block correctly ok 18 - Raku: KEEP actually ran ok 19 - Raku: UNDO did *not* run 1..19 ok 13 - KEEP / UNDO phaser block successful exit # Subtest: KEEP / UNDO phaser thunk UNsuccessful exit # -> { # KEEP ++$keep; # UNDO ++$undo; # Int # } ok 1 - deparse ok 2 - AST: KEEP did *not* run yet ok 3 - AST: UNDO did *not* run yet ok 4 - AST: did we get a Block ok 5 - AST: exited block correctly ok 6 - AST: KEEP did *not* run ok 7 - AST: UNDO actually ran ok 8 - Str: KEEP did *not* run yet ok 9 - Str: UNDO did *not* run yet ok 10 - Str: did we get a Block ok 11 - Str: exited block correctly ok 12 - Str: KEEP did *not* run ok 13 - Str: UNDO actually ran ok 14 - Raku: KEEP did *not* run yet ok 15 - Raku: UNDO did *not* run yet ok 16 - Raku: did we get a Block ok 17 - Raku: exited block correctly ok 18 - Raku: KEEP did *not* run ok 19 - Raku: UNDO actually ran 1..19 ok 14 - KEEP / UNDO phaser thunk UNsuccessful exit # Subtest: KEEP / UNDO phaser block UNsuccessful exit # -> { # KEEP { # ++$keep # } # UNDO { # ++$undo # } # Int # } ok 1 - deparse ok 2 - AST: KEEP did *not* run yet ok 3 - AST: UNDO did *not* run yet ok 4 - AST: did we get a Block ok 5 - AST: exited block correctly ok 6 - AST: KEEP did *not* run ok 7 - AST: UNDO actually ran ok 8 - Str: KEEP did *not* run yet ok 9 - Str: UNDO did *not* run yet ok 10 - Str: did we get a Block ok 11 - Str: exited block correctly ok 12 - Str: KEEP did *not* run ok 13 - Str: UNDO actually ran ok 14 - Raku: KEEP did *not* run yet ok 15 - Raku: UNDO did *not* run yet ok 16 - Raku: did we get a Block ok 17 - Raku: exited block correctly ok 18 - Raku: KEEP did *not* run ok 19 - Raku: UNDO actually ran 1..19 ok 15 - KEEP / UNDO phaser block UNsuccessful exit # Subtest: END phaser thunk being run # END pass("leaving END thunk") ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 16 - END phaser thunk being run # Subtest: END phaser block being run # END { # pass("leaving END block") # } ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 17 - END phaser block being run # Subtest: For loop with FIRST phaser thunk # for ^3 { # FIRST is-deeply($run, 0, "inside FIRST"); # FIRST ++$run # } 1..10 ok 1 - deparse ok 2 - inside FIRST ok 3 - AST: for loop evaluates to Nil ok 4 - AST: did second FIRST run once ok 5 - inside FIRST ok 6 - Str: for loop evaluates to Nil ok 7 - Str: did second FIRST run once ok 8 - inside FIRST ok 9 - Raku: for loop evaluates to Nil ok 10 - Raku: did second FIRST run once ok 18 - For loop with FIRST phaser thunk # Subtest: For loop with FIRST phaser block # for ^3 { # FIRST { # is-deeply($run, 0, "inside FIRST") # } # ++$run # } 1..7 ok 1 - deparse ok 2 - inside FIRST ok 3 - AST: for loop evaluates to Nil ok 4 - inside FIRST ok 5 - Str: for loop evaluates to Nil ok 6 - inside FIRST ok 7 - Raku: for loop evaluates to Nil ok 19 - For loop with FIRST phaser block # Subtest: While loop with FIRST phaser block and return value # while $guard { # $result = FIRST { # is-deeply($run, 0, "inside FIRST"); # $guard = False # } # ++$run # } 1..13 ok 1 - deparse ok 2 - inside FIRST ok 3 - AST: while loop evaluates to Nil ok 4 - AST: FIRST returns a value ok 5 - AST: loop block ran ok 6 - inside FIRST not ok 7 - Str: while loop evaluates to Nil # TODO Depends on Raku grammar/actions # Failed test 'Str: while loop evaluates to Nil' # at t/12-rakuast/statement-phaser.rakutest line 1060 # expected: Nil # got: Mu not ok 8 - Str: FIRST returns a value # TODO Depends on Raku grammar/actions # Failed test 'Str: FIRST returns a value' # at t/12-rakuast/statement-phaser.rakutest line 1061 # expected: Bool::False # got: Any ok 9 - Str: loop block ran ok 10 - inside FIRST ok 11 - Raku: while loop evaluates to Nil ok 12 - Raku: FIRST returns a value ok 13 - Raku: loop block ran not ok 20 - While loop with FIRST phaser block and return value # TODO Depends on Raku grammar/actions # Failed test 'While loop with FIRST phaser block and return value' # at t/12-rakuast/statement-phaser.rakutest line 989 # Subtest: Subroutine with FIRST phaser block and return value # sub s { # $guard = FIRST { # is-deeply($run, 0, "in FIRST"); # $guard + 1 # } # $run++ # } # s() xx 3 1..13 ok 1 - deparse ok 2 - in FIRST ok 3 - AST: expression returns as expected ok 4 - AST: FIRST returns a static value ok 5 - AST: loop block ran ok 6 - Str: expression returns as expected not ok 7 - Str: FIRST returns a static value # TODO Depends on Raku grammar/actions # Failed test 'Str: FIRST returns a static value' # at t/12-rakuast/statement-phaser.rakutest line 1157 # expected: 42 # got: Any ok 8 - Str: loop block ran ok 9 - in FIRST ok 10 - Raku: expression returns as expected ok 11 - Raku: FIRST returns a static value ok 12 - Raku: loop block ran # You planned 13 tests, but ran 12 not ok 21 - Subroutine with FIRST phaser block and return value # TODO Depends on Raku grammar/actions # Failed test 'Subroutine with FIRST phaser block and return value' # at t/12-rakuast/statement-phaser.rakutest line 1067 # Subtest: For loop with NEXT / LAST phaser thunk # for ^3 { # NEXT ++$next; # LAST ++$last # } ok 1 - deparse ok 2 - AST: for loop evaluates to Nil ok 3 - AST: NEXTed expected number of times ok 4 - AST: LASTed expected number of times ok 5 - Str: for loop evaluates to Nil ok 6 - Str: NEXTed expected number of times ok 7 - Str: LASTed expected number of times ok 8 - Raku: for loop evaluates to Nil ok 9 - Raku: NEXTed expected number of times ok 10 - Raku: LASTed expected number of times 1..10 ok 22 - For loop with NEXT / LAST phaser thunk # Subtest: For loop with NEXT / LAST phaser block # for ^3 { # NEXT { # ++$next # } # LAST { # ++$last # } # } ok 1 - deparse ok 2 - AST: for loop evaluates to Nil ok 3 - AST: NEXTed expected number of times ok 4 - AST: LASTed expected number of times ok 5 - Str: for loop evaluates to Nil ok 6 - Str: NEXTed expected number of times ok 7 - Str: LASTed expected number of times ok 8 - Raku: for loop evaluates to Nil ok 9 - Raku: NEXTed expected number of times ok 10 - Raku: LASTed expected number of times 1..10 ok 23 - For loop with NEXT / LAST phaser block # Subtest: Block with CLOSE phaser thunk # -> { # CLOSE ++$close # } ok 1 - deparse ok 2 - AST: did we get a Block not ok 3 - AST: CLOSE phaser returns Nil # TODO Thunked CLOSE phaser returns expression # Failed test 'AST: CLOSE phaser returns Nil' # at t/12-rakuast/statement-phaser.rakutest line 1329 # expected: Nil # got: 1 ok 4 - AST: CLOSE actually ran ok 5 - Str: did we get a Block not ok 6 - Str: CLOSE phaser returns Nil # TODO Thunked CLOSE phaser returns expression # Failed test 'Str: CLOSE phaser returns Nil' # at t/12-rakuast/statement-phaser.rakutest line 1329 # expected: Nil # got: 1 ok 7 - Str: CLOSE actually ran ok 8 - Raku: did we get a Block not ok 9 - Raku: CLOSE phaser returns Nil # TODO Thunked CLOSE phaser returns expression # Failed test 'Raku: CLOSE phaser returns Nil' # at t/12-rakuast/statement-phaser.rakutest line 1329 # expected: Nil # got: 1 ok 10 - Raku: CLOSE actually ran 1..10 ok 24 - Block with CLOSE phaser thunk # Subtest: Block with CLOSE phaser block # -> { # CLOSE { # ++$close # } # } ok 1 - deparse ok 2 - AST: did we get a Block ok 3 - AST: CLOSE phaser returns Nil # TODO Old implementation returns expression ok 4 - AST: CLOSE actually ran ok 5 - Str: did we get a Block not ok 6 - Str: CLOSE phaser returns Nil # TODO Old implementation returns expression # Failed test 'Str: CLOSE phaser returns Nil' # at t/12-rakuast/statement-phaser.rakutest line 1382 # expected: Nil # got: 1 ok 7 - Str: CLOSE actually ran ok 8 - Raku: did we get a Block ok 9 - Raku: CLOSE phaser returns Nil # TODO Old implementation returns expression ok 10 - Raku: CLOSE actually ran 1..10 ok 25 - Block with CLOSE phaser block # Subtest: Block with QUIT phaser block # -> { # QUIT { # $quit = $_ # } # } ok 1 - deparse ok 2 - AST: did we get a Block ok 3 - AST: QUIT phaser returns Nil # TODO Old implementation returns expression ok 4 - AST: QUIT actually ran ok 5 - Str: did we get a Block not ok 6 - Str: QUIT phaser returns Nil # TODO Old implementation returns expression # Failed test 'Str: QUIT phaser returns Nil' # at t/12-rakuast/statement-phaser.rakutest line 1438 # expected: Nil # got: X::AdHoc.new(payload => "foo") ok 7 - Str: QUIT actually ran ok 8 - Raku: did we get a Block ok 9 - Raku: QUIT phaser returns Nil # TODO Old implementation returns expression ok 10 - Raku: QUIT actually ran 1..10 ok 26 - Block with QUIT phaser block # Subtest: Block with PRE phaser thunk # -> { # PRE ++$pre # } ok 1 - deparse ok 2 - AST: did we get a Block ok 3 - AST: PRE phaser does not return expression ok 4 - AST: PRE actually ran ok 5 - Str: did we get a Block ok 6 - Str: PRE phaser does not return expression ok 7 - Str: PRE actually ran ok 8 - Raku: did we get a Block ok 9 - Raku: PRE phaser does not return expression ok 10 - Raku: PRE actually ran ok 11 - AST: did we get a Block # Subtest: AST: PRE phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .phaser matches PRE ok 4 - .message matches Precondition '++$pre' failed ok 12 - AST: PRE phaser throws ok 13 - Str: did we get a Block # Subtest: Str: PRE phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .phaser matches PRE ok 4 - .message matches Precondition '++$pre' failed ok 14 - Str: PRE phaser throws ok 15 - Raku: did we get a Block # Subtest: Raku: PRE phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .phaser matches PRE ok 4 - .message matches Precondition '++$pre' failed ok 16 - Raku: PRE phaser throws 1..16 ok 27 - Block with PRE phaser thunk # Subtest: Block with PRE phaser block # -> { # PRE { # ++$pre # } # } ok 1 - deparse ok 2 - AST: did we get a Block ok 3 - AST: PRE phaser does not return expression ok 4 - AST: PRE actually ran ok 5 - Str: did we get a Block ok 6 - Str: PRE phaser does not return expression ok 7 - Str: PRE actually ran ok 8 - Raku: did we get a Block ok 9 - Raku: PRE phaser does not return expression ok 10 - Raku: PRE actually ran ok 11 - AST: did we get a Block # Subtest: AST: PRE phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .message matches / '++$pre' / ok 4 - .phaser matches PRE ok 12 - AST: PRE phaser throws ok 13 - AST: PRE actually ran ok 14 - Str: did we get a Block # Subtest: Str: PRE phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .phaser matches PRE ok 4 - .message matches / '++$pre' / ok 15 - Str: PRE phaser throws ok 16 - Str: PRE actually ran ok 17 - Raku: did we get a Block # Subtest: Raku: PRE phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .phaser matches PRE ok 4 - .message matches / '++$pre' / ok 18 - Raku: PRE phaser throws ok 19 - Raku: PRE actually ran 1..19 ok 28 - Block with PRE phaser block # Subtest: Block with POST phaser thunk # -> { # POST $post = $_; # $result # } ok 1 - deparse ok 2 - AST: did we get a Block ok 3 - AST: block returns expression ok 4 - AST: POST actually ran ok 5 - Str: did we get a Block ok 6 - Str: block returns expression ok 7 - Str: POST actually ran ok 8 - Raku: did we get a Block ok 9 - Raku: block returns expression ok 10 - Raku: POST actually ran ok 11 - AST: did we get a Block # Subtest: AST: POST phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .message matches Postcondition '$post = $_' failed ok 4 - .phaser matches POST ok 12 - AST: POST phaser throws ok 13 - AST: POST actually ran ok 14 - Str: did we get a Block # Subtest: Str: POST phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .message matches Postcondition '$post = $_' failed ok 4 - .phaser matches POST ok 15 - Str: POST phaser throws ok 16 - Str: POST actually ran ok 17 - Raku: did we get a Block # Subtest: Raku: POST phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .message matches Postcondition '$post = $_' failed ok 4 - .phaser matches POST ok 18 - Raku: POST phaser throws ok 19 - Raku: POST actually ran 1..19 ok 29 - Block with POST phaser thunk # Subtest: Block with POST phaser block # -> { # POST { # $post = $_ # } # $result # } ok 1 - deparse ok 2 - AST: did we get a Block ok 3 - AST: block returns expression ok 4 - AST: POST actually ran ok 5 - Str: did we get a Block ok 6 - Str: block returns expression ok 7 - Str: POST actually ran ok 8 - Raku: did we get a Block ok 9 - Raku: block returns expression ok 10 - Raku: POST actually ran ok 11 - AST: did we get a Block # Subtest: AST: POST phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .phaser matches POST ok 4 - .message matches / '$post = $_' / ok 12 - AST: POST phaser throws ok 13 - AST: POST actually ran ok 14 - Str: did we get a Block # Subtest: Str: POST phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .phaser matches POST ok 4 - .message matches / '$post = $_' / ok 15 - Str: POST phaser throws ok 16 - Str: POST actually ran ok 17 - Raku: did we get a Block # Subtest: Raku: POST phaser throws 1..4 ok 1 - code dies ok 2 - right exception type (X::Phaser::PrePost) ok 3 - .message matches / '$post = $_' / ok 4 - .phaser matches POST ok 18 - Raku: POST phaser throws ok 19 - Raku: POST actually ran 1..19 ok 30 - Block with POST phaser block ok 31 - leaving END block ok 32 - leaving END block ok 33 - leaving END block ok 34 - leaving END thunk ok 35 - leaving END thunk ok 36 - leaving END thunk ok t/12-rakuast/statement-prefix.rakutest .......................... 1..18 # Subtest: The do statement prefix works with a statement # do 137 ok 1 - deparse WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_1: Useless use of constant integer 137 in sink context (line 1) ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - The do statement prefix works with a statement # Subtest: The do statement prefix works with a block # do { # 199 # } ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - The do statement prefix works with a block # Subtest: The quietly statement prefix works # quietly do-warning() ok 1 - deparse ok 2 - AST: with a statement ok 3 - AST: the warning was suppressed ok 4 - Str: with a statement ok 5 - Str: the warning was suppressed ok 6 - Raku: with a statement ok 7 - Raku: the warning was suppressed # quietly { # do-warning() # } ok 8 - deparse ok 9 - AST: with a block ok 10 - AST: the warning was suppressed ok 11 - Str: with a block ok 12 - Str: the warning was suppressed ok 13 - Raku: with a block ok 14 - Raku: the warning was suppressed 1..14 ok 3 - The quietly statement prefix works # Subtest: The gather statement prefix works on a statement # gather do-takes() ok 1 - deparse ok 2 - AST: Got a Seq back from gather (expression form) ok 3 - The gather is lazy ok 4 - Gathered the takes ok 5 - Got correct result from the gather expression ok 6 - Str: Got a Seq back from gather (expression form) ok 7 - The gather is lazy ok 8 - Gathered the takes ok 9 - Got correct result from the gather expression ok 10 - Raku: Got a Seq back from gather (expression form) ok 11 - The gather is lazy ok 12 - Gathered the takes ok 13 - Got correct result from the gather expression 1..13 ok 4 - The gather statement prefix works on a statement # Subtest: The gather statement prefix works on a block # gather { # do-takes() # } ok 1 - deparse ok 2 - AST: Got a Seq back from gather (block form) ok 3 - The gather is lazy ok 4 - Gathered the takes ok 5 - Got correct result from the gather expression ok 6 - Str: Got a Seq back from gather (block form) ok 7 - The gather is lazy ok 8 - Gathered the takes ok 9 - Got correct result from the gather expression ok 10 - Raku: Got a Seq back from gather (block form) ok 11 - The gather is lazy ok 12 - Gathered the takes ok 13 - Got correct result from the gather expression 1..13 ok 5 - The gather statement prefix works on a block # Subtest: The race / hyper / lazy / eager statement prefixes work # race $c ok 1 - deparse ok 2 - AST: race works with statement ok 3 - AST: context method was called WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_26: Useless use of $c in sink context (line 1) ok 4 - Str: race works with statement ok 5 - Str: context method was called ok 6 - Raku: race works with statement ok 7 - Raku: context method was called # hyper $c ok 8 - deparse ok 9 - AST: hyper works with statement ok 10 - AST: context method was called WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_30: Useless use of $c in sink context (line 1) ok 11 - Str: hyper works with statement ok 12 - Str: context method was called ok 13 - Raku: hyper works with statement ok 14 - Raku: context method was called # lazy $c ok 15 - deparse ok 16 - AST: lazy works with statement ok 17 - AST: context method was called WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_34: Useless use of $c in sink context (line 1) ok 18 - Str: lazy works with statement ok 19 - Str: context method was called ok 20 - Raku: lazy works with statement ok 21 - Raku: context method was called # eager $c ok 22 - deparse ok 23 - AST: eager works with statement ok 24 - AST: context method was called WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_38: Useless use of $c in sink context (line 1) ok 25 - Str: eager works with statement ok 26 - Str: context method was called ok 27 - Raku: eager works with statement ok 28 - Raku: context method was called # race { # $c # } ok 29 - deparse ok 30 - AST: race works with block ok 31 - AST: context method was called ok 32 - Str: race works with block ok 33 - Str: context method was called ok 34 - Raku: race works with block ok 35 - Raku: context method was called # hyper { # $c # } ok 36 - deparse ok 37 - AST: hyper works with block ok 38 - AST: context method was called ok 39 - Str: hyper works with block ok 40 - Str: context method was called ok 41 - Raku: hyper works with block ok 42 - Raku: context method was called # lazy { # $c # } ok 43 - deparse ok 44 - AST: lazy works with block ok 45 - AST: context method was called ok 46 - Str: lazy works with block ok 47 - Str: context method was called ok 48 - Raku: lazy works with block ok 49 - Raku: context method was called # eager { # $c # } ok 50 - deparse ok 51 - AST: eager works with block ok 52 - AST: context method was called ok 53 - Str: eager works with block ok 54 - Str: context method was called ok 55 - Raku: eager works with block ok 56 - Raku: context method was called 1..56 ok 6 - The race / hyper / lazy / eager statement prefixes work # Subtest: try statement prefix with expression producing value results # try 99 ok 1 - deparse ok 2 - AST: correct result ok 3 - AST: $! is Nil when not exception WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_58: Useless use of constant integer 99 in sink context (line 1) ok 4 - Str: correct result Use of uninitialized value element of type Any in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at t/12-rakuast/statement-prefix.rakutest line 282 not ok 5 - Str: $! is Nil when not exception # TODO Str: string eval does not set , also in main # Failed test 'Str: $! is Nil when not exception' # at t/12-rakuast/statement-prefix.rakutest line 284 # expected: Nil # got: Any ok 6 - Raku: correct result ok 7 - Raku: $! is Nil when not exception 1..7 ok 7 - try statement prefix with expression producing value results # Subtest: try statement prefix with throwing expression handles the exception # try die("hard") ok 1 - deparse ok 2 - AST: did we get Nil ok 3 - AST: $! is populated with exception ok 4 - Str: did we get Nil ok 5 - Str: $! is populated with exception ok 6 - Raku: did we get Nil ok 7 - Raku: $! is populated with exception 1..7 ok 8 - try statement prefix with throwing expression handles the exception # Subtest: try statement prefix with block producing value results # try { # 999 # } ok 1 - deparse ok 2 - AST: correct result ok 3 - AST: $! is Nil when not exception ok 4 - Str: correct result not ok 5 - Str: $! is Nil when not exception # TODO Str: string eval does not set $!, also in main # Failed test 'Str: $! is Nil when not exception' # at t/12-rakuast/statement-prefix.rakutest line 331 # expected: Nil # got: Any ok 6 - Raku: correct result ok 7 - Raku: $! is Nil when not exception 1..7 ok 9 - try statement prefix with block producing value results # Subtest: try statement prefix with throwing block handles the exception # try { # die("another day") # } ok 1 - deparse ok 2 - AST: did we get Nil ok 3 - AST: $! is populated with exception ok 4 - Str: did we get Nil ok 5 - Str: $! is populated with exception ok 6 - Raku: did we get Nil ok 7 - Raku: $! is populated with exception 1..7 ok 10 - try statement prefix with throwing block handles the exception # Subtest: start statement prefix with expression evaluates to Promise # start 111 ok 1 - deparse WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_73: Useless use of constant integer 111 in sink context (line 1) ok 2 - AST ok 3 - Correct result from Promise ok 4 - Str ok 5 - Correct result from Promise ok 6 - Raku ok 7 - Correct result from Promise 1..7 ok 11 - start statement prefix with expression evaluates to Promise # Subtest: start statement prefix with block evaluates to Promise # start { # 137 # } ok 1 - deparse ok 2 - AST ok 3 - Correct result from Promise ok 4 - Str ok 5 - Correct result from Promise ok 6 - Raku ok 7 - Correct result from Promise 1..7 ok 12 - start statement prefix with block evaluates to Promise # Subtest: A start has a fresh $/ # start $/ ok 1 - deparse ok 2 - AST: A start has a fresh $/ WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_81: Useless use of $/ in sink context (line 1) ok 3 - Str: A start has a fresh $/ ok 4 - Raku: A start has a fresh $/ 1..4 ok 13 - A start has a fresh $/ # Subtest: A start has a fresh $! # start $! ok 1 - deparse ok 2 - AST: A start has a fresh $! WARNINGS for /build/reproducible-path/rakudo-2024.09/EVAL_85: Useless use of $! in sink context (line 1) ok 3 - Str: A start has a fresh $! ok 4 - Raku: A start has a fresh $! 1..4 ok 14 - A start has a fresh $! # Subtest: supply statement prefix with expression evaluates to Supply # supply whenever 42 { # .emit # } 1..7 ok 1 - deparse ok 2 - AST ok 3 - emitted value ok ok 4 - Str ok 5 - emitted value ok ok 6 - Raku ok 7 - emitted value ok ok 15 - supply statement prefix with expression evaluates to Supply # Subtest: supply statement prefix with block evaluates to Supply # supply { # whenever 42 { # .emit # } # } 1..7 ok 1 - deparse ok 2 - AST ok 3 - emitted value ok ok 4 - Str ok 5 - emitted value ok ok 6 - Raku ok 7 - emitted value ok ok 16 - supply statement prefix with block evaluates to Supply # Subtest: react statement prefix with expression evaluates to Nil # react whenever 42 { # $a = $_ # } ok 1 - deparse ok 2 - AST: is the result Nil ok 3 - AST: did the code get run ok 4 - Str: is the result Nil ok 5 - Str: did the code get run ok 6 - Raku: is the result Nil ok 7 - Raku: did the code get run 1..7 ok 17 - react statement prefix with expression evaluates to Nil # Subtest: react statement block with expression evaluates to Nil # react { # whenever 42 { # $a = $_ # } # } ok 1 - deparse ok 2 - AST: is the result Nil ok 3 - AST: did the code get run ok 4 - Str: is the result Nil ok 5 - Str: did the code get run ok 6 - Raku: is the result Nil ok 7 - Raku: did the code get run 1..7 ok 18 - react statement block with expression evaluates to Nil ok t/12-rakuast/statement.rakutest ................................. 1..29 # Subtest: Statement list evaluates to its final statement # ++$x; # ; # ++$y ok 1 - deparse ok 2 - AST: Statement list evaluates to its final statement ok 3 - AST: First side-effecting statement was executed ok 4 - AST: Second side-effecting statement was executed ok 5 - Str: Statement list evaluates to its final statement ok 6 - Str: First side-effecting statement was executed ok 7 - Str: Second side-effecting statement was executed ok 8 - Raku: Statement list evaluates to its final statement ok 9 - Raku: First side-effecting statement was executed ok 10 - Raku: Second side-effecting statement was executed 1..10 ok 1 - Statement list evaluates to its final statement # Subtest: Basic if / elsif / else structure # if $a { # 1 # } # elsif $b { # 2 # } # elsif $c { # 3 # } # else { # 4 # } ok 1 - deparse ok 2 - AST: When all conditions False, else is evaluated ok 3 - AST: Latest elsif reachable when matched ok 4 - AST: First elsif reachable when matched ok 5 - AST: When the main condition is true, the then block is picked ok 6 - Str: When all conditions False, else is evaluated ok 7 - Str: Latest elsif reachable when matched ok 8 - Str: First elsif reachable when matched ok 9 - Str: When the main condition is true, the then block is picked ok 10 - Raku: When all conditions False, else is evaluated ok 11 - Raku: Latest elsif reachable when matched ok 12 - Raku: First elsif reachable when matched ok 13 - Raku: When the main condition is true, the then block is picked 1..13 ok 2 - Basic if / elsif / else structure # Subtest: simple if evaluation # if $a { # 1 # } ok 1 - deparse ok 2 - AST: When simple if with no else has true condition ok 3 - AST: When simple if with no else has false condition ok 4 - Str: When simple if with no else has true condition ok 5 - Str: When simple if with no else has false condition ok 6 - Raku: When simple if with no else has true condition ok 7 - Raku: When simple if with no else has false condition 1..7 ok 3 - simple if evaluation # Subtest: Basic with / orwith / else structure # with $a -> $x { # 1 # } # orwith $b -> $x { # 2 # } # orwith $c -> $x { # 3 # } # else -> $x { # 4 # } ok 1 - deparse ok 2 - AST: When all conditions undefined, else is evaluated ok 3 - AST: Latest orwith reachable when matched ok 4 - AST: First orwith reachable when matched ok 5 - AST: When the main condition is defined, the then block is picked ok 6 - Str: When all conditions undefined, else is evaluated ok 7 - Str: Latest orwith reachable when matched ok 8 - Str: First orwith reachable when matched ok 9 - Str: When the main condition is defined, the then block is picked ok 10 - Raku: When all conditions undefined, else is evaluated ok 11 - Raku: Latest orwith reachable when matched ok 12 - Raku: First orwith reachable when matched ok 13 - Raku: When the main condition is defined, the then block is picked 1..13 ok 4 - Basic with / orwith / else structure # Subtest: simple with evaluation # with $a -> $x { # 1 # } ok 1 - deparse ok 2 - AST: When simple when with no else has defined condition ok 3 - AST: When simple with if with no else has undefined condition ok 4 - Str: When simple when with no else has defined condition ok 5 - Str: When simple with if with no else has undefined condition ok 6 - Raku: When simple when with no else has defined condition ok 7 - Raku: When simple with if with no else has undefined condition 1..7 ok 5 - simple with evaluation # Subtest: with topicalizes in the body # with $a { # $_ # } # else { # $_ # } ok 1 - deparse ok 2 - AST: with topicalizes in the body ok 3 - AST: with topicalizes in the else body too ok 4 - Str: with topicalizes in the body ok 5 - Str: with topicalizes in the else body too ok 6 - Raku: with topicalizes in the body ok 7 - Raku: with topicalizes in the else body too 1..7 ok 6 - with topicalizes in the body # Subtest: simple unless with a false condition # unless $x { # ++$y # } ok 1 - deparse ok 2 - AST: unless block with a false condition evaluates to its body ok 3 - AST: side-effect of the body was performed ok 4 - Str: unless block with a false condition evaluates to its body ok 5 - Str: side-effect of the body was performed ok 6 - Raku: unless block with a false condition evaluates to its body ok 7 - Raku: side-effect of the body was performed 1..7 ok 7 - simple unless with a false condition # Subtest: simple unless with a false condition # unless $x { # ++$y # } ok 1 - deparse ok 2 - AST: unless block with a false condition evaluates to Empty ok 3 - AST: side-effect of the body was not performed ok 4 - Str: unless block with a false condition evaluates to Empty ok 5 - Str: side-effect of the body was not performed ok 6 - Raku: unless block with a false condition evaluates to Empty ok 7 - Raku: side-effect of the body was not performed 1..7 ok 8 - simple unless with a false condition # Subtest: simple without with an undefined condition # without $x { # $y++ # } ok 1 - deparse ok 2 - AST: without block with an undefined object evaluates to its body ok 3 - AST: Side-effect of the body was performed ok 4 - Str: without block with an undefined object evaluates to its body ok 5 - Str: Side-effect of the body was performed ok 6 - Raku: without block with an undefined object evaluates to its body ok 7 - Raku: Side-effect of the body was performed 1..7 ok 9 - simple without with an undefined condition # Subtest: simple without with a defined condition # without $x { # ++$y # } ok 1 - deparse ok 2 - AST: a without block with a defined object evaluates to Empty ok 3 - AST: side-effect of the body was not performed ok 4 - Str: a without block with a defined object evaluates to Empty ok 5 - Str: side-effect of the body was not performed ok 6 - Raku: a without block with a defined object evaluates to Empty ok 7 - Raku: side-effect of the body was not performed 1..7 ok 10 - simple without with a defined condition # Subtest: simple without with an undefined condition # without $x { # $_ # } ok 1 - deparse ok 2 - AST: without block sets the topic ok 3 - Str: without block sets the topic ok 4 - Raku: without block sets the topic 1..4 ok 11 - simple without with an undefined condition # Subtest: While loop at statement level evaluates to Nil # while $x { # --$x # } ok 1 - deparse ok 2 - AST: while loop at statement level evaluates to Nil ok 3 - AST: Loop variable was decremented to zero ok 4 - Str: while loop at statement level evaluates to Nil ok 5 - Str: Loop variable was decremented to zero ok 6 - Raku: while loop at statement level evaluates to Nil ok 7 - Raku: Loop variable was decremented to zero 1..7 ok 12 - While loop at statement level evaluates to Nil # Subtest: Until loop at statement level evaluates to Nil # until !$x { # --$x # } ok 1 - deparse ok 2 - AST: until loop at statement level evaluates to Nil ok 3 - AST: Loop variable was decremented to zero ok 4 - Str: until loop at statement level evaluates to Nil ok 5 - Str: Loop variable was decremented to zero ok 6 - Raku: until loop at statement level evaluates to Nil ok 7 - Raku: Loop variable was decremented to zero 1..7 ok 13 - Until loop at statement level evaluates to Nil # Subtest: Repeat while loop at statement level evaluates to Nil # repeat { # --$x # } while $x ok 1 - deparse ok 2 - AST: repeat until loop at statement level evaluates to Nil ok 3 - AST: loop variable decremented to 0 ok 4 - Str: repeat until loop at statement level evaluates to Nil ok 5 - Str: loop variable decremented to 0 ok 6 - Raku: repeat until loop at statement level evaluates to Nil ok 7 - Raku: loop variable decremented to 0 1..7 ok 14 - Repeat while loop at statement level evaluates to Nil # Subtest: Repeat until loop at statement level evaluates to Nil # repeat { # --$x # } until $x ok 1 - deparse ok 2 - AST: repeat until loop at statement level evaluates to Nil ok 3 - AST: loop ran once ok 4 - Str: repeat until loop at statement level evaluates to Nil ok 5 - Str: loop ran once ok 6 - Raku: repeat until loop at statement level evaluates to Nil ok 7 - Raku: loop ran once 1..7 ok 15 - Repeat until loop at statement level evaluates to Nil # Subtest: Loop block with setup and increment expression # loop (my $i = 9; $i; --$i) { # ++$count # } ok 1 - deparse ok 2 - AST: loop with setup and increment evaluates to Nil ok 3 - AST: loop ran as expected ok 4 - Str: loop with setup and increment evaluates to Nil ok 5 - Str: loop ran as expected ok 6 - Raku: loop with setup and increment evaluates to Nil ok 7 - Raku: loop ran as expected 1..7 ok 16 - Loop block with setup and increment expression # Subtest: Statement level for loop # for 2 .. 7 -> $x { # ++$count # } ok 1 - deparse ok 2 - AST: for loop evaluates to Nil ok 3 - AST: loop ran with expected number of times ok 4 - Str: for loop evaluates to Nil ok 5 - Str: loop ran with expected number of times ok 6 - Raku: for loop evaluates to Nil ok 7 - Raku: loop ran with expected number of times 1..7 ok 17 - Statement level for loop # Subtest: for loop with explicit iteration variable # for 2 .. 7 -> $x { # $total = $total + $x # } ok 1 - deparse ok 2 - AST: result value of for ok 3 - AST: correct value in iteration variable ok 4 - Str: result value of for ok 5 - Str: correct value in iteration variable ok 6 - Raku: result value of for ok 7 - Raku: correct value in iteration variable 1..7 ok 18 - for loop with explicit iteration variable # Subtest: Statement level for loop with implicit topic # for 2 .. 7 { # $total = $total + $_ # } ok 1 - deparse ok 2 - AST: result value of for ok 3 - AST: correct value in implicit topic ok 4 - Str: result value of for ok 5 - Str: correct value in implicit topic ok 6 - Raku: result value of for ok 7 - Raku: correct value in implicit topic 1..7 ok 19 - Statement level for loop with implicit topic # Subtest: given with explicit signature # given $a -> $x { # $x # } ok 1 - deparse ok 2 - AST: given topicalizes on the source (signature) ok 3 - AST: given topicalizes even an undefined source (signature) ok 4 - Str: given topicalizes on the source (signature) ok 5 - Str: given topicalizes even an undefined source (signature) ok 6 - Raku: given topicalizes on the source (signature) ok 7 - Raku: given topicalizes even an undefined source (signature) 1..7 ok 20 - given with explicit signature # Subtest: given with implicit signature # given $a { # $_ # } ok 1 - deparse ok 2 - AST: given topicalizes on the source (implicit) ok 3 - AST: given topicalizes even an undefined source (implicit) ok 4 - Str: given topicalizes on the source (implicit) ok 5 - Str: given topicalizes even an undefined source (implicit) ok 6 - Raku: given topicalizes on the source (implicit) ok 7 - Raku: given topicalizes even an undefined source (implicit) 1..7 ok 21 - given with implicit signature # Subtest: given with when and default # given $a { # when 2 { # "two" # } # when 3 { # "three" # } # default { # "another" # } # } ok 1 - deparse ok 2 - AST: first when statement matching gives correct result ok 3 - AST: second when statement matching gives correct result ok 4 - AST: no when statement giving default ok 5 - Str: first when statement matching gives correct result ok 6 - Str: second when statement matching gives correct result ok 7 - Str: no when statement giving default ok 8 - Raku: first when statement matching gives correct result ok 9 - Raku: second when statement matching gives correct result ok 10 - Raku: no when statement giving default 1..10 ok 22 - given with when and default # use Test; # ok(1, "use statements work") ok 23 - deparse ok 24 - use statements work ok 25 - use statements work ok 26 - use statements work # Subtest: check parsing of 'use' pragma # use MONKEY; # nqp::const::STAT_ISDIR ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 27 - check parsing of 'use' pragma # Subtest: check parsing of 'no' pragma # no trace; # 42 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 28 - check parsing of 'no' pragma # Subtest: check parsing of 'need' pragma # need Test; # import Test; # ok($type) 1..7 ok 1 - deparse ok 2 - ok 3 - AST: did eval work ok 4 - ok 5 - Str: did eval work ok 6 - ok 7 - Raku: did eval work ok 29 - check parsing of 'need' pragma ok t/12-rakuast/strings.rakutest ................................... 1..13 # Subtest: One-part quoted string with literal piece # "hello\n" ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - One-part quoted string with literal piece # Subtest: Quoted string with interpolated string variable works # "$str world" ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - Quoted string with interpolated string variable works # Subtest: Quoted string with interpolated integer variable # "$int is the answer" ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - Quoted string with interpolated integer variable # Subtest: Quoted string consisting of only interpolated integer variable # "$int" ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - Quoted string consisting of only interpolated integer variable # Subtest: Quoted string with 3 parts works # "The answer is $int of course!" ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - Quoted string with 3 parts works # Subtest: Quoted string involving an interpolated block # "An { # $bv # } block" ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - Quoted string involving an interpolated block # Subtest: words processor splits a single literal string into words # qqw/foo bar 42/ ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 7 - words processor splits a single literal string into words # Subtest: Words processor applied to a quoted string with interpolation # qqw/ba$stuff 66/ ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 8 - Words processor applied to a quoted string with interpolation # Subtest: Using the val processor alone # qq:v/42/ ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 9 - Using the val processor alone # Subtest: Using the val processor alone with interpolation # qq:v/4$end/ ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 10 - Using the val processor alone with interpolation # Subtest: Using the words and val processor # ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 11 - Using the words and val processor # Subtest: Words processor applied to a quoted string with interpolation # qq:w:v/ba$stuff 66/ ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 12 - Words processor applied to a quoted string with interpolation # Subtest: Using the exec processor alone gives expected result # qx/echo 123/ ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 13 - Using the exec processor alone gives expected result ok t/12-rakuast/stubs.rakutest ..................................... 1..6 # Subtest: can make a simple ... stub # ... ok 1 - deparse ok 2 - AST: did we get return? ok 3 - AST: did we get a Failure ok 4 - AST: did we get right exception ok 5 - AST: payload ok ok 6 - Str: did we get return? ok 7 - Str: did we get a Failure ok 8 - Str: did we get right exception ok 9 - Str: payload ok ok 10 - Raku: did we get return? ok 11 - Raku: did we get a Failure ok 12 - Raku: did we get right exception ok 13 - Raku: payload ok 1..13 ok 1 - can make a simple ... stub # Subtest: can make a ... stub with info # ... "foobar" ok 1 - deparse ok 2 - AST: did we get return? ok 3 - AST: did we get a Failure ok 4 - AST: did we get right exception ok 5 - AST: payload ok ok 6 - Str: did we get return? ok 7 - Str: did we get a Failure ok 8 - Str: did we get right exception ok 9 - Str: payload ok ok 10 - Raku: did we get return? ok 11 - Raku: did we get a Failure ok 12 - Raku: did we get right exception ok 13 - Raku: payload ok 1..13 ok 2 - can make a ... stub with info # Subtest: can make a simple !!! stub # !!! ok 1 - deparse # Subtest: did we throws-like X::StubCode? 1..3 ok 1 - code dies ok 2 - right exception type (X::StubCode) ok 3 - .message matches Stub code executed ok 2 - did we throws-like X::StubCode? # Subtest: did we throws-like X::StubCode? 1..3 ok 1 - code dies ok 2 - right exception type (X::StubCode) ok 3 - .message matches Stub code executed ok 3 - did we throws-like X::StubCode? # Subtest: did we throws-like X::StubCode? 1..3 ok 1 - code dies ok 2 - right exception type (X::StubCode) ok 3 - .message matches Stub code executed ok 4 - did we throws-like X::StubCode? 1..4 ok 3 - can make a simple !!! stub # Subtest: can make a !!! stub with info # !!! "foobar" ok 1 - deparse # Subtest: did we throws-like X::StubCode? 1..3 ok 1 - code dies ok 2 - right exception type (X::StubCode) ok 3 - .message matches foobar ok 2 - did we throws-like X::StubCode? # Subtest: did we throws-like X::StubCode? 1..3 ok 1 - code dies ok 2 - right exception type (X::StubCode) ok 3 - .message matches foobar ok 3 - did we throws-like X::StubCode? # Subtest: did we throws-like X::StubCode? 1..3 ok 1 - code dies ok 2 - right exception type (X::StubCode) ok 3 - .message matches foobar ok 4 - did we throws-like X::StubCode? 1..4 ok 4 - can make a !!! stub with info # Subtest: can make a simple ??? stub # ??? ok 1 - deparse ok 2 - AST: did we get a warning? ok 3 - AST: the right warning ok 4 - Str: did we get a warning? ok 5 - Str: the right warning ok 6 - Raku: did we get a warning? ok 7 - Raku: the right warning 1..7 ok 5 - can make a simple ??? stub # Subtest: can make a ??? stub with info # ??? "foobar" ok 1 - deparse ok 2 - AST: did we get a warning? ok 3 - AST: the right warning ok 4 - Str: did we get a warning? ok 5 - Str: the right warning ok 6 - Raku: did we get a warning? ok 7 - Raku: the right warning 1..7 ok 6 - can make a ??? stub with info ok t/12-rakuast/sub.rakutest ....................................... 1..11 # Subtest: A bare sub evaluates to a Sub # sub a { } ok 1 - deparse ok 2 - AST: A sub node evaluates to a Sub ok 3 - Str: A sub node evaluates to a Sub ok 4 - Raku: A sub node evaluates to a Sub ok 5 - was a declarator automatically created ok 6 - was the leading doc stored ok 7 - was the trailing doc stored 1..7 ok 1 - A bare sub evaluates to a Sub # Subtest: A sub node evaluates to a Sub # sub ($param) { # $param # } ok 1 - deparse ok 2 - AST: A sub node evaluates to a Sub ok 3 - AST: The sub has one parameter ok 4 - AST: The block has 1 arity ok 5 - AST: The block has 1 count ok 6 - AST: Invoking the sub with an argument returns the expected value ok 7 - AST: Invoking the sub without an argument dies ok 8 - Str: A sub node evaluates to a Sub ok 9 - Str: The sub has one parameter ok 10 - Str: The block has 1 arity ok 11 - Str: The block has 1 count ok 12 - Str: Invoking the sub with an argument returns the expected value ok 13 - Str: Invoking the sub without an argument dies ok 14 - Raku: A sub node evaluates to a Sub ok 15 - Raku: The sub has one parameter ok 16 - Raku: The block has 1 arity ok 17 - Raku: The block has 1 count ok 18 - Raku: Invoking the sub with an argument returns the expected value ok 19 - Raku: Invoking the sub without an argument dies 1..19 ok 2 - A sub node evaluates to a Sub # Subtest: Can call a named sub declaration # sub my-sub ($param) { # $param # } # my-sub(66) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - Can call a named sub declaration # Subtest: A routine declared anonymous does not declare anything # anon sub my-sub { # 66 # } # my-sub() ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - A routine declared anonymous does not declare anything # Subtest: A sub node with a trait evaluates to a Sub # sub foo returns Int { # 66 # } ok 1 - deparse ok 2 - AST: A sub node with a trait evaluates to a Sub ok 3 - AST: The returns trait was applied and .returns is correct ok 4 - AST: It also does the correct parametric Callable ok 5 - Str: A sub node with a trait evaluates to a Sub ok 6 - Str: The returns trait was applied and .returns is correct ok 7 - Str: It also does the correct parametric Callable ok 8 - Raku: A sub node with a trait evaluates to a Sub ok 9 - Raku: The returns trait was applied and .returns is correct ok 10 - Raku: It also does the correct parametric Callable 1..10 ok 5 - A sub node with a trait evaluates to a Sub # Subtest: Return type constraint # sub foo returns Int { # $x # } ok 1 - deparse ok 2 - AST: type matches ok 3 - AST: type does not match ok 4 - Str: type matches ok 5 - Str: type does not match ok 6 - Raku: type matches ok 7 - Raku: type does not match 1..7 ok 6 - Return type constraint # Subtest: Using return with acceptable type works # sub foo returns Int { # return $x # } ok 1 - deparse ok 2 - AST: type matches ok 3 - AST: type does not match ok 4 - Str: type matches ok 5 - Str: type does not match ok 6 - Raku: type matches ok 7 - Raku: type does not match 1..7 ok 7 - Using return with acceptable type works # Subtest: Using a string literal works # sub ("Bee") { # 42 # } ok 1 - deparse ok 2 - AST: type matches ok 3 - AST: type does not match ok 4 - Str: type matches ok 5 - Str: type does not match ok 6 - Raku: type matches ok 7 - Raku: type does not match 1..7 ok 8 - Using a string literal works # Subtest: creating a proto sub works # proto sub zippo (|) { # 42 # } ok 1 - deparse ok 2 - AST: did we return a dispatcher ok 3 - did we get no dispatchees ok 4 - AST: can call without args ok 5 - AST: can call with positionals ok 6 - AST: can call with nameds ok 7 - Str: did we return a dispatcher ok 8 - did we get no dispatchees ok 9 - Str: can call without args ok 10 - Str: can call with positionals ok 11 - Str: can call with nameds ok 12 - Raku: did we return a dispatcher ok 13 - did we get no dispatchees ok 14 - Raku: can call without args ok 15 - Raku: can call with positionals ok 16 - Raku: can call with nameds 1..16 ok 9 - creating a proto sub works # Subtest: creating a multi sub without proto works # multi sub frobnicate { # 42 # } # &frobnicate ok 1 - deparse ok 2 - did we create a dispatcher ok 3 - did we get 1 dispatchee ok 4 - can call without args ok 5 - can NOT call with positionals ok 6 - can NOT call with nameds ok 7 - did we create a dispatcher ok 8 - did we get 1 dispatchee ok 9 - can call without args ok 10 - can NOT call with positionals ok 11 - can NOT call with nameds ok 12 - did we create a dispatcher ok 13 - did we get 1 dispatchee ok 14 - can call without args ok 15 - can NOT call with positionals ok 16 - can NOT call with nameds 1..16 ok 10 - creating a multi sub without proto works # Subtest: creating a multi sub with existing proto works # multi sub frobnicate { # 42 # } ok 1 - deparse ok 2 - did we get a normal sub ok 3 - can call without args ok 4 - can NOT call with positionals ok 5 - can NOT call with nameds ok 6 - did we get a normal sub ok 7 - can call without args ok 8 - can NOT call with positionals ok 9 - can NOT call with nameds ok 10 - did we get a normal sub ok 11 - can call without args ok 12 - can NOT call with positionals ok 13 - can NOT call with nameds 1..13 ok 11 - creating a multi sub with existing proto works ok t/12-rakuast/subset.rakutest .................................... 1..7 # Subtest: Simplest subset Foo # my subset Foo ok 1 - deparse ok 2 - AST: is name ok ok 3 - AST: is refinee ok ok 4 - AST: is refinement ok ok 5 - AST: subset accepts 42 ok 6 - AST: subset accepts foo ok 7 - AST: subset accepts Any ok 8 - AST: subset does not accept Mu ok 9 - Str: is name ok ok 10 - Str: is refinee ok ok 11 - Str: is refinement ok ok 12 - Str: subset accepts 42 ok 13 - Str: subset accepts foo ok 14 - Str: subset accepts Any ok 15 - Str: subset does not accept Mu ok 16 - Raku: is name ok ok 17 - Raku: is refinee ok ok 18 - Raku: is refinement ok ok 19 - Raku: subset accepts 42 ok 20 - Raku: subset accepts foo ok 21 - Raku: subset accepts Any ok 22 - Raku: subset does not accept Mu 1..22 ok 1 - Simplest subset Foo # Subtest: Simple subset Foo of Int # my subset Foo of Int ok 1 - deparse ok 2 - AST: is name ok ok 3 - AST: is refinee ok ok 4 - AST: is refinement ok ok 5 - AST: subset accepts 42 ok 6 - AST: subset does not accept foo ok 7 - AST: subset does not accept Any ok 8 - Str: is name ok ok 9 - Str: is refinee ok ok 10 - Str: is refinement ok ok 11 - Str: subset accepts 42 ok 12 - Str: subset does not accept foo ok 13 - Str: subset does not accept Any ok 14 - Raku: is name ok ok 15 - Raku: is refinee ok ok 16 - Raku: is refinement ok ok 17 - Raku: subset accepts 42 ok 18 - Raku: subset does not accept foo ok 19 - Raku: subset does not accept Any 1..19 ok 2 - Simple subset Foo of Int # Subtest: Subset with a where block # my subset Foo of Int where { # $_ %% 2 # } ok 1 - deparse ok 2 - AST: is name ok ok 3 - AST: is refinee ok ok 4 - AST: is refinement ok ok 5 - AST: subset accepts 42 ok 6 - AST: subset does not accept 41 ok 7 - AST: subset does not accept foo ok 8 - AST: subset does not accept Any ok 9 - Str: is name ok ok 10 - Str: is refinee ok ok 11 - Str: is refinement ok ok 12 - Str: subset accepts 42 ok 13 - Str: subset does not accept 41 ok 14 - Str: subset does not accept foo ok 15 - Str: subset does not accept Any ok 16 - Raku: is name ok ok 17 - Raku: is refinee ok ok 18 - Raku: is refinement ok ok 19 - Raku: subset accepts 42 ok 20 - Raku: subset does not accept 41 ok 21 - Raku: subset does not accept foo ok 22 - Raku: subset does not accept Any 1..22 ok 3 - Subset with a where block # Subtest: Subset with a where pointy block # my subset Foo of Int where -> $a { # $a %% 2 # } ok 1 - deparse ok 2 - AST: is name ok ok 3 - AST: is refinee ok ok 4 - AST: is refinement ok ok 5 - AST: subset accepts 42 ok 6 - AST: subset does not accept 41 ok 7 - AST: subset does not accept foo ok 8 - AST: subset does not accept Any ok 9 - Str: is name ok ok 10 - Str: is refinee ok ok 11 - Str: is refinement ok ok 12 - Str: subset accepts 42 ok 13 - Str: subset does not accept 41 ok 14 - Str: subset does not accept foo ok 15 - Str: subset does not accept Any ok 16 - Raku: is name ok ok 17 - Raku: is refinee ok ok 18 - Raku: is refinement ok ok 19 - Raku: subset accepts 42 ok 20 - Raku: subset does not accept 41 ok 21 - Raku: subset does not accept foo ok 22 - Raku: subset does not accept Any 1..22 ok 4 - Subset with a where pointy block # Subtest: Subset with a where whatevercode # my subset Foo of Int where * %% 2 ok 1 - deparse ok 2 - AST: is name ok ok 3 - AST: is refinee ok ok 4 - AST: is refinement ok ok 5 - AST: subset accepts 42 ok 6 - AST: subset does not accept 41 ok 7 - AST: subset does not accept foo ok 8 - AST: subset does not accept Any ok 9 - Str: is name ok ok 10 - Str: is refinee ok ok 11 - Str: is refinement ok ok 12 - Str: subset accepts 42 ok 13 - Str: subset does not accept 41 ok 14 - Str: subset does not accept foo ok 15 - Str: subset does not accept Any ok 16 - Raku: is name ok ok 17 - Raku: is refinee ok ok 18 - Raku: is refinement ok ok 19 - Raku: subset accepts 42 ok 20 - Raku: subset does not accept 41 ok 21 - Raku: subset does not accept foo ok 22 - Raku: subset does not accept Any 1..22 ok 5 - Subset with a where whatevercode # Subtest: Subset with a where literal # my subset Foo where 42 ok 1 - deparse ok 2 - AST: is name ok ok 3 - AST: is refinee ok ok 4 - AST: is refinement ok ok 5 - AST: subset accepts 42 ok 6 - AST: subset does not accept 41 ok 7 - AST: subset does not accept foo ok 8 - Str: is name ok ok 9 - Str: is refinee ok ok 10 - Str: is refinement ok ok 11 - Str: subset accepts 42 ok 12 - Str: subset does not accept 41 ok 13 - Str: subset does not accept foo ok 14 - Raku: is name ok ok 15 - Raku: is refinee ok ok 16 - Raku: is refinement ok ok 17 - Raku: subset accepts 42 ok 18 - Raku: subset does not accept 41 ok 19 - Raku: subset does not accept foo 1..19 ok 6 - Subset with a where literal # Subtest: Subset with a where regex # my subset Foo where / 42/ ok 1 - deparse ok 2 - AST: is name ok ok 3 - AST: is refinee ok ok 4 - AST: is refinement ok ok 5 - AST: subset accepts 42 ok 6 - AST: subset does not accept 41 ok 7 - AST: subset does not accept foo ok 8 - Str: is name ok ok 9 - Str: is refinee ok ok 10 - Str: is refinement ok ok 11 - Str: subset accepts 42 ok 12 - Str: subset does not accept 41 ok 13 - Str: subset does not accept foo ok 14 - Raku: is name ok ok 15 - Raku: is refinee ok ok 16 - Raku: is refinement ok ok 17 - Raku: subset accepts 42 ok 18 - Raku: subset does not accept 41 ok 19 - Raku: subset does not accept foo 1..19 ok 7 - Subset with a where regex ok t/12-rakuast/terms.rakutest ..................................... 1..13 # Subtest: Method call via self # my class TestClass { # method meth-a { # 99 # } # method meth-b { # self.meth-a # } # } ok 1 - deparse ok 2 - AST: Method call via self works ok 3 - Str: Method call via self works ok 4 - Raku: Method call via self works 1..4 ok 1 - Method call via self # Subtest: Topic call applies the call to $_ # given "argh" { # .uc # } ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - Topic call applies the call to $_ # Subtest: now named term can be called # now ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - now named term can be called # Subtest: rand term works # rand ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - rand term works # Subtest: Empty set term works # ∅ ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - Empty set term works # Subtest: Name term works with single-part name # True ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - Name term works with single-part name # Subtest: Name term works with multi-part name # Bool::True ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 7 - Name term works with multi-part name # Subtest: Whatever term works # * ok 1 - deparse ok 2 - The object is-a 'Whatever' ok 3 - The object is-a 'Whatever' ok 4 - The object is-a 'Whatever' 1..4 ok 8 - Whatever term works # Subtest: Hyperwhatever term works # ** ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 9 - Hyperwhatever term works # Subtest: Capture term can be constructed with a term # \($var) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 10 - Capture term can be constructed with a term # Subtest: Capture term can be constructed with an arg list # \(6, :x) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 11 - Capture term can be constructed with an arg list # Subtest: Radix number term # :16("abc") ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 12 - Radix number term # Subtest: Radix number term with multiple args # :16[1, 2, 3] ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 13 - Radix number term with multiple args ok t/12-rakuast/types.rakutest ..................................... 1..10 # Subtest: look up an existing type # Proc::Async ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 1 - look up an existing type # Subtest: type with definedness constraint # Int:D ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - type with definedness constraint # Subtest: type with undefinedness constraint # Int:U ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - type with undefinedness constraint # Subtest: type with unspecified coercion # Int() ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - type with unspecified coercion # Subtest: type with specific coercion # Int(Str) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - type with specific coercion # Subtest: type with chained coercion # Int(Str()) ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - type with chained coercion # Subtest: parameterized type without type # Rational ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 7 - parameterized type without type # Subtest: parameterized type with type # Rational[Int] ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 8 - parameterized type with type # Subtest: Single-part type from the setting # SETTING:: ok 1 - deparse ok 2 - AST: did we get the setting version ok 3 - Str: did we get the setting version ok 4 - Raku: did we get the setting version 1..4 ok 9 - Single-part type from the setting # Subtest: Multi-part type from the setting # SETTING::.WHO.WHO ok 1 - deparse not ok 2 - AST: did we get the setting version # TODO no actual lookup in SETTING only yet # Failed test 'AST: did we get the setting version' # at t/12-rakuast/types.rakutest line 159 # expected: IO::Path::Parts # got: IO::Path::Parts not ok 3 - Str: did we get the setting version # TODO no actual lookup in SETTING only yet # Failed test 'Str: did we get the setting version' # at t/12-rakuast/types.rakutest line 159 # expected: IO::Path::Parts # got: IO::Path::Parts not ok 4 - Raku: did we get the setting version # TODO no actual lookup in SETTING only yet # Failed test 'Raku: did we get the setting version' # at t/12-rakuast/types.rakutest line 159 # expected: IO::Path::Parts # got: IO::Path::Parts 1..4 ok 10 - Multi-part type from the setting ok t/12-rakuast/var.rakutest ....................................... 1..59 # Subtest: Special compiler variable $?FILE # $?FILE ok 1 - deparse ok 2 - AST not ok 3 - Str # TODO Depends on Raku grammar/actions # Failed test 'Str' # at t/12-rakuast/var.rakutest line 25 # expected: "EVAL_1" # got: "/build/reproducible-path/rakudo-2024.09/EVAL_1" ok 4 - Raku 1..4 not ok 1 - Special compiler variable $?FILE # TODO Depends on Raku grammar/actions # Failed test 'Special compiler variable $?FILE' # at t/12-rakuast/var.rakutest line 19 # Subtest: Special compiler variable $?FILE # ::?CLASS ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 2 - Special compiler variable $?FILE # Subtest: Special compiler variable $?LINE # $?LINE ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 3 - Special compiler variable $?LINE # Subtest: Special compiler variable $?PACKAGE # $?PACKAGE ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 4 - Special compiler variable $?PACKAGE # Subtest: Generic package variable lookup # $Foo::foo ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 5 - Generic package variable lookup # Subtest: Lexical variable lookup ($ sigil) # $x ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 6 - Lexical variable lookup ($ sigil) # Subtest: Lexical variable lookup (& sigil) # &plan ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 7 - Lexical variable lookup (& sigil) # Subtest: A variable in the setting # SETTING::<&val> ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 8 - A variable in the setting # Subtest: Positional capture variable lookup works # $0 ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku # $1 ok 5 - deparse ok 6 - AST ok 7 - Str ok 8 - Raku 1..8 ok 9 - Positional capture variable lookup works # Subtest: Named capture variable lookup works # $ ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku # $ ok 5 - deparse ok 6 - AST ok 7 - Str ok 8 - Raku 1..8 ok 10 - Named capture variable lookup works # Subtest: variable declaration takes scope and name # my $foo ok 1 - deparse ok 2 - did we get scope: my ok 3 - did we get the right name # state $foo ok 4 - deparse ok 5 - did we get scope: state ok 6 - did we get the right name 1..6 ok 11 - variable declaration takes scope and name # Subtest: Lexical variable my|state declarations work # my $foo; # $foo = 10; # $foo ok 1 - deparse ok 2 - AST: my ok 3 - Str: my ok 4 - Raku: my # state $foo; # $foo = 10; # $foo ok 5 - deparse ok 6 - AST: state ok 7 - Str: state ok 8 - Raku: state 1..8 ok 12 - Lexical variable my|state declarations work # Subtest: Defaults of my|state untyped container # my $foo; # $foo ok 1 - deparse ok 2 - AST: my default value is Any ok 3 - AST: my Default constraint is Mu ok 4 - Str: my default value is Any ok 5 - Str: my Default constraint is Mu ok 6 - Raku: my default value is Any ok 7 - Raku: my Default constraint is Mu # state $foo; # $foo ok 8 - deparse ok 9 - AST: state default value is Any ok 10 - AST: state Default constraint is Mu ok 11 - Str: state default value is Any ok 12 - Str: state Default constraint is Mu ok 13 - Raku: state default value is Any ok 14 - Raku: state Default constraint is Mu 1..14 ok 13 - Defaults of my|state untyped container # Subtest: Typed variable my|state declaration (type matches in assignment) # my Int $foo; # $foo = 99; # $foo ok 1 - deparse ok 2 - AST: my ok 3 - Str: my ok 4 - Raku: my # state Int $foo; # $foo = 99; # $foo ok 5 - deparse ok 6 - AST: state ok 7 - Str: state ok 8 - Raku: state 1..8 ok 14 - Typed variable my|state declaration (type matches in assignment) # Subtest: Typed variable my|state declaration (type mismatch throws) # my Int $foo; # $foo = 100000e0; # $foo ok 1 - deparse # Subtest: did we throws-like X::TypeCheck::Assignment? 1..4 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 3 - .expected matches (Int) ok 4 - .got matches 100000 ok 2 - did we throws-like X::TypeCheck::Assignment? # Subtest: did we throws-like X::TypeCheck::Assignment? 1..4 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) not ok 3 - .expected matches (Int) # TODO string EVAL produces different error # Failed test '.expected matches (Int)' # at SETTING::src/core.c/Rakudo/Iterator.rakumod line 5725 Use of uninitialized value element of type Any in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at /build/reproducible-path/rakudo-2024.09/lib/Test.rakumod (Test) line 646 # Expected: Int # Got: not ok 4 - .got matches 100000 # TODO string EVAL produces different error # Failed test '.got matches 100000' # at SETTING::src/core.c/Rakudo/Iterator.rakumod line 5725 Use of uninitialized value element of type Any in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at /build/reproducible-path/rakudo-2024.09/lib/Test.rakumod (Test) line 646 # Expected: 100000e0 # Got: not ok 3 - did we throws-like X::TypeCheck::Assignment? # TODO string EVAL produces different error # Failed test 'did we throws-like X::TypeCheck::Assignment?' # at t/12-rakuast/var.rakutest line 295 # Subtest: did we throws-like X::TypeCheck::Assignment? 1..4 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 3 - .got matches 100000 ok 4 - .expected matches (Int) ok 4 - did we throws-like X::TypeCheck::Assignment? # state Int $foo; # $foo = 100000e0; # $foo ok 5 - deparse # Subtest: did we throws-like X::TypeCheck::Assignment? 1..4 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 3 - .expected matches (Int) ok 4 - .got matches 100000 ok 6 - did we throws-like X::TypeCheck::Assignment? # Subtest: did we throws-like X::TypeCheck::Assignment? 1..4 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) not ok 3 - .expected matches (Int) # TODO string EVAL produces different error # Failed test '.expected matches (Int)' # at SETTING::src/core.c/Rakudo/Iterator.rakumod line 5725 Use of uninitialized value element of type Any in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at /build/reproducible-path/rakudo-2024.09/lib/Test.rakumod (Test) line 646 # Expected: Int # Got: not ok 4 - .got matches 100000 # TODO string EVAL produces different error # Failed test '.got matches 100000' # at SETTING::src/core.c/Rakudo/Iterator.rakumod line 5725 Use of uninitialized value element of type Any in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. in block at /build/reproducible-path/rakudo-2024.09/lib/Test.rakumod (Test) line 646 # Expected: 100000e0 # Got: not ok 7 - did we throws-like X::TypeCheck::Assignment? # TODO string EVAL produces different error # Failed test 'did we throws-like X::TypeCheck::Assignment?' # at t/12-rakuast/var.rakutest line 295 # Subtest: did we throws-like X::TypeCheck::Assignment? 1..4 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 3 - .expected matches (Int) ok 4 - .got matches 100000 ok 8 - did we throws-like X::TypeCheck::Assignment? 1..8 ok 15 - Typed variable my|state declaration (type mismatch throws) # Subtest: Lexical variable my|state declaration with assignment initializer # my $var = 125; # $var ok 1 - deparse ok 2 - AST: my variable declarations with assignment initializer ok 3 - AST: my was an assignment into a Scalar container ok 4 - AST: my is not dynamic ok 5 - AST: my can update the container that was produced ok 6 - Str: my variable declarations with assignment initializer ok 7 - Str: my was an assignment into a Scalar container ok 8 - Str: my is not dynamic ok 9 - Str: my can update the container that was produced ok 10 - Raku: my variable declarations with assignment initializer ok 11 - Raku: my was an assignment into a Scalar container ok 12 - Raku: my is not dynamic ok 13 - Raku: my can update the container that was produced # state $var = 125; # $var ok 14 - deparse ok 15 - AST: state variable declarations with assignment initializer ok 16 - AST: state was an assignment into a Scalar container ok 17 - AST: state is not dynamic ok 18 - AST: state can update the container that was produced ok 19 - Str: state variable declarations with assignment initializer ok 20 - Str: state was an assignment into a Scalar container ok 21 - Str: state is not dynamic ok 22 - Str: state can update the container that was produced ok 23 - Raku: state variable declarations with assignment initializer ok 24 - Raku: state was an assignment into a Scalar container ok 25 - Raku: state is not dynamic ok 26 - Raku: state can update the container that was produced 1..26 ok 16 - Lexical variable my|state declaration with assignment initializer # Subtest: Lexical my|state array declaration with assignment initializer # my @var = 22, 33; # @var ok 1 - deparse ok 2 - AST: my ok 3 - Str: my ok 4 - Raku: my # state @var = 22, 33; # @var ok 5 - deparse ok 6 - AST: state ok 7 - Str: state ok 8 - Raku: state 1..8 ok 17 - Lexical my|state array declaration with assignment initializer # Subtest: Lexical my|state variable declarations with bind initializer # my $var := 225; # $var ok 1 - deparse ok 2 - AST: my variable declarations with bind initializer ok 3 - AST: my really was bound; no Scalar container ok 4 - AST: my cannot assign as it is not a container ok 5 - Str: my variable declarations with bind initializer ok 6 - Str: my really was bound; no Scalar container ok 7 - Str: my cannot assign as it is not a container ok 8 - Raku: my variable declarations with bind initializer ok 9 - Raku: my really was bound; no Scalar container ok 10 - Raku: my cannot assign as it is not a container # state $var := 225; # $var ok 11 - deparse 1..11 ok 18 - Lexical my|state variable declarations with bind initializer # Subtest: Anonymous state variable declaration # -> { # ++$ + ++$ # } ok 1 - deparse ok 2 - AST: anonymous state variables works are are distinct ok 3 - Str: anonymous state variables works are are distinct ok 4 - Raku: anonymous state variables works are are distinct 1..4 ok 19 - Anonymous state variable declaration # Subtest: Dynamic variable access # $*dyn ok 1 - deparse ok 2 - AST access outside ok 3 - Str access outside ok 4 - Raku access outside ok 5 - AST access inside ok 6 - Str access inside # $*OUT ok 7 - deparse ok 8 - AST checking $*OUT ok 9 - Str checking $*OUT ok 10 - Raku checking $*OUT 1..10 ok 20 - Dynamic variable access # Subtest: Dynamic variable declaration and assignment, dynamic lookup # my $*var = 360; # $*var ok 1 - deparse ok 2 - AST: Dynamic variable declaration and assignment, dynamic lookup ok 3 - AST: Dynamic did an assignment into a Scalar container ok 4 - AST: Is a dynamic ok 5 - AST: Can update the container that was produced ok 6 - Str: Dynamic variable declaration and assignment, dynamic lookup ok 7 - Str: Dynamic did an assignment into a Scalar container ok 8 - Str: Is a dynamic ok 9 - Str: Can update the container that was produced ok 10 - Raku: Dynamic variable declaration and assignment, dynamic lookup ok 11 - Raku: Dynamic did an assignment into a Scalar container ok 12 - Raku: Is a dynamic ok 13 - Raku: Can update the container that was produced 1..13 ok 21 - Dynamic variable declaration and assignment, dynamic lookup # Subtest: @ sigil my|state var is initialized to Array # my @arr; # @arr ok 1 - deparse ok 2 - AST: my @ sigil var is initialized to Array ok 3 - AST: my @ sigil var not wrapped in Scalar ok 4 - AST: my it is a defined Array instance ok 5 - AST: my it is empty ok 6 - AST: my element is a Scalar ok 7 - AST: my contains an Any by default ok 8 - AST: my constraint is Mu by default ok 9 - Str: my @ sigil var is initialized to Array ok 10 - Str: my @ sigil var not wrapped in Scalar ok 11 - Str: my it is a defined Array instance ok 12 - Str: my it is empty ok 13 - Str: my element is a Scalar ok 14 - Str: my contains an Any by default ok 15 - Str: my constraint is Mu by default ok 16 - Raku: my @ sigil var is initialized to Array ok 17 - Raku: my @ sigil var not wrapped in Scalar ok 18 - Raku: my it is a defined Array instance ok 19 - Raku: my it is empty ok 20 - Raku: my element is a Scalar ok 21 - Raku: my contains an Any by default ok 22 - Raku: my constraint is Mu by default # state @arr; # @arr ok 23 - deparse ok 24 - AST: state @ sigil var is initialized to Array ok 25 - AST: state @ sigil var not wrapped in Scalar ok 26 - AST: state it is a defined Array instance ok 27 - AST: state it is empty ok 28 - AST: state element is a Scalar ok 29 - AST: state contains an Any by default ok 30 - AST: state constraint is Mu by default ok 31 - Str: state @ sigil var is initialized to Array ok 32 - Str: state @ sigil var not wrapped in Scalar ok 33 - Str: state it is a defined Array instance ok 34 - Str: state it is empty ok 35 - Str: state element is a Scalar ok 36 - Str: state contains an Any by default ok 37 - Str: state constraint is Mu by default ok 38 - Raku: state @ sigil var is initialized to Array ok 39 - Raku: state @ sigil var not wrapped in Scalar ok 40 - Raku: state it is a defined Array instance ok 41 - Raku: state it is empty ok 42 - Raku: state element is a Scalar ok 43 - Raku: state contains an Any by default ok 44 - Raku: state constraint is Mu by default 1..44 ok 22 - @ sigil my|state var is initialized to Array # Subtest: % sigil my|state var is initialized to Hash # my %hash; # %hash ok 1 - deparse ok 2 - AST: my % sigil var is initialized to Hash ok 3 - AST: my % sigil var not wrapped in Scalar ok 4 - AST: my it is a defined Hash instance ok 5 - AST: my it is empty ok 6 - AST: my element is a Scalar ok 7 - AST: my contains an Any by default ok 8 - AST: my constraint is Mu by default ok 9 - Str: my % sigil var is initialized to Hash ok 10 - Str: my % sigil var not wrapped in Scalar ok 11 - Str: my it is a defined Hash instance ok 12 - Str: my it is empty ok 13 - Str: my element is a Scalar ok 14 - Str: my contains an Any by default ok 15 - Str: my constraint is Mu by default ok 16 - Raku: my % sigil var is initialized to Hash ok 17 - Raku: my % sigil var not wrapped in Scalar ok 18 - Raku: my it is a defined Hash instance ok 19 - Raku: my it is empty ok 20 - Raku: my element is a Scalar ok 21 - Raku: my contains an Any by default ok 22 - Raku: my constraint is Mu by default # state %hash; # %hash ok 23 - deparse ok 24 - AST: state % sigil var is initialized to Hash ok 25 - AST: state % sigil var not wrapped in Scalar ok 26 - AST: state it is a defined Hash instance ok 27 - AST: state it is empty ok 28 - AST: state element is a Scalar ok 29 - AST: state contains an Any by default ok 30 - AST: state constraint is Mu by default ok 31 - Str: state % sigil var is initialized to Hash ok 32 - Str: state % sigil var not wrapped in Scalar ok 33 - Str: state it is a defined Hash instance ok 34 - Str: state it is empty ok 35 - Str: state element is a Scalar ok 36 - Str: state contains an Any by default ok 37 - Str: state constraint is Mu by default ok 38 - Raku: state % sigil var is initialized to Hash ok 39 - Raku: state % sigil var not wrapped in Scalar ok 40 - Raku: state it is a defined Hash instance ok 41 - Raku: state it is empty ok 42 - Raku: state element is a Scalar ok 43 - Raku: state contains an Any by default ok 44 - Raku: state constraint is Mu by default 1..44 ok 23 - % sigil my|state var is initialized to Hash # Subtest: @ sigil my|state var with Int type is an Array # my Int @arr; # @arr ok 1 - deparse ok 2 - AST: my @ sigil var with Int type is an Array ok 3 - AST: my it does Positional[Int] ok 4 - AST: my .of gives Int ok 5 - AST: my it is empty ok 6 - AST: my element is a Scalar ok 7 - AST: my contains an Int ok 8 - AST: my constraint is Int ok 9 - Str: my @ sigil var with Int type is an Array ok 10 - Str: my it does Positional[Int] ok 11 - Str: my .of gives Int ok 12 - Str: my it is empty ok 13 - Str: my element is a Scalar ok 14 - Str: my contains an Int ok 15 - Str: my constraint is Int ok 16 - Raku: my @ sigil var with Int type is an Array ok 17 - Raku: my it does Positional[Int] ok 18 - Raku: my .of gives Int ok 19 - Raku: my it is empty ok 20 - Raku: my element is a Scalar ok 21 - Raku: my contains an Int ok 22 - Raku: my constraint is Int # state Int @arr; # @arr ok 23 - deparse ok 24 - AST: state @ sigil var with Int type is an Array ok 25 - AST: state it does Positional[Int] ok 26 - AST: state .of gives Int ok 27 - AST: state it is empty ok 28 - AST: state element is a Scalar ok 29 - AST: state contains an Int ok 30 - AST: state constraint is Int ok 31 - Str: state @ sigil var with Int type is an Array ok 32 - Str: state it does Positional[Int] ok 33 - Str: state .of gives Int ok 34 - Str: state it is empty ok 35 - Str: state element is a Scalar ok 36 - Str: state contains an Int ok 37 - Str: state constraint is Int ok 38 - Raku: state @ sigil var with Int type is an Array ok 39 - Raku: state it does Positional[Int] ok 40 - Raku: state .of gives Int ok 41 - Raku: state it is empty ok 42 - Raku: state element is a Scalar ok 43 - Raku: state contains an Int ok 44 - Raku: state constraint is Int 1..44 ok 24 - @ sigil my|state var with Int type is an Array # Subtest: % sigil my|state var with Int type is a Hash # my Int %hash; # %hash ok 1 - deparse ok 2 - AST: my % sigil var with Int type is a Hash ok 3 - AST: my it does Associative[Int] ok 4 - AST: my .of gives Int ok 5 - AST: my it is empty ok 6 - AST: my element is a Scalar ok 7 - AST: my contains an Int ok 8 - AST: my constraint is Int ok 9 - Str: my % sigil var with Int type is a Hash ok 10 - Str: my it does Associative[Int] ok 11 - Str: my .of gives Int ok 12 - Str: my it is empty ok 13 - Str: my element is a Scalar ok 14 - Str: my contains an Int ok 15 - Str: my constraint is Int ok 16 - Raku: my % sigil var with Int type is a Hash ok 17 - Raku: my it does Associative[Int] ok 18 - Raku: my .of gives Int ok 19 - Raku: my it is empty ok 20 - Raku: my element is a Scalar ok 21 - Raku: my contains an Int ok 22 - Raku: my constraint is Int # state Int %hash; # %hash ok 23 - deparse ok 24 - AST: state % sigil var with Int type is a Hash ok 25 - AST: state it does Associative[Int] ok 26 - AST: state .of gives Int ok 27 - AST: state it is empty ok 28 - AST: state element is a Scalar ok 29 - AST: state contains an Int ok 30 - AST: state constraint is Int ok 31 - Str: state % sigil var with Int type is a Hash ok 32 - Str: state it does Associative[Int] ok 33 - Str: state .of gives Int ok 34 - Str: state it is empty ok 35 - Str: state element is a Scalar ok 36 - Str: state contains an Int ok 37 - Str: state constraint is Int ok 38 - Raku: state % sigil var with Int type is a Hash ok 39 - Raku: state it does Associative[Int] ok 40 - Raku: state .of gives Int ok 41 - Raku: state it is empty ok 42 - Raku: state element is a Scalar ok 43 - Raku: state contains an Int ok 44 - Raku: state constraint is Int 1..44 ok 25 - % sigil my|state var with Int type is a Hash # Subtest: Can access external native int var # $x ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 26 - Can access external native int var # Subtest: Can access external native num var # $x ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 27 - Can access external native num var # Subtest: Can access external native str var # $x ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 28 - Can access external native str var # Subtest: int declaration creates a native int container # my int $native-int; # $native-int ok 1 - deparse ok 2 - AST: int declaration creates a native int container ok 3 - AST: Native int initialized to 0 by default ok 4 - Str: int declaration creates a native int container ok 5 - Str: Native int initialized to 0 by default ok 6 - Raku: int declaration creates a native int container ok 7 - Raku: Native int initialized to 0 by default 1..7 ok 29 - int declaration creates a native int container # Subtest: num declaration creates a native num container # my num $native-num; # $native-num ok 1 - deparse ok 2 - AST: num declaration creates a native num container ok 3 - AST: Native num initialized to 0e0 by default ok 4 - Str: num declaration creates a native num container ok 5 - Str: Native num initialized to 0e0 by default ok 6 - Raku: num declaration creates a native num container ok 7 - Raku: Native num initialized to 0e0 by default 1..7 ok 30 - num declaration creates a native num container # Subtest: str declaration creates a native str container # my str $native-str; # $native-str ok 1 - deparse ok 2 - AST: str declaration creates a native str container ok 3 - AST: Native str initialized to empty string by default ok 4 - Str: str declaration creates a native str container ok 5 - Str: Native str initialized to empty string by default ok 6 - Raku: str declaration creates a native str container ok 7 - Raku: Native str initialized to empty string by default 1..7 ok 31 - str declaration creates a native str container # Subtest: Native int assign initializer works # my int $native-int = 963; # $native-int ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 32 - Native int assign initializer works # Subtest: Native num assign initializer works # my num $native-num = 96000e0; # $native-num ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 33 - Native num assign initializer works # Subtest: Native str assign initializer works # my str $native-str = "nine six three"; # $native-str ok 1 - deparse ok 2 - AST ok 3 - Str ok 4 - Raku 1..4 ok 34 - Native str assign initializer works # our $var; # $var ok 35 - deparse # Subtest: AST: our-scoped variable declaration without initializer takes current value (eval mode) ok 1 - eval AST ok 2 - Value intact after eval 1..2 ok 36 - AST: our-scoped variable declaration without initializer takes current value (eval mode) # Subtest: Str: our-scoped variable declaration without initializer takes current value (eval mode) ok 1 - eval Str ok 2 - Value intact after eval 1..2 ok 37 - Str: our-scoped variable declaration without initializer takes current value (eval mode) # Subtest: Raku: our-scoped variable declaration without initializer takes current value (eval mode) ok 1 - eval Str ok 2 - Value intact after eval 1..2 ok 38 - Raku: our-scoped variable declaration without initializer takes current value (eval mode) # our $x = 42; # $x ok 39 - deparse # Subtest: our-scoped variable declaration with initializer works (eval mode) ok 1 - ok 2 - ok 3 - 1..3 ok 40 - our-scoped variable declaration with initializer works (eval mode) # our $y = 99; # $y; ok 41 - deparse ok 42 - our-scoped variable declaration with initializer works (top-level mode) ok 43 - our variable set in eval mode is installed into the current package ok 44 - It is a bound scalar not ok 45 - our-scoped variable declaration in top-level comp unit does not leak out # TODO NYI # Failed test 'our-scoped variable declaration in top-level comp unit does not leak out' # at t/12-rakuast/var.rakutest line 1022 # Subtest: A pointy block node with a state variable # -> { # state $foo = 42; # $foo++ # } ok 1 - deparse ok 2 - AST: state variable initialized ok 3 - AST: state variable kept value ok 4 - Str: state variable initialized ok 5 - Str: state variable kept value ok 6 - Raku: state variable initialized ok 7 - Raku: state variable kept value 1..7 ok 46 - A pointy block node with a state variable # Subtest: Term (sigilless) variable declaration # my \foo = 111; # foo ok 1 - deparse ok 2 - AST: sigilless variable initialized with correct value ok 3 - AST: no container produced ok 4 - Str: sigilless variable initialized with correct value ok 5 - Str: no container produced ok 6 - Raku: sigilless variable initialized with correct value ok 7 - Raku: no container produced 1..7 ok 47 - Term (sigilless) variable declaration # Subtest: Lexical constant # constant foo = "bar" ok 1 - deparse ok 2 - AST: did it produce 'bar' ok 3 - AST: was the constant installed ok 4 - Str: did it produce 'bar' ok 5 - Str: was the constant installed ok 6 - Raku: did it produce 'bar' ok 7 - Raku: was the constant installed 1..7 ok 48 - Lexical constant # Subtest: Lexical my constant # my constant foo = "bar" ok 1 - deparse ok 2 - AST: did it produce 'bar' ok 3 - AST: was the constant *not* installed ok 4 - Str: did it produce 'bar' ok 5 - Str: was the constant *not* installed ok 6 - Raku: did it produce 'bar' ok 7 - Raku: was the constant *not* installed 1..7 ok 49 - Lexical my constant # Subtest: Lexical my constant with expression # my constant foo = now ok 1 - deparse not ok 2 - AST: did it produce an Instant # TODO Unknown compilation input 'qast' # Failed test 'AST: did it produce an Instant' # at t/12-rakuast/var.rakutest line 1166 # Actual type: Nil Use of Nil in numeric context in block at t/12-rakuast/var.rakutest line 1167 ok 3 - AST: check that time has passed ok 4 - AST: was the constant *not* installed ok 5 - Str: did it produce an Instant ok 6 - Str: check that time has passed ok 7 - Str: was the constant *not* installed not ok 8 - Raku: did it produce an Instant # TODO Unknown compilation input 'qast' # Failed test 'Raku: did it produce an Instant' # at t/12-rakuast/var.rakutest line 1166 # Actual type: Nil Use of Nil in numeric context in block at t/12-rakuast/var.rakutest line 1167 ok 9 - Raku: check that time has passed ok 10 - Raku: was the constant *not* installed 1..10 ok 50 - Lexical my constant with expression # Subtest: Special compiler variable $=pod # $=pod ok 1 - deparse ok 2 - AST: EVAL ok 3 - Str: EVAL ok 4 - Raku: EVAL 1..4 ok 51 - Special compiler variable $=pod # Subtest: Special compiler variable $=finish # $=finish ok 1 - deparse ok 2 - AST: EVAL ok 3 - Str: EVAL ok 4 - Raku: EVAL 1..4 ok 52 - Special compiler variable $=finish # Subtest: variable with a trait # my $a is default(42) ok 1 - deparse ok 2 - AST: EVAL ok 3 - Str: EVAL ok 4 - Raku: EVAL 1..4 ok 53 - variable with a trait # Subtest: scalar variable with a where guard (passing initializer) # my $f where 5 = 5 ok 1 - deparse ok 2 - AST: EVAL ok 3 - Str: EVAL ok 4 - Raku: EVAL 1..4 ok 54 - scalar variable with a where guard (passing initializer) # Subtest: scalar variable with a where guard (failing initializer) # my $f where 5 = 6 ok 1 - deparse # Subtest: AST: EVAL 1..2 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 2 - AST: EVAL # Subtest: Str: EVAL 1..2 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 3 - Str: EVAL # Subtest: Raku: EVAL 1..2 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 4 - Raku: EVAL 1..4 ok 55 - scalar variable with a where guard (failing initializer) # Subtest: array variable with a where guard (passing initializer) # my @h where 5 = 5; # @h[0] ok 1 - deparse ok 2 - AST: EVAL ok 3 - Str: EVAL ok 4 - Raku: EVAL 1..4 ok 56 - array variable with a where guard (passing initializer) # Subtest: array variable with a where guard (failing initializer) # my @h where 5 = 6 ok 1 - deparse # Subtest: AST: EVAL 1..2 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 2 - AST: EVAL # Subtest: Str: EVAL 1..2 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 3 - Str: EVAL # Subtest: Raku: EVAL 1..2 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 4 - Raku: EVAL 1..4 ok 57 - array variable with a where guard (failing initializer) # Subtest: hash variable with a where guard (passing initializer) # my %h where 5 = :5s; # %h ok 1 - deparse ok 2 - AST: EVAL ok 3 - Str: EVAL ok 4 - Raku: EVAL 1..4 ok 58 - hash variable with a where guard (passing initializer) # Subtest: hash variable with a where guard (failing initializer) # my %h where 5 = :6s ok 1 - deparse # Subtest: AST: EVAL 1..2 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 2 - AST: EVAL # Subtest: Str: EVAL 1..2 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 3 - Str: EVAL # Subtest: Raku: EVAL 1..2 ok 1 - code dies ok 2 - right exception type (X::TypeCheck::Assignment) ok 4 - Raku: EVAL 1..4 ok 59 - hash variable with a where guard (failing initializer) ok t/12-rakuast/xx-fixed-in-rakuast.rakutest ....................... Potential difficulties: Pair with <> really means an empty list, not null string; use :out('') to represent the null string, or :out() to represent the empty list more accurately at /build/reproducible-path/rakudo-2024.09/t/12-rakuast/xx-fixed-in-rakuast.rakutest:212 ------>  where (*.chars == 1)|.AST.EVAL', :out<>⏏, :err<>, Pair with <> really means an empty list, not null string; use :err('') to represent the null string, or :err() to represent the empty list more accurately at /build/reproducible-path/rakudo-2024.09/t/12-rakuast/xx-fixed-in-rakuast.rakutest:212 ------> *.chars == 1)|.AST.EVAL', :out<>, :err<>⏏, 1..37 ok 1 - .say works with chained sequence and for # Subtest: trace pragma works with hash shapes 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 2 - trace pragma works with hash shapes ok 3 - phasers do not fire for loop that did not run ok 4 - multiple m// works correctly ok 5 - creating an object hash without specifying an 'of type' defaults to Mu ok 6 - *.uc and *.lc are not considered equivalent ok 7 - *.uc and *.uc are considered equivalent ok 8 - equivalence is still correct for more complicated WhateverCodes # TODO This was working but has regressed ok 9 - the :initialize flag is not sent to Set.STORE ok 10 - Pointy blocks are parameterized with return types ok 11 - Pointy blocks can be assigned to a parameterized Callable container ok 12 - creating a constant without a name dies ok 13 - wrapping infix:<|> works ok 14 - wrapping postfix:<++> works ok 15 - Colonpairs with indirect-lookup as variables work ok 16 - Colonpairs with indirect-lookup as variables work (complex) ok 17 - no error messages from code params to regexes (<.&a>) ok 18 - no error messages from code params to regexes (<&a>) ok 19 - eager on parenthesized range works without issue ok 20 - Parametarization with DefiniteHOWs is not ignored in binding ok 21 - Parametarization with DefiniteHOWs works where it should ok 22 - Parameterization with DefiniteHOWs is propagated to scalar container # Subtest: Ambiguous adverb usage results in coherent exception 1..2 ok 1 - code dies ok 2 - right exception type (X::Syntax::AmbiguousAdverb) ok 23 - Ambiguous adverb usage results in coherent exception ok 24 - String indices work where valid in multi-dimensional array access ok 25 - unsigned native parameters wrap around when provided with negative numbers # Subtest: No useless use of sink reporting for [[&say]] 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 26 - No useless use of sink reporting for [[&say]] # Subtest: No useless use of sink reporting for R[&say] 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 27 - No useless use of sink reporting for R[&say] # Subtest: No useless use of sink reporting for user-declared function 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 28 - No useless use of sink reporting for user-declared function # Subtest: '-n' compiler option iterates once per newline of input 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 29 - '-n' compiler option iterates once per newline of input # Subtest: '-p' compiler option iterates once per newline of input and the topic is writeable 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 30 - '-p' compiler option iterates once per newline of input and the topic is writeable # Subtest: topic variable is successfully lowered while using '-n' 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 31 - topic variable is successfully lowered while using '-n' ok 32 - andthen chaining does not disrupt WhateverCode construction # Subtest: repl can successfully use and instantiate a class ('Depth') that is shadowed and surpassed by an earlier used class ('Depth::One') 1..2 ok 1 - stdout is correct ok 2 - stderr is correct ok 33 - repl can successfully use and instantiate a class ('Depth') that is shadowed and surpassed by an earlier used class ('Depth::One') # Subtest: no worry of a useless 'useless use' for parenthesized prime expression in where clause 1..3 ok 1 - STDOUT ok 2 - STDERR ok 3 - Exit code ok 34 - no worry of a useless 'useless use' for parenthesized prime expression in where clause ok 35 - stubbed classes that belong to parent package cause no issues when stubbed and defined within parent package scope ok 36 - using the topic inside a 'with' and an embedded code block in a qq string ok 37 - did the code do the right thing ok All tests successful. Test Summary Report ------------------- t/12-rakuast/xx-fixed-in-rakuast.rakutest (Wstat: 0 Tests: 37 Failed: 0) TODO passed: 8 Files=151, Tests=2491, 3337 wallclock secs ( 7.59 usr 1.52 sys + 4114.01 cusr 245.10 csys = 4368.22 CPU) Result: PASS make[2]: Leaving directory '/build/reproducible-path/rakudo-2024.09' make[1]: Leaving directory '/build/reproducible-path/rakudo-2024.09' create-stamp debian/debhelper-build-stamp dh_prep debian/rules override_dh_auto_install make[1]: Entering directory '/build/reproducible-path/rakudo-2024.09' dh_auto_install make -j3 install DESTDIR=/build/reproducible-path/rakudo-2024.09/debian/rakudo AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" make[2]: Entering directory '/build/reproducible-path/rakudo-2024.09' +++ Creating installation directories +++ Preparing installation +++ Removing old files +++ Installing files Installed 24 core modules in 316.453053711 seconds! +++ MOAR BACKEND INSTALLED +++ Installing MOAR launchers +++ Creating Raku executable alias +++ Rakudo installed successfully! make[2]: Leaving directory '/build/reproducible-path/rakudo-2024.09' find /build/reproducible-path/rakudo-2024.09/debian/rakudo -type d -empty -delete mkdir -p /build/reproducible-path/rakudo-2024.09/debian/rakudo/usr/share/perl6/ ./rakudo-m -e 'say $*PERL.compiler.id' > /build/reproducible-path/rakudo-2024.09/debian/rakudo/usr/share/perl6/rakudo-compiler-id install --mode=a+x debian/rakudo-helper.pl /build/reproducible-path/rakudo-2024.09/debian/rakudo/usr/share/perl6/rakudo-helper.pl mkdir -p /build/reproducible-path/rakudo-2024.09/debian/rakudo/var/lib/perl6/modules mkdir -p /build/reproducible-path/rakudo-2024.09/debian/rakudo/usr/share/perl6/debian-sources mkdir -p /build/reproducible-path/rakudo-2024.09/debian/rakudo/usr/lib/perl6/site/short mkdir -p /build/reproducible-path/rakudo-2024.09/debian/rakudo/usr/lib/perl6/vendor/short make[1]: Leaving directory '/build/reproducible-path/rakudo-2024.09' dh_install dh_installdocs dh_installchangelogs dh_installman dh_lintian dh_perl dh_link dh_strip_nondeterminism dh_compress dh_fixperms debian/rules override_dh_missing make[1]: Entering directory '/build/reproducible-path/rakudo-2024.09' dh_missing --list-missing make[1]: Leaving directory '/build/reproducible-path/rakudo-2024.09' dh_dwz -a dh_strip -a dh_makeshlibs -a dh_shlibdeps -a dpkg-shlibdeps: warning: diversions involved - output may be incorrect diversion by libc6 from: /lib/ld-linux-armhf.so.3 dpkg-shlibdeps: warning: diversions involved - output may be incorrect diversion by libc6 to: /lib/ld-linux-armhf.so.3.usr-is-merged dh_installdeb debian/rules override_dh_gencontrol make[1]: Entering directory '/build/reproducible-path/rakudo-2024.09' dh_gencontrol -- -Vnqp:Depends="nqp (>= 2024.09+dfsg-2), nqp (<< 2024.10)" \ -Vmoarvm:Depends="moarvm (>= 2024.09), moarvm(<< 2024.10)" \ -Vraku:ApiVersion="raku-api-2024.09+"$(./rakudo-m -e 'say substr($*PERL.compiler.id.lc,0,8)') make[1]: Leaving directory '/build/reproducible-path/rakudo-2024.09' dh_md5sums dh_builddeb dpkg-deb: building package 'rakudo-dbgsym' in '../rakudo-dbgsym_2024.09-2_armhf.deb'. dpkg-deb: building package 'rakudo' in '../rakudo_2024.09-2_armhf.deb'. dpkg-genbuildinfo --build=binary -O../rakudo_2024.09-2_armhf.buildinfo dpkg-genchanges --build=binary -O../rakudo_2024.09-2_armhf.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/17092 and its subdirectories I: Current time: Thu Nov 7 10:27:59 -12 2024 I: pbuilder-time-stamp: 1731018479 Thu Nov 7 22:28:19 UTC 2024 I: 1st build successful. Starting 2nd build on remote node virt64a-armhf-rb.debian.net. Thu Nov 7 22:28:19 UTC 2024 I: Preparing to do remote build '2' on virt64a-armhf-rb.debian.net. Thu Nov 7 23:47:05 UTC 2024 I: Deleting $TMPDIR on virt64a-armhf-rb.debian.net. Thu Nov 7 23:47:07 UTC 2024 I: rakudo_2024.09-2_armhf.changes: Format: 1.8 Date: Tue, 29 Oct 2024 19:22:05 +0100 Source: rakudo Binary: rakudo rakudo-dbgsym Architecture: armhf Version: 2024.09-2 Distribution: unstable Urgency: medium Maintainer: Debian Rakudo Maintainers Changed-By: Dominique Dumont Description: rakudo - Raku implementation on top of MoarVM Changes: rakudo (2024.09-2) unstable; urgency=medium . * release to unstable * remove obsolete patch Checksums-Sha1: 59ae05fd631b8b47d146aa9d3e1573c527504f7d 230356 rakudo-dbgsym_2024.09-2_armhf.deb 17e61c82bede8e507a8299b79e109a450f192481 5089 rakudo_2024.09-2_armhf.buildinfo b54277d8b3fee2734fee9e46d3552af7cdc06fb3 6691728 rakudo_2024.09-2_armhf.deb Checksums-Sha256: 5d1bd9e75f405c40feb7e06235238d3a3fc8c1fb9194c7c20b195cea72345e4c 230356 rakudo-dbgsym_2024.09-2_armhf.deb fc1f4e52978a49bc31ed133932ed703e0a89749488f28bcffa001665aaf1eda5 5089 rakudo_2024.09-2_armhf.buildinfo ca8ddbfe9326ae2c7d85a4e438d06b5d284e37da0d4dc65ff4a501feb9bf2462 6691728 rakudo_2024.09-2_armhf.deb Files: a44d7541ca1f8dcf7f0b67be31f70e3a 230356 debug optional rakudo-dbgsym_2024.09-2_armhf.deb f49eee4deb8e1ea481a109ebcd203c07 5089 interpreters optional rakudo_2024.09-2_armhf.buildinfo 0434bef8ae3cad462d753af5d8d69f71 6691728 interpreters optional rakudo_2024.09-2_armhf.deb Thu Nov 7 23:47:09 UTC 2024 I: diffoscope 282 will be used to compare the two builds: Running as unit: rb-diffoscope-armhf_10-5925.service # Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.Q4aqKDeP/rakudo_2024.09-2.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.Q4aqKDeP/rakudo_2024.09-2.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.Q4aqKDeP/rakudo_2024.09-2.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.Q4aqKDeP/b1/rakudo_2024.09-2_armhf.changes /srv/reproducible-results/rbuild-debian/r-b-build.Q4aqKDeP/b2/rakudo_2024.09-2_armhf.changes ## close_archive (total time: 0.000s) 0.000s 2 calls diffoscope.comparators.deb.DebContainer 0.000s 6 calls diffoscope.comparators.xz.XzContainer 0.000s 4 calls diffoscope.comparators.tar.TarContainer 0.000s 2 calls diffoscope.comparators.deb.DebTarContainer ## command (total time: 108.651s) 63.562s 130 calls xxd 43.771s 18 calls diff 1.262s 6 calls xz 0.026s 4 calls cmp 0.026s 4 calls cmp (external) 0.005s 42 calls cmp (internal) ## compare_files (cumulative) (total time: 258.047s) 52.427s 1 call abc.DotChangesFile 52.379s 1 call abc.DebFile 52.289s 2 calls abc.XzFile 50.941s 1 call abc.DebDataTarFile 49.933s 13 calls diffoscope.comparators.utils.libarchive.LibarchiveMember 0.066s 1 call abc.TarFile 0.012s 1 call abc.Md5sumsFile ## container_extract (total time: 1.668s) 1.263s 6 calls diffoscope.comparators.xz.XzContainer 0.354s 354 calls diffoscope.comparators.deb.DebTarContainer 0.043s 8 calls diffoscope.comparators.deb.DebContainer 0.008s 14 calls diffoscope.comparators.tar.TarContainer ## diff (total time: 1.016s) 1.016s 191 calls linediff ## has_same_content_as (total time: 0.035s) 0.024s 13 calls diffoscope.comparators.utils.libarchive.LibarchiveMember 0.003s 1 call abc.DebDataTarFile 0.003s 2 calls abc.DebFile 0.003s 17 calls diffoscope.comparators.utils.libarchive.LibarchiveSymlink 0.001s 6 calls abc.TextFile 0.000s 2 calls abc.Md5sumsFile 0.000s 1 call abc.DotChangesFile 0.000s 1 call abc.TarFile 0.000s 2 calls abc.XzFile ## main (total time: 54.466s) 54.465s 2 calls outputs 0.001s 1 call cleanup ## open_archive (total time: 0.000s) 0.000s 6 calls diffoscope.comparators.xz.XzContainer 0.000s 4 calls diffoscope.comparators.tar.TarContainer 0.000s 2 calls diffoscope.comparators.deb.DebContainer 0.000s 2 calls diffoscope.comparators.deb.DebTarContainer ## output (total time: 1.537s) 1.529s 1 call html 0.005s 1 call text 0.003s 1 call json ## recognizes (total time: 0.434s) 0.261s 5526 calls diffoscope.comparators.utils.libarchive.LibarchiveMember 0.103s 12 calls diffoscope.comparators.binary.FilesystemFile 0.037s 260 calls diffoscope.comparators.utils.archive.ArchiveMember 0.032s 108 calls diffoscope.comparators.debian.DebControlMember ## specialize (total time: 0.447s) 0.447s 45 calls specialize Finished with result: success Main processes terminated with: code=exited/status=1 Service runtime: 54.825s CPU time consumed: 1min 14.181s Thu Nov 7 23:48:04 UTC 2024 W: Diffoscope claims the build is reproducible, but there is a diffoscope file. Please investigate. Thu Nov 7 23:48:04 UTC 2024 E: rakudo failed to build reproducibly in trixie on armhf. Thu Nov 7 23:48:06 UTC 2024 I: Submitting .buildinfo files to external archives: Thu Nov 7 23:48:06 UTC 2024 I: Submitting 8.0K b1/rakudo_2024.09-2_armhf.buildinfo.asc Thu Nov 7 23:48:07 UTC 2024 I: Submitting 8.0K b2/rakudo_2024.09-2_armhf.buildinfo.asc Thu Nov 7 23:48:08 UTC 2024 I: Done submitting .buildinfo files to http://buildinfo.debian.net/api/submit. Thu Nov 7 23:48:08 UTC 2024 I: Done submitting .buildinfo files. Thu Nov 7 23:48:08 UTC 2024 I: Removing signed rakudo_2024.09-2_armhf.buildinfo.asc files: removed './b1/rakudo_2024.09-2_armhf.buildinfo.asc' removed './b2/rakudo_2024.09-2_armhf.buildinfo.asc'