Diff of the two buildlogs: -- --- b1/build.log 2025-11-03 22:18:56.805653738 +0000 +++ b2/build.log 2025-11-03 22:24:01.946026093 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Nov 3 10:08:03 -12 2025 -I: pbuilder-time-stamp: 1762207683 +I: Current time: Mon Dec 7 18:41:59 +14 2026 +I: pbuilder-time-stamp: 1796618519 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -27,53 +27,85 @@ 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/3939809/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2282233/tmp/hooks/D01_modify_environment starting +debug: Running on codethink03-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Dec 7 04:42 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/2282233/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2282233/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='arm64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='arm64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="3" [2]="3" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 nocheck' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='53323a693ab24aadab846d6b3af2fd75' - 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='3939809' - PS1='# ' - PS2='> ' + INVOCATION_ID=50585307596a46aaaa80e992d21266f6 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=2282233 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.B3k6x0Un/pbuilderrc_viHh --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.B3k6x0Un/b1 --logfile b1/build.log rakudo_2024.09-4.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.B3k6x0Un/pbuilderrc_9tWi --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.B3k6x0Un/b2 --logfile b2/build.log rakudo_2024.09-4.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink04-arm64 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3939809/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2282233/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -159,7 +191,7 @@ Get: 38 http://deb.debian.org/debian unstable/main arm64 moarvm-dev arm64 2024.09+dfsg-5 [397 kB] Get: 39 http://deb.debian.org/debian unstable/main arm64 nqp-data all 2024.09+dfsg-5 [571 kB] Get: 40 http://deb.debian.org/debian unstable/main arm64 nqp arm64 2024.09+dfsg-5 [80.6 kB] -Fetched 13.9 MB in 0s (29.8 MB/s) +Fetched 13.9 MB in 0s (126 MB/s) Preconfiguring packages ... 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 ... 19968 files and directories currently installed.) @@ -334,7 +366,11 @@ 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-4_source.changes +I: user script /srv/workspace/pbuilder/2282233/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/2282233/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/rakudo-2024.09/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../rakudo_2024.09-4_source.changes dpkg-buildpackage: info: source package rakudo dpkg-buildpackage: info: source version 2024.09-4 dpkg-buildpackage: info: source distribution unstable @@ -370,8 +406,8 @@ +++ 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 ++++ Compiling dynext/libperl6_ops_moar.so +++ Generating gen/moar/Actions.nqp +++ Generating gen/moar/RakuGrammar.nqp +++ Generating gen/moar/RakuActions.nqp @@ -385,7 +421,6 @@ +++ Compiling inst-rakudo +++ Compiling inst-rakudo-debug +++ Compiling inst-rakudo-m -+++ Compiling inst-rakudo-debug-m /usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. /usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. /usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. @@ -394,6 +429,7 @@ /usr/lib/moar/libmoar.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. /lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. /lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. ++++ Compiling inst-rakudo-debug-m +++ Compiling inst-perl6 +++ Compiling inst-perl6-debug +++ Compiling inst-perl6-m @@ -403,8 +439,8 @@ +++ 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 ++++ Generating gen/moar/rakudo-debug.nqp +++ Compiling blib/Perl6/Metamodel.moarvm +++ Compiling blib/Perl6/World.moarvm +++ Compiling blib/Perl6/Actions.moarvm @@ -428,30 +464,30 @@ +++ Compiling blib/CORE.c.setting.moarvm The following step can take a long time, please be patient. Stage start : 0.000 -Stage parse : 113.918 +Stage parse : 126.022 Stage syntaxcheck: 0.000 Stage ast : 0.000 -Stage optimize : 10.968 -Stage mast : 19.658 -Stage mbc : 3.881 +Stage optimize : 11.252 +Stage mast : 19.772 +Stage mbc : 3.954 +++ Compiling blib/CORE.d.setting.moarvm The following step can take a long time, please be patient. Stage start : 0.000 -Stage parse : 0.627 +Stage parse : 0.692 Stage syntaxcheck: 0.000 Stage ast : 0.000 -Stage optimize : 0.034 -Stage mast : 0.055 -Stage mbc : 0.009 +Stage optimize : 0.035 +Stage mast : 0.079 +Stage mbc : 0.013 +++ Compiling blib/CORE.e.setting.moarvm The following step can take a long time, please be patient. -Stage start : 0.000 -Stage parse : 4.922 +Stage start : 0.001 +Stage parse : 4.913 Stage syntaxcheck: 0.000 Stage ast : 0.000 -Stage optimize : 0.563 -Stage mast : 0.885 -Stage mbc : 0.047 +Stage optimize : 0.509 +Stage mast : 0.930 +Stage mbc : 0.046 +++ Generating rakudo-m make[2]: Leaving directory '/build/reproducible-path/rakudo-2024.09' echo "Configuration:" @@ -467,12635 +503,6 @@ 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<187651554188096>' -# 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<187651554188128>' -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 ....................................... -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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|187650615505528) ... } -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -ok 1 - Pointer cast to Raku Sub -ok -t/04-nativecall/20-concurrent.t ................................. -1..3 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -ok 1 - Sanity check: Calling callback on thread that set it works -ok 2 - Calling callback on another thread works (1) -ok 3 - Calling callback on another thread works (2) -ok 4 - Calling callback on another thread works (4) -ok 5 - Calling callback on another thread works (0) -ok 6 - Calling callback on another thread works (5) -ok 7 - Calling callback on another thread works (3) -ok 8 - Calling callback on another thread works (6) -ok 9 - Calling callback on another thread works (7) -ok -t/04-nativecall/22-method.t ..................................... -1..2 -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libffi.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libtommath.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libuv.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libm.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libmvec.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/aarch64-linux-gnu/libc.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -/lib/ld-linux-aarch64.so.1: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. -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, :w, :g -ok 3 - The object is-a 'Str' -ok 4 - test GNU int16 with :t, :m, :q -ok 5 - The object is-a 'Str' -ok 6 - test GNU int32 with :c, :g, :l -ok 7 - The object is-a 'Str' -ok 8 - test GNU int64 with :g, :w, :l -ok 9 - The object is-a 'Str' -ok 10 - test GNU int8 with :b, :s, :n -ok 11 - The object is-a 'Str' -ok 12 - test GNU NativeCall::Types::CArray[int] with :, :t, :g -ok 13 - The object is-a 'Str' -ok 14 - test GNU NativeCall::Types::long with :u, :p, :j -ok 15 - The object is-a 'Str' -ok 16 - test GNU NativeCall::Types::longlong with :f, :h, :j -ok 17 - The object is-a 'Str' -ok 18 - test GNU NativeCall::Types::Pointer[int] with :, :b, :p -ok 19 - The object is-a 'Str' -ok 20 - test GNU NativeCall::Types::ulong with :p, :y, :d -ok 21 - The object is-a 'Str' -ok 22 - test GNU NativeCall::Types::ulonglong with :i, :u, :z -ok 23 - The object is-a 'Str' -ok 24 - test GNU NativeCall::Types::void with :n, :z, :i -ok 25 - The object is-a 'Str' -ok 26 - test GNU num32 with :q, :d, :l -ok 27 - The object is-a 'Str' -ok 28 - test GNU num64 with :t, :e, :w -ok 29 - The object is-a 'Str' -ok 30 - test GNU Str with :, :s, :p -ok 31 - The object is-a 'Str' -ok 32 - test GNU uint16 with :l, :j, :m -ok 33 - The object is-a 'Str' -ok 34 - test GNU uint32 with :b, :h, :q -ok 35 - The object is-a 'Str' -ok 36 - test GNU uint64 with :f, :p, :w -ok 37 - The object is-a 'Str' -ok 38 - test GNU uint8 with :f, :e, :b -ok 39 - The object is-a 'Str' -ok 40 - test MSVC Bool with :r, :i, :b -ok 41 - The object is-a 'Str' -ok 42 - test MSVC int16 with :w, :f, :g -ok 43 - The object is-a 'Str' -ok 44 - test MSVC int32 with :h, :a, :p -ok 45 - The object is-a 'Str' -ok 46 - test MSVC int64 with :l, :u, :o -ok 47 - The object is-a 'Str' -ok 48 - test MSVC int8 with :o, :h, :u -ok 49 - The object is-a 'Str' -ok 50 - test MSVC NativeCall::Types::CArray[int] with :u, :k, :i -ok 51 - The object is-a 'Str' -ok 52 - test MSVC NativeCall::Types::long with :k, :b, :t -ok 53 - The object is-a 'Str' -ok 54 - test MSVC NativeCall::Types::longlong with :k, :m, :g -ok 55 - The object is-a 'Str' -ok 56 - test MSVC NativeCall::Types::Pointer[int] with :q, :y, :j -ok 57 - The object is-a 'Str' -ok 58 - test MSVC NativeCall::Types::ulong with :u, :i, :m -ok 59 - The object is-a 'Str' -ok 60 - test MSVC NativeCall::Types::ulonglong with :e, :v, :l -ok 61 - The object is-a 'Str' -ok 62 - test MSVC NativeCall::Types::void with :t, :q, :h -ok 63 - The object is-a 'Str' -ok 64 - test MSVC num32 with :v, :h, :t -ok 65 - The object is-a 'Str' -ok 66 - test MSVC num64 with :w, :p, :v -ok 67 - The object is-a 'Str' -ok 68 - test MSVC Str with :f, :i, :d -ok 69 - The object is-a 'Str' -ok 70 - test MSVC uint16 with :a, :n, :y -ok 71 - The object is-a 'Str' -ok 72 - test MSVC uint32 with :u, :n, :t -ok 73 - The object is-a 'Str' -ok 74 - test MSVC uint64 with :w, :j, :y -ok 75 - The object is-a 'Str' -ok 76 - test MSVC uint8 with :q, :z, :b -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|187651108739584) ... } - 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|187651108739800) ... } - 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|187651108739872) ... } - 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|187651108739944) ... } - 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|187651108740016) ... } - 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|187651108740088) ... } - 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|187651108747864) ... } -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|187651088364968) ... } -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|187651056644272) ... } -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|187651053855640) ... } - 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|187651053856000) ... } - 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|187651053753752) ... } - 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|187651053754112) ... } - 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|187651117415696) ... } - 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|187651117416920) ... } - 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|187651059043456) ... } -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|187651059049936) ... } -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|187651071624480) ... } -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|187651066359144) ... } -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|187651066362456) ... } -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|187651066362528) ... } -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|187651066362600) ... } -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|187651076631088) ... } -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|187651078368176) ... } -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|187651078368680) ... } - 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|187651078368752) ... } - 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|187651078368824) ... } - 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|187651078368896) ... } - 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|187651078368968) ... } - 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|187651078369040) ... } - 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|187651078369112) ... } - 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|187651078369184) ... } - 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|187651078369256) ... } - 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|187651078369328) ... } - 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|187651078369400) ... } - 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|187651078369472) ... } - 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|187651078375880) ... } - 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|187651078375952) ... } - 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|187651078376024) ... } - 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|187651078376096) ... } - 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|187651078376168) ... } - 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|187651078376240) ... } - 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|187650988775736) ... } -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|187650993147072) ... } -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|281472897356808) ... } -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|187650990669016) ... } -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|187650990676432) ... } -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|187651004104712) ... } -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|187651003164608) ... } -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|187650997272400) ... } -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|187650997275136) ... } -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|187650997275280) ... } -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|187651027593688) ... } - 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|187651027593760) ... } - 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|187651027593832) ... } - 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|187651027593904) ... } - 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|187651025855168) ... } -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|187651025857544) ... } # TODO remove "expecting any of:" - # Failed test '.gist matches -> ;; $_? is raw = OUTER::<$_> { \#`(Block|187651025857544) ... }' - # at SETTING::src/core.c/Rakudo/Iterator.rakumod line 5725 - # Expected: -> ;; $_? is raw = OUTER::<$_> { #`(Block|187651025857544) ... } - # 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|187651025857976) ... } -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|281473164886704) ... } -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|187651664868680) ... } - 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|187651664868824) ... } - 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|187651664868896) ... } - 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|187651665442328) ... } - 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|187651665442400) ... } - 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|187651665442472) ... } - 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|187651665445352) ... } - 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|187651665445424) ... } - 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|187651665445496) ... } - 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 - .message matches Precondition '++$pre' failed - ok 4 - .phaser matches PRE - 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 - .message matches Precondition '++$pre' failed - ok 4 - .phaser matches PRE - 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 - .message matches Precondition '++$pre' failed - ok 4 - .phaser matches PRE - 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 - .phaser matches PRE - ok 4 - .message 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 - .message matches / '++$pre' / - ok 4 - .phaser 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 - .phaser matches POST - ok 4 - .message matches Postcondition '$post = $_' failed - 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 - .message matches / '$post = $_' / - 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 / '$post = $_' / - 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 - .phaser matches POST - ok 4 - .message 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 - .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 4 - .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 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 - .expected matches (Int) - ok 4 - .got matches 100000 - 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 - .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 4 - .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 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, 373 wallclock secs ( 1.32 usr 0.31 sys + 457.06 cusr 39.81 csys = 498.50 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 @@ -13107,7 +514,7 @@ +++ Preparing installation +++ Removing old files +++ Installing files - Installed 24 core modules in 36.28642957 seconds! + Installed 24 core modules in 41.89266956 seconds! +++ MOAR BACKEND INSTALLED +++ Installing MOAR launchers +++ Creating Raku executable alias @@ -13153,8 +560,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-4_arm64.deb'. dpkg-deb: building package 'rakudo' in '../rakudo_2024.09-4_arm64.deb'. +dpkg-deb: building package 'rakudo-dbgsym' in '../rakudo-dbgsym_2024.09-4_arm64.deb'. dpkg-genbuildinfo --build=binary -O../rakudo_2024.09-4_arm64.buildinfo dpkg-genchanges --build=binary -O../rakudo_2024.09-4_arm64.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -13162,12 +569,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/2282233/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2282233/tmp/hooks/B01_cleanup finished 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/3939809 and its subdirectories -I: Current time: Mon Nov 3 10:18:55 -12 2025 -I: pbuilder-time-stamp: 1762208335 +I: removing directory /srv/workspace/pbuilder/2282233 and its subdirectories +I: Current time: Mon Dec 7 18:47:00 +14 2026 +I: pbuilder-time-stamp: 1796618820