0s autopkgtest [14:04:01]: starting date and time: 2025-10-31 14:04:01+0000 0s autopkgtest [14:04:01]: git checkout: 508d4a25 a-v-ssh wait_for_ssh: demote "ssh connection failed" to a debug message 0s autopkgtest [14:04:01]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.uv_x80i2/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,internal,login.ubuntu.com,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed=src:libtype-tiny-perl --apt-upgrade libjson-schema-modern-perl --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=libtype-tiny-perl/2.008004-1 -- lxd -r lxd-armhf-10.145.243.229 lxd-armhf-10.145.243.229:autopkgtest/ubuntu/resolute/armhf 22s autopkgtest [14:04:23]: testbed dpkg architecture: armhf 24s autopkgtest [14:04:25]: testbed apt version: 3.1.6ubuntu2 27s autopkgtest [14:04:28]: @@@@@@@@@@@@@@@@@@@@ test bed setup 29s autopkgtest [14:04:30]: testbed release detected to be: None 38s autopkgtest [14:04:38]: updating testbed package index (apt update) 39s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 39s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [87.8 kB] 39s Get:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease [87.8 kB] 39s Get:4 http://ftpmaster.internal/ubuntu resolute-security InRelease [87.8 kB] 39s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [153 kB] 40s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 40s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [2956 kB] 41s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [51.8 kB] 41s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [211 kB] 41s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted armhf Packages [940 B] 41s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [2039 kB] 41s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [29.0 kB] 41s Get:13 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.1 MB] 45s Get:14 http://ftpmaster.internal/ubuntu resolute/multiverse Sources [311 kB] 45s Get:15 http://ftpmaster.internal/ubuntu resolute/restricted Sources [12.5 kB] 45s Get:16 http://ftpmaster.internal/ubuntu resolute/main Sources [1414 kB] 46s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1373 kB] 46s Get:18 http://ftpmaster.internal/ubuntu resolute/restricted armhf Packages [1232 B] 46s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.0 MB] 47s Get:20 http://ftpmaster.internal/ubuntu resolute/multiverse armhf Packages [183 kB] 49s Fetched 45.2 MB in 10s (4444 kB/s) 50s Reading package lists... 56s autopkgtest [14:04:57]: upgrading testbed (apt dist-upgrade and autopurge) 58s Reading package lists... 58s Building dependency tree... 58s Reading state information... 58s Calculating upgrade... 59s The following NEW packages will be installed: 59s python3.14-gdbm 59s The following packages will be upgraded: 59s apparmor apt base-files bind9-dnsutils bind9-host bind9-libs binutils 59s binutils-arm-linux-gnueabihf binutils-common bsdextrautils bsdutils 59s cloud-init cloud-init-base distro-info-data dpkg dpkg-dev eject fdisk 59s gcc-15-base gir1.2-girepository-2.0 gir1.2-glib-2.0 gnu-coreutils grep 59s libapparmor1 libapt-pkg7.0 libatomic1 libaudit-common libaudit1 libbinutils 59s libblkid1 libbrotli1 libcap-ng0 libctf-nobfd0 libctf0 libdpkg-perl 59s libdrm-common libdrm2 libelf1t64 libfdisk1 libgcc-s1 libgirepository-1.0-1 59s libglib2.0-0t64 libglib2.0-data libgpg-error-l10n libgpg-error0 59s libhogweed6t64 libjson-c5 liblastlog2-2 libmount1 libnettle8t64 libnewt0.52 59s libnftables1 libnl-3-200 libnl-route-3-200 libp11-kit0 libpython3.13-minimal 59s libpython3.13-stdlib librtmp1 libseccomp2 libselinux1 libsemanage-common 59s libsemanage2 libsepol2 libsframe2 libsmartcols1 libstdc++6 libuchardet0 59s libuuid1 libxml2-16 login lto-disabled-list mount nano nftables 59s python-apt-common python3-apt python3-bcrypt python3-blinker 59s python3-cffi-backend python3-dbus python3-gdbm python3-inflect python3-jwt 59s python3-lazr.uri python3-markupsafe python3-more-itertools python3-oauthlib 59s python3-openssl python3-pyparsing python3-yaml python3-zipp python3.13 59s python3.13-gdbm python3.13-minimal sensible-utils sudo-rs tzdata 59s ubuntu-pro-client ubuntu-pro-client-l10n usb.ids util-linux uuid-runtime 59s whiptail 59s 103 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 59s Need to get 28.3 MB of archives. 59s After this operation, 1098 kB of additional disk space will be used. 59s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf base-files armhf 14ubuntu4 [75.4 kB] 59s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libatomic1 armhf 15.2.0-5ubuntu1 [7942 B] 59s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15-base armhf 15.2.0-5ubuntu1 [58.1 kB] 59s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf libgcc-s1 armhf 15.2.0-5ubuntu1 [40.6 kB] 59s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libstdc++6 armhf 15.2.0-5ubuntu1 [731 kB] 59s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libapt-pkg7.0 armhf 3.1.11 [1157 kB] 60s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg armhf 1.22.21ubuntu4 [1245 kB] 60s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf grep armhf 3.12-1 [165 kB] 60s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf eject armhf 2.41.2-4ubuntu1 [65.9 kB] 60s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf fdisk armhf 2.41.2-4ubuntu1 [164 kB] 60s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libblkid1 armhf 2.41.2-4ubuntu1 [174 kB] 60s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libmount1 armhf 2.41.2-4ubuntu1 [206 kB] 60s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf libsmartcols1 armhf 2.41.2-4ubuntu1 [143 kB] 60s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf mount armhf 2.41.2-4ubuntu1 [166 kB] 60s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf uuid-runtime armhf 2.41.2-4ubuntu1 [67.6 kB] 60s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf libuuid1 armhf 2.41.2-4ubuntu1 [43.8 kB] 60s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf libfdisk1 armhf 2.41.2-4ubuntu1 [222 kB] 60s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf bsdutils armhf 1:2.41.2-4ubuntu1 [98.2 kB] 60s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf util-linux armhf 2.41.2-4ubuntu1 [1146 kB] 60s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf bsdextrautils armhf 2.41.2-4ubuntu1 [101 kB] 60s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf libselinux1 armhf 3.8.1-1build2 [81.3 kB] 60s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf libseccomp2 armhf 2.6.0-2ubuntu3 [53.5 kB] 60s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf apt armhf 3.1.11 [1434 kB] 60s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf gnu-coreutils armhf 9.7-3ubuntu1 [1209 kB] 60s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit-common all 1:4.0.5-1build2 [6596 B] 60s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf libcap-ng0 armhf 0.8.5-4build3 [14.0 kB] 60s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit1 armhf 1:4.0.5-1build2 [51.7 kB] 60s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf login armhf 1:4.16.0-2+really2.41.2-4ubuntu1 [109 kB] 60s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13 armhf 3.13.9-1 [753 kB] 60s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13-minimal armhf 3.13.9-1 [2058 kB] 60s Get:31 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.13-stdlib armhf 3.13.9-1 [1957 kB] 61s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.13-minimal armhf 3.13.9-1 [873 kB] 61s Get:33 http://ftpmaster.internal/ubuntu resolute/main armhf tzdata all 2025b-5ubuntu1 [198 kB] 61s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf liblastlog2-2 armhf 2.41.2-4ubuntu1 [34.6 kB] 61s Get:35 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage-common all 3.8.1-1build1 [7916 B] 61s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf libsepol2 armhf 3.9-2 [286 kB] 61s Get:37 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage2 armhf 3.8.1-1build1 [89.2 kB] 61s Get:38 http://ftpmaster.internal/ubuntu resolute/main armhf libgpg-error-l10n all 1.56-2 [9066 B] 61s Get:39 http://ftpmaster.internal/ubuntu resolute/main armhf libgpg-error0 armhf 1.56-2 [69.2 kB] 61s Get:40 http://ftpmaster.internal/ubuntu resolute/main armhf sensible-utils all 0.0.26 [27.0 kB] 61s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf distro-info-data all 0.68 [7378 B] 61s Get:42 http://ftpmaster.internal/ubuntu resolute/main armhf gir1.2-girepository-2.0 armhf 1.86.0-6 [25.3 kB] 61s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf gir1.2-glib-2.0 armhf 2.86.1-1 [182 kB] 61s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf libglib2.0-0t64 armhf 2.86.1-1 [1482 kB] 61s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf libgirepository-1.0-1 armhf 1.86.0-6 [111 kB] 61s Get:46 http://ftpmaster.internal/ubuntu resolute/main armhf libapparmor1 armhf 5.0.0~alpha1-0ubuntu8.1 [52.9 kB] 61s Get:47 http://ftpmaster.internal/ubuntu resolute/main armhf libelf1t64 armhf 0.193-3 [50.9 kB] 61s Get:48 http://ftpmaster.internal/ubuntu resolute/main armhf libglib2.0-data all 2.86.1-1 [56.7 kB] 61s Get:49 http://ftpmaster.internal/ubuntu resolute/main armhf libnettle8t64 armhf 3.10.2-1 [189 kB] 61s Get:50 http://ftpmaster.internal/ubuntu resolute/main armhf libhogweed6t64 armhf 3.10.2-1 [188 kB] 61s Get:51 http://ftpmaster.internal/ubuntu resolute/main armhf libjson-c5 armhf 0.18+ds-1.1 [33.3 kB] 61s Get:52 http://ftpmaster.internal/ubuntu resolute/main armhf libnewt0.52 armhf 0.52.25-1ubuntu2 [39.9 kB] 61s Get:53 http://ftpmaster.internal/ubuntu resolute/main armhf libp11-kit0 armhf 0.25.9-2 [265 kB] 61s Get:54 http://ftpmaster.internal/ubuntu resolute/main armhf libxml2-16 armhf 2.14.5+dfsg-0.2build1 [527 kB] 61s Get:55 http://ftpmaster.internal/ubuntu resolute/main armhf python-apt-common all 3.0.0ubuntu2 [21.7 kB] 61s Get:56 http://ftpmaster.internal/ubuntu resolute/main armhf python3-apt armhf 3.0.0ubuntu2 [189 kB] 61s Get:57 http://ftpmaster.internal/ubuntu resolute/main armhf python3-cffi-backend armhf 2.0.0-2 [99.1 kB] 61s Get:58 http://ftpmaster.internal/ubuntu resolute/main armhf python3-dbus armhf 1.4.0-1build1 [113 kB] 61s Get:59 http://ftpmaster.internal/ubuntu resolute/main armhf python3-yaml armhf 6.0.2-2 [181 kB] 61s Get:60 http://ftpmaster.internal/ubuntu resolute/main armhf sudo-rs armhf 0.2.8-1ubuntu5.1 [548 kB] 61s Get:61 http://ftpmaster.internal/ubuntu resolute/main armhf ubuntu-pro-client-l10n armhf 37.1ubuntu0 [19.8 kB] 61s Get:62 http://ftpmaster.internal/ubuntu resolute/main armhf ubuntu-pro-client armhf 37.1ubuntu0 [260 kB] 61s Get:63 http://ftpmaster.internal/ubuntu resolute/main armhf whiptail armhf 0.52.25-1ubuntu2 [17.1 kB] 61s Get:64 http://ftpmaster.internal/ubuntu resolute/main armhf apparmor armhf 5.0.0~alpha1-0ubuntu8.1 [631 kB] 62s Get:65 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-dnsutils armhf 1:9.20.11-1ubuntu3 [156 kB] 62s Get:66 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-host armhf 1:9.20.11-1ubuntu3 [46.5 kB] 62s Get:67 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-libs armhf 1:9.20.11-1ubuntu3 [1202 kB] 62s Get:68 http://ftpmaster.internal/ubuntu resolute/main armhf libdrm-common all 2.4.127-1ubuntu1 [9716 B] 62s Get:69 http://ftpmaster.internal/ubuntu resolute/main armhf libdrm2 armhf 2.4.127-1ubuntu1 [37.8 kB] 62s Get:70 http://ftpmaster.internal/ubuntu resolute/main armhf nftables armhf 1.1.5-2 [73.2 kB] 62s Get:71 http://ftpmaster.internal/ubuntu resolute/main armhf libnftables1 armhf 1.1.5-2 [329 kB] 62s Get:72 http://ftpmaster.internal/ubuntu resolute/main armhf libnl-route-3-200 armhf 3.11.0-2 [173 kB] 62s Get:73 http://ftpmaster.internal/ubuntu resolute/main armhf libnl-3-200 armhf 3.11.0-2 [51.2 kB] 62s Get:74 http://ftpmaster.internal/ubuntu resolute/main armhf libuchardet0 armhf 0.0.8-2 [74.1 kB] 62s Get:75 http://ftpmaster.internal/ubuntu resolute/main armhf nano armhf 8.6-1 [279 kB] 62s Get:76 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13-gdbm armhf 3.13.9-1 [30.9 kB] 62s Get:77 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14-gdbm armhf 3.14.0-4 [31.3 kB] 62s Get:78 http://ftpmaster.internal/ubuntu resolute/main armhf python3-gdbm armhf 3.13.9-1 [8884 B] 62s Get:79 http://ftpmaster.internal/ubuntu resolute/main armhf usb.ids all 2025.09.15-1 [224 kB] 62s Get:80 http://ftpmaster.internal/ubuntu resolute/main armhf libctf0 armhf 2.45-8ubuntu1 [75.7 kB] 62s Get:81 http://ftpmaster.internal/ubuntu resolute/main armhf libctf-nobfd0 armhf 2.45-8ubuntu1 [78.9 kB] 62s Get:82 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-arm-linux-gnueabihf armhf 2.45-8ubuntu1 [1022 kB] 62s Get:83 http://ftpmaster.internal/ubuntu resolute/main armhf libbinutils armhf 2.45-8ubuntu1 [411 kB] 62s Get:84 http://ftpmaster.internal/ubuntu resolute/main armhf binutils armhf 2.45-8ubuntu1 [3234 B] 62s Get:85 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-common armhf 2.45-8ubuntu1 [221 kB] 62s Get:86 http://ftpmaster.internal/ubuntu resolute/main armhf libsframe2 armhf 2.45-8ubuntu1 [13.3 kB] 62s Get:87 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init-base all 25.4~1gcb12e00e-0ubuntu1 [625 kB] 62s Get:88 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init all 25.4~1gcb12e00e-0ubuntu1 [2114 B] 62s Get:89 http://ftpmaster.internal/ubuntu resolute/main armhf python3-blinker all 1.9.0-2 [10.8 kB] 62s Get:90 http://ftpmaster.internal/ubuntu resolute/main armhf python3-jwt all 2.10.1-3 [21.1 kB] 62s Get:91 http://ftpmaster.internal/ubuntu resolute/main armhf python3-oauthlib all 3.3.1-1 [93.5 kB] 62s Get:92 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg-dev all 1.22.21ubuntu4 [1088 kB] 62s Get:93 http://ftpmaster.internal/ubuntu resolute/main armhf libdpkg-perl all 1.22.21ubuntu4 [280 kB] 62s Get:94 http://ftpmaster.internal/ubuntu resolute/main armhf lto-disabled-list all 71 [12.5 kB] 62s Get:95 http://ftpmaster.internal/ubuntu resolute/main armhf libbrotli1 armhf 1.1.0-2build6 [320 kB] 62s Get:96 http://ftpmaster.internal/ubuntu resolute/main armhf librtmp1 armhf 2.4+20151223.gitfa8646d.1-3 [52.1 kB] 62s Get:97 http://ftpmaster.internal/ubuntu resolute/main armhf python3-more-itertools all 10.8.0-1 [63.5 kB] 62s Get:98 http://ftpmaster.internal/ubuntu resolute/main armhf python3-inflect all 7.5.0-1 [33.9 kB] 62s Get:99 http://ftpmaster.internal/ubuntu resolute/main armhf python3-lazr.uri all 1.0.6-7 [13.8 kB] 62s Get:100 http://ftpmaster.internal/ubuntu resolute/main armhf python3-markupsafe armhf 3.0.3-1 [12.1 kB] 62s Get:101 http://ftpmaster.internal/ubuntu resolute/main armhf python3-openssl all 25.1.0-1 [46.4 kB] 62s Get:102 http://ftpmaster.internal/ubuntu resolute/main armhf python3-pyparsing all 3.1.3-1 [87.0 kB] 63s Get:103 http://ftpmaster.internal/ubuntu resolute/main armhf python3-zipp all 3.23.0-1 [10.4 kB] 63s Get:104 http://ftpmaster.internal/ubuntu resolute/main armhf python3-bcrypt armhf 4.3.0-2 [251 kB] 63s Preconfiguring packages ... 64s Fetched 28.3 MB in 4s (6932 kB/s) 64s (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 ... 61081 files and directories currently installed.) 64s Preparing to unpack .../base-files_14ubuntu4_armhf.deb ... 64s Unpacking base-files (14ubuntu4) over (14ubuntu3) ... 64s Setting up base-files (14ubuntu4) ... 64s Installing new version of config file /etc/issue ... 64s Installing new version of config file /etc/issue.net ... 64s Installing new version of config file /etc/lsb-release ... 65s motd-news.service is a disabled or a static unit not running, not starting it. 65s (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 ... 61081 files and directories currently installed.) 65s Preparing to unpack .../libatomic1_15.2.0-5ubuntu1_armhf.deb ... 65s Unpacking libatomic1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 65s Preparing to unpack .../gcc-15-base_15.2.0-5ubuntu1_armhf.deb ... 65s Unpacking gcc-15-base:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 65s Setting up gcc-15-base:armhf (15.2.0-5ubuntu1) ... 65s (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 ... 61081 files and directories currently installed.) 65s Preparing to unpack .../libgcc-s1_15.2.0-5ubuntu1_armhf.deb ... 65s Unpacking libgcc-s1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 65s Setting up libgcc-s1:armhf (15.2.0-5ubuntu1) ... 65s (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 ... 61081 files and directories currently installed.) 65s Preparing to unpack .../libstdc++6_15.2.0-5ubuntu1_armhf.deb ... 65s Unpacking libstdc++6:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 65s Setting up libstdc++6:armhf (15.2.0-5ubuntu1) ... 65s (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 ... 61081 files and directories currently installed.) 65s Preparing to unpack .../libapt-pkg7.0_3.1.11_armhf.deb ... 65s Unpacking libapt-pkg7.0:armhf (3.1.11) over (3.1.6ubuntu2) ... 65s Setting up libapt-pkg7.0:armhf (3.1.11) ... 65s (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 ... 61082 files and directories currently installed.) 65s Preparing to unpack .../dpkg_1.22.21ubuntu4_armhf.deb ... 65s Unpacking dpkg (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 65s Setting up dpkg (1.22.21ubuntu4) ... 66s (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 ... 61082 files and directories currently installed.) 66s Preparing to unpack .../archives/grep_3.12-1_armhf.deb ... 66s Unpacking grep (3.12-1) over (3.11-4build1) ... 66s Setting up grep (3.12-1) ... 66s (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 ... 61082 files and directories currently installed.) 66s Preparing to unpack .../eject_2.41.2-4ubuntu1_armhf.deb ... 66s Unpacking eject (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 66s Preparing to unpack .../fdisk_2.41.2-4ubuntu1_armhf.deb ... 66s Unpacking fdisk (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 66s Preparing to unpack .../libblkid1_2.41.2-4ubuntu1_armhf.deb ... 66s Unpacking libblkid1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 66s Setting up libblkid1:armhf (2.41.2-4ubuntu1) ... 66s (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 ... 61082 files and directories currently installed.) 66s Preparing to unpack .../libmount1_2.41.2-4ubuntu1_armhf.deb ... 66s Unpacking libmount1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 66s Setting up libmount1:armhf (2.41.2-4ubuntu1) ... 66s (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 ... 61082 files and directories currently installed.) 66s Preparing to unpack .../libsmartcols1_2.41.2-4ubuntu1_armhf.deb ... 66s Unpacking libsmartcols1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 66s Setting up libsmartcols1:armhf (2.41.2-4ubuntu1) ... 66s (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 ... 61082 files and directories currently installed.) 66s Preparing to unpack .../mount_2.41.2-4ubuntu1_armhf.deb ... 66s Unpacking mount (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 66s Preparing to unpack .../uuid-runtime_2.41.2-4ubuntu1_armhf.deb ... 66s Unpacking uuid-runtime (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 66s Preparing to unpack .../libuuid1_2.41.2-4ubuntu1_armhf.deb ... 66s Unpacking libuuid1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 66s Setting up libuuid1:armhf (2.41.2-4ubuntu1) ... 66s (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 ... 61082 files and directories currently installed.) 66s Preparing to unpack .../libfdisk1_2.41.2-4ubuntu1_armhf.deb ... 66s Unpacking libfdisk1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 66s Preparing to unpack .../bsdutils_1%3a2.41.2-4ubuntu1_armhf.deb ... 66s Unpacking bsdutils (1:2.41.2-4ubuntu1) over (1:2.41-4ubuntu4) ... 66s Setting up bsdutils (1:2.41.2-4ubuntu1) ... 66s (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 ... 61079 files and directories currently installed.) 66s Preparing to unpack .../util-linux_2.41.2-4ubuntu1_armhf.deb ... 66s Unpacking util-linux (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 66s Setting up util-linux (2.41.2-4ubuntu1) ... 67s fstrim.service is a disabled or a static unit not running, not starting it. 67s (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 ... 61050 files and directories currently installed.) 67s Preparing to unpack .../bsdextrautils_2.41.2-4ubuntu1_armhf.deb ... 67s Unpacking bsdextrautils (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 67s Preparing to unpack .../libselinux1_3.8.1-1build2_armhf.deb ... 67s Unpacking libselinux1:armhf (3.8.1-1build2) over (3.8.1-1build1) ... 67s Setting up libselinux1:armhf (3.8.1-1build2) ... 67s (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 ... 61053 files and directories currently installed.) 67s Preparing to unpack .../libseccomp2_2.6.0-2ubuntu3_armhf.deb ... 67s Unpacking libseccomp2:armhf (2.6.0-2ubuntu3) over (2.6.0-2ubuntu2) ... 67s Setting up libseccomp2:armhf (2.6.0-2ubuntu3) ... 67s (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 ... 61053 files and directories currently installed.) 67s Preparing to unpack .../archives/apt_3.1.11_armhf.deb ... 67s Unpacking apt (3.1.11) over (3.1.6ubuntu2) ... 68s Setting up apt (3.1.11) ... 68s Installing new version of config file /etc/apt/apt.conf.d/01-vendor-ubuntu ... 68s (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 ... 61054 files and directories currently installed.) 68s Preparing to unpack .../gnu-coreutils_9.7-3ubuntu1_armhf.deb ... 68s Unpacking gnu-coreutils (9.7-3ubuntu1) over (9.5-1ubuntu4) ... 68s Setting up gnu-coreutils (9.7-3ubuntu1) ... 68s (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 ... 61049 files and directories currently installed.) 68s Preparing to unpack .../libaudit-common_1%3a4.0.5-1build2_all.deb ... 68s Unpacking libaudit-common (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 68s Setting up libaudit-common (1:4.0.5-1build2) ... 68s (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 ... 61049 files and directories currently installed.) 68s Preparing to unpack .../libcap-ng0_0.8.5-4build3_armhf.deb ... 68s Unpacking libcap-ng0:armhf (0.8.5-4build3) over (0.8.5-4build2) ... 68s Setting up libcap-ng0:armhf (0.8.5-4build3) ... 68s (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 ... 61049 files and directories currently installed.) 68s Preparing to unpack .../libaudit1_1%3a4.0.5-1build2_armhf.deb ... 68s Unpacking libaudit1:armhf (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 69s Setting up libaudit1:armhf (1:4.0.5-1build2) ... 69s (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 ... 61049 files and directories currently installed.) 69s Preparing to unpack .../0-login_1%3a4.16.0-2+really2.41.2-4ubuntu1_armhf.deb ... 69s Unpacking login (1:4.16.0-2+really2.41.2-4ubuntu1) over (1:4.16.0-2+really2.41-4ubuntu4) ... 69s Preparing to unpack .../1-python3.13_3.13.9-1_armhf.deb ... 69s Unpacking python3.13 (3.13.9-1) over (3.13.7-1) ... 69s Preparing to unpack .../2-python3.13-minimal_3.13.9-1_armhf.deb ... 69s Unpacking python3.13-minimal (3.13.9-1) over (3.13.7-1) ... 69s Preparing to unpack .../3-libpython3.13-stdlib_3.13.9-1_armhf.deb ... 69s Unpacking libpython3.13-stdlib:armhf (3.13.9-1) over (3.13.7-1) ... 69s Preparing to unpack .../4-libpython3.13-minimal_3.13.9-1_armhf.deb ... 69s Unpacking libpython3.13-minimal:armhf (3.13.9-1) over (3.13.7-1) ... 69s Preparing to unpack .../5-tzdata_2025b-5ubuntu1_all.deb ... 69s Unpacking tzdata (2025b-5ubuntu1) over (2025b-3ubuntu1) ... 69s Preparing to unpack .../6-liblastlog2-2_2.41.2-4ubuntu1_armhf.deb ... 69s Unpacking liblastlog2-2:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 69s Setting up liblastlog2-2:armhf (2.41.2-4ubuntu1) ... 69s (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 ... 61041 files and directories currently installed.) 69s Preparing to unpack .../libsemanage-common_3.8.1-1build1_all.deb ... 69s Unpacking libsemanage-common (3.8.1-1build1) over (3.8.1-1) ... 69s Setting up libsemanage-common (3.8.1-1build1) ... 69s (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 ... 61041 files and directories currently installed.) 69s Preparing to unpack .../libsepol2_3.9-2_armhf.deb ... 69s Unpacking libsepol2:armhf (3.9-2) over (3.8.1-1) ... 70s Setting up libsepol2:armhf (3.9-2) ... 70s (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 ... 61041 files and directories currently installed.) 70s Preparing to unpack .../libsemanage2_3.8.1-1build1_armhf.deb ... 70s Unpacking libsemanage2:armhf (3.8.1-1build1) over (3.8.1-1) ... 70s Setting up libsemanage2:armhf (3.8.1-1build1) ... 70s (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 ... 61041 files and directories currently installed.) 70s Preparing to unpack .../libgpg-error-l10n_1.56-2_all.deb ... 70s Unpacking libgpg-error-l10n (1.56-2) over (1.51-4) ... 70s Preparing to unpack .../libgpg-error0_1.56-2_armhf.deb ... 70s Unpacking libgpg-error0:armhf (1.56-2) over (1.51-4) ... 70s Setting up libgpg-error0:armhf (1.56-2) ... 70s (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 ... 61041 files and directories currently installed.) 70s Preparing to unpack .../00-sensible-utils_0.0.26_all.deb ... 70s Unpacking sensible-utils (0.0.26) over (0.0.25) ... 70s Preparing to unpack .../01-distro-info-data_0.68_all.deb ... 70s Unpacking distro-info-data (0.68) over (0.66) ... 70s Preparing to unpack .../02-gir1.2-girepository-2.0_1.86.0-6_armhf.deb ... 70s Unpacking gir1.2-girepository-2.0:armhf (1.86.0-6) over (1.84.0-1) ... 70s Preparing to unpack .../03-gir1.2-glib-2.0_2.86.1-1_armhf.deb ... 70s Unpacking gir1.2-glib-2.0:armhf (2.86.1-1) over (2.86.0-2) ... 70s Preparing to unpack .../04-libglib2.0-0t64_2.86.1-1_armhf.deb ... 70s Unpacking libglib2.0-0t64:armhf (2.86.1-1) over (2.86.0-2) ... 70s Preparing to unpack .../05-libgirepository-1.0-1_1.86.0-6_armhf.deb ... 70s Unpacking libgirepository-1.0-1:armhf (1.86.0-6) over (1.84.0-1) ... 70s Preparing to unpack .../06-libapparmor1_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 70s Unpacking libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 70s Preparing to unpack .../07-libelf1t64_0.193-3_armhf.deb ... 70s Unpacking libelf1t64:armhf (0.193-3) over (0.193-1) ... 70s Preparing to unpack .../08-libglib2.0-data_2.86.1-1_all.deb ... 70s Unpacking libglib2.0-data (2.86.1-1) over (2.86.0-2) ... 70s Preparing to unpack .../09-libnettle8t64_3.10.2-1_armhf.deb ... 70s Unpacking libnettle8t64:armhf (3.10.2-1) over (3.10.1-1) ... 70s Preparing to unpack .../10-libhogweed6t64_3.10.2-1_armhf.deb ... 70s Unpacking libhogweed6t64:armhf (3.10.2-1) over (3.10.1-1) ... 70s Preparing to unpack .../11-libjson-c5_0.18+ds-1.1_armhf.deb ... 70s Unpacking libjson-c5:armhf (0.18+ds-1.1) over (0.18+ds-1) ... 70s Preparing to unpack .../12-libnewt0.52_0.52.25-1ubuntu2_armhf.deb ... 70s Unpacking libnewt0.52:armhf (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 70s Preparing to unpack .../13-libp11-kit0_0.25.9-2_armhf.deb ... 70s Unpacking libp11-kit0:armhf (0.25.9-2) over (0.25.5-3ubuntu1) ... 70s Preparing to unpack .../14-libxml2-16_2.14.5+dfsg-0.2build1_armhf.deb ... 70s Unpacking libxml2-16:armhf (2.14.5+dfsg-0.2build1) over (2.14.5+dfsg-0.2) ... 70s Preparing to unpack .../15-python-apt-common_3.0.0ubuntu2_all.deb ... 70s Unpacking python-apt-common (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 70s Preparing to unpack .../16-python3-apt_3.0.0ubuntu2_armhf.deb ... 71s Unpacking python3-apt (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 71s Preparing to unpack .../17-python3-cffi-backend_2.0.0-2_armhf.deb ... 71s Unpacking python3-cffi-backend:armhf (2.0.0-2) over (1.17.1-3) ... 71s Preparing to unpack .../18-python3-dbus_1.4.0-1build1_armhf.deb ... 71s Unpacking python3-dbus (1.4.0-1build1) over (1.4.0-1) ... 71s Preparing to unpack .../19-python3-yaml_6.0.2-2_armhf.deb ... 71s Unpacking python3-yaml (6.0.2-2) over (6.0.2-1build2) ... 71s Preparing to unpack .../20-sudo-rs_0.2.8-1ubuntu5.1_armhf.deb ... 71s Unpacking sudo-rs (0.2.8-1ubuntu5.1) over (0.2.8-1ubuntu5) ... 71s Preparing to unpack .../21-ubuntu-pro-client-l10n_37.1ubuntu0_armhf.deb ... 71s Unpacking ubuntu-pro-client-l10n (37.1ubuntu0) over (37ubuntu0) ... 71s Preparing to unpack .../22-ubuntu-pro-client_37.1ubuntu0_armhf.deb ... 71s Unpacking ubuntu-pro-client (37.1ubuntu0) over (37ubuntu0) ... 71s Preparing to unpack .../23-whiptail_0.52.25-1ubuntu2_armhf.deb ... 71s Unpacking whiptail (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 71s Preparing to unpack .../24-apparmor_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 72s Unpacking apparmor (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 73s Preparing to unpack .../25-bind9-dnsutils_1%3a9.20.11-1ubuntu3_armhf.deb ... 73s Unpacking bind9-dnsutils (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 73s Preparing to unpack .../26-bind9-host_1%3a9.20.11-1ubuntu3_armhf.deb ... 73s Unpacking bind9-host (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 73s Preparing to unpack .../27-bind9-libs_1%3a9.20.11-1ubuntu3_armhf.deb ... 73s Unpacking bind9-libs:armhf (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 73s Preparing to unpack .../28-libdrm-common_2.4.127-1ubuntu1_all.deb ... 73s Unpacking libdrm-common (2.4.127-1ubuntu1) over (2.4.125-1) ... 73s Preparing to unpack .../29-libdrm2_2.4.127-1ubuntu1_armhf.deb ... 73s Unpacking libdrm2:armhf (2.4.127-1ubuntu1) over (2.4.125-1) ... 73s Preparing to unpack .../30-nftables_1.1.5-2_armhf.deb ... 73s Unpacking nftables (1.1.5-2) over (1.1.5-1) ... 73s Preparing to unpack .../31-libnftables1_1.1.5-2_armhf.deb ... 73s Unpacking libnftables1:armhf (1.1.5-2) over (1.1.5-1) ... 73s Preparing to unpack .../32-libnl-route-3-200_3.11.0-2_armhf.deb ... 73s Unpacking libnl-route-3-200:armhf (3.11.0-2) over (3.7.0-2build1) ... 73s Preparing to unpack .../33-libnl-3-200_3.11.0-2_armhf.deb ... 73s Unpacking libnl-3-200:armhf (3.11.0-2) over (3.7.0-2build1) ... 73s Preparing to unpack .../34-libuchardet0_0.0.8-2_armhf.deb ... 73s Unpacking libuchardet0:armhf (0.0.8-2) over (0.0.8-1build1) ... 73s Preparing to unpack .../35-nano_8.6-1_armhf.deb ... 73s Unpacking nano (8.6-1) over (8.4-1) ... 73s Preparing to unpack .../36-python3.13-gdbm_3.13.9-1_armhf.deb ... 73s Unpacking python3.13-gdbm (3.13.9-1) over (3.13.7-1) ... 73s Selecting previously unselected package python3.14-gdbm. 73s Preparing to unpack .../37-python3.14-gdbm_3.14.0-4_armhf.deb ... 73s Unpacking python3.14-gdbm (3.14.0-4) ... 73s Preparing to unpack .../38-python3-gdbm_3.13.9-1_armhf.deb ... 73s Unpacking python3-gdbm:armhf (3.13.9-1) over (3.13.5-1) ... 73s Preparing to unpack .../39-usb.ids_2025.09.15-1_all.deb ... 73s Unpacking usb.ids (2025.09.15-1) over (2025.07.26-1) ... 73s Preparing to unpack .../40-libctf0_2.45-8ubuntu1_armhf.deb ... 73s Unpacking libctf0:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 73s Preparing to unpack .../41-libctf-nobfd0_2.45-8ubuntu1_armhf.deb ... 73s Unpacking libctf-nobfd0:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 73s Preparing to unpack .../42-binutils-arm-linux-gnueabihf_2.45-8ubuntu1_armhf.deb ... 73s Unpacking binutils-arm-linux-gnueabihf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 74s Preparing to unpack .../43-libbinutils_2.45-8ubuntu1_armhf.deb ... 74s Unpacking libbinutils:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 74s Preparing to unpack .../44-binutils_2.45-8ubuntu1_armhf.deb ... 74s Unpacking binutils (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 74s Preparing to unpack .../45-binutils-common_2.45-8ubuntu1_armhf.deb ... 74s Unpacking binutils-common:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 74s Preparing to unpack .../46-libsframe2_2.45-8ubuntu1_armhf.deb ... 74s Unpacking libsframe2:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 74s Preparing to unpack .../47-cloud-init-base_25.4~1gcb12e00e-0ubuntu1_all.deb ... 74s Unpacking cloud-init-base (25.4~1gcb12e00e-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 74s Preparing to unpack .../48-cloud-init_25.4~1gcb12e00e-0ubuntu1_all.deb ... 74s Unpacking cloud-init (25.4~1gcb12e00e-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 74s Preparing to unpack .../49-python3-blinker_1.9.0-2_all.deb ... 74s Unpacking python3-blinker (1.9.0-2) over (1.9.0-1) ... 74s Preparing to unpack .../50-python3-jwt_2.10.1-3_all.deb ... 74s Unpacking python3-jwt (2.10.1-3) over (2.10.1-2) ... 74s Preparing to unpack .../51-python3-oauthlib_3.3.1-1_all.deb ... 74s Unpacking python3-oauthlib (3.3.1-1) over (3.2.2-3) ... 75s Preparing to unpack .../52-dpkg-dev_1.22.21ubuntu4_all.deb ... 75s Unpacking dpkg-dev (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 75s Preparing to unpack .../53-libdpkg-perl_1.22.21ubuntu4_all.deb ... 75s Unpacking libdpkg-perl (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 75s Preparing to unpack .../54-lto-disabled-list_71_all.deb ... 75s Unpacking lto-disabled-list (71) over (69) ... 75s Preparing to unpack .../55-libbrotli1_1.1.0-2build6_armhf.deb ... 75s Unpacking libbrotli1:armhf (1.1.0-2build6) over (1.1.0-2build5) ... 75s Preparing to unpack .../56-librtmp1_2.4+20151223.gitfa8646d.1-3_armhf.deb ... 75s Unpacking librtmp1:armhf (2.4+20151223.gitfa8646d.1-3) over (2.4+20151223.gitfa8646d.1-2build8) ... 75s Preparing to unpack .../57-python3-more-itertools_10.8.0-1_all.deb ... 75s Unpacking python3-more-itertools (10.8.0-1) over (10.7.0-1) ... 75s Preparing to unpack .../58-python3-inflect_7.5.0-1_all.deb ... 75s Unpacking python3-inflect (7.5.0-1) over (7.3.1-2) ... 75s Preparing to unpack .../59-python3-lazr.uri_1.0.6-7_all.deb ... 75s Unpacking python3-lazr.uri (1.0.6-7) over (1.0.6-6) ... 75s Preparing to unpack .../60-python3-markupsafe_3.0.3-1_armhf.deb ... 75s Unpacking python3-markupsafe (3.0.3-1) over (2.1.5-1build4) ... 75s Preparing to unpack .../61-python3-openssl_25.1.0-1_all.deb ... 75s Unpacking python3-openssl (25.1.0-1) over (25.0.0-1) ... 75s Preparing to unpack .../62-python3-pyparsing_3.1.3-1_all.deb ... 75s Unpacking python3-pyparsing (3.1.3-1) over (3.1.2-1) ... 75s Preparing to unpack .../63-python3-zipp_3.23.0-1_all.deb ... 75s Unpacking python3-zipp (3.23.0-1) over (3.21.0-1) ... 75s Preparing to unpack .../64-python3-bcrypt_4.3.0-2_armhf.deb ... 76s Unpacking python3-bcrypt (4.3.0-2) over (4.2.0-2.1build1) ... 76s Setting up python3-more-itertools (10.8.0-1) ... 76s Setting up lto-disabled-list (71) ... 76s Setting up libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) ... 76s Setting up libnewt0.52:armhf (0.52.25-1ubuntu2) ... 76s Setting up libnftables1:armhf (1.1.5-2) ... 76s Setting up nftables (1.1.5-2) ... 76s Setting up bsdextrautils (2.41.2-4ubuntu1) ... 76s Setting up python3-jwt (2.10.1-3) ... 76s Setting up distro-info-data (0.68) ... 76s Setting up libxml2-16:armhf (2.14.5+dfsg-0.2build1) ... 76s Setting up libsframe2:armhf (2.45-8ubuntu1) ... 76s Setting up python3-openssl (25.1.0-1) ... 76s Setting up python3-bcrypt (4.3.0-2) ... 77s Setting up libbrotli1:armhf (1.1.0-2build6) ... 77s Setting up binutils-common:armhf (2.45-8ubuntu1) ... 77s Setting up libctf-nobfd0:armhf (2.45-8ubuntu1) ... 77s Setting up python3-yaml (6.0.2-2) ... 77s Setting up python3-lazr.uri (1.0.6-7) ... 77s Setting up python3-zipp (3.23.0-1) ... 77s Setting up python3-markupsafe (3.0.3-1) ... 77s Setting up libelf1t64:armhf (0.193-3) ... 77s Setting up tzdata (2025b-5ubuntu1) ... 77s 77s Current default time zone: 'Etc/UTC' 77s Local time is now: Fri Oct 31 14:05:18 UTC 2025. 77s Universal Time is now: Fri Oct 31 14:05:18 UTC 2025. 77s Run 'dpkg-reconfigure tzdata' if you wish to change it. 77s 77s Setting up eject (2.41.2-4ubuntu1) ... 77s Setting up libpython3.13-minimal:armhf (3.13.9-1) ... 77s Setting up apparmor (5.0.0~alpha1-0ubuntu8.1) ... 77s Installing new version of config file /etc/apparmor.d/fusermount3 ... 77s apparmor_parser: Unable to replace "lsb_release". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 77s 77s apparmor_parser: Unable to replace "kmod". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 77s 77s apparmor_parser: Unable to replace "nvidia_modprobe". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 77s 79s Reloading AppArmor profiles 79s /sbin/apparmor_parser: Unable to replace "1password". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "Discord". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "MongoDB Compass". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "balena-etcher". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "brave". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "alsamixer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "bfdd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "buildah". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "babeld". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "cam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "bgpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ch-run". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ch-checkns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "bwrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "chrome". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "chromium". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "vscode". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "crun". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "devhelp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "element-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "dnstracer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "epiphany". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "evolution". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "firefox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "flatpak". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "Xorg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "foliate". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "geary". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "github-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "goldendict". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "eigrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "fabricd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "hostname". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "dig". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "iotop-c". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "kchmviewer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "keybase". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "fusermount3". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "lc-compliance". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "libcamerify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "isisd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "linux-sandbox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "loupe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ipa_verify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "gs". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ldpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "lxc-attach". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "lxc-create". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "john". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "lxc-destroy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "lxc-execute". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "lxc-stop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "linux-boot-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "irssi". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "lxc-unshare". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "mmdebstrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "lxc-usernsexec". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "lsblk". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "msedge". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "lsusb". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "lsb_release". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "notepadqq". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "compressor". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "locale". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "mosquitto". /sbin/apparmor_parser: Unable to replace "mbsync". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "opam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "obsidian". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "nhrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "opera". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "notify-send". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "nslookup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "pageedit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "nc.openbsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "kmod". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "nvidia_modprobe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ospfd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "pathd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "pim6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "os-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ospf6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "polypane". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "pbrd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "podman". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "privacybrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "qcam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "qmapshack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "qutebrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "rootlesskit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "rpm". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Unable to replace "pimd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "plasmashell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "rssguard". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "runc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-abort". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-adduser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "qpdf". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-apt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ripd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-checkpackages". /sbin/apparmor_parser: Unable to replace "sbuild-clean". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-createchroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-destroychroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-distupgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-hold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-shell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-unhold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ripngd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-update". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "sbuild-upgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "signal-desktop". /sbin/apparmor_parser: Unable to replace "slirp4netns". /sbin/apparmor_parser: Unable to replace "scide". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "slack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "proftpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "steam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "systemd-coredump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "surfshark". /sbin/apparmor_parser: Unable to replace "stress-ng". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "thunderbird". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "openvpn". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "trinity". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ssh-keyscan". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "systemd-detect-virt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "staticd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "tup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "tuxedo-control-center". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "tinyproxy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "unprivileged_userns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "userbindmount". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "mx-extract". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "rygel". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "unix-chkpwd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_apt_news". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "/usr/sbin/chronyd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "uwsgi-core". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "vdens". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "virtiofsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "cmds". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "tnftp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "vivaldi-bin". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "/usr/bin/man". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "vpnns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "rsyslogd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "dumpcap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "tshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "wike". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "vrrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "wg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "wpcom". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "who". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "znc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "wg-quick". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "tcpdump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "transmission-cli". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "apt_methods". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 79s 79s Error: At least one profile failed to load 79s Setting up python3-inflect (7.5.0-1) ... 80s Setting up libnettle8t64:armhf (3.10.2-1) ... 80s Setting up libglib2.0-data (2.86.1-1) ... 80s Setting up python3-pyparsing (3.1.3-1) ... 80s Setting up python3.14-gdbm (3.14.0-4) ... 80s Setting up libp11-kit0:armhf (0.25.9-2) ... 80s Setting up libatomic1:armhf (15.2.0-5ubuntu1) ... 80s Setting up usb.ids (2025.09.15-1) ... 80s Setting up libdpkg-perl (1.22.21ubuntu4) ... 80s Setting up libfdisk1:armhf (2.41.2-4ubuntu1) ... 80s Setting up nano (8.6-1) ... 80s Installing new version of config file /etc/nanorc ... 80s Setting up whiptail (0.52.25-1ubuntu2) ... 80s Setting up python-apt-common (3.0.0ubuntu2) ... 80s Setting up libhogweed6t64:armhf (3.10.2-1) ... 80s Setting up mount (2.41.2-4ubuntu1) ... 80s Setting up sensible-utils (0.0.26) ... 80s Setting up uuid-runtime (2.41.2-4ubuntu1) ... 81s uuidd.service is a disabled or a static unit not running, not starting it. 81s Setting up libuchardet0:armhf (0.0.8-2) ... 81s Setting up libnl-3-200:armhf (3.11.0-2) ... 81s Setting up python3.13-minimal (3.13.9-1) ... 82s Setting up libbinutils:armhf (2.45-8ubuntu1) ... 82s Setting up libgpg-error-l10n (1.56-2) ... 82s Setting up libdrm-common (2.4.127-1ubuntu1) ... 82s Setting up libpython3.13-stdlib:armhf (3.13.9-1) ... 82s Setting up libjson-c5:armhf (0.18+ds-1.1) ... 82s Setting up sudo-rs (0.2.8-1ubuntu5.1) ... 82s Setting up python3-cffi-backend:armhf (2.0.0-2) ... 82s Setting up python3.13-gdbm (3.13.9-1) ... 82s Setting up login (1:4.16.0-2+really2.41.2-4ubuntu1) ... 82s Setting up python3-blinker (1.9.0-2) ... 82s Setting up libctf0:armhf (2.45-8ubuntu1) ... 82s Setting up bind9-libs:armhf (1:9.20.11-1ubuntu3) ... 82s Setting up python3.13 (3.13.9-1) ... 83s Setting up python3-gdbm:armhf (3.13.9-1) ... 83s Setting up python3-apt (3.0.0ubuntu2) ... 84s Setting up fdisk (2.41.2-4ubuntu1) ... 84s Setting up libnl-route-3-200:armhf (3.11.0-2) ... 84s Setting up libglib2.0-0t64:armhf (2.86.1-1) ... 84s No schema files found: doing nothing. 84s Setting up python3-oauthlib (3.3.1-1) ... 84s Setting up librtmp1:armhf (2.4+20151223.gitfa8646d.1-3) ... 84s Setting up gir1.2-glib-2.0:armhf (2.86.1-1) ... 84s Setting up libdrm2:armhf (2.4.127-1ubuntu1) ... 84s Setting up libgirepository-1.0-1:armhf (1.86.0-6) ... 84s Setting up bind9-host (1:9.20.11-1ubuntu3) ... 84s Setting up binutils-arm-linux-gnueabihf (2.45-8ubuntu1) ... 84s Setting up ubuntu-pro-client (37.1ubuntu0) ... 84s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 85s Setting up ubuntu-pro-client-l10n (37.1ubuntu0) ... 85s Setting up python3-dbus (1.4.0-1build1) ... 85s Setting up binutils (2.45-8ubuntu1) ... 85s Setting up cloud-init-base (25.4~1gcb12e00e-0ubuntu1) ... 85s Encountered debconf setting for cloud-init-base/datasources. 87s Setting up dpkg-dev (1.22.21ubuntu4) ... 87s Setting up gir1.2-girepository-2.0:armhf (1.86.0-6) ... 87s Setting up bind9-dnsutils (1:9.20.11-1ubuntu3) ... 87s Setting up cloud-init (25.4~1gcb12e00e-0ubuntu1) ... 87s Processing triggers for rsyslog (8.2504.0-1ubuntu2) ... 87s Processing triggers for systemd (257.9-0ubuntu2) ... 87s Processing triggers for man-db (2.13.1-1) ... 89s Processing triggers for plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu1) ... 89s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 89s Processing triggers for install-info (7.1.1-1ubuntu1) ... 89s Processing triggers for libc-bin (2.42-0ubuntu3) ... 92s Reading package lists... 93s Building dependency tree... 93s Reading state information... 93s Solving dependencies... 93s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 95s autopkgtest [14:05:36]: rebooting testbed after setup commands that affected boot 137s autopkgtest [14:06:18]: testbed running kernel: Linux 6.8.0-86-generic #87~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 29 09:26:46 UTC 2 161s autopkgtest [14:06:42]: @@@@@@@@@@@@@@@@@@@@ apt-source libjson-schema-modern-perl 171s Get:1 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.611-1 (dsc) [4057 B] 171s Get:2 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.611-1 (tar) [224 kB] 171s Get:3 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.611-1 (diff) [7924 B] 172s gpgv: Signature made Sat May 31 15:20:17 2025 UTC 172s gpgv: using RSA key D1E1316E93A760A8104D85FABB3A68018649AA06 172s gpgv: Can't check signature: No public key 172s dpkg-source: warning: cannot verify inline signature for ./libjson-schema-modern-perl_0.611-1.dsc: no acceptable signature found 172s autopkgtest [14:06:53]: testing package libjson-schema-modern-perl version 0.611-1 174s autopkgtest [14:06:55]: build not needed 176s autopkgtest [14:06:57]: test autodep8-perl-build-deps: preparing testbed 178s Reading package lists... 178s Building dependency tree... 178s Reading state information... 178s Solving dependencies... 179s The following NEW packages will be installed: 179s autoconf autodep8 automake autopoint autotools-dev build-essential cpp 179s cpp-15 cpp-15-arm-linux-gnueabihf cpp-arm-linux-gnueabihf dctrl-tools 179s debhelper debugedit dh-autoreconf dh-strip-nondeterminism dwz g++ g++-15 179s g++-15-arm-linux-gnueabihf g++-arm-linux-gnueabihf gcc gcc-15 179s gcc-15-arm-linux-gnueabihf gcc-arm-linux-gnueabihf gettext git git-man 179s intltool-debian javascript-common libalgorithm-c3-perl libarchive-zip-perl 179s libasan8 libautovivification-perl libb-hooks-endofscope-perl 179s libb-hooks-op-check-perl libbuiltin-compat-perl libc-dev-bin libc6-dev 179s libcc1-0 libclass-c3-perl libclass-data-inheritable-perl 179s libclass-inspector-perl libclass-method-modifiers-perl 179s libclass-singleton-perl libclass-tiny-perl libclass-xsaccessor-perl 179s libclone-perl libcpan-meta-check-perl libcpan-requirements-dynamic-perl 179s libcpanel-json-xs-perl libcrypt-dev libcurl3t64-gnutls libdata-optlist-perl 179s libdata-validate-domain-perl libdatetime-format-rfc3339-perl 179s libdatetime-locale-perl libdatetime-perl libdatetime-timezone-perl 179s libdebhelper-perl libdevel-callchecker-perl libdevel-cycle-perl 179s libdevel-stacktrace-perl libdw1t64 libdynaloader-functions-perl 179s libemail-address-xs-perl liberror-perl libeval-closure-perl 179s libexception-class-perl libexporter-tiny-perl libextutils-config-perl 179s libextutils-hascompiler-perl libextutils-helpers-perl 179s libextutils-installpaths-perl libfeature-compat-try-perl libfile-chdir-perl 179s libfile-copy-recursive-perl libfile-sharedir-perl 179s libfile-stripnondeterminism-perl libgcc-15-dev 179s libgetopt-long-descriptive-perl libgit-wrapper-perl libgomp1 179s libimport-into-perl libio-stringy-perl libisl23 libjs-bootstrap5 179s libjs-highlight.js libjs-popper.js libjson-perl libjson-schema-modern-perl 179s libmodule-build-tiny-perl libmodule-implementation-perl 179s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 179s libmpc3 libmro-compat-perl libnamespace-autoclean-perl 179s libnamespace-clean-perl libnet-domain-tld-perl libnet-idn-encode-perl 179s libpackage-stash-perl libpadwalker-perl libparams-classify-perl 179s libparams-util-perl libparams-validate-perl 179s libparams-validationcompiler-perl libpath-tiny-perl libref-util-perl 179s libref-util-xs-perl librole-tiny-perl libsafe-isa-perl libscope-guard-perl 179s libsereal-decoder-perl libsereal-encoder-perl libsereal-perl 179s libsort-versions-perl libspecio-perl libstdc++-15-dev libstrictures-perl 179s libsub-exporter-perl libsub-exporter-progressive-perl libsub-identify-perl 179s libsub-install-perl libsub-name-perl libsub-quote-perl 179s libsyntax-keyword-try-perl libtest-deep-perl 179s libtest-deep-unorderedpairs-perl libtest-fatal-perl 179s libtest-file-sharedir-perl libtest-json-schema-acceptance-perl 179s libtest-memory-cycle-perl libtest-needs-perl libtest-warnings-perl 179s libtest-without-module-perl libtest2-suite-perl libtime-moment-perl libtool 179s libtry-tiny-perl libtype-tiny-perl libtype-tiny-xs-perl libubsan1 179s libvariable-magic-perl libxs-parse-keyword-perl libxstring-perl 179s linux-libc-dev m4 node-popper2 pkg-perl-autopkgtest po-debconf rpcsvc-proto 179s 0 upgraded, 153 newly installed, 0 to remove and 0 not upgraded. 179s Need to get 72.9 MB of archives. 179s After this operation, 256 MB of additional disk space will be used. 179s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf m4 armhf 1.4.20-2 [212 kB] 179s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf autoconf all 2.72-3.1ubuntu1 [384 kB] 180s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf dctrl-tools armhf 2.24-3build3 [94.7 kB] 180s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf autodep8 all 0.30 [13.7 kB] 180s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf autotools-dev all 20240727.1 [43.4 kB] 180s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf automake all 1:1.17-4ubuntu1 [572 kB] 180s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf autopoint all 0.23.1-2build2 [619 kB] 180s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf libc-dev-bin armhf 2.42-0ubuntu3 [21.8 kB] 180s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf linux-libc-dev armhf 6.17.0-5.5 [1771 kB] 181s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libcrypt-dev armhf 1:4.4.38-1build1 [120 kB] 181s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf rpcsvc-proto armhf 1.4.3-1 [62.3 kB] 181s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libc6-dev armhf 2.42-0ubuntu3 [1416 kB] 182s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf libisl23 armhf 0.27-1 [546 kB] 182s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libmpc3 armhf 1.3.1-1build3 [47.2 kB] 182s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf cpp-15-arm-linux-gnueabihf armhf 15.2.0-5ubuntu1 [10.1 MB] 184s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf cpp-15 armhf 15.2.0-5ubuntu1 [1034 B] 184s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf cpp-arm-linux-gnueabihf armhf 4:15.2.0-4ubuntu1 [5756 B] 184s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf cpp armhf 4:15.2.0-4ubuntu1 [22.4 kB] 184s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf libcc1-0 armhf 15.2.0-5ubuntu1 [43.6 kB] 184s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libgomp1 armhf 15.2.0-5ubuntu1 [129 kB] 184s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf libasan8 armhf 15.2.0-5ubuntu1 [2952 kB] 184s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf libubsan1 armhf 15.2.0-5ubuntu1 [1187 kB] 184s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf libgcc-15-dev armhf 15.2.0-5ubuntu1 [898 kB] 184s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15-arm-linux-gnueabihf armhf 15.2.0-5ubuntu1 [19.5 MB] 185s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15 armhf 15.2.0-5ubuntu1 [492 kB] 185s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-arm-linux-gnueabihf armhf 4:15.2.0-4ubuntu1 [1220 B] 185s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf gcc armhf 4:15.2.0-4ubuntu1 [5022 B] 185s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf libstdc++-15-dev armhf 15.2.0-5ubuntu1 [2635 kB] 186s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf g++-15-arm-linux-gnueabihf armhf 15.2.0-5ubuntu1 [11.4 MB] 186s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf g++-15 armhf 15.2.0-5ubuntu1 [23.7 kB] 186s Get:31 http://ftpmaster.internal/ubuntu resolute/main armhf g++-arm-linux-gnueabihf armhf 4:15.2.0-4ubuntu1 [968 B] 186s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf g++ armhf 4:15.2.0-4ubuntu1 [1086 B] 186s Get:33 http://ftpmaster.internal/ubuntu resolute/main armhf build-essential armhf 12.12ubuntu1 [5088 B] 186s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 186s Get:35 http://ftpmaster.internal/ubuntu resolute/main armhf libtool all 2.5.4-4build1 [169 kB] 186s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf dh-autoreconf all 21 [12.5 kB] 186s Get:37 http://ftpmaster.internal/ubuntu resolute/main armhf libarchive-zip-perl all 1.68-1 [90.2 kB] 186s Get:38 http://ftpmaster.internal/ubuntu resolute/main armhf libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 186s Get:39 http://ftpmaster.internal/ubuntu resolute/main armhf dh-strip-nondeterminism all 1.15.0-1 [5090 B] 186s Get:40 http://ftpmaster.internal/ubuntu resolute/main armhf libdw1t64 armhf 0.193-3 [253 kB] 186s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf debugedit armhf 1:5.2-3 [48.9 kB] 186s Get:42 http://ftpmaster.internal/ubuntu resolute/main armhf dwz armhf 0.16-2 [114 kB] 186s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf gettext armhf 0.23.1-2build2 [1059 kB] 186s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf intltool-debian all 0.35.0+20060710.6 [23.2 kB] 186s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf po-debconf all 1.0.21+nmu1 [233 kB] 186s Get:46 http://ftpmaster.internal/ubuntu resolute/main armhf debhelper all 13.24.2ubuntu1 [896 kB] 186s Get:47 http://ftpmaster.internal/ubuntu resolute/main armhf libcurl3t64-gnutls armhf 8.14.1-2ubuntu1 [352 kB] 186s Get:48 http://ftpmaster.internal/ubuntu resolute/main armhf liberror-perl all 0.17030-1 [23.5 kB] 186s Get:49 http://ftpmaster.internal/ubuntu resolute/main armhf git-man all 1:2.51.0-1ubuntu1 [1179 kB] 186s Get:50 http://ftpmaster.internal/ubuntu resolute/main armhf git armhf 1:2.51.0-1ubuntu1 [4649 kB] 186s Get:51 http://ftpmaster.internal/ubuntu resolute/main armhf javascript-common all 12+nmu1 [4828 B] 186s Get:52 http://ftpmaster.internal/ubuntu resolute/universe armhf libalgorithm-c3-perl all 0.11-2 [10.2 kB] 186s Get:53 http://ftpmaster.internal/ubuntu resolute/universe armhf libautovivification-perl armhf 0.18-2build5 [20.8 kB] 186s Get:54 http://ftpmaster.internal/ubuntu resolute/main armhf libb-hooks-op-check-perl armhf 0.22-3build2 [9174 B] 186s Get:55 http://ftpmaster.internal/ubuntu resolute/main armhf libdynaloader-functions-perl all 0.004-2 [11.5 kB] 186s Get:56 http://ftpmaster.internal/ubuntu resolute/main armhf libdevel-callchecker-perl armhf 0.009-2 [13.8 kB] 186s Get:57 http://ftpmaster.internal/ubuntu resolute/main armhf libparams-classify-perl armhf 0.015-2build6 [18.8 kB] 186s Get:58 http://ftpmaster.internal/ubuntu resolute/main armhf libmodule-runtime-perl all 0.018-1 [15.2 kB] 186s Get:59 http://ftpmaster.internal/ubuntu resolute/main armhf libtry-tiny-perl all 0.32-1 [21.2 kB] 186s Get:60 http://ftpmaster.internal/ubuntu resolute/main armhf libmodule-implementation-perl all 0.09-2 [12.0 kB] 186s Get:61 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-exporter-progressive-perl all 0.001013-3 [6718 B] 186s Get:62 http://ftpmaster.internal/ubuntu resolute/main armhf libvariable-magic-perl armhf 0.64-1build1 [33.4 kB] 186s Get:63 http://ftpmaster.internal/ubuntu resolute/main armhf libb-hooks-endofscope-perl all 0.28-2 [15.8 kB] 186s Get:64 http://ftpmaster.internal/ubuntu resolute/main armhf libpackage-stash-perl all 0.40-1 [19.5 kB] 186s Get:65 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-identify-perl armhf 0.14-3build4 [9396 B] 186s Get:66 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-name-perl armhf 0.28-1 [10.0 kB] 186s Get:67 http://ftpmaster.internal/ubuntu resolute/main armhf libnamespace-clean-perl all 0.27-2 [14.0 kB] 186s Get:68 http://ftpmaster.internal/ubuntu resolute/universe armhf libbuiltin-compat-perl all 0.003003-2 [6956 B] 186s Get:69 http://ftpmaster.internal/ubuntu resolute/universe armhf libclass-c3-perl all 0.35-2 [18.4 kB] 187s Get:70 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-data-inheritable-perl all 0.10-1 [8038 B] 187s Get:71 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-inspector-perl all 1.36-3 [15.4 kB] 187s Get:72 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-method-modifiers-perl all 2.15-1 [16.1 kB] 187s Get:73 http://ftpmaster.internal/ubuntu resolute/universe armhf libclass-singleton-perl all 1.6-2 [11.5 kB] 187s Get:74 http://ftpmaster.internal/ubuntu resolute/universe armhf libclass-tiny-perl all 1.008-2 [16.4 kB] 187s Get:75 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-xsaccessor-perl armhf 1.19-4build6 [32.4 kB] 187s Get:76 http://ftpmaster.internal/ubuntu resolute/main armhf libclone-perl armhf 0.47-1 [10.0 kB] 187s Get:77 http://ftpmaster.internal/ubuntu resolute/universe armhf libcpan-meta-check-perl all 0.018-1 [6090 B] 187s Get:78 http://ftpmaster.internal/ubuntu resolute/universe armhf libextutils-config-perl all 0.010-1 [7806 B] 187s Get:79 http://ftpmaster.internal/ubuntu resolute/universe armhf libextutils-hascompiler-perl all 0.025-1 [7738 B] 187s Get:80 http://ftpmaster.internal/ubuntu resolute/universe armhf libcpan-requirements-dynamic-perl all 0.002-1 [7582 B] 187s Get:81 http://ftpmaster.internal/ubuntu resolute/main armhf libcpanel-json-xs-perl armhf 4.39-2 [114 kB] 187s Get:82 http://ftpmaster.internal/ubuntu resolute/main armhf libparams-util-perl armhf 1.102-3build1 [20.5 kB] 187s Get:83 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-install-perl all 0.929-1 [9764 B] 187s Get:84 http://ftpmaster.internal/ubuntu resolute/main armhf libdata-optlist-perl all 0.114-1 [9708 B] 187s Get:85 http://ftpmaster.internal/ubuntu resolute/main armhf libnet-domain-tld-perl all 1.75-4 [29.0 kB] 187s Get:86 http://ftpmaster.internal/ubuntu resolute/main armhf libdata-validate-domain-perl all 0.15-1 [10.4 kB] 187s Get:87 http://ftpmaster.internal/ubuntu resolute/main armhf libfile-sharedir-perl all 1.118-3 [14.0 kB] 187s Get:88 http://ftpmaster.internal/ubuntu resolute/universe armhf libnamespace-autoclean-perl all 0.31-1 [11.9 kB] 187s Get:89 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-exporter-perl all 0.990-1 [49.0 kB] 187s Get:90 http://ftpmaster.internal/ubuntu resolute/universe armhf libeval-closure-perl all 0.14-3 [10.1 kB] 187s Get:91 http://ftpmaster.internal/ubuntu resolute/main armhf libdevel-stacktrace-perl all 2.0500-1 [22.1 kB] 187s Get:92 http://ftpmaster.internal/ubuntu resolute/main armhf libexception-class-perl all 1.45-1 [28.6 kB] 187s Get:93 http://ftpmaster.internal/ubuntu resolute/universe armhf libparams-validationcompiler-perl all 0.31-1 [28.3 kB] 187s Get:94 http://ftpmaster.internal/ubuntu resolute/universe armhf libmro-compat-perl all 0.15-2 [10.1 kB] 187s Get:95 http://ftpmaster.internal/ubuntu resolute/main armhf librole-tiny-perl all 2.002004-1 [16.3 kB] 187s Get:96 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-quote-perl all 2.006008-1ubuntu1 [20.7 kB] 187s Get:97 http://ftpmaster.internal/ubuntu resolute/universe armhf libxstring-perl armhf 0.005-2build4 [7650 B] 187s Get:98 http://ftpmaster.internal/ubuntu resolute/universe armhf libspecio-perl all 0.50-1 [127 kB] 187s Get:99 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-locale-perl all 1:1.41-1 [3193 kB] 187s Get:100 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-timezone-perl all 1:2.65-1+2025b [260 kB] 187s Get:101 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-perl armhf 2:1.65-1build3 [98.3 kB] 187s Get:102 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-format-rfc3339-perl all 1.10.0-1 [8154 B] 187s Get:103 http://ftpmaster.internal/ubuntu resolute/universe armhf libdevel-cycle-perl all 1.12-2 [10.1 kB] 187s Get:104 http://ftpmaster.internal/ubuntu resolute/main armhf libemail-address-xs-perl armhf 1.05-1build5 [26.5 kB] 187s Get:105 http://ftpmaster.internal/ubuntu resolute/main armhf libexporter-tiny-perl all 1.006002-1 [36.8 kB] 188s Get:106 http://ftpmaster.internal/ubuntu resolute/universe armhf libextutils-helpers-perl all 0.028-1 [10.8 kB] 188s Get:107 http://ftpmaster.internal/ubuntu resolute/universe armhf libextutils-installpaths-perl all 0.014-1 [13.2 kB] 188s Get:108 http://ftpmaster.internal/ubuntu resolute/main armhf libxs-parse-keyword-perl armhf 0.49-1 [59.5 kB] 188s Get:109 http://ftpmaster.internal/ubuntu resolute/main armhf libsyntax-keyword-try-perl armhf 0.30-1 [24.0 kB] 188s Get:110 http://ftpmaster.internal/ubuntu resolute/universe armhf libfeature-compat-try-perl all 0.05-1 [9998 B] 188s Get:111 http://ftpmaster.internal/ubuntu resolute/universe armhf libfile-chdir-perl all 0.1008-1.2 [10.4 kB] 188s Get:112 http://ftpmaster.internal/ubuntu resolute/universe armhf libfile-copy-recursive-perl all 0.45-4 [16.5 kB] 188s Get:113 http://ftpmaster.internal/ubuntu resolute/main armhf libio-stringy-perl all 2.113-2 [45.3 kB] 188s Get:114 http://ftpmaster.internal/ubuntu resolute/universe armhf libparams-validate-perl armhf 1.31-2build4 [52.9 kB] 188s Get:115 http://ftpmaster.internal/ubuntu resolute/universe armhf libgetopt-long-descriptive-perl all 0.116-2 [25.0 kB] 188s Get:116 http://ftpmaster.internal/ubuntu resolute/main armhf libsort-versions-perl all 1.62-3 [7378 B] 188s Get:117 http://ftpmaster.internal/ubuntu resolute/universe armhf libgit-wrapper-perl all 0.048-2 [29.5 kB] 188s Get:118 http://ftpmaster.internal/ubuntu resolute/main armhf libimport-into-perl all 1.002005-2 [10.7 kB] 188s Get:119 http://ftpmaster.internal/ubuntu resolute/universe armhf node-popper2 all 2.11.2-9 [106 kB] 188s Get:120 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-bootstrap5 all 5.3.8+dfsg-1 [480 kB] 188s Get:121 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 188s Get:122 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 188s Get:123 http://ftpmaster.internal/ubuntu resolute/main armhf libjson-perl all 4.10000-1 [81.9 kB] 188s Get:124 http://ftpmaster.internal/ubuntu resolute/universe armhf libmojolicious-perl all 9.39+dfsg-1 [761 kB] 188s Get:125 http://ftpmaster.internal/ubuntu resolute/main armhf libmoo-perl all 2.005005-1 [47.4 kB] 188s Get:126 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf libtype-tiny-perl all 2.008004-1 [378 kB] 188s Get:127 http://ftpmaster.internal/ubuntu resolute/universe armhf libmoox-typetiny-perl all 0.002003-4 [5930 B] 188s Get:128 http://ftpmaster.internal/ubuntu resolute/main armhf libpath-tiny-perl all 0.148-1 [47.9 kB] 188s Get:129 http://ftpmaster.internal/ubuntu resolute/universe armhf libref-util-perl all 0.204-2 [15.1 kB] 188s Get:130 http://ftpmaster.internal/ubuntu resolute/universe armhf libsafe-isa-perl all 1.000010-1 [7684 B] 188s Get:131 http://ftpmaster.internal/ubuntu resolute/main armhf libstrictures-perl all 2.000006-1 [16.3 kB] 188s Get:132 http://ftpmaster.internal/ubuntu resolute/universe armhf libjson-schema-modern-perl all 0.611-1 [106 kB] 188s Get:133 http://ftpmaster.internal/ubuntu resolute/universe armhf libmodule-build-tiny-perl all 0.051-1 [9788 B] 188s Get:134 http://ftpmaster.internal/ubuntu resolute/universe armhf libnet-idn-encode-perl armhf 2.500-5build1 [83.7 kB] 188s Get:135 http://ftpmaster.internal/ubuntu resolute/universe armhf libpadwalker-perl armhf 2.5-1build7 [14.0 kB] 188s Get:136 http://ftpmaster.internal/ubuntu resolute/universe armhf libref-util-xs-perl armhf 0.117-2build5 [11.5 kB] 188s Get:137 http://ftpmaster.internal/ubuntu resolute/universe armhf libscope-guard-perl all 0.21-2 [7730 B] 188s Get:138 http://ftpmaster.internal/ubuntu resolute/main armhf libsereal-decoder-perl armhf 5.004+ds-1build5 [94.4 kB] 188s Get:139 http://ftpmaster.internal/ubuntu resolute/main armhf libsereal-encoder-perl armhf 5.004+ds-1build4 [96.1 kB] 188s Get:140 http://ftpmaster.internal/ubuntu resolute/universe armhf libsereal-perl all 5.004-1 [8770 B] 188s Get:141 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-deep-perl all 1.205-1 [46.7 kB] 188s Get:142 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-deep-unorderedpairs-perl all 0.006-3 [9052 B] 188s Get:143 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-fatal-perl all 0.017-2 [12.1 kB] 188s Get:144 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-file-sharedir-perl all 1.001002-2 [26.3 kB] 188s Get:145 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest2-suite-perl all 0.000163-1 [377 kB] 189s Get:146 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-json-schema-acceptance-perl all 1.029-1 [89.9 kB] 189s Get:147 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-memory-cycle-perl all 1.06-2 [11.0 kB] 189s Get:148 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-needs-perl all 0.002010-1 [8530 B] 189s Get:149 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-warnings-perl all 0.038-1 [21.0 kB] 189s Get:150 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-without-module-perl all 0.23-1 [9732 B] 189s Get:151 http://ftpmaster.internal/ubuntu resolute/main armhf libtime-moment-perl armhf 0.44-2build5 [70.6 kB] 189s Get:152 http://ftpmaster.internal/ubuntu resolute/universe armhf libtype-tiny-xs-perl armhf 0.025-2build1 [23.5 kB] 189s Get:153 http://ftpmaster.internal/ubuntu resolute/universe armhf pkg-perl-autopkgtest all 0.82 [18.8 kB] 189s Fetched 72.9 MB in 10s (7460 kB/s) 189s Selecting previously unselected package m4. 189s (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 ... 61071 files and directories currently installed.) 189s Preparing to unpack .../000-m4_1.4.20-2_armhf.deb ... 189s Unpacking m4 (1.4.20-2) ... 189s Selecting previously unselected package autoconf. 189s Preparing to unpack .../001-autoconf_2.72-3.1ubuntu1_all.deb ... 189s Unpacking autoconf (2.72-3.1ubuntu1) ... 189s Selecting previously unselected package dctrl-tools. 189s Preparing to unpack .../002-dctrl-tools_2.24-3build3_armhf.deb ... 189s Unpacking dctrl-tools (2.24-3build3) ... 189s Selecting previously unselected package autodep8. 189s Preparing to unpack .../003-autodep8_0.30_all.deb ... 189s Unpacking autodep8 (0.30) ... 190s Selecting previously unselected package autotools-dev. 190s Preparing to unpack .../004-autotools-dev_20240727.1_all.deb ... 190s Unpacking autotools-dev (20240727.1) ... 190s Selecting previously unselected package automake. 190s Preparing to unpack .../005-automake_1%3a1.17-4ubuntu1_all.deb ... 190s Unpacking automake (1:1.17-4ubuntu1) ... 190s Selecting previously unselected package autopoint. 190s Preparing to unpack .../006-autopoint_0.23.1-2build2_all.deb ... 190s Unpacking autopoint (0.23.1-2build2) ... 190s Selecting previously unselected package libc-dev-bin. 190s Preparing to unpack .../007-libc-dev-bin_2.42-0ubuntu3_armhf.deb ... 190s Unpacking libc-dev-bin (2.42-0ubuntu3) ... 190s Selecting previously unselected package linux-libc-dev:armhf. 190s Preparing to unpack .../008-linux-libc-dev_6.17.0-5.5_armhf.deb ... 190s Unpacking linux-libc-dev:armhf (6.17.0-5.5) ... 190s Selecting previously unselected package libcrypt-dev:armhf. 190s Preparing to unpack .../009-libcrypt-dev_1%3a4.4.38-1build1_armhf.deb ... 190s Unpacking libcrypt-dev:armhf (1:4.4.38-1build1) ... 190s Selecting previously unselected package rpcsvc-proto. 190s Preparing to unpack .../010-rpcsvc-proto_1.4.3-1_armhf.deb ... 190s Unpacking rpcsvc-proto (1.4.3-1) ... 190s Selecting previously unselected package libc6-dev:armhf. 190s Preparing to unpack .../011-libc6-dev_2.42-0ubuntu3_armhf.deb ... 190s Unpacking libc6-dev:armhf (2.42-0ubuntu3) ... 190s Selecting previously unselected package libisl23:armhf. 190s Preparing to unpack .../012-libisl23_0.27-1_armhf.deb ... 190s Unpacking libisl23:armhf (0.27-1) ... 190s Selecting previously unselected package libmpc3:armhf. 190s Preparing to unpack .../013-libmpc3_1.3.1-1build3_armhf.deb ... 190s Unpacking libmpc3:armhf (1.3.1-1build3) ... 190s Selecting previously unselected package cpp-15-arm-linux-gnueabihf. 190s Preparing to unpack .../014-cpp-15-arm-linux-gnueabihf_15.2.0-5ubuntu1_armhf.deb ... 190s Unpacking cpp-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 190s Selecting previously unselected package cpp-15. 190s Preparing to unpack .../015-cpp-15_15.2.0-5ubuntu1_armhf.deb ... 190s Unpacking cpp-15 (15.2.0-5ubuntu1) ... 190s Selecting previously unselected package cpp-arm-linux-gnueabihf. 190s Preparing to unpack .../016-cpp-arm-linux-gnueabihf_4%3a15.2.0-4ubuntu1_armhf.deb ... 190s Unpacking cpp-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 190s Selecting previously unselected package cpp. 190s Preparing to unpack .../017-cpp_4%3a15.2.0-4ubuntu1_armhf.deb ... 190s Unpacking cpp (4:15.2.0-4ubuntu1) ... 190s Selecting previously unselected package libcc1-0:armhf. 190s Preparing to unpack .../018-libcc1-0_15.2.0-5ubuntu1_armhf.deb ... 190s Unpacking libcc1-0:armhf (15.2.0-5ubuntu1) ... 190s Selecting previously unselected package libgomp1:armhf. 190s Preparing to unpack .../019-libgomp1_15.2.0-5ubuntu1_armhf.deb ... 190s Unpacking libgomp1:armhf (15.2.0-5ubuntu1) ... 191s Selecting previously unselected package libasan8:armhf. 191s Preparing to unpack .../020-libasan8_15.2.0-5ubuntu1_armhf.deb ... 191s Unpacking libasan8:armhf (15.2.0-5ubuntu1) ... 191s Selecting previously unselected package libubsan1:armhf. 191s Preparing to unpack .../021-libubsan1_15.2.0-5ubuntu1_armhf.deb ... 191s Unpacking libubsan1:armhf (15.2.0-5ubuntu1) ... 191s Selecting previously unselected package libgcc-15-dev:armhf. 191s Preparing to unpack .../022-libgcc-15-dev_15.2.0-5ubuntu1_armhf.deb ... 191s Unpacking libgcc-15-dev:armhf (15.2.0-5ubuntu1) ... 191s Selecting previously unselected package gcc-15-arm-linux-gnueabihf. 191s Preparing to unpack .../023-gcc-15-arm-linux-gnueabihf_15.2.0-5ubuntu1_armhf.deb ... 191s Unpacking gcc-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 191s Selecting previously unselected package gcc-15. 191s Preparing to unpack .../024-gcc-15_15.2.0-5ubuntu1_armhf.deb ... 191s Unpacking gcc-15 (15.2.0-5ubuntu1) ... 191s Selecting previously unselected package gcc-arm-linux-gnueabihf. 191s Preparing to unpack .../025-gcc-arm-linux-gnueabihf_4%3a15.2.0-4ubuntu1_armhf.deb ... 191s Unpacking gcc-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 191s Selecting previously unselected package gcc. 191s Preparing to unpack .../026-gcc_4%3a15.2.0-4ubuntu1_armhf.deb ... 191s Unpacking gcc (4:15.2.0-4ubuntu1) ... 191s Selecting previously unselected package libstdc++-15-dev:armhf. 191s Preparing to unpack .../027-libstdc++-15-dev_15.2.0-5ubuntu1_armhf.deb ... 191s Unpacking libstdc++-15-dev:armhf (15.2.0-5ubuntu1) ... 192s Selecting previously unselected package g++-15-arm-linux-gnueabihf. 192s Preparing to unpack .../028-g++-15-arm-linux-gnueabihf_15.2.0-5ubuntu1_armhf.deb ... 192s Unpacking g++-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 192s Selecting previously unselected package g++-15. 192s Preparing to unpack .../029-g++-15_15.2.0-5ubuntu1_armhf.deb ... 192s Unpacking g++-15 (15.2.0-5ubuntu1) ... 192s Selecting previously unselected package g++-arm-linux-gnueabihf. 192s Preparing to unpack .../030-g++-arm-linux-gnueabihf_4%3a15.2.0-4ubuntu1_armhf.deb ... 192s Unpacking g++-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 192s Selecting previously unselected package g++. 192s Preparing to unpack .../031-g++_4%3a15.2.0-4ubuntu1_armhf.deb ... 192s Unpacking g++ (4:15.2.0-4ubuntu1) ... 192s Selecting previously unselected package build-essential. 192s Preparing to unpack .../032-build-essential_12.12ubuntu1_armhf.deb ... 192s Unpacking build-essential (12.12ubuntu1) ... 192s Selecting previously unselected package libdebhelper-perl. 192s Preparing to unpack .../033-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 192s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 192s Selecting previously unselected package libtool. 192s Preparing to unpack .../034-libtool_2.5.4-4build1_all.deb ... 192s Unpacking libtool (2.5.4-4build1) ... 192s Selecting previously unselected package dh-autoreconf. 192s Preparing to unpack .../035-dh-autoreconf_21_all.deb ... 192s Unpacking dh-autoreconf (21) ... 192s Selecting previously unselected package libarchive-zip-perl. 192s Preparing to unpack .../036-libarchive-zip-perl_1.68-1_all.deb ... 192s Unpacking libarchive-zip-perl (1.68-1) ... 192s Selecting previously unselected package libfile-stripnondeterminism-perl. 192s Preparing to unpack .../037-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 192s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 192s Selecting previously unselected package dh-strip-nondeterminism. 192s Preparing to unpack .../038-dh-strip-nondeterminism_1.15.0-1_all.deb ... 192s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 192s Selecting previously unselected package libdw1t64:armhf. 192s Preparing to unpack .../039-libdw1t64_0.193-3_armhf.deb ... 192s Unpacking libdw1t64:armhf (0.193-3) ... 192s Selecting previously unselected package debugedit. 192s Preparing to unpack .../040-debugedit_1%3a5.2-3_armhf.deb ... 192s Unpacking debugedit (1:5.2-3) ... 192s Selecting previously unselected package dwz. 192s Preparing to unpack .../041-dwz_0.16-2_armhf.deb ... 192s Unpacking dwz (0.16-2) ... 192s Selecting previously unselected package gettext. 192s Preparing to unpack .../042-gettext_0.23.1-2build2_armhf.deb ... 192s Unpacking gettext (0.23.1-2build2) ... 192s Selecting previously unselected package intltool-debian. 192s Preparing to unpack .../043-intltool-debian_0.35.0+20060710.6_all.deb ... 192s Unpacking intltool-debian (0.35.0+20060710.6) ... 193s Selecting previously unselected package po-debconf. 193s Preparing to unpack .../044-po-debconf_1.0.21+nmu1_all.deb ... 193s Unpacking po-debconf (1.0.21+nmu1) ... 193s Selecting previously unselected package debhelper. 193s Preparing to unpack .../045-debhelper_13.24.2ubuntu1_all.deb ... 193s Unpacking debhelper (13.24.2ubuntu1) ... 193s Selecting previously unselected package libcurl3t64-gnutls:armhf. 193s Preparing to unpack .../046-libcurl3t64-gnutls_8.14.1-2ubuntu1_armhf.deb ... 193s Unpacking libcurl3t64-gnutls:armhf (8.14.1-2ubuntu1) ... 193s Selecting previously unselected package liberror-perl. 193s Preparing to unpack .../047-liberror-perl_0.17030-1_all.deb ... 193s Unpacking liberror-perl (0.17030-1) ... 193s Selecting previously unselected package git-man. 193s Preparing to unpack .../048-git-man_1%3a2.51.0-1ubuntu1_all.deb ... 193s Unpacking git-man (1:2.51.0-1ubuntu1) ... 193s Selecting previously unselected package git. 193s Preparing to unpack .../049-git_1%3a2.51.0-1ubuntu1_armhf.deb ... 193s Unpacking git (1:2.51.0-1ubuntu1) ... 193s Selecting previously unselected package javascript-common. 193s Preparing to unpack .../050-javascript-common_12+nmu1_all.deb ... 193s Unpacking javascript-common (12+nmu1) ... 193s Selecting previously unselected package libalgorithm-c3-perl. 193s Preparing to unpack .../051-libalgorithm-c3-perl_0.11-2_all.deb ... 193s Unpacking libalgorithm-c3-perl (0.11-2) ... 193s Selecting previously unselected package libautovivification-perl:armhf. 193s Preparing to unpack .../052-libautovivification-perl_0.18-2build5_armhf.deb ... 193s Unpacking libautovivification-perl:armhf (0.18-2build5) ... 193s Selecting previously unselected package libb-hooks-op-check-perl:armhf. 193s Preparing to unpack .../053-libb-hooks-op-check-perl_0.22-3build2_armhf.deb ... 193s Unpacking libb-hooks-op-check-perl:armhf (0.22-3build2) ... 193s Selecting previously unselected package libdynaloader-functions-perl. 193s Preparing to unpack .../054-libdynaloader-functions-perl_0.004-2_all.deb ... 193s Unpacking libdynaloader-functions-perl (0.004-2) ... 193s Selecting previously unselected package libdevel-callchecker-perl:armhf. 193s Preparing to unpack .../055-libdevel-callchecker-perl_0.009-2_armhf.deb ... 193s Unpacking libdevel-callchecker-perl:armhf (0.009-2) ... 193s Selecting previously unselected package libparams-classify-perl:armhf. 193s Preparing to unpack .../056-libparams-classify-perl_0.015-2build6_armhf.deb ... 193s Unpacking libparams-classify-perl:armhf (0.015-2build6) ... 193s Selecting previously unselected package libmodule-runtime-perl. 193s Preparing to unpack .../057-libmodule-runtime-perl_0.018-1_all.deb ... 193s Unpacking libmodule-runtime-perl (0.018-1) ... 193s Selecting previously unselected package libtry-tiny-perl. 193s Preparing to unpack .../058-libtry-tiny-perl_0.32-1_all.deb ... 193s Unpacking libtry-tiny-perl (0.32-1) ... 193s Selecting previously unselected package libmodule-implementation-perl. 193s Preparing to unpack .../059-libmodule-implementation-perl_0.09-2_all.deb ... 193s Unpacking libmodule-implementation-perl (0.09-2) ... 193s Selecting previously unselected package libsub-exporter-progressive-perl. 193s Preparing to unpack .../060-libsub-exporter-progressive-perl_0.001013-3_all.deb ... 194s Unpacking libsub-exporter-progressive-perl (0.001013-3) ... 194s Selecting previously unselected package libvariable-magic-perl. 194s Preparing to unpack .../061-libvariable-magic-perl_0.64-1build1_armhf.deb ... 194s Unpacking libvariable-magic-perl (0.64-1build1) ... 194s Selecting previously unselected package libb-hooks-endofscope-perl. 194s Preparing to unpack .../062-libb-hooks-endofscope-perl_0.28-2_all.deb ... 194s Unpacking libb-hooks-endofscope-perl (0.28-2) ... 194s Selecting previously unselected package libpackage-stash-perl. 194s Preparing to unpack .../063-libpackage-stash-perl_0.40-1_all.deb ... 194s Unpacking libpackage-stash-perl (0.40-1) ... 194s Selecting previously unselected package libsub-identify-perl. 194s Preparing to unpack .../064-libsub-identify-perl_0.14-3build4_armhf.deb ... 194s Unpacking libsub-identify-perl (0.14-3build4) ... 194s Selecting previously unselected package libsub-name-perl:armhf. 194s Preparing to unpack .../065-libsub-name-perl_0.28-1_armhf.deb ... 194s Unpacking libsub-name-perl:armhf (0.28-1) ... 194s Selecting previously unselected package libnamespace-clean-perl. 194s Preparing to unpack .../066-libnamespace-clean-perl_0.27-2_all.deb ... 194s Unpacking libnamespace-clean-perl (0.27-2) ... 194s Selecting previously unselected package libbuiltin-compat-perl. 194s Preparing to unpack .../067-libbuiltin-compat-perl_0.003003-2_all.deb ... 194s Unpacking libbuiltin-compat-perl (0.003003-2) ... 194s Selecting previously unselected package libclass-c3-perl. 194s Preparing to unpack .../068-libclass-c3-perl_0.35-2_all.deb ... 194s Unpacking libclass-c3-perl (0.35-2) ... 194s Selecting previously unselected package libclass-data-inheritable-perl. 194s Preparing to unpack .../069-libclass-data-inheritable-perl_0.10-1_all.deb ... 194s Unpacking libclass-data-inheritable-perl (0.10-1) ... 194s Selecting previously unselected package libclass-inspector-perl. 194s Preparing to unpack .../070-libclass-inspector-perl_1.36-3_all.deb ... 194s Unpacking libclass-inspector-perl (1.36-3) ... 194s Selecting previously unselected package libclass-method-modifiers-perl. 194s Preparing to unpack .../071-libclass-method-modifiers-perl_2.15-1_all.deb ... 194s Unpacking libclass-method-modifiers-perl (2.15-1) ... 194s Selecting previously unselected package libclass-singleton-perl. 194s Preparing to unpack .../072-libclass-singleton-perl_1.6-2_all.deb ... 194s Unpacking libclass-singleton-perl (1.6-2) ... 194s Selecting previously unselected package libclass-tiny-perl. 194s Preparing to unpack .../073-libclass-tiny-perl_1.008-2_all.deb ... 194s Unpacking libclass-tiny-perl (1.008-2) ... 194s Selecting previously unselected package libclass-xsaccessor-perl. 194s Preparing to unpack .../074-libclass-xsaccessor-perl_1.19-4build6_armhf.deb ... 194s Unpacking libclass-xsaccessor-perl (1.19-4build6) ... 194s Selecting previously unselected package libclone-perl:armhf. 194s Preparing to unpack .../075-libclone-perl_0.47-1_armhf.deb ... 194s Unpacking libclone-perl:armhf (0.47-1) ... 194s Selecting previously unselected package libcpan-meta-check-perl. 194s Preparing to unpack .../076-libcpan-meta-check-perl_0.018-1_all.deb ... 194s Unpacking libcpan-meta-check-perl (0.018-1) ... 194s Selecting previously unselected package libextutils-config-perl. 194s Preparing to unpack .../077-libextutils-config-perl_0.010-1_all.deb ... 194s Unpacking libextutils-config-perl (0.010-1) ... 194s Selecting previously unselected package libextutils-hascompiler-perl. 194s Preparing to unpack .../078-libextutils-hascompiler-perl_0.025-1_all.deb ... 194s Unpacking libextutils-hascompiler-perl (0.025-1) ... 194s Selecting previously unselected package libcpan-requirements-dynamic-perl. 194s Preparing to unpack .../079-libcpan-requirements-dynamic-perl_0.002-1_all.deb ... 194s Unpacking libcpan-requirements-dynamic-perl (0.002-1) ... 194s Selecting previously unselected package libcpanel-json-xs-perl:armhf. 194s Preparing to unpack .../080-libcpanel-json-xs-perl_4.39-2_armhf.deb ... 194s Unpacking libcpanel-json-xs-perl:armhf (4.39-2) ... 194s Selecting previously unselected package libparams-util-perl. 194s Preparing to unpack .../081-libparams-util-perl_1.102-3build1_armhf.deb ... 194s Unpacking libparams-util-perl (1.102-3build1) ... 194s Selecting previously unselected package libsub-install-perl. 194s Preparing to unpack .../082-libsub-install-perl_0.929-1_all.deb ... 194s Unpacking libsub-install-perl (0.929-1) ... 194s Selecting previously unselected package libdata-optlist-perl. 194s Preparing to unpack .../083-libdata-optlist-perl_0.114-1_all.deb ... 194s Unpacking libdata-optlist-perl (0.114-1) ... 194s Selecting previously unselected package libnet-domain-tld-perl. 194s Preparing to unpack .../084-libnet-domain-tld-perl_1.75-4_all.deb ... 194s Unpacking libnet-domain-tld-perl (1.75-4) ... 194s Selecting previously unselected package libdata-validate-domain-perl. 194s Preparing to unpack .../085-libdata-validate-domain-perl_0.15-1_all.deb ... 194s Unpacking libdata-validate-domain-perl (0.15-1) ... 194s Selecting previously unselected package libfile-sharedir-perl. 194s Preparing to unpack .../086-libfile-sharedir-perl_1.118-3_all.deb ... 194s Unpacking libfile-sharedir-perl (1.118-3) ... 194s Selecting previously unselected package libnamespace-autoclean-perl. 194s Preparing to unpack .../087-libnamespace-autoclean-perl_0.31-1_all.deb ... 194s Unpacking libnamespace-autoclean-perl (0.31-1) ... 194s Selecting previously unselected package libsub-exporter-perl. 194s Preparing to unpack .../088-libsub-exporter-perl_0.990-1_all.deb ... 194s Unpacking libsub-exporter-perl (0.990-1) ... 194s Selecting previously unselected package libeval-closure-perl. 194s Preparing to unpack .../089-libeval-closure-perl_0.14-3_all.deb ... 194s Unpacking libeval-closure-perl (0.14-3) ... 194s Selecting previously unselected package libdevel-stacktrace-perl. 194s Preparing to unpack .../090-libdevel-stacktrace-perl_2.0500-1_all.deb ... 194s Unpacking libdevel-stacktrace-perl (2.0500-1) ... 194s Selecting previously unselected package libexception-class-perl. 194s Preparing to unpack .../091-libexception-class-perl_1.45-1_all.deb ... 195s Unpacking libexception-class-perl (1.45-1) ... 195s Selecting previously unselected package libparams-validationcompiler-perl. 195s Preparing to unpack .../092-libparams-validationcompiler-perl_0.31-1_all.deb ... 195s Unpacking libparams-validationcompiler-perl (0.31-1) ... 195s Selecting previously unselected package libmro-compat-perl. 195s Preparing to unpack .../093-libmro-compat-perl_0.15-2_all.deb ... 195s Unpacking libmro-compat-perl (0.15-2) ... 195s Selecting previously unselected package librole-tiny-perl. 195s Preparing to unpack .../094-librole-tiny-perl_2.002004-1_all.deb ... 195s Unpacking librole-tiny-perl (2.002004-1) ... 195s Selecting previously unselected package libsub-quote-perl. 195s Preparing to unpack .../095-libsub-quote-perl_2.006008-1ubuntu1_all.deb ... 195s Unpacking libsub-quote-perl (2.006008-1ubuntu1) ... 195s Selecting previously unselected package libxstring-perl:armhf. 195s Preparing to unpack .../096-libxstring-perl_0.005-2build4_armhf.deb ... 195s Unpacking libxstring-perl:armhf (0.005-2build4) ... 195s Selecting previously unselected package libspecio-perl. 195s Preparing to unpack .../097-libspecio-perl_0.50-1_all.deb ... 195s Unpacking libspecio-perl (0.50-1) ... 195s Selecting previously unselected package libdatetime-locale-perl. 195s Preparing to unpack .../098-libdatetime-locale-perl_1%3a1.41-1_all.deb ... 195s Unpacking libdatetime-locale-perl (1:1.41-1) ... 195s Selecting previously unselected package libdatetime-timezone-perl. 195s Preparing to unpack .../099-libdatetime-timezone-perl_1%3a2.65-1+2025b_all.deb ... 195s Unpacking libdatetime-timezone-perl (1:2.65-1+2025b) ... 195s Selecting previously unselected package libdatetime-perl. 196s Preparing to unpack .../100-libdatetime-perl_2%3a1.65-1build3_armhf.deb ... 196s Unpacking libdatetime-perl (2:1.65-1build3) ... 196s Selecting previously unselected package libdatetime-format-rfc3339-perl. 196s Preparing to unpack .../101-libdatetime-format-rfc3339-perl_1.10.0-1_all.deb ... 196s Unpacking libdatetime-format-rfc3339-perl (1.10.0-1) ... 196s Selecting previously unselected package libdevel-cycle-perl. 196s Preparing to unpack .../102-libdevel-cycle-perl_1.12-2_all.deb ... 196s Unpacking libdevel-cycle-perl (1.12-2) ... 196s Selecting previously unselected package libemail-address-xs-perl. 196s Preparing to unpack .../103-libemail-address-xs-perl_1.05-1build5_armhf.deb ... 196s Unpacking libemail-address-xs-perl (1.05-1build5) ... 196s Selecting previously unselected package libexporter-tiny-perl. 196s Preparing to unpack .../104-libexporter-tiny-perl_1.006002-1_all.deb ... 196s Unpacking libexporter-tiny-perl (1.006002-1) ... 196s Selecting previously unselected package libextutils-helpers-perl. 196s Preparing to unpack .../105-libextutils-helpers-perl_0.028-1_all.deb ... 196s Unpacking libextutils-helpers-perl (0.028-1) ... 196s Selecting previously unselected package libextutils-installpaths-perl. 196s Preparing to unpack .../106-libextutils-installpaths-perl_0.014-1_all.deb ... 196s Unpacking libextutils-installpaths-perl (0.014-1) ... 196s Selecting previously unselected package libxs-parse-keyword-perl. 196s Preparing to unpack .../107-libxs-parse-keyword-perl_0.49-1_armhf.deb ... 196s Unpacking libxs-parse-keyword-perl (0.49-1) ... 196s Selecting previously unselected package libsyntax-keyword-try-perl. 196s Preparing to unpack .../108-libsyntax-keyword-try-perl_0.30-1_armhf.deb ... 196s Unpacking libsyntax-keyword-try-perl (0.30-1) ... 196s Selecting previously unselected package libfeature-compat-try-perl. 196s Preparing to unpack .../109-libfeature-compat-try-perl_0.05-1_all.deb ... 196s Unpacking libfeature-compat-try-perl (0.05-1) ... 196s Selecting previously unselected package libfile-chdir-perl. 196s Preparing to unpack .../110-libfile-chdir-perl_0.1008-1.2_all.deb ... 196s Unpacking libfile-chdir-perl (0.1008-1.2) ... 196s Selecting previously unselected package libfile-copy-recursive-perl. 196s Preparing to unpack .../111-libfile-copy-recursive-perl_0.45-4_all.deb ... 196s Unpacking libfile-copy-recursive-perl (0.45-4) ... 196s Selecting previously unselected package libio-stringy-perl. 196s Preparing to unpack .../112-libio-stringy-perl_2.113-2_all.deb ... 196s Unpacking libio-stringy-perl (2.113-2) ... 196s Selecting previously unselected package libparams-validate-perl:armhf. 196s Preparing to unpack .../113-libparams-validate-perl_1.31-2build4_armhf.deb ... 196s Unpacking libparams-validate-perl:armhf (1.31-2build4) ... 196s Selecting previously unselected package libgetopt-long-descriptive-perl. 196s Preparing to unpack .../114-libgetopt-long-descriptive-perl_0.116-2_all.deb ... 196s Unpacking libgetopt-long-descriptive-perl (0.116-2) ... 196s Selecting previously unselected package libsort-versions-perl. 196s Preparing to unpack .../115-libsort-versions-perl_1.62-3_all.deb ... 196s Unpacking libsort-versions-perl (1.62-3) ... 196s Selecting previously unselected package libgit-wrapper-perl. 196s Preparing to unpack .../116-libgit-wrapper-perl_0.048-2_all.deb ... 196s Unpacking libgit-wrapper-perl (0.048-2) ... 196s Selecting previously unselected package libimport-into-perl. 196s Preparing to unpack .../117-libimport-into-perl_1.002005-2_all.deb ... 196s Unpacking libimport-into-perl (1.002005-2) ... 196s Selecting previously unselected package node-popper2. 196s Preparing to unpack .../118-node-popper2_2.11.2-9_all.deb ... 196s Unpacking node-popper2 (2.11.2-9) ... 196s Selecting previously unselected package libjs-bootstrap5. 196s Preparing to unpack .../119-libjs-bootstrap5_5.3.8+dfsg-1_all.deb ... 196s Unpacking libjs-bootstrap5 (5.3.8+dfsg-1) ... 196s Selecting previously unselected package libjs-highlight.js. 196s Preparing to unpack .../120-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 196s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 196s Selecting previously unselected package libjs-popper.js. 196s Preparing to unpack .../121-libjs-popper.js_1.16.1+ds-6_all.deb ... 196s Unpacking libjs-popper.js (1.16.1+ds-6) ... 196s Selecting previously unselected package libjson-perl. 196s Preparing to unpack .../122-libjson-perl_4.10000-1_all.deb ... 196s Unpacking libjson-perl (4.10000-1) ... 196s Selecting previously unselected package libmojolicious-perl. 196s Preparing to unpack .../123-libmojolicious-perl_9.39+dfsg-1_all.deb ... 196s Unpacking libmojolicious-perl (9.39+dfsg-1) ... 196s Selecting previously unselected package libmoo-perl. 196s Preparing to unpack .../124-libmoo-perl_2.005005-1_all.deb ... 196s Unpacking libmoo-perl (2.005005-1) ... 197s Selecting previously unselected package libtype-tiny-perl. 197s Preparing to unpack .../125-libtype-tiny-perl_2.008004-1_all.deb ... 197s Unpacking libtype-tiny-perl (2.008004-1) ... 197s Selecting previously unselected package libmoox-typetiny-perl. 197s Preparing to unpack .../126-libmoox-typetiny-perl_0.002003-4_all.deb ... 197s Unpacking libmoox-typetiny-perl (0.002003-4) ... 197s Selecting previously unselected package libpath-tiny-perl. 197s Preparing to unpack .../127-libpath-tiny-perl_0.148-1_all.deb ... 197s Unpacking libpath-tiny-perl (0.148-1) ... 197s Selecting previously unselected package libref-util-perl. 197s Preparing to unpack .../128-libref-util-perl_0.204-2_all.deb ... 197s Unpacking libref-util-perl (0.204-2) ... 197s Selecting previously unselected package libsafe-isa-perl. 197s Preparing to unpack .../129-libsafe-isa-perl_1.000010-1_all.deb ... 197s Unpacking libsafe-isa-perl (1.000010-1) ... 197s Selecting previously unselected package libstrictures-perl. 197s Preparing to unpack .../130-libstrictures-perl_2.000006-1_all.deb ... 197s Unpacking libstrictures-perl (2.000006-1) ... 197s Selecting previously unselected package libjson-schema-modern-perl. 197s Preparing to unpack .../131-libjson-schema-modern-perl_0.611-1_all.deb ... 197s Unpacking libjson-schema-modern-perl (0.611-1) ... 197s Selecting previously unselected package libmodule-build-tiny-perl. 197s Preparing to unpack .../132-libmodule-build-tiny-perl_0.051-1_all.deb ... 197s Unpacking libmodule-build-tiny-perl (0.051-1) ... 197s Selecting previously unselected package libnet-idn-encode-perl. 197s Preparing to unpack .../133-libnet-idn-encode-perl_2.500-5build1_armhf.deb ... 197s Unpacking libnet-idn-encode-perl (2.500-5build1) ... 197s Selecting previously unselected package libpadwalker-perl. 197s Preparing to unpack .../134-libpadwalker-perl_2.5-1build7_armhf.deb ... 197s Unpacking libpadwalker-perl (2.5-1build7) ... 197s Selecting previously unselected package libref-util-xs-perl. 197s Preparing to unpack .../135-libref-util-xs-perl_0.117-2build5_armhf.deb ... 197s Unpacking libref-util-xs-perl (0.117-2build5) ... 197s Selecting previously unselected package libscope-guard-perl. 197s Preparing to unpack .../136-libscope-guard-perl_0.21-2_all.deb ... 197s Unpacking libscope-guard-perl (0.21-2) ... 197s Selecting previously unselected package libsereal-decoder-perl. 197s Preparing to unpack .../137-libsereal-decoder-perl_5.004+ds-1build5_armhf.deb ... 197s Unpacking libsereal-decoder-perl (5.004+ds-1build5) ... 197s Selecting previously unselected package libsereal-encoder-perl. 197s Preparing to unpack .../138-libsereal-encoder-perl_5.004+ds-1build4_armhf.deb ... 197s Unpacking libsereal-encoder-perl (5.004+ds-1build4) ... 197s Selecting previously unselected package libsereal-perl. 197s Preparing to unpack .../139-libsereal-perl_5.004-1_all.deb ... 197s Unpacking libsereal-perl (5.004-1) ... 197s Selecting previously unselected package libtest-deep-perl. 197s Preparing to unpack .../140-libtest-deep-perl_1.205-1_all.deb ... 197s Unpacking libtest-deep-perl (1.205-1) ... 197s Selecting previously unselected package libtest-deep-unorderedpairs-perl. 197s Preparing to unpack .../141-libtest-deep-unorderedpairs-perl_0.006-3_all.deb ... 197s Unpacking libtest-deep-unorderedpairs-perl (0.006-3) ... 197s Selecting previously unselected package libtest-fatal-perl. 197s Preparing to unpack .../142-libtest-fatal-perl_0.017-2_all.deb ... 197s Unpacking libtest-fatal-perl (0.017-2) ... 197s Selecting previously unselected package libtest-file-sharedir-perl. 197s Preparing to unpack .../143-libtest-file-sharedir-perl_1.001002-2_all.deb ... 197s Unpacking libtest-file-sharedir-perl (1.001002-2) ... 197s Selecting previously unselected package libtest2-suite-perl. 197s Preparing to unpack .../144-libtest2-suite-perl_0.000163-1_all.deb ... 197s Unpacking libtest2-suite-perl (0.000163-1) ... 197s Selecting previously unselected package libtest-json-schema-acceptance-perl. 197s Preparing to unpack .../145-libtest-json-schema-acceptance-perl_1.029-1_all.deb ... 197s Unpacking libtest-json-schema-acceptance-perl (1.029-1) ... 197s Selecting previously unselected package libtest-memory-cycle-perl. 197s Preparing to unpack .../146-libtest-memory-cycle-perl_1.06-2_all.deb ... 197s Unpacking libtest-memory-cycle-perl (1.06-2) ... 197s Selecting previously unselected package libtest-needs-perl. 197s Preparing to unpack .../147-libtest-needs-perl_0.002010-1_all.deb ... 197s Unpacking libtest-needs-perl (0.002010-1) ... 198s Selecting previously unselected package libtest-warnings-perl. 198s Preparing to unpack .../148-libtest-warnings-perl_0.038-1_all.deb ... 198s Unpacking libtest-warnings-perl (0.038-1) ... 198s Selecting previously unselected package libtest-without-module-perl. 198s Preparing to unpack .../149-libtest-without-module-perl_0.23-1_all.deb ... 198s Unpacking libtest-without-module-perl (0.23-1) ... 198s Selecting previously unselected package libtime-moment-perl. 198s Preparing to unpack .../150-libtime-moment-perl_0.44-2build5_armhf.deb ... 198s Unpacking libtime-moment-perl (0.44-2build5) ... 198s Selecting previously unselected package libtype-tiny-xs-perl:armhf. 198s Preparing to unpack .../151-libtype-tiny-xs-perl_0.025-2build1_armhf.deb ... 198s Unpacking libtype-tiny-xs-perl:armhf (0.025-2build1) ... 198s Selecting previously unselected package pkg-perl-autopkgtest. 198s Preparing to unpack .../152-pkg-perl-autopkgtest_0.82_all.deb ... 198s Unpacking pkg-perl-autopkgtest (0.82) ... 198s Setting up javascript-common (12+nmu1) ... 198s Setting up libdevel-cycle-perl (1.12-2) ... 198s Setting up libextutils-config-perl (0.010-1) ... 198s Setting up libsafe-isa-perl (1.000010-1) ... 198s Setting up libextutils-helpers-perl (0.028-1) ... 198s Setting up libclass-inspector-perl (1.36-3) ... 198s Setting up libtest-without-module-perl (0.23-1) ... 198s Setting up libdynaloader-functions-perl (0.004-2) ... 198s Setting up libtest-deep-perl (1.205-1) ... 198s Setting up libclass-method-modifiers-perl (2.15-1) ... 198s Setting up libref-util-xs-perl (0.117-2build5) ... 198s Setting up libjs-popper.js (1.16.1+ds-6) ... 198s Setting up libnet-idn-encode-perl (2.500-5build1) ... 198s Setting up libclone-perl:armhf (0.47-1) ... 198s Setting up libarchive-zip-perl (1.68-1) ... 198s Setting up libsub-identify-perl (0.14-3build4) ... 198s Setting up libcpanel-json-xs-perl:armhf (4.39-2) ... 198s Setting up libextutils-installpaths-perl (0.014-1) ... 198s Setting up libio-stringy-perl (2.113-2) ... 198s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 198s Setting up libtry-tiny-perl (0.32-1) ... 198s Setting up libtest-warnings-perl (0.038-1) ... 198s Setting up libtest-fatal-perl (0.017-2) ... 198s Setting up libextutils-hascompiler-perl (0.025-1) ... 198s Setting up libcurl3t64-gnutls:armhf (8.14.1-2ubuntu1) ... 198s Setting up linux-libc-dev:armhf (6.17.0-5.5) ... 198s Setting up m4 (1.4.20-2) ... 198s Setting up libclass-singleton-perl (1.6-2) ... 198s Setting up libtime-moment-perl (0.44-2build5) ... 198s Setting up libpadwalker-perl (2.5-1build7) ... 198s Setting up libcpan-requirements-dynamic-perl (0.002-1) ... 198s Setting up libxstring-perl:armhf (0.005-2build4) ... 198s Setting up libgomp1:armhf (15.2.0-5ubuntu1) ... 198s Setting up libsereal-encoder-perl (5.004+ds-1build4) ... 198s Setting up libsub-install-perl (0.929-1) ... 198s Setting up libtest2-suite-perl (0.000163-1) ... 198s Setting up libdw1t64:armhf (0.193-3) ... 198s Setting up libtest-needs-perl (0.002010-1) ... 198s Setting up libscope-guard-perl (0.21-2) ... 198s Setting up libfile-copy-recursive-perl (0.45-4) ... 198s Setting up liberror-perl (0.17030-1) ... 198s Setting up libautovivification-perl:armhf (0.18-2build5) ... 198s Setting up libtest-memory-cycle-perl (1.06-2) ... 198s Setting up autotools-dev (20240727.1) ... 198s Setting up libclass-data-inheritable-perl (0.10-1) ... 198s Setting up libalgorithm-c3-perl (0.11-2) ... 198s Setting up rpcsvc-proto (1.4.3-1) ... 198s Setting up libclass-tiny-perl (1.008-2) ... 198s Setting up libtest-deep-unorderedpairs-perl (0.006-3) ... 198s Setting up libref-util-perl (0.204-2) ... 198s Setting up libnet-domain-tld-perl (1.75-4) ... 198s Setting up libmpc3:armhf (1.3.1-1build3) ... 198s Setting up libvariable-magic-perl (0.64-1build1) ... 198s Setting up autopoint (0.23.1-2build2) ... 198s Setting up libb-hooks-op-check-perl:armhf (0.22-3build2) ... 198s Setting up libparams-util-perl (1.102-3build1) ... 198s Setting up autoconf (2.72-3.1ubuntu1) ... 198s Setting up libsub-exporter-progressive-perl (0.001013-3) ... 198s Setting up libubsan1:armhf (15.2.0-5ubuntu1) ... 198s Setting up libsub-name-perl:armhf (0.28-1) ... 198s Setting up libtype-tiny-xs-perl:armhf (0.025-2build1) ... 198s Setting up dwz (0.16-2) ... 198s Setting up libdata-validate-domain-perl (0.15-1) ... 198s Setting up libcpan-meta-check-perl (0.018-1) ... 198s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 198s Setting up libfile-chdir-perl (0.1008-1.2) ... 198s Setting up node-popper2 (2.11.2-9) ... 198s Setting up libcrypt-dev:armhf (1:4.4.38-1build1) ... 198s Setting up libpath-tiny-perl (0.148-1) ... 198s Setting up libasan8:armhf (15.2.0-5ubuntu1) ... 198s Setting up libjson-perl (4.10000-1) ... 198s Setting up librole-tiny-perl (2.002004-1) ... 198s Setting up debugedit (1:5.2-3) ... 198s Setting up libfile-sharedir-perl (1.118-3) ... 198s Setting up git-man (1:2.51.0-1ubuntu1) ... 198s Setting up libstrictures-perl (2.000006-1) ... 198s Setting up libsub-quote-perl (2.006008-1ubuntu1) ... 198s Setting up libdevel-stacktrace-perl (2.0500-1) ... 198s Setting up libclass-xsaccessor-perl (1.19-4build6) ... 198s Setting up libsort-versions-perl (1.62-3) ... 198s Setting up libexporter-tiny-perl (1.006002-1) ... 198s Setting up libisl23:armhf (0.27-1) ... 198s Setting up libc-dev-bin (2.42-0ubuntu3) ... 198s Setting up libjs-bootstrap5 (5.3.8+dfsg-1) ... 198s Setting up cpp-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 198s Setting up libsereal-decoder-perl (5.004+ds-1build5) ... 198s Setting up libcc1-0:armhf (15.2.0-5ubuntu1) ... 198s Setting up cpp-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 198s Setting up dctrl-tools (2.24-3build3) ... 198s Setting up autodep8 (0.30) ... 198s Setting up libemail-address-xs-perl (1.05-1build5) ... 198s Setting up automake (1:1.17-4ubuntu1) ... 198s update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode 198s Setting up libmodule-build-tiny-perl (0.051-1) ... 198s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 198s Setting up gettext (0.23.1-2build2) ... 198s Setting up libgcc-15-dev:armhf (15.2.0-5ubuntu1) ... 198s Setting up gcc-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 198s Setting up libmojolicious-perl (9.39+dfsg-1) ... 198s Setting up libtype-tiny-perl (2.008004-1) ... 198s Setting up libsereal-perl (5.004-1) ... 198s Setting up libexception-class-perl (1.45-1) ... 198s Setting up libclass-c3-perl (0.35-2) ... 198s Setting up libdevel-callchecker-perl:armhf (0.009-2) ... 198s Setting up intltool-debian (0.35.0+20060710.6) ... 198s Setting up libxs-parse-keyword-perl (0.49-1) ... 198s Setting up libtest-file-sharedir-perl (1.001002-2) ... 198s Setting up libdata-optlist-perl (0.114-1) ... 198s Setting up git (1:2.51.0-1ubuntu1) ... 198s Setting up pkg-perl-autopkgtest (0.82) ... 198s Setting up dh-strip-nondeterminism (1.15.0-1) ... 198s Setting up libsyntax-keyword-try-perl (0.30-1) ... 198s Setting up cpp-15 (15.2.0-5ubuntu1) ... 198s Setting up cpp (4:15.2.0-4ubuntu1) ... 198s Setting up libgit-wrapper-perl (0.048-2) ... 198s Setting up libc6-dev:armhf (2.42-0ubuntu3) ... 198s Setting up libmro-compat-perl (0.15-2) ... 198s Setting up libsub-exporter-perl (0.990-1) ... 198s Setting up libeval-closure-perl (0.14-3) ... 198s Setting up gcc-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 198s Setting up libparams-validationcompiler-perl (0.31-1) ... 198s Setting up libfeature-compat-try-perl (0.05-1) ... 198s Setting up po-debconf (1.0.21+nmu1) ... 198s Setting up libparams-classify-perl:armhf (0.015-2build6) ... 198s Setting up gcc-15 (15.2.0-5ubuntu1) ... 198s Setting up libstdc++-15-dev:armhf (15.2.0-5ubuntu1) ... 198s Setting up libmodule-runtime-perl (0.018-1) ... 198s Setting up libtool (2.5.4-4build1) ... 198s Setting up libmodule-implementation-perl (0.09-2) ... 198s Setting up libpackage-stash-perl (0.40-1) ... 198s Setting up libimport-into-perl (1.002005-2) ... 198s Setting up libmoo-perl (2.005005-1) ... 198s Setting up g++-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 198s Setting up gcc (4:15.2.0-4ubuntu1) ... 198s Setting up dh-autoreconf (21) ... 198s Setting up libspecio-perl (0.50-1) ... 198s Setting up libmoox-typetiny-perl (0.002003-4) ... 198s Setting up libparams-validate-perl:armhf (1.31-2build4) ... 198s Setting up libb-hooks-endofscope-perl (0.28-2) ... 198s Setting up g++-15 (15.2.0-5ubuntu1) ... 198s Setting up g++-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 198s Setting up debhelper (13.24.2ubuntu1) ... 198s Setting up libnamespace-clean-perl (0.27-2) ... 198s Setting up libbuiltin-compat-perl (0.003003-2) ... 198s Setting up libgetopt-long-descriptive-perl (0.116-2) ... 198s Setting up g++ (4:15.2.0-4ubuntu1) ... 198s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 198s Setting up libtest-json-schema-acceptance-perl (1.029-1) ... 198s Setting up build-essential (12.12ubuntu1) ... 198s Setting up libnamespace-autoclean-perl (0.31-1) ... 198s Setting up libdatetime-locale-perl (1:1.41-1) ... 198s Setting up libdatetime-timezone-perl (1:2.65-1+2025b) ... 198s Setting up libjson-schema-modern-perl (0.611-1) ... 198s Setting up libdatetime-perl (2:1.65-1build3) ... 198s Setting up libdatetime-format-rfc3339-perl (1.10.0-1) ... 198s Processing triggers for install-info (7.1.1-1ubuntu1) ... 198s Processing triggers for libc-bin (2.42-0ubuntu3) ... 198s Processing triggers for man-db (2.13.1-1) ... 208s autopkgtest [14:07:29]: test autodep8-perl-build-deps: /usr/share/pkg-perl-autopkgtest/runner build-deps 208s autopkgtest [14:07:29]: test autodep8-perl-build-deps: [----------------------- 210s t/00-report-prereqs.t ................... 210s 1..1 210s # 210s # Versions for all modules listed in static metadata (including optional ones): 210s # 210s # === Configure Requires === 210s # 210s # Module Want Have 210s # ------------------- ----- -------- 210s # Module::Build::Tiny 0.034 0.051 210s # perl 5.020 5.040001 210s # 210s # === Test Requires === 210s # 210s # Module Want Have 210s # ------------------------------ -------- -------- 210s # CPAN::Meta::Check 0.011 0.018 210s # CPAN::Meta::Requirements any 2.143 210s # Data::Dumper any 2.189 210s # File::Spec any 3.91 210s # Math::BigInt 1.999701 2.003002 210s # Module::Metadata any 1.000038 210s # Term::ANSIColor any 5.01 210s # Test2::API any 1.302199 210s # Test::Deep any 1.205 210s # Test::Deep::UnorderedPairs any 0.006 210s # Test::Fatal any 0.017 210s # Test::File::ShareDir any 1.001002 210s # Test::JSON::Schema::Acceptance 1.021 1.029 210s # Test::Memory::Cycle any 1.06 210s # Test::More 0.96 1.302199 210s # Test::Needs any 0.002010 210s # Test::Warnings any 0.038 210s # Test::Without::Module 0.19 0.23 210s # lib any 0.65 210s # perl v5.20.0 5.040001 210s # utf8 any 1.25 210s # 210s # === Test Recommends === 210s # 210s # Module Want Have 210s # ---------- -------- -------- 210s # CPAN::Meta 2.120900 2.150010 210s # 210s # === Runtime Requires === 210s # 210s # Module Want Have 210s # ------------------------- -------- -------- 210s # B any 1.89 210s # Carp any 1.54 210s # Cpanel::JSON::XS 4.38 4.39 210s # Digest::MD5 any 2.58_01 210s # Exporter any 5.78 210s # Feature::Compat::Try any 0.05 210s # File::ShareDir any 1.118 210s # Getopt::Long::Descriptive any 0.116 210s # JSON::PP 4.11 4.16 210s # List::Util 1.55 1.63 210s # MIME::Base64 any 3.16_01 210s # Math::BigFloat any 2.003002 210s # Math::BigInt 1.999701 2.003002 210s # Mojo::JSON any undef 210s # Mojo::JSON::Pointer any undef 210s # Mojo::Message::Response any undef 210s # Mojo::URL any undef 210s # Mojolicious 7.87 9.39 210s # Moo any 2.005005 210s # Moo::Role any 2.005005 210s # MooX::TypeTiny 0.002002 0.002003 210s # Path::Tiny any 0.148 210s # Ref::Util 0.100 0.204 210s # Safe::Isa 1.000008 1.000010 210s # Scalar::Util any 1.63 210s # Storable any 3.32 210s # Sub::Install any 0.929 210s # Types::Common::Numeric any 2.008004 210s # Types::Standard 1.016003 2.008004 210s # autovivification any 0.18 210s # builtin::compat 0.003003 0.003003 210s # constant any 1.33 210s # experimental 0.026 0.032 210s # feature any 1.89 210s # if any 0.0610 210s # namespace::clean any 0.27 210s # open any 1.13 210s # overload any 1.37 210s # perl v5.20.0 5.040001 210s # stable 0.031 0.033 210s # strict any 1.13 210s # strictures 2 2.000006 210s # warnings any 1.70 210s # 210s # === Runtime Suggests === 210s # 210s # Module Want Have 210s # ------------------------- ---- ------- 210s # Class::XSAccessor any 1.19 210s # Data::Validate::Domain 0.13 0.15 210s # DateTime::Format::RFC3339 any v1.10.0 210s # Email::Address::XS 1.04 1.05 210s # Net::IDN::Encode any 2.500 210s # Ref::Util::XS any 0.117 210s # Sereal any 5.004 210s # Time::Moment any 0.44 210s # Type::Tiny::XS any 0.025 210s # 210s # === Other Modules === 210s # 210s # Module Have 210s # ----------------- -------- 210s # Cpanel::JSON::XS 4.39 210s # Encode 3.21 210s # File::Temp 0.2311 210s # JSON::PP 4.16 210s # JSON::XS missing 210s # Math::BigFloat 2.003002 210s # Math::BigInt 2.003002 210s # Module::Runtime 0.018 210s # Mojolicious 9.39 210s # Sereal::Decoder 5.004 210s # Sereal::Encoder 5.004 210s # Sub::Name 0.28 210s # YAML missing 210s # autodie 2.37 210s # builtin 0.014 210s # builtin::Backport missing 210s # 210s ok 1 - Reported prereqs 210s ok 211s t/add-schema.t .......................... 211s # Subtest: evaluate a document 211s ok 1 - evaluate a Document object 211s ok 2 - resource index from the document is copied to the main object 211s ok 3 - evaluate a Document object again without error 211s 1..3 211s ok 1 - evaluate a document 211s # Subtest: evaluate a uri 211s ok 1 - evaluate with a uri that is not yet loaded 211s ok 2 - the metaschema is now loaded and its resources are indexed 211s ok 3 - evaluate against the metaschema again 211s ok 4 - evaluate against the a subschema of the metaschema 211s ok 5 - evaluate against the a fragment of the metaschema that does not exist 211s ok 6 - evaluate against the a plain-name fragment of the metaschema that does not exist 211s 1..6 211s ok 2 - evaluate a uri 211s # Subtest: add a uri resource 211s ok 1 - ->get in scalar context on a URI to the head of a document 211s ok 2 - get() did not return a reference to the original data 211s ok 3 - ->get in list context on a URI to the head of a document 211s ok 4 - ->get in scalar context on a URI to inside of a document 211s ok 5 - ->get in list context on a URI to inside of a document 211s 1..5 211s ok 3 - add a uri resource 211s # Subtest: add a schema associated with a uri 211s ok 1 - cannot use a uri with a fragment 211s ok 2 - added the schema data with an associated uri; the document does not see the overridden uri 211s ok 3 - can now evaluate using a uri to a subschema of a resource we loaded earlier 211s ok 4 - can also evaluate using a non-canonical uri 211s ok 5 - can add the same document and associate it with another schema 211s ok 6 - can add the same document twice, using deprecated interface 211s ok 7 - warned when using deprecated form of add_schema 211s ok 8 - can add the same document again with the proper interface 211s ok 9 - now the document is available as all three uris, with the same canonical_uri 211s 1..9 211s ok 4 - add a schema associated with a uri 211s # Subtest: multiple anonymous schemas 211s ok 1 - evaluate an anonymous schema 211s ok 2 - one resource is indexed 211s ok 3 - evaluate another anonymous schema 211s ok 4 - still only one resource is indexed 211s 1..4 211s ok 5 - multiple anonymous schemas 211s # Subtest: add a document without associating it with a uri 211s ok 1 - added the document without an associated uri 211s ok 2 - document only added under its canonical uri 211s 1..2 211s ok 6 - add a document without associating it with a uri 211s # Subtest: add a schema without a uri 211s ok 1 - added the schema data without an associated uri 211s ok 2 - document only added under its canonical uri 211s 1..2 211s ok 7 - add a schema without a uri 211s # Subtest: $ref to non-canonical uri 211s ok 1 - errors use the canonical uri, not the uri used to evaluate against 211s ok 2 - non-canonical uri is not used to resolve inner $id keywords 211s ok 3 - the canonical uri is updated when use the canonical uri, not the uri used to evaluate against 211s ok 4 - canonical_uri is not always what was in the $ref, even when no local $id is present 211s ok 5 - canonical_uri fragment also needs to be adjusted 211s ok 6 - canonical_uri starts out containing a fragment and can be appended to during traversal 211s 1..6 211s ok 8 - $ref to non-canonical uri 211s # Subtest: register a document against multiple uris, with absolute root uri 211s ok 1 - identifiers stored for the document 211s ok 2 - resource index from the document is copied to the main object 211s ok 3 - add a secondary uri for the same document 211s ok 4 - secondary uri not also added to the document 211s ok 5 - cannot call add_schema with the same URI as for another schema 211s ok 6 - cannot reuse the same $id in another document 211s ok 7 - resource index remains unchanged after erroneous add_schema calls 211s ok 8 - adding the same schema content again is permitted 211s ok 9 - ->get in scalar context for a nonexistent resource returns undef 211s ok 10 - ->get in list context for a nonexistent resource returns empty list 211s 1..10 211s ok 9 - register a document against multiple uris, with absolute root uri 211s # Subtest: register a document against multiple uris, with relative root uri 211s ok 1 - identifiers stored for the document 211s ok 2 - resource index from the document is copied to the main object 211s ok 3 - add a secondary (absolute) uri for the same document 211s ok 4 - secondary uri not also added to the document 211s ok 5 - cannot call add_schema with the same URI as for another schema 211s ok 6 - cannot reuse the same $id in another document 211s ok 7 - resource index remains unchanged after erroneous add_schema calls 211s ok 8 - adding the same schema content again is permitted 211s 1..8 211s ok 10 - register a document against multiple uris, with relative root uri 211s # Subtest: register a document against multiple uris, with no root uri 211s ok 1 - identifiers stored for the document 211s ok 2 - resource index from the document is copied to the main object 211s ok 3 - add a secondary (absolute) uri for the same document 211s ok 4 - secondary uri not also added to the document 211s ok 5 - cannot call add_schema with the same URI as for another schema 211s ok 6 - cannot reuse the same $id in another document 211s ok 7 - resource index remains unchanged after erroneous add_schema calls 211s ok 8 - adding the same schema content again is permitted 211s 1..8 211s ok 11 - register a document against multiple uris, with no root uri 211s # Subtest: external resource with externally-supplied uri; main resource with multiple uris 211s ok 1 - all uris in result are correct, using secondary uri as the target 211s ok 2 - all uris in result are correct, using main uri as the target 211s 1..2 211s ok 12 - external resource with externally-supplied uri; main resource with multiple uris 211s # Subtest: document with no canonical URI, but assigned a URI through add_schema 211s ok 1 - evaluate a schema referencing a document given an ad-hoc uri 211s ok 2 - adding a uri to an existing document does not change its canonical uri 211s 1..2 211s ok 13 - document with no canonical URI, but assigned a URI through add_schema 211s 1..13 211s ok 217s t/additional-tests-draft2019-09.t ....... 217s # 217s # AUTHOR_TESTING: 217s # AUTOMATED_TESTING: 1 217s # EXTENDED_TESTING: 217s # NO_TODO: 217s # TEST_DIR: 217s # NO_SHORT_CIRCUIT: 217s # 217s # running tests in /tmp/autopkgtest.uZAXGi/autopkgtest_tmp/smokeENIJgf/t/additional-tests-draft2019-09 against draft2019-09... 217s # 217s ok 1 - anchor.json: "non-schema object containing an $anchor property" - "skip traversing definition for a valid result" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 2 - anchor.json: "non-schema object containing an $anchor property" - "const at const_not_anchor does not match" { 217s # result: { 217s # "errors": [ 217s # { 217s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 217s # "error": "value does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/else/$ref/const" 217s # }, 217s # { 217s # "error": "subschema is not valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/else" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 217s # "error": "value does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/else/$ref/const" 217s # }, 217s # { 217s # "error": "subschema is not valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/else" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 3 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "properties evaluated from allOf" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 4 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "extra property" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/bar", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/bar", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 5 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "properties evaluated from additionalProperties" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 6 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "extra property" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/bar", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/bar", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 7 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "properties evaluated from allOf, but unevaluated is buried" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/foo", 217s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "no subschemas are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/foo", 217s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "no subschemas are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 8 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "no properties" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 9 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "properties evaluated from additionalProperties, but unevaluated is buried" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/foo", 217s # "keywordLocation": "/allOf/0/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/allOf/0/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "subschema 0 is not valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/allOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/foo", 217s # "keywordLocation": "/allOf/0/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/allOf/0/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "subschema 0 is not valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/allOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 10 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "no properties" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 11 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 12 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/not" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/not" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 13 - badRef.json: "good references in schemas" - "this data is never used" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 14 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "$ref value is not a valid URI reference", 217s # "instanceLocation": "", 217s # "keywordLocation": "/then/$ref" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "$ref value is not a valid URI reference", 217s # "instanceLocation": "", 217s # "keywordLocation": "/then/$ref" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 15 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "$ref value is not a valid URI reference", 217s # "instanceLocation": "", 217s # "keywordLocation": "/then/$ref" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "$ref value is not a valid URI reference", 217s # "instanceLocation": "", 217s # "keywordLocation": "/then/$ref" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 16 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 17 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 217s # result: { 217s # "errors": [ 217s # { 217s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 217s # "error": "got string, not integer", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf/0/type" 217s # }, 217s # { 217s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 217s # "error": "got string, not integer", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf/1/type" 217s # }, 217s # { 217s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 217s # "error": "value does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf/2/const" 217s # }, 217s # { 217s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 217s # "error": "value does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf/3/enum" 217s # }, 217s # { 217s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 217s # "error": "no subschemas are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 217s # "error": "got string, not integer", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf/0/type" 217s # }, 217s # { 217s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 217s # "error": "got string, not integer", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf/1/type" 217s # }, 217s # { 217s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 217s # "error": "value does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf/2/const" 217s # }, 217s # { 217s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 217s # "error": "value does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf/3/enum" 217s # }, 217s # { 217s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 217s # "error": "no subschemas are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/anyOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 18 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 19 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 20 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid date-time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid date-time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 21 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid date-time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid date-time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 22 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid date string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid date string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 23 - format-duration.json: "validation of duration strings" - "years and months can appear without days" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 24 - format-duration.json: "validation of duration strings" - "months and days can appear without years" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 25 - format-duration.json: "validation of duration strings" - "hours and minutes can appear without seconds" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 26 - format-duration.json: "validation of duration strings" - "minutes and seconds can appear without hour" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 27 - format-duration.json: "validation of duration strings" - "elements may be omitted if their value is zero" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 28 - format-duration.json: "validation of duration strings" - "half a year duration, with full stop decimal point" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 29 - format-duration.json: "validation of duration strings" - "half a year duration, with comma decimal point" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 30 - format-duration.json: "validation of duration strings" - "only one unit can have a non-integer quantity" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid duration string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid duration string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 31 - format-duration.json: "validation of duration strings" - "only the smallest unit can have a non-integer quantity" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid duration string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid duration string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 32 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv4 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv4 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 33 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv4 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv4 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 34 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 35 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv4 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv4 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 36 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 37 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 38 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 39 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 40 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 41 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 42 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 43 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 44 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 45 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 46 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 47 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 48 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv6 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv6 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 49 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv6 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv6 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 50 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv6 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv6 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 51 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv6 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv6 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 52 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv6 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid ipv6 string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 53 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 54 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 55 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 56 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 57 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid relative-json-pointer string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid relative-json-pointer string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 58 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid relative-json-pointer string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid relative-json-pointer string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 59 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid relative-json-pointer string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid relative-json-pointer string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 60 - format-time.json: "validation of time strings" - "valid leap second, Zulu" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 61 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 62 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 63 - format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 64 - format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 65 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 66 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 67 - format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 68 - format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 69 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 70 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 71 - format-time.json: "validation of time strings" - "no time offset" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 72 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "not a valid time string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 73 - formats.json: "format validation after a $ref" - "invalid duration" { 217s # result: { 217s # "errors": [ 217s # { 217s # "absoluteKeywordLocation": "#/$defs/my_format/format", 217s # "error": "not a valid duration string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/$ref/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "absoluteKeywordLocation": "#/$defs/my_format/format", 217s # "error": "not a valid duration string", 217s # "instanceLocation": "", 217s # "keywordLocation": "/$ref/format" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 74 - formats.json: "format validation after a $ref" - "valid duration" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 75 - formats.json: "format validation after an $id" - "invalid duration" { 217s # result: { 217s # "errors": [ 217s # { 217s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 217s # "error": "not a valid duration string", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/allOf/0/format" 217s # }, 217s # { 217s # "absoluteKeywordLocation": "bloop#/allOf", 217s # "error": "subschema 0 is not valid", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/allOf" 217s # }, 217s # { 217s # "error": "subschema is not valid against all items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 217s # "error": "not a valid duration string", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/allOf/0/format" 217s # }, 217s # { 217s # "absoluteKeywordLocation": "bloop#/allOf", 217s # "error": "subschema 0 is not valid", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/allOf" 217s # }, 217s # { 217s # "error": "subschema is not valid against all items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 76 - formats.json: "format validation after an $id" - "valid duration" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s # 217s ok 77 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 78 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 217s # result: { 217s # "errors": [ 217s # { 217s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 217s # "error": "value does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/else/$ref/const" 217s # }, 217s # { 217s # "error": "subschema is not valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/else" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 217s # "error": "value does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/else/$ref/const" 217s # }, 217s # { 217s # "error": "subschema is not valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/else" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 79 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "$id cannot be empty", 217s # "instanceLocation": "", 217s # "keywordLocation": "/$id" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "$id cannot be empty", 217s # "instanceLocation": "", 217s # "keywordLocation": "/$id" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 80 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "$id cannot be empty", 217s # "instanceLocation": "", 217s # "keywordLocation": "/$id" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "$id cannot be empty", 217s # "instanceLocation": "", 217s # "keywordLocation": "/$id" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 81 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "$id cannot be empty", 217s # "instanceLocation": "", 217s # "keywordLocation": "/$id" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "$id cannot be empty", 217s # "instanceLocation": "", 217s # "keywordLocation": "/$id" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 82 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "$id cannot be empty", 217s # "instanceLocation": "", 217s # "keywordLocation": "/$id" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "$id cannot be empty", 217s # "instanceLocation": "", 217s # "keywordLocation": "/$id" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s # 217s ok 83 - integers.json: "type checks" - "beyond int64 lower boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 84 - integers.json: "type checks" - "int64 lower boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 85 - integers.json: "type checks" - "beyond int32 lower boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 86 - integers.json: "type checks" - "int32 lower boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 87 - integers.json: "type checks" - "zero" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 88 - integers.json: "type checks" - "int32 upper boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 89 - integers.json: "type checks" - "beyond int32 upper boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 90 - integers.json: "type checks" - "upper int64 boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 91 - integers.json: "type checks" - "beyond int64 upper boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 92 - integers.json: "int32 range checks" - "beyond lower boundary" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than -2147483648", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than -2147483648", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 93 - integers.json: "int32 range checks" - "lower boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 94 - integers.json: "int32 range checks" - "zero" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 95 - integers.json: "int32 range checks" - "upper boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 96 - integers.json: "int32 range checks" - "beyond upper boundary" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2147483647", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2147483647", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 97 - integers.json: "int64 range checks" - "beyond lower boundary" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than -9223372036854775808", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than -9223372036854775808", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 98 - integers.json: "int64 range checks" - "lower boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 99 - integers.json: "int64 range checks" - "zero" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 100 - integers.json: "int64 range checks" - "upper boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 101 - integers.json: "int64 range checks" - "beyond upper boundary" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 9223372036854775807", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 9223372036854775807", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 102 - integers.json: "equality checks" - "beyond int64 lower boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 103 - integers.json: "equality checks" - "int64 lower boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 104 - integers.json: "equality checks" - "beyond int32 lower boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 105 - integers.json: "equality checks" - "int32 lower boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 106 - integers.json: "equality checks" - "zero" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 107 - integers.json: "equality checks" - "one" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/enum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/enum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 108 - integers.json: "equality checks" - "int32 upper boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 109 - integers.json: "equality checks" - "beyond int32 upper boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 110 - integers.json: "equality checks" - "int64 upper boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 111 - integers.json: "equality checks" - "beyond int64 upper boundary" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s # 217s ok 112 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 113 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 114 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 115 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 116 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 117 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 118 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 119 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 120 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 121 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 122 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 123 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 124 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 125 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 126 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 127 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 128 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 129 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 130 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 131 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 132 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 133 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 134 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 135 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 136 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 137 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 138 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 139 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 140 - keyword-independence.json: "items + maximum" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 141 - keyword-independence.json: "items + maximum" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 142 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 143 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 144 - keyword-independence.json: "items + minimum" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 145 - keyword-independence.json: "items + minimum" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 146 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 147 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 148 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 149 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 150 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 151 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 152 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 153 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 154 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 155 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 156 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 157 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 158 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 159 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 160 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 161 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 162 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 163 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 164 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 165 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 166 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 167 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 168 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 169 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 170 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 171 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 172 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 173 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 174 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 175 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 176 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 177 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 178 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 179 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 180 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 181 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 182 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 183 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 184 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 185 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 186 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 187 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 188 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 189 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 190 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 191 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 192 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 193 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 194 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 195 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 196 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 197 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 198 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 199 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 200 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 201 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 202 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 203 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 204 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 205 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 206 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 207 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 208 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 209 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 210 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 211 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 212 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 213 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 214 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 215 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 216 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 217 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 218 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 219 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 220 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 221 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 222 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 223 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 224 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 225 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 226 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 227 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 228 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 229 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 230 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is not a multiple of 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/multipleOf" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 231 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 232 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 233 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 234 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 235 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 236 - keyword-independence.json: "contains + dependentRequired" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 237 - keyword-independence.json: "contains + dependentRequired" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 238 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 239 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 240 - keyword-independence.json: "contains + dependentSchemas" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 241 - keyword-independence.json: "contains + dependentSchemas" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 242 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 243 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 244 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 245 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 246 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 247 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 248 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 249 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 250 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 251 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 252 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 253 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 254 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 255 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 256 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 257 - keyword-independence.json: "contains + properties" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 258 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 259 - keyword-independence.json: "contains + properties" - "object, properties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 260 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 261 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 262 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 263 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 264 - keyword-independence.json: "contains + required" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 265 - keyword-independence.json: "contains + required" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 266 - keyword-independence.json: "contains + required" - "object, required invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 267 - keyword-independence.json: "contains + required" - "object, required valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 268 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 269 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 270 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 271 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 272 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 273 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 274 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 275 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 276 - keyword-independence.json: "dependentRequired + items" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 277 - keyword-independence.json: "dependentRequired + items" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 278 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 279 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 280 - keyword-independence.json: "dependentSchemas + items" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 281 - keyword-independence.json: "dependentSchemas + items" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 282 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 283 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 284 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 285 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 286 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 287 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 288 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 289 - keyword-independence.json: "items + minProperties" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 290 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 291 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 292 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 293 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 294 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 295 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 296 - keyword-independence.json: "items + properties" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 297 - keyword-independence.json: "items + properties" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 298 - keyword-independence.json: "items + properties" - "object, properties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 299 - keyword-independence.json: "items + properties" - "object, properties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 300 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 301 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 302 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 303 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 304 - keyword-independence.json: "items + required" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 305 - keyword-independence.json: "items + required" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 306 - keyword-independence.json: "items + required" - "object, required invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 307 - keyword-independence.json: "items + required" - "object, required valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 308 - keyword-independence.json: "items + unevaluatedProperties" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 309 - keyword-independence.json: "items + unevaluatedProperties" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 310 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 311 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 312 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 313 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 314 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 315 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 316 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 317 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 318 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 319 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 320 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 321 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 322 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 323 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 324 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 325 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 326 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 327 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 328 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 329 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 330 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 331 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 332 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 333 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 334 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 335 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 336 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 337 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 338 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 339 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 340 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 341 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 342 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 343 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 344 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 345 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 346 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 347 - keyword-independence.json: "maxItems + required" - "object, required valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 348 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 349 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 350 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 351 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 352 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 353 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 354 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 355 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 356 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 357 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 358 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 359 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 360 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 361 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 362 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 363 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 364 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 365 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 366 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 367 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 368 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 369 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 370 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 371 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 372 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 373 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 374 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 375 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 376 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 377 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 378 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 379 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 380 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 381 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 382 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 383 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 384 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 385 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 386 - keyword-independence.json: "minItems + required" - "object, required invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 387 - keyword-independence.json: "minItems + required" - "object, required valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 388 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 389 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 390 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 391 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 392 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 393 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 394 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 395 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 396 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 397 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 398 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 399 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 400 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 401 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 402 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 403 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 404 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 405 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 406 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 407 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 408 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 409 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 410 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 411 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 412 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 413 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 414 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 415 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 416 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 417 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 418 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 419 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 420 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 421 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 422 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 423 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 424 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 425 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 426 - keyword-independence.json: "required + unevaluatedItems" - "object, required invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 427 - keyword-independence.json: "required + unevaluatedItems" - "object, required valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 428 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 429 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 430 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 431 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 432 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 433 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 434 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 435 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 436 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 437 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 438 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 439 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 440 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 441 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 442 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 443 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 444 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 445 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 446 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 447 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 448 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 449 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 450 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 451 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 452 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 453 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 454 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 455 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 456 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 457 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 458 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 459 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 460 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 461 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 462 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 463 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 464 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 465 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 466 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 467 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 468 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 469 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 470 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 471 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 472 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 473 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 474 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 475 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 476 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 477 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 478 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 479 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 480 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is not valid against any item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/contains" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 481 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 482 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 483 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 484 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 485 - keyword-independence.json: "items + maxLength" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 486 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 487 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 488 - keyword-independence.json: "items + minLength" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 489 - keyword-independence.json: "items + minLength" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 490 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 491 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 492 - keyword-independence.json: "items + pattern" - "array, items invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/items/0" 217s # }, 217s # { 217s # "error": "not all items are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/items" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 493 - keyword-independence.json: "items + pattern" - "array, items valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 494 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 495 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 496 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 497 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 498 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 499 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 500 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 501 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 502 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 503 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 504 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has more than 1 item", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 505 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 506 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 507 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 508 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 509 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 510 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 511 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 512 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 513 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 514 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 515 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 516 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "array has fewer than 2 items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 517 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 518 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 519 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 520 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 521 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 522 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 523 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 524 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 525 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 526 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 527 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 528 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional item not permitted", 217s # "instanceLocation": "/0", 217s # "keywordLocation": "/unevaluatedItems" 217s # }, 217s # { 217s # "error": "subschema is not valid against all additional items", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 529 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 530 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 531 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 532 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 533 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 534 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is greater than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 535 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 536 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 537 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 538 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "length is less than 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minLength" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 539 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 540 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "items at indices 0 and 1 are not unique", 217s # "instanceLocation": "", 217s # "keywordLocation": "/uniqueItems" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 541 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 542 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "pattern does not match", 217s # "instanceLocation": "", 217s # "keywordLocation": "/pattern" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 543 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 544 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 545 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 546 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 547 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 548 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 549 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 550 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 551 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 552 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 553 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 554 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 555 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 556 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 557 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 558 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 559 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 560 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 561 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 562 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 563 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 564 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 565 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 566 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 567 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 568 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 569 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 570 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/properties/x" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/properties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 571 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 572 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 573 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 574 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/propertyNames" 217s # }, 217s # { 217s # "error": "not all property names are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/propertyNames" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 575 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 576 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 577 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 578 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: x", 217s # "instanceLocation": "", 217s # "keywordLocation": "/required" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 579 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 580 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is greater than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMaximum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 581 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 582 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/unevaluatedProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/unevaluatedProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 583 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 584 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 585 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 586 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "additional property not permitted", 217s # "instanceLocation": "/x", 217s # "keywordLocation": "/additionalProperties" 217s # }, 217s # { 217s # "error": "not all additional properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/additionalProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 587 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 588 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 589 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 590 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object is missing property: y", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentRequired" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 591 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 592 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 593 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 594 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "subschema is false", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas/x" 217s # }, 217s # { 217s # "error": "not all dependencies are satisfied", 217s # "instanceLocation": "", 217s # "keywordLocation": "/dependentSchemas" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 595 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 596 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 597 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 598 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has more than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/maxProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 599 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 600 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 601 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 602 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "object has fewer than 1 property", 217s # "instanceLocation": "", 217s # "keywordLocation": "/minProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 603 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 604 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 605 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 606 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "property not permitted", 217s # "instanceLocation": "/no", 217s # "keywordLocation": "/patternProperties/no" 217s # }, 217s # { 217s # "error": "not all properties are valid", 217s # "instanceLocation": "", 217s # "keywordLocation": "/patternProperties" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 607 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 217s # result: { 217s # "valid": true 217s # } 217s # short-circuited result: { 217s # "valid": true 217s # } 217s ok 1 - test passes: data is valid: true 217s 1..1 217s } 217s ok 608 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 217s # result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s # short-circuited result: { 217s # "errors": [ 217s # { 217s # "error": "value is less than or equal to 2", 217s # "instanceLocation": "", 217s # "keywordLocation": "/exclusiveMinimum" 217s # } 217s # ], 217s # "valid": false 217s # } 217s ok 1 - test passes: data is valid: false 217s 1..1 217s } 217s ok 609 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 217s # result: { 217s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 610 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 611 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 612 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 613 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 614 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 615 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 616 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 617 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 618 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 619 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 620 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 621 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 622 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 623 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 624 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 625 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 626 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 627 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 628 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 629 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 630 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 631 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 632 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 633 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 634 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 635 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 636 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 637 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 638 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 639 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 640 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 641 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 642 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 643 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 644 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 645 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 646 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 647 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 648 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 649 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 650 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 651 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 652 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 653 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 654 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 655 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 656 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 657 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 658 - keyword-independence.json: "maximum + required" - "object, required invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 659 - keyword-independence.json: "maximum + required" - "object, required valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 660 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 661 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 662 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 663 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 664 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 665 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 666 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 667 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 668 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 669 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 670 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 671 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 672 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 673 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 674 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 675 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 676 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 677 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 678 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 679 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 680 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 681 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 682 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 683 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 684 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 685 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 686 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 687 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 688 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 689 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 690 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 691 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 692 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 693 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 694 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 695 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 696 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 697 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 698 - keyword-independence.json: "minimum + required" - "object, required invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 699 - keyword-independence.json: "minimum + required" - "object, required valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 700 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 701 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 702 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 703 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 704 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 705 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 706 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 707 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 708 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 709 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 710 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 711 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 712 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 713 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 714 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 715 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 716 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 717 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 718 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 719 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 720 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 721 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 722 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 723 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 724 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 725 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 726 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 727 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 728 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 729 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 730 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 731 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 732 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 733 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 734 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 735 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 736 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 737 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 738 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 739 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 740 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 741 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 742 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 743 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 744 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMaximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMaximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 745 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 746 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 747 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 748 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMaximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMaximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 749 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 750 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 751 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 752 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMaximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMaximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 753 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 754 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 755 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 756 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 757 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 758 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 759 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 760 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 761 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 762 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 763 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 764 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than or equal to 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/exclusiveMinimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 765 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 766 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 767 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 768 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 769 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 770 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 771 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 772 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 773 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 774 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 775 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 776 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 777 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 778 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 779 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 780 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 781 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 782 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 783 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 784 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 785 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 786 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 787 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 788 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minimum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 789 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 790 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 791 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 792 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 793 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 794 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 795 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 796 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 797 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 798 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 799 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 800 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/multipleOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 801 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 802 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 803 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 804 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 805 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 806 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 807 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 808 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 809 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 810 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 811 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 812 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/additionalProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 813 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 814 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 815 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 816 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 817 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 818 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 819 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 820 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 821 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 822 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 823 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 824 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: y", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentRequired" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 825 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 826 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 827 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 828 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 829 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 830 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 831 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 832 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 833 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 834 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 835 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 836 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas/x" 218s # }, 218s # { 218s # "error": "not all dependencies are satisfied", 218s # "instanceLocation": "", 218s # "keywordLocation": "/dependentSchemas" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 837 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 838 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 839 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 840 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 841 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 842 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 843 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 844 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 845 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 846 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 847 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 848 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has more than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 849 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 850 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 851 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 852 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 853 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 854 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 855 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 856 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 857 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 858 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 859 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 860 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object has fewer than 1 property", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 861 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 862 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 863 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 864 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 865 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 866 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 867 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 868 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 869 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 870 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 871 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 872 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/no", 218s # "keywordLocation": "/patternProperties/no" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 873 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 874 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 875 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 876 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 877 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 878 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 879 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 880 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 881 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 882 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 883 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 884 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/properties/x" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 885 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 886 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 887 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 888 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 889 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 890 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 891 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 892 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 893 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 894 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 895 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 896 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "subschema is false", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/propertyNames" 218s # }, 218s # { 218s # "error": "not all property names are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/propertyNames" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 897 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 898 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 899 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 900 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 901 - keyword-independence.json: "maxLength + required" - "object, required valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 902 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 903 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 904 - keyword-independence.json: "minLength + required" - "object, required invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 905 - keyword-independence.json: "minLength + required" - "object, required valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 906 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 907 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 908 - keyword-independence.json: "pattern + required" - "object, required invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "object is missing property: x", 218s # "instanceLocation": "", 218s # "keywordLocation": "/required" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 909 - keyword-independence.json: "pattern + required" - "object, required valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 910 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 911 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 912 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 913 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 914 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is greater than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/maxLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 915 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 916 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 917 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 918 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "length is less than 2", 218s # "instanceLocation": "", 218s # "keywordLocation": "/minLength" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 919 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 920 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "additional property not permitted", 218s # "instanceLocation": "/x", 218s # "keywordLocation": "/unevaluatedProperties" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 921 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 922 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "pattern does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/pattern" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 923 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s # 218s ok 924 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value does not match", 218s # "instanceLocation": "/const_string", 218s # "keywordLocation": "/properties/const_string/const" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value does not match", 218s # "instanceLocation": "/const_string", 218s # "keywordLocation": "/properties/const_string/const" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 925 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 926 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 927 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value does not match", 218s # "instanceLocation": "/const_number", 218s # "keywordLocation": "/properties/const_number/const" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value does not match", 218s # "instanceLocation": "/const_number", 218s # "keywordLocation": "/properties/const_number/const" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 928 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value does not match", 218s # "instanceLocation": "/enum_string", 218s # "keywordLocation": "/properties/enum_string/enum" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value does not match", 218s # "instanceLocation": "/enum_string", 218s # "keywordLocation": "/properties/enum_string/enum" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 929 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 930 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 931 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value does not match", 218s # "instanceLocation": "/enum_number", 218s # "keywordLocation": "/properties/enum_number/enum" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value does not match", 218s # "instanceLocation": "/enum_number", 218s # "keywordLocation": "/properties/enum_number/enum" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s # 218s ok 932 - recursive-dynamic.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "numeric node" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 933 - recursive-dynamic.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "integer node" { 218s # result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "integerNode.json#/type", 218s # "error": "got number, not one of object, integer", 218s # "instanceLocation": "/november", 218s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/else/$ref/additionalProperties" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "main.json#/else", 218s # "error": "subschema is not valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/else" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "integerNode.json#/type", 218s # "error": "got number, not one of object, integer", 218s # "instanceLocation": "/november", 218s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/else/$ref/additionalProperties" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "main.json#/else", 218s # "error": "subschema is not valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/else" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 934 - recursive-dynamic.json: "$recursiveRef points to a boolean schema" - "follow $recursiveRef to a true schema" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 935 - recursive-dynamic.json: "$recursiveRef points to a boolean schema" - "follow $recursiveRef to a false schema" { 218s # result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "#/$defs/false", 218s # "error": "subschema is false", 218s # "instanceLocation": "/false", 218s # "keywordLocation": "/properties/false/$recursiveRef" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "#/$defs/false", 218s # "error": "subschema is false", 218s # "instanceLocation": "/false", 218s # "keywordLocation": "/properties/false/$recursiveRef" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s # 218s ok 936 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is valid against first definition" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 937 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is invalid against first definition" { 218s # result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 218s # "error": "value is greater than 10", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$ref/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 218s # "error": "value is greater than 10", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$ref/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 938 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is valid against first definition" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 939 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is invalid against first definition" { 218s # result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 218s # "error": "value is greater than 10", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$ref/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 218s # "error": "value is greater than 10", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$ref/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 940 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with json pointers)" - "data is valid against innermost type check" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 941 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with json pointers)" - "data is invalid against innermost type check" { 218s # result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 218s # "error": "got string, not number", 218s # "instanceLocation": "", 218s # "keywordLocation": "/allOf/0/$ref/type" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 218s # "error": "got string, not number", 218s # "instanceLocation": "", 218s # "keywordLocation": "/allOf/0/oneOf/0/type" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf", 218s # "error": "no subschemas are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/allOf/0/oneOf" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 218s # "error": "subschema 0 is not valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/allOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 218s # "error": "got string, not number", 218s # "instanceLocation": "", 218s # "keywordLocation": "/allOf/0/$ref/type" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 218s # "error": "subschema 0 is not valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/allOf" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s # 218s ok 942 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 943 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 218s # result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 218s # "error": "value is greater than 10", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$ref/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 218s # "error": "value is greater than 10", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$ref/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 944 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 945 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 218s # result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 218s # "error": "value is greater than 10", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$ref/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 218s # "error": "value is greater than 10", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$ref/maximum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 946 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/enum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value does not match", 218s # "instanceLocation": "", 218s # "keywordLocation": "/enum" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 947 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 948 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "$ref value is not a valid URI reference", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$defs/foo/$ref" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "$ref value is not a valid URI reference", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$defs/foo/$ref" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 949 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "$ref value is not a valid URI reference", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$defs/foo/$ref" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "$ref value is not a valid URI reference", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$defs/foo/$ref" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 950 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 951 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 218s # "error": "got string, not integer", 218s # "instanceLocation": "/list/0", 218s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 218s # "error": "subschema is not valid against all items", 218s # "instanceLocation": "/list", 218s # "keywordLocation": "/properties/list/$ref/items" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 218s # "error": "got string, not integer", 218s # "instanceLocation": "/list/0", 218s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 218s # "error": "subschema is not valid against all items", 218s # "instanceLocation": "/list", 218s # "keywordLocation": "/properties/list/$ref/items" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s # 218s ok 952 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 953 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/1", 218s # "keywordLocation": "/items/multipleOf" 218s # }, 218s # { 218s # "error": "subschema is not valid against all items", 218s # "instanceLocation": "", 218s # "keywordLocation": "/items" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/1", 218s # "keywordLocation": "/items/multipleOf" 218s # }, 218s # { 218s # "error": "subschema is not valid against all items", 218s # "instanceLocation": "", 218s # "keywordLocation": "/items" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 954 - short-circuit.json: "items (array form) does not improperly short-circuit" - "single item is valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 955 - short-circuit.json: "items (array form) does not improperly short-circuit" - "second item is invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/1", 218s # "keywordLocation": "/items/1/multipleOf" 218s # }, 218s # { 218s # "error": "not all items are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/items" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/1", 218s # "keywordLocation": "/items/1/multipleOf" 218s # }, 218s # { 218s # "error": "not all items are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/items" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 956 - short-circuit.json: "additionalItems does not improperly short-circuit" - "single additional item is valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 957 - short-circuit.json: "additionalItems does not improperly short-circuit" - "second additional item is invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/2", 218s # "keywordLocation": "/additionalItems/multipleOf" 218s # }, 218s # { 218s # "error": "subschema is not valid against all additional items", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalItems" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/2", 218s # "keywordLocation": "/additionalItems/multipleOf" 218s # }, 218s # { 218s # "error": "subschema is not valid against all additional items", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalItems" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 958 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "single item is valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 959 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "second item is invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/1", 218s # "keywordLocation": "/unevaluatedItems/multipleOf" 218s # }, 218s # { 218s # "error": "subschema is not valid against all additional items", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedItems" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/1", 218s # "keywordLocation": "/unevaluatedItems/multipleOf" 218s # }, 218s # { 218s # "error": "subschema is not valid against all additional items", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedItems" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 960 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 961 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/properties/beta/multipleOf" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/properties/beta/multipleOf" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 962 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 963 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/properties/beta" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/properties/beta" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/properties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 964 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 965 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/patternProperties/^b/multipleOf" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/patternProperties/^b/multipleOf" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 966 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 967 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/patternProperties/^b" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "property not permitted", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/patternProperties/^b" 218s # }, 218s # { 218s # "error": "not all properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/patternProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 968 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 969 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/additionalProperties/multipleOf" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/additionalProperties/multipleOf" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/additionalProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 970 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "single property is valid" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 971 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "second property is invalid" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/unevaluatedProperties/multipleOf" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "value is not a multiple of 2", 218s # "instanceLocation": "/beta", 218s # "keywordLocation": "/unevaluatedProperties/multipleOf" 218s # }, 218s # { 218s # "error": "not all additional properties are valid", 218s # "instanceLocation": "", 218s # "keywordLocation": "/unevaluatedProperties" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s # 218s ok 972 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 973 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "got string, not number", 218s # "instanceLocation": "", 218s # "keywordLocation": "/type" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "got string, not number", 218s # "instanceLocation": "", 218s # "keywordLocation": "/type" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 974 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "got object, not number", 218s # "instanceLocation": "", 218s # "keywordLocation": "/type" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "got object, not number", 218s # "instanceLocation": "", 218s # "keywordLocation": "/type" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 975 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 218s # result: { 218s # "errors": [ 218s # { 218s # "error": "got array, not number", 218s # "instanceLocation": "", 218s # "keywordLocation": "/type" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "error": "got array, not number", 218s # "instanceLocation": "", 218s # "keywordLocation": "/type" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s # 218s ok 976 - vocabulary.json: "valid $vocabulary" - "a valid $vocabulary value" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 977 - vocabulary.json: "invalid $vocabulary (wrong specification version), but not until we evaluate with this metaschema" - "invalid $vocabulary (wrong specification version): register this metaschema" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 978 - vocabulary.json: "use schema (invalid $vocabulary) as a metaschema" - "invalid $vocabulary value: wrong specification version" { 218s # result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core", 218s # "error": "\"https://json-schema.org/draft/2020-12/vocab/core\" uses draft2020-12, but the metaschema itself uses draft2019-09", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 218s # "error": "the first vocabulary (by evaluation_order) must be Core", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$schema/$vocabulary" 218s # }, 218s # { 218s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$schema" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core", 218s # "error": "\"https://json-schema.org/draft/2020-12/vocab/core\" uses draft2020-12, but the metaschema itself uses draft2019-09", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core" 218s # }, 218s # { 218s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 218s # "error": "the first vocabulary (by evaluation_order) must be Core", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$schema/$vocabulary" 218s # }, 218s # { 218s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$schema" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s ok 979 - vocabulary.json: "invalid $vocabulary (unknown URI), but not until we evaluate with this metaschema" - "invalid $vocabulary (unknown URI): register this metaschema" { 218s # result: { 218s # "valid": true 218s # } 218s # short-circuited result: { 218s # "valid": true 218s # } 218s ok 1 - test passes: data is valid: true 218s 1..1 218s } 218s ok 980 - vocabulary.json: "use schema (unknown URI) as a metaschema" - "invalid $vocabulary value: unknown URI" { 218s # result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 218s # "error": "\"https://foo.com\" is not a known vocabulary", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 218s # }, 218s # { 218s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$schema" 218s # } 218s # ], 218s # "valid": false 218s # } 218s # short-circuited result: { 218s # "errors": [ 218s # { 218s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 218s # "error": "\"https://foo.com\" is not a known vocabulary", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 218s # }, 218s # { 218s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 218s # "instanceLocation": "", 218s # "keywordLocation": "/$schema" 218s # } 218s # ], 218s # "valid": false 218s # } 218s ok 1 - test passes: data is valid: false 218s 1..1 218s } 218s # 218s # generated with: Test::JSON::Schema::Acceptance 1.029 218s # specification version: draft2019-09 218s # using custom test directory: t/additional-tests-draft2019-09 218s # optional tests included: yes 218s # 218s # filename pass todo-fail fail 218s # --------------------------------------------------------------- 218s # anchor.json 2 0 0 218s # annotation-collection.json 10 0 0 218s # badRef.json 3 0 0 218s # faux-buggy-schemas.json 2 0 0 218s # format-date-time.json 4 0 0 218s # format-date.json 1 0 0 218s # format-duration.json 9 0 0 218s # format-ipv4.json 4 0 0 218s # format-ipv6.json 17 0 0 218s # format-relative-json-pointer.json 7 0 0 218s # format-time.json 13 0 0 218s # formats.json 4 0 0 218s # id.json 6 0 0 218s # integers.json 29 0 0 218s # keyword-independence.json 812 0 0 218s # loose-types-const-enum.json 8 0 0 218s # recursive-dynamic.json 4 0 0 218s # ref-and-id.json 6 0 0 218s # ref.json 10 0 0 218s # short-circuit.json 20 0 0 218s # unknownKeyword.json 4 0 0 218s # vocabulary.json 5 0 0 218s # --------------------------------------------------------------- 218s # TOTAL 980 0 0 218s # 218s # Congratulations, all non-optional tests are passing! 218s # 218s ok 981 - no leaks in the main evaluator object 218s ok 982 - no leaks in the short-circuiting evaluator object 218s ok 983 - got unsupported keyword warnings 218s 1..983 218s ok 224s t/additional-tests-draft2020-12.t ....... 224s # 224s # AUTHOR_TESTING: 224s # AUTOMATED_TESTING: 1 224s # EXTENDED_TESTING: 224s # NO_TODO: 224s # TEST_DIR: 224s # NO_SHORT_CIRCUIT: 224s # 224s # running tests in /tmp/autopkgtest.uZAXGi/autopkgtest_tmp/smokeENIJgf/t/additional-tests-draft2020-12 against draft2020-12... 224s # 224s ok 1 - anchor.json: "non-schema object containing an $anchor property" - "skip traversing definition for a valid result" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 2 - anchor.json: "non-schema object containing an $anchor property" - "const at const_not_anchor does not match" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else/$ref/const" 224s # }, 224s # { 224s # "error": "subschema is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else/$ref/const" 224s # }, 224s # { 224s # "error": "subschema is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 3 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "properties evaluated from allOf" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 4 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "extra property" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/bar", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/bar", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 5 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "properties evaluated from additionalProperties" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 6 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "extra property" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/bar", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/bar", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 7 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "properties evaluated from allOf, but unevaluated is buried" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/foo", 224s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "no subschemas are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/foo", 224s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "no subschemas are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 8 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "no properties" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 9 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "properties evaluated from additionalProperties, but unevaluated is buried" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/foo", 224s # "keywordLocation": "/allOf/0/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/allOf/0/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "subschema 0 is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/allOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/foo", 224s # "keywordLocation": "/allOf/0/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/allOf/0/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "subschema 0 is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/allOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 10 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "no properties" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 11 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 12 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/not" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/not" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 13 - badRef.json: "good references in schemas" - "this data is never used" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 14 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "$ref value is not a valid URI reference", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then/$ref" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "$ref value is not a valid URI reference", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then/$ref" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 15 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "$ref value is not a valid URI reference", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then/$ref" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "$ref value is not a valid URI reference", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then/$ref" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 16 - dynamicRef.json: "after leaving a dynamic scope, it should not be used by a $dynamicRef" - "string matches /$defs/thingy, but the $dynamicRef does not stop here" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 224s # "error": "got string, not null", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then/$ref/$dynamicRef/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "main#/then", 224s # "error": "subschema is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 224s # "error": "got string, not null", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then/$ref/$dynamicRef/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "main#/then", 224s # "error": "subschema is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 17 - dynamicRef.json: "after leaving a dynamic scope, it should not be used by a $dynamicRef" - "first_scope is not in dynamic scope for the $dynamicRef" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 224s # "error": "got integer, not null", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then/$ref/$dynamicRef/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "main#/then", 224s # "error": "subschema is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 224s # "error": "got integer, not null", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then/$ref/$dynamicRef/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "main#/then", 224s # "error": "subschema is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/then" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 18 - dynamicRef.json: "after leaving a dynamic scope, it should not be used by a $dynamicRef" - "value validates against /then/$defs/thingy, the final stop for the $dynamicRef" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 19 - dynamicRef.json: "schema in dynamic scope must have a $dynamicAnchor that matches the fragment" - "value would fail under either subschema" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "orig#/minimum", 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$dynamicRef/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "orig#/minimum", 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$dynamicRef/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 20 - dynamicRef.json: "schema in dynamic scope must have a $dynamicAnchor that matches the fragment" - "$anchor does not match $dynamicAnchor; original subschema is used" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 21 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a true schema" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 22 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a false schema" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "#/$defs/false", 224s # "error": "subschema is false", 224s # "instanceLocation": "/false", 224s # "keywordLocation": "/properties/false/$dynamicRef" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "#/$defs/false", 224s # "error": "subschema is false", 224s # "instanceLocation": "/false", 224s # "keywordLocation": "/properties/false/$dynamicRef" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 23 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 24 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 224s # "error": "got string, not integer", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf/0/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 224s # "error": "got string, not integer", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf/1/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf/2/const" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf/3/enum" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 224s # "error": "no subschemas are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 224s # "error": "got string, not integer", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf/0/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 224s # "error": "got string, not integer", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf/1/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf/2/const" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf/3/enum" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 224s # "error": "no subschemas are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/anyOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 25 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 26 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 27 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid date-time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid date-time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 28 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid date-time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid date-time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 29 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid date string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid date string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 30 - format-duration.json: "validation of duration strings" - "years and months can appear without days" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 31 - format-duration.json: "validation of duration strings" - "months and days can appear without years" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 32 - format-duration.json: "validation of duration strings" - "hours and minutes can appear without seconds" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 33 - format-duration.json: "validation of duration strings" - "minutes and seconds can appear without hour" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 34 - format-duration.json: "validation of duration strings" - "elements may be omitted if their value is zero" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 35 - format-duration.json: "validation of duration strings" - "half a year duration, with full stop decimal point" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 36 - format-duration.json: "validation of duration strings" - "half a year duration, with comma decimal point" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 37 - format-duration.json: "validation of duration strings" - "only one unit can have a non-integer quantity" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid duration string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid duration string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 38 - format-duration.json: "validation of duration strings" - "only the smallest unit can have a non-integer quantity" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid duration string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid duration string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 39 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv4 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv4 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 40 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv4 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv4 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 41 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 42 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv4 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv4 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 43 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 44 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 45 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 46 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 47 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 48 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 49 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 50 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 51 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 52 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 53 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 54 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 55 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv6 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv6 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 56 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv6 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv6 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 57 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv6 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv6 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 58 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv6 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv6 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 59 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv6 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid ipv6 string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 60 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 61 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 62 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 63 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 64 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid relative-json-pointer string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid relative-json-pointer string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 65 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid relative-json-pointer string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid relative-json-pointer string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 66 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid relative-json-pointer string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid relative-json-pointer string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 67 - format-time.json: "validation of time strings" - "valid leap second, Zulu" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 68 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 69 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 70 - format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 71 - format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 72 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 73 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 74 - format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 75 - format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 76 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 77 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 78 - format-time.json: "validation of time strings" - "no time offset" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 79 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "not a valid time string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 80 - formats.json: "format validation after a $ref" - "invalid duration" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "#/$defs/my_format/format", 224s # "error": "not a valid duration string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$ref/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "#/$defs/my_format/format", 224s # "error": "not a valid duration string", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$ref/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 81 - formats.json: "format validation after a $ref" - "valid duration" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 82 - formats.json: "format validation after an $id" - "invalid duration" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 224s # "error": "not a valid duration string", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items/allOf/0/format" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "bloop#/allOf", 224s # "error": "subschema 0 is not valid", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items/allOf" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 224s # "error": "not a valid duration string", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items/allOf/0/format" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "bloop#/allOf", 224s # "error": "subschema 0 is not valid", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items/allOf" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 83 - formats.json: "format validation after an $id" - "valid duration" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s # 224s ok 84 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 85 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else/$ref/const" 224s # }, 224s # { 224s # "error": "subschema is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else/$ref/const" 224s # }, 224s # { 224s # "error": "subschema is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 86 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "$id cannot be empty", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$id" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "$id cannot be empty", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$id" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 87 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "$id cannot be empty", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$id" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "$id cannot be empty", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$id" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 88 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "$id cannot be empty", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$id" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "$id cannot be empty", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$id" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 89 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "$id cannot be empty", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$id" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "$id cannot be empty", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$id" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 90 - integers.json: "type checks" - "beyond int64 lower boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 91 - integers.json: "type checks" - "int64 lower boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 92 - integers.json: "type checks" - "beyond int32 lower boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 93 - integers.json: "type checks" - "int32 lower boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 94 - integers.json: "type checks" - "zero" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 95 - integers.json: "type checks" - "int32 upper boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 96 - integers.json: "type checks" - "beyond int32 upper boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 97 - integers.json: "type checks" - "upper int64 boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 98 - integers.json: "type checks" - "beyond int64 upper boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 99 - integers.json: "int32 range checks" - "beyond lower boundary" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than -2147483648", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than -2147483648", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 100 - integers.json: "int32 range checks" - "lower boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 101 - integers.json: "int32 range checks" - "zero" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 102 - integers.json: "int32 range checks" - "upper boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 103 - integers.json: "int32 range checks" - "beyond upper boundary" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2147483647", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2147483647", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 104 - integers.json: "int64 range checks" - "beyond lower boundary" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than -9223372036854775808", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than -9223372036854775808", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 105 - integers.json: "int64 range checks" - "lower boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 106 - integers.json: "int64 range checks" - "zero" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 107 - integers.json: "int64 range checks" - "upper boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 108 - integers.json: "int64 range checks" - "beyond upper boundary" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 9223372036854775807", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 9223372036854775807", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 109 - integers.json: "equality checks" - "beyond int64 lower boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 110 - integers.json: "equality checks" - "int64 lower boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 111 - integers.json: "equality checks" - "beyond int32 lower boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 112 - integers.json: "equality checks" - "int32 lower boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 113 - integers.json: "equality checks" - "zero" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 114 - integers.json: "equality checks" - "one" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/enum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/enum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 115 - integers.json: "equality checks" - "int32 upper boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 116 - integers.json: "equality checks" - "beyond int32 upper boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 117 - integers.json: "equality checks" - "int64 upper boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 118 - integers.json: "equality checks" - "beyond int64 upper boundary" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s # 224s ok 119 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 120 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 121 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 122 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 123 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 124 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 125 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 126 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 127 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 128 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 129 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 130 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 131 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 132 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 133 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 134 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 135 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 136 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 137 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 138 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 139 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 140 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 141 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 142 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 143 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 144 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 145 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 146 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 147 - keyword-independence.json: "items + maximum" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 148 - keyword-independence.json: "items + maximum" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 149 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 150 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 151 - keyword-independence.json: "items + minimum" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 152 - keyword-independence.json: "items + minimum" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 153 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 154 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 155 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 156 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 157 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 158 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 159 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 160 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 161 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 162 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 163 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 164 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 165 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 166 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 167 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 168 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 169 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 170 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 171 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 172 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 173 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 174 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 175 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 176 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 177 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 178 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 179 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 180 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 181 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 182 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 183 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 184 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 185 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 186 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 187 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 188 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 189 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 190 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 191 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 192 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 193 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 194 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 195 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 196 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 197 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 198 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 199 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 200 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 201 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 202 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 203 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 204 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 205 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 206 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 207 - keyword-independence.json: "maximum + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 208 - keyword-independence.json: "maximum + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 209 - keyword-independence.json: "maximum + prefixItems" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 210 - keyword-independence.json: "maximum + prefixItems" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 211 - keyword-independence.json: "minimum + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 212 - keyword-independence.json: "minimum + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 213 - keyword-independence.json: "minimum + prefixItems" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 214 - keyword-independence.json: "minimum + prefixItems" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 215 - keyword-independence.json: "multipleOf + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 216 - keyword-independence.json: "multipleOf + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 217 - keyword-independence.json: "multipleOf + prefixItems" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 218 - keyword-independence.json: "multipleOf + prefixItems" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 219 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 220 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 221 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 222 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 223 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 224 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 225 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 226 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 227 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 228 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 229 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 230 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 231 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 232 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 233 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 234 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 235 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 236 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 237 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 238 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 239 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 240 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 241 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 242 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 243 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 244 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 245 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 246 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 247 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 248 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 249 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 250 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 251 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 252 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 253 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 254 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 255 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 256 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 257 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 258 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 259 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 260 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 261 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 262 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 263 - keyword-independence.json: "contains + dependentRequired" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 264 - keyword-independence.json: "contains + dependentRequired" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 265 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 266 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 267 - keyword-independence.json: "contains + dependentSchemas" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 268 - keyword-independence.json: "contains + dependentSchemas" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 269 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 270 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 271 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 272 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 273 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 274 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 275 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 276 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 277 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 278 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 279 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 280 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 281 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 282 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 283 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 284 - keyword-independence.json: "contains + properties" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 285 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 286 - keyword-independence.json: "contains + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 287 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 288 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 289 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 290 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 291 - keyword-independence.json: "contains + required" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 292 - keyword-independence.json: "contains + required" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 293 - keyword-independence.json: "contains + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 294 - keyword-independence.json: "contains + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 295 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 296 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 297 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 298 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 299 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 300 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 301 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 302 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 303 - keyword-independence.json: "dependentRequired + items" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 304 - keyword-independence.json: "dependentRequired + items" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 305 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 306 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 307 - keyword-independence.json: "dependentSchemas + items" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 308 - keyword-independence.json: "dependentSchemas + items" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 309 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 310 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 311 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 312 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 313 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 314 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 315 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 316 - keyword-independence.json: "items + minProperties" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 317 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 318 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 319 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 320 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 321 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 322 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 323 - keyword-independence.json: "items + properties" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 324 - keyword-independence.json: "items + properties" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 325 - keyword-independence.json: "items + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 326 - keyword-independence.json: "items + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 327 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 328 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 329 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 330 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 331 - keyword-independence.json: "items + required" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 332 - keyword-independence.json: "items + required" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 333 - keyword-independence.json: "items + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 334 - keyword-independence.json: "items + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 335 - keyword-independence.json: "items + unevaluatedProperties" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 336 - keyword-independence.json: "items + unevaluatedProperties" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 337 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 338 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 339 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 340 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 341 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 342 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 343 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 344 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 345 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 346 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 347 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 348 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 349 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 350 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 351 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 352 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 353 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 354 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 355 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 356 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 357 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 358 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 359 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 360 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 361 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 362 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 363 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 364 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 365 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 366 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 367 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 368 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 369 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 370 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 371 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 372 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 373 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 374 - keyword-independence.json: "maxItems + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 375 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 376 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 377 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 378 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 379 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 380 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 381 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 382 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 383 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 384 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 385 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 386 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 387 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 388 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 389 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 390 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 391 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 392 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 393 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 394 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 395 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 396 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 397 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 398 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 399 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 400 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 401 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 402 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 403 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 404 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 405 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 406 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 407 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 408 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 409 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 410 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 411 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 412 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 413 - keyword-independence.json: "minItems + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 414 - keyword-independence.json: "minItems + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 415 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 416 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 417 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 418 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 419 - keyword-independence.json: "additionalProperties + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 420 - keyword-independence.json: "additionalProperties + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 421 - keyword-independence.json: "additionalProperties + prefixItems" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 422 - keyword-independence.json: "additionalProperties + prefixItems" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 423 - keyword-independence.json: "dependentRequired + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 424 - keyword-independence.json: "dependentRequired + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 425 - keyword-independence.json: "dependentRequired + prefixItems" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 426 - keyword-independence.json: "dependentRequired + prefixItems" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 427 - keyword-independence.json: "dependentSchemas + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 428 - keyword-independence.json: "dependentSchemas + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 429 - keyword-independence.json: "dependentSchemas + prefixItems" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 430 - keyword-independence.json: "dependentSchemas + prefixItems" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 431 - keyword-independence.json: "maxProperties + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 432 - keyword-independence.json: "maxProperties + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 433 - keyword-independence.json: "maxProperties + prefixItems" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 434 - keyword-independence.json: "maxProperties + prefixItems" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 435 - keyword-independence.json: "minProperties + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 436 - keyword-independence.json: "minProperties + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 437 - keyword-independence.json: "minProperties + prefixItems" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 438 - keyword-independence.json: "minProperties + prefixItems" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 439 - keyword-independence.json: "patternProperties + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 440 - keyword-independence.json: "patternProperties + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 441 - keyword-independence.json: "patternProperties + prefixItems" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 442 - keyword-independence.json: "patternProperties + prefixItems" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 443 - keyword-independence.json: "prefixItems + properties" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 444 - keyword-independence.json: "prefixItems + properties" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 445 - keyword-independence.json: "prefixItems + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 446 - keyword-independence.json: "prefixItems + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 447 - keyword-independence.json: "prefixItems + propertyNames" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 448 - keyword-independence.json: "prefixItems + propertyNames" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 449 - keyword-independence.json: "prefixItems + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 450 - keyword-independence.json: "prefixItems + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 451 - keyword-independence.json: "prefixItems + required" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 452 - keyword-independence.json: "prefixItems + required" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 453 - keyword-independence.json: "prefixItems + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 454 - keyword-independence.json: "prefixItems + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 455 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 456 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 457 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 458 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 459 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 460 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 461 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 462 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 463 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 464 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 465 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 466 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 467 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 468 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 469 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 470 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 471 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 472 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 473 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 474 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 475 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 476 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 477 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 478 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 479 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 480 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 481 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 482 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 483 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 484 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 485 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 486 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 487 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 488 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 489 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 490 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 491 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 492 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 493 - keyword-independence.json: "required + unevaluatedItems" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 494 - keyword-independence.json: "required + unevaluatedItems" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 495 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 496 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 497 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 498 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 499 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 500 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 501 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 502 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 503 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 504 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 505 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 506 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 507 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 508 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 509 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 510 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 511 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 512 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 513 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 514 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 515 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 516 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 517 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 518 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 519 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 520 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 521 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 522 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 523 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 524 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 525 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 526 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 527 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 528 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 529 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 530 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 531 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 532 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 533 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 534 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 535 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 536 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 537 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 538 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 539 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 540 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 541 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 542 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 543 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 544 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 545 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 546 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 547 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is not valid against any item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/contains" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 548 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 549 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 550 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 551 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 552 - keyword-independence.json: "items + maxLength" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 553 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 554 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 555 - keyword-independence.json: "items + minLength" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 556 - keyword-independence.json: "items + minLength" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 557 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 558 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 559 - keyword-independence.json: "items + pattern" - "array, items invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/items" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 560 - keyword-independence.json: "items + pattern" - "array, items valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 561 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 562 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 563 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 564 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 565 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 566 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 567 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 568 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 569 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 570 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 571 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has more than 1 item", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 572 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 573 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 574 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 575 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 576 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 577 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 578 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 579 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 580 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 581 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 582 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 583 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "array has fewer than 2 items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 584 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 585 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 586 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 587 - keyword-independence.json: "maxLength + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 588 - keyword-independence.json: "maxLength + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 589 - keyword-independence.json: "maxLength + prefixItems" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 590 - keyword-independence.json: "maxLength + prefixItems" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 591 - keyword-independence.json: "minLength + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 592 - keyword-independence.json: "minLength + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 593 - keyword-independence.json: "minLength + prefixItems" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 594 - keyword-independence.json: "minLength + prefixItems" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 595 - keyword-independence.json: "pattern + prefixItems" - "array, prefixItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/prefixItems/0" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 596 - keyword-independence.json: "pattern + prefixItems" - "array, prefixItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 597 - keyword-independence.json: "pattern + prefixItems" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 598 - keyword-independence.json: "pattern + prefixItems" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 599 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 600 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 601 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 602 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 603 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 604 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 605 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 606 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 607 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional item not permitted", 224s # "instanceLocation": "/0", 224s # "keywordLocation": "/unevaluatedItems" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 608 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 609 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 610 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 611 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 612 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 613 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 614 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 615 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 616 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 617 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 618 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 619 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "items at indices 0 and 1 are not unique", 224s # "instanceLocation": "", 224s # "keywordLocation": "/uniqueItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 620 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 621 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 622 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 623 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 624 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 625 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 626 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 627 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 628 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 629 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 630 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 631 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 632 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 633 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 634 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 635 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 636 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 637 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 638 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 639 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 640 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 641 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 642 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 643 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 644 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 645 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 646 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 647 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 648 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 649 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 650 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 651 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 652 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 653 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 654 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 655 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 656 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 657 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 658 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 659 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 660 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 661 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 662 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 663 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 664 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 665 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 666 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 667 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 668 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 669 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 670 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 671 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 672 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 673 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 674 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 675 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 676 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 677 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 678 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 679 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 680 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 681 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 682 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 683 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 684 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 685 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 686 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 687 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 688 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 689 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 690 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 691 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 692 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 693 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 694 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 695 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 696 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 697 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 698 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 699 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 700 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 701 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 702 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 703 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 704 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 705 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 706 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 707 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 708 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 709 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 710 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 711 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 712 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 713 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 714 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 715 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 716 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 717 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 718 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 719 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 720 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 721 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 722 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 723 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 724 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 725 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 726 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 727 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 728 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 729 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 730 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 731 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 732 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 733 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 734 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 735 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 736 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 737 - keyword-independence.json: "maximum + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 738 - keyword-independence.json: "maximum + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 739 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 740 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 741 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 742 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 743 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 744 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 745 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 746 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 747 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 748 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 749 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 750 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 751 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 752 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 753 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 754 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 755 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 756 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 757 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 758 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 759 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 760 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 761 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 762 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 763 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 764 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 765 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 766 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 767 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 768 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 769 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 770 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 771 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 772 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 773 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 774 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 775 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 776 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 777 - keyword-independence.json: "minimum + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 778 - keyword-independence.json: "minimum + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 779 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 780 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 781 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 782 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 783 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 784 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 785 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 786 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 787 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 788 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 789 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 790 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 791 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 792 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 793 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 794 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 795 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 796 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 797 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 798 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 799 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 800 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 801 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 802 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 803 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 804 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 805 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 806 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 807 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 808 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 809 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 810 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 811 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 812 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 813 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 814 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 815 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 816 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 817 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 818 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 819 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 820 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 821 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 822 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 823 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 824 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 825 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 826 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 827 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 828 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 829 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 830 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 831 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMaximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 832 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 833 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 834 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 835 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 836 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 837 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 838 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 839 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 840 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 841 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 842 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 843 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than or equal to 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/exclusiveMinimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 844 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 845 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 846 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 847 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 848 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 849 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 850 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 851 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 852 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 853 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 854 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 855 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 856 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 857 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 858 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 859 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 860 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 861 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 862 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 863 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 864 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 865 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 866 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 867 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minimum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 868 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 869 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 870 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 871 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 872 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 873 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 874 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 875 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 876 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 877 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 878 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 879 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/multipleOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 880 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 881 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 882 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 883 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 884 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 885 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 886 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 887 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 888 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 889 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 890 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 891 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/additionalProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 892 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 893 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 894 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 895 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 896 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 897 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 898 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 899 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 900 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 901 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 902 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 903 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: y", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentRequired" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 904 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 905 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 906 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 907 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 908 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 909 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 910 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 911 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 912 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 913 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 914 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 915 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas/x" 224s # }, 224s # { 224s # "error": "not all dependencies are satisfied", 224s # "instanceLocation": "", 224s # "keywordLocation": "/dependentSchemas" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 916 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 917 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 918 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 919 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 920 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 921 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 922 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 923 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 924 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 925 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 926 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 927 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has more than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 928 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 929 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 930 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 931 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 932 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 933 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 934 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 935 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 936 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 937 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 938 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 939 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object has fewer than 1 property", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 940 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 941 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 942 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 943 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 944 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 945 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 946 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 947 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 948 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 949 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 950 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 951 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/no", 224s # "keywordLocation": "/patternProperties/no" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 952 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 953 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 954 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 955 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 956 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 957 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 958 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 959 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 960 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 961 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 962 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 963 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/properties/x" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 964 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 965 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 966 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 967 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 968 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 969 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 970 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 971 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 972 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 973 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 974 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 975 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "subschema is false", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/propertyNames" 224s # }, 224s # { 224s # "error": "not all property names are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/propertyNames" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 976 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 977 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 978 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 979 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 980 - keyword-independence.json: "maxLength + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 981 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 982 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 983 - keyword-independence.json: "minLength + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 984 - keyword-independence.json: "minLength + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 985 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 986 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 987 - keyword-independence.json: "pattern + required" - "object, required invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "object is missing property: x", 224s # "instanceLocation": "", 224s # "keywordLocation": "/required" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 988 - keyword-independence.json: "pattern + required" - "object, required valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 989 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 990 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 991 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 992 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 993 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is greater than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/maxLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 994 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 995 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 996 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 997 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "length is less than 2", 224s # "instanceLocation": "", 224s # "keywordLocation": "/minLength" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 998 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 999 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "additional property not permitted", 224s # "instanceLocation": "/x", 224s # "keywordLocation": "/unevaluatedProperties" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1000 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1001 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "pattern does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/pattern" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1002 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s # 224s ok 1003 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "/const_string", 224s # "keywordLocation": "/properties/const_string/const" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "/const_string", 224s # "keywordLocation": "/properties/const_string/const" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1004 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1005 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1006 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "/const_number", 224s # "keywordLocation": "/properties/const_number/const" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "/const_number", 224s # "keywordLocation": "/properties/const_number/const" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1007 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "/enum_string", 224s # "keywordLocation": "/properties/enum_string/enum" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "/enum_string", 224s # "keywordLocation": "/properties/enum_string/enum" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1008 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1009 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1010 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "/enum_number", 224s # "keywordLocation": "/properties/enum_number/enum" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "/enum_number", 224s # "keywordLocation": "/properties/enum_number/enum" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 1011 - recursive-dynamic.json: "dynamic $dynamicRef destination (not predictable at schema compile time)" - "numeric node" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1012 - recursive-dynamic.json: "dynamic $dynamicRef destination (not predictable at schema compile time)" - "integer node" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "integerNode.json#/type", 224s # "error": "got number, not one of object, integer", 224s # "instanceLocation": "/november", 224s # "keywordLocation": "/else/$ref/additionalProperties/$dynamicRef/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else/$ref/additionalProperties" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "main.json#/else", 224s # "error": "subschema is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "integerNode.json#/type", 224s # "error": "got number, not one of object, integer", 224s # "instanceLocation": "/november", 224s # "keywordLocation": "/else/$ref/additionalProperties/$dynamicRef/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else/$ref/additionalProperties" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "main.json#/else", 224s # "error": "subschema is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/else" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 1013 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is valid against first definition" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1014 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is invalid against first definition" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 224s # "error": "value is greater than 10", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$ref/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 224s # "error": "value is greater than 10", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$ref/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1015 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is valid against first definition" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1016 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is invalid against first definition" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 224s # "error": "value is greater than 10", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$ref/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 224s # "error": "value is greater than 10", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$ref/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1017 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with json pointers)" - "data is valid against innermost type check" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1018 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with json pointers)" - "data is invalid against innermost type check" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 224s # "error": "got string, not number", 224s # "instanceLocation": "", 224s # "keywordLocation": "/allOf/0/$ref/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 224s # "error": "got string, not number", 224s # "instanceLocation": "", 224s # "keywordLocation": "/allOf/0/oneOf/0/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf", 224s # "error": "no subschemas are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/allOf/0/oneOf" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 224s # "error": "subschema 0 is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/allOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 224s # "error": "got string, not number", 224s # "instanceLocation": "", 224s # "keywordLocation": "/allOf/0/$ref/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 224s # "error": "subschema 0 is not valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/allOf" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 1019 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1020 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 224s # "error": "value is greater than 10", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$ref/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 224s # "error": "value is greater than 10", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$ref/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1021 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1022 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 224s # "error": "value is greater than 10", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$ref/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 224s # "error": "value is greater than 10", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$ref/maximum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1023 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/enum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value does not match", 224s # "instanceLocation": "", 224s # "keywordLocation": "/enum" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1024 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1025 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "$ref value is not a valid URI reference", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$defs/foo/$ref" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "$ref value is not a valid URI reference", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$defs/foo/$ref" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1026 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "$ref value is not a valid URI reference", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$defs/foo/$ref" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "$ref value is not a valid URI reference", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$defs/foo/$ref" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1027 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1028 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 224s # "error": "got string, not integer", 224s # "instanceLocation": "/list/0", 224s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "/list", 224s # "keywordLocation": "/properties/list/$ref/items" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 224s # "error": "got string, not integer", 224s # "instanceLocation": "/list/0", 224s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "/list", 224s # "keywordLocation": "/properties/list/$ref/items" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 1029 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1030 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/1", 224s # "keywordLocation": "/items/multipleOf" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/1", 224s # "keywordLocation": "/items/multipleOf" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1031 - short-circuit.json: "prefixItems does not improperly short-circuit" - "single item is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1032 - short-circuit.json: "prefixItems does not improperly short-circuit" - "second item is invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/1", 224s # "keywordLocation": "/prefixItems/1/multipleOf" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/1", 224s # "keywordLocation": "/prefixItems/1/multipleOf" 224s # }, 224s # { 224s # "error": "not all items are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/prefixItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1033 - short-circuit.json: "items does not improperly short-circuit" - "single additional item is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1034 - short-circuit.json: "items does not improperly short-circuit" - "second additional item is invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/2", 224s # "keywordLocation": "/items/multipleOf" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/2", 224s # "keywordLocation": "/items/multipleOf" 224s # }, 224s # { 224s # "error": "subschema is not valid against all items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/items" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1035 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "single item is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1036 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "second item is invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/1", 224s # "keywordLocation": "/unevaluatedItems/multipleOf" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/1", 224s # "keywordLocation": "/unevaluatedItems/multipleOf" 224s # }, 224s # { 224s # "error": "subschema is not valid against all additional items", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedItems" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1037 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1038 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/properties/beta/multipleOf" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/properties/beta/multipleOf" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1039 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1040 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/properties/beta" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/properties/beta" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/properties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1041 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1042 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/patternProperties/^b/multipleOf" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/patternProperties/^b/multipleOf" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1043 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1044 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/patternProperties/^b" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "property not permitted", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/patternProperties/^b" 224s # }, 224s # { 224s # "error": "not all properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/patternProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1045 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1046 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/additionalProperties/multipleOf" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/additionalProperties/multipleOf" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/additionalProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1047 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "single property is valid" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1048 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "second property is invalid" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/unevaluatedProperties/multipleOf" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "value is not a multiple of 2", 224s # "instanceLocation": "/beta", 224s # "keywordLocation": "/unevaluatedProperties/multipleOf" 224s # }, 224s # { 224s # "error": "not all additional properties are valid", 224s # "instanceLocation": "", 224s # "keywordLocation": "/unevaluatedProperties" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 1049 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1050 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "got string, not number", 224s # "instanceLocation": "", 224s # "keywordLocation": "/type" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "got string, not number", 224s # "instanceLocation": "", 224s # "keywordLocation": "/type" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1051 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "got object, not number", 224s # "instanceLocation": "", 224s # "keywordLocation": "/type" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "got object, not number", 224s # "instanceLocation": "", 224s # "keywordLocation": "/type" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1052 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 224s # result: { 224s # "errors": [ 224s # { 224s # "error": "got array, not number", 224s # "instanceLocation": "", 224s # "keywordLocation": "/type" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "error": "got array, not number", 224s # "instanceLocation": "", 224s # "keywordLocation": "/type" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s ok 1053 - vocabulary.json: "valid $vocabulary" - "a valid $vocabulary value" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1054 - vocabulary.json: "invalid $vocabulary (wrong specification version), but not until we evaluate with this metaschema" - "invalid $vocabulary (wrong specification version): register this metaschema" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1055 - vocabulary.json: "use schema (invalid $vocabulary) as a metaschema" - "invalid $vocabulary value: wrong specification version" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core", 224s # "error": "\"https://json-schema.org/draft/2019-09/vocab/core\" uses draft2019-09, but the metaschema itself uses draft2020-12", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 224s # "error": "the first vocabulary (by evaluation_order) must be Core", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$schema/$vocabulary" 224s # }, 224s # { 224s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$schema" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core", 224s # "error": "\"https://json-schema.org/draft/2019-09/vocab/core\" uses draft2019-09, but the metaschema itself uses draft2020-12", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core" 224s # }, 224s # { 224s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 224s # "error": "the first vocabulary (by evaluation_order) must be Core", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$schema/$vocabulary" 224s # }, 224s # { 224s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$schema" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1056 - vocabulary.json: "invalid $vocabulary (unknown URI), but not until we evaluate with this metaschema" - "invalid $vocabulary (unknown URI): register this metaschema" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1057 - vocabulary.json: "use schema (unknown URI) as a metaschema" - "invalid $vocabulary value: unknown URI" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 224s # "error": "\"https://foo.com\" is not a known vocabulary", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 224s # }, 224s # { 224s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$schema" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 224s # "error": "\"https://foo.com\" is not a known vocabulary", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 224s # }, 224s # { 224s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 224s # "instanceLocation": "", 224s # "keywordLocation": "/$schema" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1058 - vocabulary.json: "custom metaschema with format-assertion: false" - "custom metaschema is loaded" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1059 - vocabulary.json: "custom metaschema with format-assertion: true" - "custom metaschema is loaded" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1060 - vocabulary.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: valid string" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1061 - vocabulary.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: invalid string" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 224s # "error": "not a valid ipv4", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 224s # "error": "not a valid ipv4", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s ok 1062 - vocabulary.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: valid string" { 224s # result: { 224s # "valid": true 224s # } 224s # short-circuited result: { 224s # "valid": true 224s # } 224s ok 1 - test passes: data is valid: true 224s 1..1 224s } 224s ok 1063 - vocabulary.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: invalid string" { 224s # result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 224s # "error": "not a valid ipv4", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s # short-circuited result: { 224s # "errors": [ 224s # { 224s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 224s # "error": "not a valid ipv4", 224s # "instanceLocation": "", 224s # "keywordLocation": "/format" 224s # } 224s # ], 224s # "valid": false 224s # } 224s ok 1 - test passes: data is valid: false 224s 1..1 224s } 224s # 224s # generated with: Test::JSON::Schema::Acceptance 1.029 224s # specification version: draft2020-12 224s # using custom test directory: t/additional-tests-draft2020-12 224s # optional tests included: yes 224s # 224s # filename pass todo-fail fail 224s # --------------------------------------------------------------- 224s # anchor.json 2 0 0 224s # annotation-collection.json 10 0 0 224s # badRef.json 3 0 0 224s # dynamicRef.json 7 0 0 224s # faux-buggy-schemas.json 2 0 0 224s # format-date-time.json 4 0 0 224s # format-date.json 1 0 0 224s # format-duration.json 9 0 0 224s # format-ipv4.json 4 0 0 224s # format-ipv6.json 17 0 0 224s # format-relative-json-pointer.json 7 0 0 224s # format-time.json 13 0 0 224s # formats.json 4 0 0 224s # id.json 6 0 0 224s # integers.json 29 0 0 224s # keyword-independence.json 884 0 0 224s # loose-types-const-enum.json 8 0 0 224s # recursive-dynamic.json 2 0 0 224s # ref-and-id.json 6 0 0 224s # ref.json 10 0 0 224s # short-circuit.json 20 0 0 224s # unknownKeyword.json 4 0 0 224s # vocabulary.json 11 0 0 224s # --------------------------------------------------------------- 224s # TOTAL 1063 0 0 224s # 224s # Congratulations, all non-optional tests are passing! 224s # 224s ok 1064 - no leaks in the main evaluator object 224s ok 1065 - no leaks in the short-circuiting evaluator object 224s ok 1066 - got unsupported keyword warnings 224s 1..1066 224s ok 225s t/additional-tests-draft4.t ............. 225s # 225s # AUTHOR_TESTING: 225s # AUTOMATED_TESTING: 1 225s # EXTENDED_TESTING: 225s # NO_TODO: 225s # TEST_DIR: 225s # NO_SHORT_CIRCUIT: 225s # 225s # running tests in /tmp/autopkgtest.uZAXGi/autopkgtest_tmp/smokeENIJgf/t/additional-tests-draft4 against draft4... 225s # 225s ok 1 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 2 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 3 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid date-time string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid date-time string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 4 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid date-time string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid date-time string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s # 225s ok 5 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv4 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv4 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 6 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv4 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv4 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 7 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 8 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv4 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv4 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s # 225s ok 9 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 10 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 11 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 12 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 13 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 14 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 15 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 16 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 17 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 18 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 19 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 20 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 21 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv6 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv6 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 22 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv6 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv6 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 23 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv6 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv6 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 24 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv6 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv6 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 25 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv6 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "not a valid ipv6 string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/format" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s # 225s ok 26 - id.json: "weird but valid use of non-empty plain name fragment in id" - "valid case, number" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 27 - id.json: "weird but valid use of non-empty plain name fragment in id" - "valid case, string" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 28 - id.json: "weird but valid use of non-empty plain name fragment in id" - "invalid case" { 225s # result: { 225s # "errors": [ 225s # { 225s # "absoluteKeywordLocation": "https://example.com/def1#/type", 225s # "error": "got array, not number", 225s # "instanceLocation": "", 225s # "keywordLocation": "/anyOf/0/$ref/type" 225s # }, 225s # { 225s # "absoluteKeywordLocation": "https://example.com/def2#/type", 225s # "error": "got array, not string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/anyOf/1/$ref/type" 225s # }, 225s # { 225s # "absoluteKeywordLocation": "https://example.com/draft4-id-and-anchor#/anyOf", 225s # "error": "no subschemas are valid", 225s # "instanceLocation": "", 225s # "keywordLocation": "/anyOf" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "absoluteKeywordLocation": "https://example.com/def1#/type", 225s # "error": "got array, not number", 225s # "instanceLocation": "", 225s # "keywordLocation": "/anyOf/0/$ref/type" 225s # }, 225s # { 225s # "absoluteKeywordLocation": "https://example.com/def2#/type", 225s # "error": "got array, not string", 225s # "instanceLocation": "", 225s # "keywordLocation": "/anyOf/1/$ref/type" 225s # }, 225s # { 225s # "absoluteKeywordLocation": "https://example.com/draft4-id-and-anchor#/anyOf", 225s # "error": "no subschemas are valid", 225s # "instanceLocation": "", 225s # "keywordLocation": "/anyOf" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s # 225s ok 29 - integers.json: "type checks" - "beyond int64 lower boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 30 - integers.json: "type checks" - "int64 lower boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 31 - integers.json: "type checks" - "beyond int32 lower boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 32 - integers.json: "type checks" - "int32 lower boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 33 - integers.json: "type checks" - "zero" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 34 - integers.json: "type checks" - "int32 upper boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 35 - integers.json: "type checks" - "beyond int32 upper boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 36 - integers.json: "type checks" - "upper int64 boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 37 - integers.json: "type checks" - "beyond int64 upper boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 38 - integers.json: "int32 range checks" - "beyond lower boundary" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "value is less than -2147483648", 225s # "instanceLocation": "", 225s # "keywordLocation": "/minimum" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "value is less than -2147483648", 225s # "instanceLocation": "", 225s # "keywordLocation": "/minimum" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 39 - integers.json: "int32 range checks" - "lower boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 40 - integers.json: "int32 range checks" - "zero" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 41 - integers.json: "int32 range checks" - "upper boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 42 - integers.json: "int32 range checks" - "beyond upper boundary" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "value is greater than 2147483647", 225s # "instanceLocation": "", 225s # "keywordLocation": "/maximum" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "value is greater than 2147483647", 225s # "instanceLocation": "", 225s # "keywordLocation": "/maximum" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 43 - integers.json: "int64 range checks" - "beyond lower boundary" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "value is less than -9223372036854775808", 225s # "instanceLocation": "", 225s # "keywordLocation": "/minimum" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "value is less than -9223372036854775808", 225s # "instanceLocation": "", 225s # "keywordLocation": "/minimum" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 44 - integers.json: "int64 range checks" - "lower boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 45 - integers.json: "int64 range checks" - "zero" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 46 - integers.json: "int64 range checks" - "upper boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 47 - integers.json: "int64 range checks" - "beyond upper boundary" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "value is greater than 9223372036854775807", 225s # "instanceLocation": "", 225s # "keywordLocation": "/maximum" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "value is greater than 9223372036854775807", 225s # "instanceLocation": "", 225s # "keywordLocation": "/maximum" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 48 - integers.json: "equality checks" - "beyond int64 lower boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 49 - integers.json: "equality checks" - "int64 lower boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 50 - integers.json: "equality checks" - "beyond int32 lower boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 51 - integers.json: "equality checks" - "int32 lower boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 52 - integers.json: "equality checks" - "zero" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 53 - integers.json: "equality checks" - "one" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "value does not match", 225s # "instanceLocation": "", 225s # "keywordLocation": "/enum" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "value does not match", 225s # "instanceLocation": "", 225s # "keywordLocation": "/enum" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s ok 54 - integers.json: "equality checks" - "int32 upper boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 55 - integers.json: "equality checks" - "beyond int32 upper boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 56 - integers.json: "equality checks" - "int64 upper boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 57 - integers.json: "equality checks" - "beyond int64 upper boundary" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s # 225s ok 58 - type.json: "number" - "an integer is a number" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 59 - type.json: "number" - "a float with zero fractional part is a number" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 60 - type.json: "integers" - "an integer is an integer" { 225s # result: { 225s # "valid": true 225s # } 225s # short-circuited result: { 225s # "valid": true 225s # } 225s ok 1 - test passes: data is valid: true 225s 1..1 225s } 225s ok 61 - type.json: "integers" - "a float with zero fractional part is not an integer" { 225s # result: { 225s # "errors": [ 225s # { 225s # "error": "got number, not integer", 225s # "instanceLocation": "", 225s # "keywordLocation": "/type" 225s # } 225s # ], 225s # "valid": false 225s # } 225s # short-circuited result: { 225s # "errors": [ 225s # { 225s # "error": "got number, not integer", 225s # "instanceLocation": "", 225s # "keywordLocation": "/type" 225s # } 225s # ], 225s # "valid": false 225s # } 225s ok 1 - test passes: data is valid: false 225s 1..1 225s } 225s # 225s # generated with: Test::JSON::Schema::Acceptance 1.029 225s # specification version: draft4 225s # using custom test directory: t/additional-tests-draft4 225s # optional tests included: yes 225s # 225s # filename pass todo-fail fail 225s # --------------------------------------------------------------- 225s # format-date-time.json 4 0 0 225s # format-ipv4.json 4 0 0 225s # format-ipv6.json 17 0 0 225s # id.json 3 0 0 225s # integers.json 29 0 0 225s # type.json 4 0 0 225s # --------------------------------------------------------------- 225s # TOTAL 61 0 0 225s # 225s # Congratulations, all non-optional tests are passing! 225s # 225s ok 62 - no leaks in the main evaluator object 225s ok 63 - no leaks in the short-circuiting evaluator object 225s 1..63 225s ok 230s t/additional-tests-draft7.t ............. 230s # 230s # AUTHOR_TESTING: 230s # AUTOMATED_TESTING: 1 230s # EXTENDED_TESTING: 230s # NO_TODO: 230s # TEST_DIR: 230s # NO_SHORT_CIRCUIT: 230s # 230s # running tests in /tmp/autopkgtest.uZAXGi/autopkgtest_tmp/smokeENIJgf/t/additional-tests-draft7 against draft7... 230s # 230s ok 1 - badRef.json: "good references in schemas" - "this data is never used" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 2 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "$ref value is not a valid URI reference", 230s # "instanceLocation": "", 230s # "keywordLocation": "/then/$ref" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "$ref value is not a valid URI reference", 230s # "instanceLocation": "", 230s # "keywordLocation": "/then/$ref" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 3 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "$ref value is not a valid URI reference", 230s # "instanceLocation": "", 230s # "keywordLocation": "/then/$ref" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "$ref value is not a valid URI reference", 230s # "instanceLocation": "", 230s # "keywordLocation": "/then/$ref" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 4 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 5 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 230s # result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 230s # "error": "got string, not integer", 230s # "instanceLocation": "", 230s # "keywordLocation": "/anyOf/0/type" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 230s # "error": "got string, not integer", 230s # "instanceLocation": "", 230s # "keywordLocation": "/anyOf/1/type" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/anyOf/2/const" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/anyOf/3/enum" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 230s # "error": "no subschemas are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/anyOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 230s # "error": "got string, not integer", 230s # "instanceLocation": "", 230s # "keywordLocation": "/anyOf/0/type" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 230s # "error": "got string, not integer", 230s # "instanceLocation": "", 230s # "keywordLocation": "/anyOf/1/type" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/anyOf/2/const" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/anyOf/3/enum" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 230s # "error": "no subschemas are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/anyOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 6 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 7 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 8 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid date-time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid date-time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 9 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid date-time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid date-time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 10 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid date string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid date string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 11 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid ipv4 string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid ipv4 string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 12 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid ipv4 string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid ipv4 string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 13 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 14 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid ipv4 string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid ipv4 string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 15 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 16 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 17 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 18 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 19 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid relative-json-pointer string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid relative-json-pointer string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 20 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid relative-json-pointer string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid relative-json-pointer string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 21 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid relative-json-pointer string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid relative-json-pointer string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 22 - format-time.json: "validation of time strings" - "valid leap second, Zulu" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 23 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 24 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 25 - format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 26 - format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 27 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 28 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 29 - format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 30 - format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 31 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 32 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 33 - format-time.json: "validation of time strings" - "no time offset" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 34 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "not a valid time string", 230s # "instanceLocation": "", 230s # "keywordLocation": "/format" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 35 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 36 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 230s # result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else/$ref/const" 230s # }, 230s # { 230s # "error": "subschema is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else/$ref/const" 230s # }, 230s # { 230s # "error": "subschema is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 37 - id.json: "non-schema object containing an anchor property" - "skip traversing definition for a valid result" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 38 - id.json: "non-schema object containing an anchor property" - "const at const_not_anchor does not match" { 230s # result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else/$ref/const" 230s # }, 230s # { 230s # "error": "subschema is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else/$ref/const" 230s # }, 230s # { 230s # "error": "subschema is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 39 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "$id cannot be empty", 230s # "instanceLocation": "", 230s # "keywordLocation": "/$id" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "$id cannot be empty", 230s # "instanceLocation": "", 230s # "keywordLocation": "/$id" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 40 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "$id cannot be empty", 230s # "instanceLocation": "", 230s # "keywordLocation": "/$id" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "$id cannot be empty", 230s # "instanceLocation": "", 230s # "keywordLocation": "/$id" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 41 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "$id cannot be empty", 230s # "instanceLocation": "", 230s # "keywordLocation": "/$id" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "$id cannot be empty", 230s # "instanceLocation": "", 230s # "keywordLocation": "/$id" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 42 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "$id cannot be empty", 230s # "instanceLocation": "", 230s # "keywordLocation": "/$id" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "$id cannot be empty", 230s # "instanceLocation": "", 230s # "keywordLocation": "/$id" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 43 - id.json: "bad anchor syntax" - "draft7 $id passes through to $anchor" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "$id value is not a valid URI reference", 230s # "instanceLocation": "", 230s # "keywordLocation": "/$id" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "$id value is not a valid URI reference", 230s # "instanceLocation": "", 230s # "keywordLocation": "/$id" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 44 - integers.json: "type checks" - "beyond int64 lower boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 45 - integers.json: "type checks" - "int64 lower boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 46 - integers.json: "type checks" - "beyond int32 lower boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 47 - integers.json: "type checks" - "int32 lower boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 48 - integers.json: "type checks" - "zero" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 49 - integers.json: "type checks" - "int32 upper boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 50 - integers.json: "type checks" - "beyond int32 upper boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 51 - integers.json: "type checks" - "upper int64 boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 52 - integers.json: "type checks" - "beyond int64 upper boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 53 - integers.json: "int32 range checks" - "beyond lower boundary" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than -2147483648", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than -2147483648", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 54 - integers.json: "int32 range checks" - "lower boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 55 - integers.json: "int32 range checks" - "zero" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 56 - integers.json: "int32 range checks" - "upper boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 57 - integers.json: "int32 range checks" - "beyond upper boundary" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2147483647", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2147483647", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 58 - integers.json: "int64 range checks" - "beyond lower boundary" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than -9223372036854775808", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than -9223372036854775808", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 59 - integers.json: "int64 range checks" - "lower boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 60 - integers.json: "int64 range checks" - "zero" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 61 - integers.json: "int64 range checks" - "upper boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 62 - integers.json: "int64 range checks" - "beyond upper boundary" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 9223372036854775807", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 9223372036854775807", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 63 - integers.json: "equality checks" - "beyond int64 lower boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 64 - integers.json: "equality checks" - "int64 lower boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 65 - integers.json: "equality checks" - "beyond int32 lower boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 66 - integers.json: "equality checks" - "int32 lower boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 67 - integers.json: "equality checks" - "zero" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 68 - integers.json: "equality checks" - "one" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/enum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/enum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 69 - integers.json: "equality checks" - "int32 upper boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 70 - integers.json: "equality checks" - "beyond int32 upper boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 71 - integers.json: "equality checks" - "int64 upper boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 72 - integers.json: "equality checks" - "beyond int64 upper boundary" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s # 230s ok 73 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 74 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 75 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 76 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 77 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 78 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 79 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 80 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 81 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 82 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 83 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 84 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 85 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 86 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 87 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 88 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 89 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 90 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 91 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 92 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 93 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 94 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 95 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 96 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 97 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 98 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 99 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 100 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 101 - keyword-independence.json: "items + maximum" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 102 - keyword-independence.json: "items + maximum" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 103 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 104 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 105 - keyword-independence.json: "items + minimum" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 106 - keyword-independence.json: "items + minimum" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 107 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 108 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 109 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 110 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 111 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 112 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 113 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 114 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 115 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 116 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 117 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 118 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 119 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 120 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 121 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 122 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 123 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 124 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 125 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 126 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 127 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 128 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 129 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 130 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 131 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 132 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 133 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 134 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 135 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 136 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 137 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 138 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 139 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 140 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 141 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 142 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 143 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 144 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 145 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 146 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 147 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 148 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 149 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 150 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 151 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 152 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 153 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 154 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 155 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 156 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 157 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 158 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 159 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 160 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 161 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 162 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 163 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 164 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 165 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 166 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 167 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 168 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 169 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 170 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 171 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 172 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 173 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 174 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 175 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 176 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 177 - keyword-independence.json: "contains + dependencies" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 178 - keyword-independence.json: "contains + dependencies" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 179 - keyword-independence.json: "contains + dependencies" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 180 - keyword-independence.json: "contains + dependencies" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 181 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 182 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 183 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 184 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 185 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 186 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 187 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 188 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 189 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 190 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 191 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 192 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 193 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 194 - keyword-independence.json: "contains + properties" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 195 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 196 - keyword-independence.json: "contains + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 197 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 198 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 199 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 200 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 201 - keyword-independence.json: "contains + required" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 202 - keyword-independence.json: "contains + required" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 203 - keyword-independence.json: "contains + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 204 - keyword-independence.json: "contains + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 205 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 206 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 207 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 208 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 209 - keyword-independence.json: "dependencies + items" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 210 - keyword-independence.json: "dependencies + items" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 211 - keyword-independence.json: "dependencies + items" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 212 - keyword-independence.json: "dependencies + items" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 213 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 214 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 215 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 216 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 217 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 218 - keyword-independence.json: "items + minProperties" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 219 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 220 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 221 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 222 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 223 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 224 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 225 - keyword-independence.json: "items + properties" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 226 - keyword-independence.json: "items + properties" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 227 - keyword-independence.json: "items + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 228 - keyword-independence.json: "items + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 229 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 230 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 231 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 232 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 233 - keyword-independence.json: "items + required" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 234 - keyword-independence.json: "items + required" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 235 - keyword-independence.json: "items + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 236 - keyword-independence.json: "items + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 237 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 238 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 239 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 240 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 241 - keyword-independence.json: "dependencies + maxItems" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 242 - keyword-independence.json: "dependencies + maxItems" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 243 - keyword-independence.json: "dependencies + maxItems" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 244 - keyword-independence.json: "dependencies + maxItems" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 245 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 246 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 247 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 248 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 249 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 250 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 251 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 252 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 253 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 254 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 255 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 256 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 257 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 258 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 259 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 260 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 261 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 262 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 263 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 264 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 265 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 266 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 267 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 268 - keyword-independence.json: "maxItems + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 269 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 270 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 271 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 272 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 273 - keyword-independence.json: "dependencies + minItems" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 274 - keyword-independence.json: "dependencies + minItems" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 275 - keyword-independence.json: "dependencies + minItems" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 276 - keyword-independence.json: "dependencies + minItems" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 277 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 278 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 279 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 280 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 281 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 282 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 283 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 284 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 285 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 286 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 287 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 288 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 289 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 290 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 291 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 292 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 293 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 294 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 295 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 296 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 297 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 298 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 299 - keyword-independence.json: "minItems + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 300 - keyword-independence.json: "minItems + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 301 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 302 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 303 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 304 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 305 - keyword-independence.json: "dependencies + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 306 - keyword-independence.json: "dependencies + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 307 - keyword-independence.json: "dependencies + uniqueItems" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 308 - keyword-independence.json: "dependencies + uniqueItems" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 309 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 310 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 311 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 312 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 313 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 314 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 315 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 316 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 317 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 318 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 319 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 320 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 321 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 322 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 323 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 324 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 325 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 326 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 327 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 328 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 329 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 330 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 331 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 332 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 333 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 334 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 335 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 336 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 337 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 338 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 339 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 340 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 341 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is not valid against any item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/contains" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 342 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 343 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 344 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 345 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 346 - keyword-independence.json: "items + maxLength" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 347 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 348 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 349 - keyword-independence.json: "items + minLength" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 350 - keyword-independence.json: "items + minLength" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 351 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 352 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 353 - keyword-independence.json: "items + pattern" - "array, items invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "item not permitted", 230s # "instanceLocation": "/0", 230s # "keywordLocation": "/items/0" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 354 - keyword-independence.json: "items + pattern" - "array, items valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 355 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 356 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 357 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 358 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 359 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 360 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 361 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 362 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 363 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 364 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 365 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has more than 1 item", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 366 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 367 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 368 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 369 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 370 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 371 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 372 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 373 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 374 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 375 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 376 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 377 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "array has fewer than 2 items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 378 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 379 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 380 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 381 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 382 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 383 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 384 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 385 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 386 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 387 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 388 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 389 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "items at indices 0 and 1 are not unique", 230s # "instanceLocation": "", 230s # "keywordLocation": "/uniqueItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 390 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 391 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 392 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 393 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 394 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 395 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 396 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 397 - keyword-independence.json: "dependencies + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 398 - keyword-independence.json: "dependencies + exclusiveMaximum" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 399 - keyword-independence.json: "dependencies + exclusiveMaximum" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 400 - keyword-independence.json: "dependencies + exclusiveMaximum" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 401 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 402 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 403 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 404 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 405 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 406 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 407 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 408 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 409 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 410 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 411 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 412 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 413 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 414 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 415 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 416 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 417 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 418 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 419 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 420 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 421 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 422 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 423 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 424 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 425 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 426 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 427 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 428 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 429 - keyword-independence.json: "dependencies + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 430 - keyword-independence.json: "dependencies + exclusiveMinimum" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 431 - keyword-independence.json: "dependencies + exclusiveMinimum" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 432 - keyword-independence.json: "dependencies + exclusiveMinimum" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 433 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 434 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 435 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 436 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 437 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 438 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 439 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 440 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 441 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 442 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 443 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 444 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 445 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 446 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 447 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 448 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 449 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 450 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 451 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 452 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 453 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 454 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 455 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 456 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 457 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 458 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 459 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 460 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 461 - keyword-independence.json: "dependencies + maximum" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 462 - keyword-independence.json: "dependencies + maximum" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 463 - keyword-independence.json: "dependencies + maximum" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 464 - keyword-independence.json: "dependencies + maximum" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 465 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 466 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 467 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 468 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 469 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 470 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 471 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 472 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 473 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 474 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 475 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 476 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 477 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 478 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 479 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 480 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 481 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 482 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 483 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 484 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 485 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 486 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 487 - keyword-independence.json: "maximum + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 488 - keyword-independence.json: "maximum + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 489 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 490 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 491 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 492 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 493 - keyword-independence.json: "dependencies + minimum" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 494 - keyword-independence.json: "dependencies + minimum" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 495 - keyword-independence.json: "dependencies + minimum" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 496 - keyword-independence.json: "dependencies + minimum" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 497 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 498 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 499 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 500 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 501 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 502 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 503 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 504 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 505 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 506 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 507 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 508 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 509 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 510 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 511 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 512 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 513 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 514 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 515 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 516 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 517 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 518 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 519 - keyword-independence.json: "minimum + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 520 - keyword-independence.json: "minimum + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 521 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 522 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 523 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 524 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 525 - keyword-independence.json: "dependencies + multipleOf" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 526 - keyword-independence.json: "dependencies + multipleOf" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 527 - keyword-independence.json: "dependencies + multipleOf" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 528 - keyword-independence.json: "dependencies + multipleOf" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 529 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 530 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 531 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 532 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 533 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 534 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 535 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 536 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 537 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 538 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 539 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 540 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 541 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 542 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 543 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 544 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 545 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 546 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 547 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 548 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 549 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 550 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 551 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 552 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 553 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 554 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 555 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 556 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 557 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 558 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 559 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 560 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 561 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMaximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 562 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 563 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 564 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 565 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 566 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 567 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 568 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 569 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 570 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 571 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 572 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 573 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than or equal to 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/exclusiveMinimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 574 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 575 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 576 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 577 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 578 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 579 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 580 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 581 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 582 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 583 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 584 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 585 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maximum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 586 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 587 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 588 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 589 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 590 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 591 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 592 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 593 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 594 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 595 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 596 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 597 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minimum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 598 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 599 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 600 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 601 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 602 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 603 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 604 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 605 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 606 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 607 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 608 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 609 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/multipleOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 610 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 611 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 612 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 613 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 614 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 615 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 616 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 617 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 618 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 619 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 620 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 621 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 622 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 623 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 624 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 625 - keyword-independence.json: "dependencies + maxLength" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 626 - keyword-independence.json: "dependencies + maxLength" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 627 - keyword-independence.json: "dependencies + maxLength" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 628 - keyword-independence.json: "dependencies + maxLength" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 629 - keyword-independence.json: "dependencies + minLength" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 630 - keyword-independence.json: "dependencies + minLength" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 631 - keyword-independence.json: "dependencies + minLength" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 632 - keyword-independence.json: "dependencies + minLength" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 633 - keyword-independence.json: "dependencies + pattern" - "object, dependencies invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies/x" 230s # }, 230s # { 230s # "error": "not all dependencies are satisfied", 230s # "instanceLocation": "", 230s # "keywordLocation": "/dependencies" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 634 - keyword-independence.json: "dependencies + pattern" - "object, dependencies valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 635 - keyword-independence.json: "dependencies + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 636 - keyword-independence.json: "dependencies + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 637 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 638 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 639 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 640 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 641 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 642 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 643 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 644 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 645 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has more than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 646 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 647 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 648 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 649 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 650 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 651 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 652 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 653 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 654 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 655 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 656 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 657 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object has fewer than 1 property", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 658 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 659 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 660 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 661 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 662 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 663 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 664 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 665 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 666 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 667 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 668 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 669 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/no", 230s # "keywordLocation": "/patternProperties/no" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 670 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 671 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 672 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 673 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 674 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 675 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 676 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 677 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 678 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 679 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 680 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 681 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/properties/x" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 682 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 683 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 684 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 685 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 686 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 687 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 688 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 689 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 690 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 691 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 692 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 693 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "subschema is false", 230s # "instanceLocation": "/x", 230s # "keywordLocation": "/propertyNames" 230s # }, 230s # { 230s # "error": "not all property names are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/propertyNames" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 694 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 695 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 696 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 697 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 698 - keyword-independence.json: "maxLength + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 699 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is greater than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/maxLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 700 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 701 - keyword-independence.json: "minLength + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 702 - keyword-independence.json: "minLength + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 703 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "length is less than 2", 230s # "instanceLocation": "", 230s # "keywordLocation": "/minLength" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 704 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 705 - keyword-independence.json: "pattern + required" - "object, required invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "object is missing property: x", 230s # "instanceLocation": "", 230s # "keywordLocation": "/required" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 706 - keyword-independence.json: "pattern + required" - "object, required valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 707 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "pattern does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/pattern" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 708 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s # 230s ok 709 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "/const_string", 230s # "keywordLocation": "/properties/const_string/const" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "/const_string", 230s # "keywordLocation": "/properties/const_string/const" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 710 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 711 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 712 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "/const_number", 230s # "keywordLocation": "/properties/const_number/const" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "/const_number", 230s # "keywordLocation": "/properties/const_number/const" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 713 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "/enum_string", 230s # "keywordLocation": "/properties/enum_string/enum" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "/enum_string", 230s # "keywordLocation": "/properties/enum_string/enum" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 714 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 715 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 716 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "/enum_number", 230s # "keywordLocation": "/properties/enum_number/enum" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "/enum_number", 230s # "keywordLocation": "/properties/enum_number/enum" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 717 - not-an-anchor.json: "object that is not a schema containing an $anchor property" - "skip traversing definition for a valid result" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 718 - not-an-anchor.json: "object that is not a schema containing an $anchor property" - "const at const_not_anchor does not match" { 230s # result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else/$ref/const" 230s # }, 230s # { 230s # "error": "subschema is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else/$ref/const" 230s # }, 230s # { 230s # "error": "subschema is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 719 - not-an-id.json: "object that is not a schema containing an $id property" - "skip traversing definition for a valid result" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 720 - not-an-id.json: "object that is not a schema containing an $id property" - "const at const_not_id does not match" { 230s # result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else/$ref/const" 230s # }, 230s # { 230s # "error": "subschema is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else/$ref/const" 230s # }, 230s # { 230s # "error": "subschema is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/else" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 721 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination" - "data is valid against first definition" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 722 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination" - "data is invalid against first definition" { 230s # result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 230s # "error": "value is greater than 10", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf/0/$ref/maximum" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "/ref-and-id2/base.json#/allOf", 230s # "error": "subschema 0 is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 230s # "error": "value is greater than 10", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf/0/$ref/maximum" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "/ref-and-id2/base.json#/allOf", 230s # "error": "subschema 0 is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 723 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 724 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 230s # result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 230s # "error": "value is greater than 10", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf/0/$ref/maximum" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "/ref1/base.json#/allOf", 230s # "error": "subschema 0 is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 230s # "error": "value is greater than 10", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf/0/$ref/maximum" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "/ref1/base.json#/allOf", 230s # "error": "subschema 0 is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 725 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 726 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 230s # result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "/ref2/base.json#/definitions/bigint/maximum", 230s # "error": "value is greater than 10", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf/0/$ref/maximum" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "/ref2/base.json#/allOf", 230s # "error": "subschema 0 is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "/ref2/base.json#/definitions/bigint/maximum", 230s # "error": "value is greater than 10", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf/0/$ref/maximum" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "/ref2/base.json#/allOf", 230s # "error": "subschema 0 is not valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/allOf" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 727 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/enum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value does not match", 230s # "instanceLocation": "", 230s # "keywordLocation": "/enum" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 728 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 729 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "$ref value is not a valid URI reference", 230s # "instanceLocation": "", 230s # "keywordLocation": "/definitions/foo/$ref" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "$ref value is not a valid URI reference", 230s # "instanceLocation": "", 230s # "keywordLocation": "/definitions/foo/$ref" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 730 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "$ref value is not a valid URI reference", 230s # "instanceLocation": "", 230s # "keywordLocation": "/definitions/foo/$ref" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "$ref value is not a valid URI reference", 230s # "instanceLocation": "", 230s # "keywordLocation": "/definitions/foo/$ref" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 731 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 732 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 230s # "error": "got string, not integer", 230s # "instanceLocation": "/list/0", 230s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 230s # "error": "subschema is not valid against all items", 230s # "instanceLocation": "/list", 230s # "keywordLocation": "/properties/list/$ref/items" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 230s # "error": "got string, not integer", 230s # "instanceLocation": "/list/0", 230s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 230s # "error": "subschema is not valid against all items", 230s # "instanceLocation": "/list", 230s # "keywordLocation": "/properties/list/$ref/items" 230s # }, 230s # { 230s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 733 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 734 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/1", 230s # "keywordLocation": "/items/multipleOf" 230s # }, 230s # { 230s # "error": "subschema is not valid against all items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/1", 230s # "keywordLocation": "/items/multipleOf" 230s # }, 230s # { 230s # "error": "subschema is not valid against all items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 735 - short-circuit.json: "items (array form) does not improperly short-circuit" - "single item is valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 736 - short-circuit.json: "items (array form) does not improperly short-circuit" - "second item is invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/1", 230s # "keywordLocation": "/items/1/multipleOf" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/1", 230s # "keywordLocation": "/items/1/multipleOf" 230s # }, 230s # { 230s # "error": "not all items are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/items" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 737 - short-circuit.json: "additionalItems does not improperly short-circuit" - "single additional item is valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 738 - short-circuit.json: "additionalItems does not improperly short-circuit" - "second additional item is invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/2", 230s # "keywordLocation": "/additionalItems/multipleOf" 230s # }, 230s # { 230s # "error": "subschema is not valid against all additional items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/2", 230s # "keywordLocation": "/additionalItems/multipleOf" 230s # }, 230s # { 230s # "error": "subschema is not valid against all additional items", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalItems" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 739 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 740 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/beta", 230s # "keywordLocation": "/properties/beta/multipleOf" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/beta", 230s # "keywordLocation": "/properties/beta/multipleOf" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 741 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 742 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/beta", 230s # "keywordLocation": "/properties/beta" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/beta", 230s # "keywordLocation": "/properties/beta" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/properties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 743 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 744 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/beta", 230s # "keywordLocation": "/patternProperties/^b/multipleOf" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/beta", 230s # "keywordLocation": "/patternProperties/^b/multipleOf" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 745 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 746 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/beta", 230s # "keywordLocation": "/patternProperties/^b" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "property not permitted", 230s # "instanceLocation": "/beta", 230s # "keywordLocation": "/patternProperties/^b" 230s # }, 230s # { 230s # "error": "not all properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/patternProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 747 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 748 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/beta", 230s # "keywordLocation": "/additionalProperties/multipleOf" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "value is not a multiple of 2", 230s # "instanceLocation": "/beta", 230s # "keywordLocation": "/additionalProperties/multipleOf" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s # 230s ok 749 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 750 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "got string, not number", 230s # "instanceLocation": "", 230s # "keywordLocation": "/type" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "got string, not number", 230s # "instanceLocation": "", 230s # "keywordLocation": "/type" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 751 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "got object, not number", 230s # "instanceLocation": "", 230s # "keywordLocation": "/type" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "got object, not number", 230s # "instanceLocation": "", 230s # "keywordLocation": "/type" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 752 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "got array, not number", 230s # "instanceLocation": "", 230s # "keywordLocation": "/type" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "got array, not number", 230s # "instanceLocation": "", 230s # "keywordLocation": "/type" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 753 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "match" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 754 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive match" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 755 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "mismatch" { 230s # result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/bar", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s # short-circuited result: { 230s # "errors": [ 230s # { 230s # "error": "additional property not permitted", 230s # "instanceLocation": "/bar", 230s # "keywordLocation": "/additionalProperties" 230s # }, 230s # { 230s # "error": "not all additional properties are valid", 230s # "instanceLocation": "", 230s # "keywordLocation": "/additionalProperties" 230s # } 230s # ], 230s # "valid": false 230s # } 230s ok 1 - test passes: data is valid: false 230s 1..1 230s } 230s ok 756 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive mismatch (but $dynamicRef is ignored)" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s # 230s ok 757 - vocabulary.json: "valid $vocabulary: everything is valid" - "a valid $vocabulary value" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 758 - vocabulary.json: "wrong specification version: but this is draft7" - "invalid $vocabulary value: wrong specification version" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s ok 759 - vocabulary.json: "but this is draft7" - "invalid $vocabulary value: unknown URI" { 230s # result: { 230s # "valid": true 230s # } 230s # short-circuited result: { 230s # "valid": true 230s # } 230s ok 1 - test passes: data is valid: true 230s 1..1 230s } 230s # 230s # generated with: Test::JSON::Schema::Acceptance 1.029 230s # specification version: draft7 230s # using custom test directory: t/additional-tests-draft7 230s # optional tests included: yes 230s # 230s # filename pass todo-fail fail 230s # --------------------------------------------------------------- 230s # badRef.json 3 0 0 230s # faux-buggy-schemas.json 2 0 0 230s # format-date-time.json 4 0 0 230s # format-date.json 1 0 0 230s # format-ipv4.json 4 0 0 230s # format-relative-json-pointer.json 7 0 0 230s # format-time.json 13 0 0 230s # id.json 9 0 0 230s # integers.json 29 0 0 230s # keyword-independence.json 636 0 0 230s # loose-types-const-enum.json 8 0 0 230s # not-an-anchor.json 2 0 0 230s # not-an-id.json 2 0 0 230s # ref-and-id.json 2 0 0 230s # ref.json 10 0 0 230s # short-circuit.json 16 0 0 230s # unknownKeyword.json 8 0 0 230s # vocabulary.json 3 0 0 230s # --------------------------------------------------------------- 230s # TOTAL 759 0 0 230s # 230s # Congratulations, all non-optional tests are passing! 230s # 230s ok 760 - no leaks in the main evaluator object 230s ok 761 - no leaks in the short-circuiting evaluator object 230s ok 762 - got unsupported keyword warnings 230s 1..762 230s ok 230s t/annotations.t ......................... 230s # Subtest: draft7 230s ok 1 - user cannot enable annotations for draft7 230s ok 2 - user cannot enable annotations for draft7 even as an override 230s 1..2 230s ok 1 - draft7 230s # Subtest: allOf 230s ok 1 - evaluation of the allOf keyword fails 230s ok 2 - failing allOf: state is correct after evaluating 230s ok 3 - evaluation of the allOf keyword succeeds 230s ok 4 - passing allOf: state is correct after evaluating 230s ok 5 - annotation collection can be turned off in evaluate() 230s ok 6 - ...but the value is still true on the object 230s ok 7 - collect_annotations defaults to false 230s ok 8 - annotation collection can be turned on in evaluate() also 230s 1..8 230s ok 2 - allOf 230s # Subtest: oneOf 230s ok 1 - evaluation of the oneOf keyword fails 230s ok 2 - failing oneOf: state is correct after evaluating 230s ok 3 - evaluation of the oneOf keyword succeeds 230s ok 4 - passing oneOf: state is correct after evaluating 230s 1..4 230s ok 3 - oneOf 230s # Subtest: not 230s ok 1 - evaluation of the not keyword fails 230s ok 2 - failing not: state is correct after evaluating 230s ok 3 - evaluation of the not keyword fails 230s ok 4 - failing not: state is correct after evaluating (annotations will be ultimately discarded) 230s ok 5 - evaluation of the not keyword succeeds 230s ok 6 - passing not: state is correct after evaluating 230s ok 7 - annotations are still collected inside a "not", otherwise the unevaluatedProperties would have returned false 230s 1..7 230s ok 4 - not 230s # Subtest: prefixItems 230s ok 1 - no items means that "prefixItems" succeeds 230s ok 2 - no items: no annotation is produced by prefixItems 230s ok 3 - one item 230s ok 4 - passing prefixItems: one item is annotated 230s ok 5 - two items, one failing 230s ok 6 - failing prefixItems still collects annotations 230s 1..6 230s ok 5 - prefixItems 230s # Subtest: schema-items 230s ok 1 - no items means that "items" succeeds 230s ok 2 - no items: no annotation is produced by items 230s ok 3 - one item 230s ok 4 - passing items: one item is annotated 230s ok 5 - two items, one failing 230s ok 6 - failing items still collects annotations 230s 1..6 230s ok 6 - schema-items 230s # Subtest: additionalItems 230s ok 1 - no items means that "additionalItems" succeeds 230s ok 2 - no items: no annotation is produced by additionaltems 230s ok 3 - one item 230s ok 4 - additionalItems does nothing without items 230s 1..4 230s ok 7 - additionalItems 230s # Subtest: properties 230s ok 1 - no items means that "properties" succeeds 230s ok 2 - no properties: annotation is still produced by properties 230s ok 3 - one property 230s ok 4 - passing properties: one property is annotated 230s ok 5 - two properties, one failing 230s ok 6 - failing properties still collects annotations 230s 1..6 230s ok 8 - properties 230s # Subtest: patternProperties 230s ok 1 - no items means that "patternProperties" succeeds 230s ok 2 - no pProperties: annotation is still produced by patternProperties 230s ok 3 - one property 230s ok 4 - passing properties: one property is annotated 230s ok 5 - two properties, one failing 230s ok 6 - failing patternProperties still collects annotations 230s 1..6 230s ok 9 - patternProperties 230s # Subtest: additionalProperties 230s ok 1 - no items means that "additionalProperties" succeeds 230s ok 2 - no properties: no annotation is produced by additionalProperties 230s ok 3 - one property 230s ok 4 - passing additionalProperties: one property is annotated 230s ok 5 - two properties, one failing 230s ok 6 - failing properties still collects annotations 230s 1..6 230s ok 10 - additionalProperties 230s # Subtest: unevaluatedProperties 230s ok 1 - no items means that "unevaluatedProperties" succeeds 230s ok 2 - no properties: no annotation is produced by unevaluatedProperties 230s ok 3 - one property 230s ok 4 - passing unevaluatedProperties: one property is annotated 230s ok 5 - two properties, one failing 230s ok 6 - failing unevaluatedProperties still collects annotations 230s 1..6 230s ok 11 - unevaluatedProperties 230s # Subtest: collect_annotations and unevaluated keywords 230s ok 1 - when "collect_annotations" is explicitly set to false, unevaluatedItems can still be used (valid result, no annotations in result) 230s ok 2 - when "collect_annotations" is explicitly set to false, unevaluatedItems can still be used (invalid result) 230s ok 3 - when "collect_annotations" is explicitly set to false, unevaluatedProperties can still be used (valid result, no annotations) 230s ok 4 - when "collect_annotations" is explicitly set to false, unevaluatedProperties can still be used (invalid result) 230s ok 5 - when "collect_annotations" is explicitly set to false, unevaluatedProperties still be used, even in other documents (valid result) 230s ok 6 - when "collect_annotations" is explicitly set to false, unevaluatedProperties still be used, even in other documents (invalid result) 230s ok 7 - when "collect_annotations" is set to true, unevaluatedItems works, and annotations are returned 230s ok 8 - when "collect_annotations" is set to true, unevaluatedProperties passes, and annotations are returned 230s ok 9 - when "collect_annotations" is not set, unevaluatedItems still works, but annotations are not returned 230s ok 10 - when "collect_annotations" is not set, unevaluatedProperties still works, but annotations are not returned 230s ok 11 - ... still works when unevaluated keywords are in a separate document 230s ok 12 - items.json does not need collect_annotations => 1 to evaluate itself 230s ok 13 - properties.json does not need collect_annotations => 1 to evaluate itself 230s ok 14 - referenced schemas still produce annotations internally when needed, even when not required to evaluate themselves in isolation 230s 1..14 230s ok 12 - collect_annotations and unevaluated keywords 230s # Subtest: annotate unknown keywords 230s ok 1 - no annotations even when collect_annotations is false 230s ok 2 - unknown keywords are collected as annotations 230s ok 3 - "unknown" keyword is set on the annotation objects for unknown keywords 230s ok 4 - no annotations from unknown keywords in draft2019-09 230s 1..4 230s ok 13 - annotate unknown keywords 230s # Subtest: items + additionalItems, prefixItems + items 230s ok 1 - schema-based items + additionalItems 230s ok 2 - prefixItems + schema-based items 230s 1..2 230s ok 14 - items + additionalItems, prefixItems + items 230s 1..14 230s ok 231s t/boolean-data.t ........................ 231s # Subtest: strict booleans (default) 231s ok 1 - in data, bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ) is a boolean 231s ok 2 - in data, bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) is a boolean 231s ok 3 - correct error generated from type for undef 231s ok 4 - correct error generated from type for 0 231s ok 5 - correct error generated from type for 1 231s ok 6 - correct error generated from type for '0' 231s ok 7 - correct error generated from type for '1' 231s ok 8 - correct error generated from type for 'false' 231s ok 9 - correct error generated from type for 'true' 231s ok 10 - correct error generated from type for \0 231s ok 11 - correct error generated from type for \1 231s ok 12 - in data, undef not is a boolean 231s ok 13 - in data, 0 not is a boolean 231s ok 14 - in data, 1 not is a boolean 231s ok 15 - in data, '0' not is a boolean 231s ok 16 - in data, '1' not is a boolean 231s ok 17 - in data, 'false' not is a boolean 231s ok 18 - in data, 'true' not is a boolean 231s ok 19 - in data, \0 not is a boolean 231s ok 20 - in data, \1 not is a boolean 231s 1..20 231s ok 1 - strict booleans (default) 231s # Subtest: scalarref_booleans = 1 231s ok 1 - in data, bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ) is a boolean 231s ok 2 - in data, bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) is a boolean 231s ok 3 - in data, \0 is a boolean 231s ok 4 - in data, \1 is a boolean 231s ok 5 - correct error generated from type for ['null',undef] 231s ok 6 - correct error generated from type for ['integer',0] 231s ok 7 - correct error generated from type for ['integer',1] 231s ok 8 - correct error generated from type for ['string','0'] 231s ok 9 - correct error generated from type for ['string','1'] 231s ok 10 - correct error generated from type for ['string','false'] 231s ok 11 - correct error generated from type for ['string','true'] 231s ok 12 - items are all considered unique when types differ, even when perl treats them similarly 231s ok 13 - scalarrefs compare as identical to their counterpart booleans 231s ok 14 - scalarrefs compare as identical to their counterpart booleans 231s ok 15 - scalarrefs compare as identical to their counterpart booleans 231s ok 16 - scalarrefs compare as identical to their counterpart booleans 231s 1..16 231s ok 2 - scalarref_booleans = 1 231s 1..2 231s ok 232s t/boolean-schemas.t ..................... 232s ok 1 - schema: false evaluates to: false 232s ok 2 - invalid result structure looks correct 232s ok 3 - no exceptions in evaluate 232s ok 4 - schema: true evaluates to: true 232s ok 5 - invalid result structure looks correct 232s ok 6 - no exceptions in evaluate 232s ok 7 - schema: {} evaluates to: true 232s ok 8 - invalid result structure looks correct 232s ok 9 - no exceptions in evaluate 232s ok 10 - schema: 0 evaluates to: false 232s ok 11 - invalid result structure looks correct 232s ok 12 - no exceptions in evaluate 232s ok 13 - schema: 1 evaluates to: false 232s ok 14 - invalid result structure looks correct 232s ok 15 - no exceptions in evaluate 232s ok 16 - schema: false evaluates to: false 232s ok 17 - invalid result structure looks correct 232s ok 18 - no exceptions in evaluate 232s ok 19 - schema: true evaluates to: false 232s ok 20 - invalid result structure looks correct 232s ok 21 - no exceptions in evaluate 232s ok 22 - invalid schema type results in error 232s ok 23 - scalarref for schema results in error, even when scalarref_booleans is true 232s 1..23 232s ok 232s t/cached-metaschemas.t .................. 232s # Subtest: load cached metaschema 232s ok 1 - this resource is not yet known 232s ok 2 - loaded metaschema from sharedir cache 232s ok 3 - this resource is now in the resource index 232s 1..3 232s ok 1 - load cached metaschema 232s # Subtest: resource collision with cached metaschema 232s ok 1 - cannot introduce another schema whose id collides with a cached schema, even if it isn't loaded yet 232s 1..1 232s ok 2 - resource collision with cached metaschema 232s 1..2 232s ok 233s t/callbacks.t ........................... 233s # Subtest: evaluation callbacks 233s ok 1 - evaluation was successful 233s ok 2 - identified all data paths where a $ref was used 233s ok 3 - evaluation was not successful 233s ok 4 - no callbacks on failure: innermost $ref failed, so all other $refs failed too 233s ok 5 - evaluation was successful 233s ok 6 - successful subschemas have callbacks called, but not failed subschemas 233s 1..6 233s ok 1 - evaluation callbacks 233s # Subtest: callbacks for keywords without eval subs 233s ok 1 - evaluation was successful 233s ok 2 - callbacks are triggered for keywords even when they lack evaluation subs 233s 1..2 233s ok 2 - callbacks for keywords without eval subs 233s # Subtest: callbacks that produce errors 233s ok 1 - result object contains the callback error, and the other errors 233s ok 2 - result object contains the callback error, and short-circuits execution 233s 1..2 233s ok 3 - callbacks that produce errors 233s 1..3 233s ok 234s t/content-encoding.t .................... 234s # Subtest: unrecognized encoding formats do not result in errors, when not asserting 234s ok 1 - in evaluate(), annotations are collected and no validation is performed 234s 1..1 234s ok 1 - unrecognized encoding formats do not result in errors, when not asserting 234s # Subtest: media_type and encoding handlers 234s ok 1 - upper-cased names are not accepted 234s ok 2 - application/json media_type decoder 234s ok 3 - */* has no default match 234s ok 4 - default text/plain media_type decoder 234s ok 5 - getter uses the casefolded name 234s ok 6 - getter matches to wildcard entries 234s ok 7 - getter uses new override entry for wildcard 234s ok 8 - getter prefers case-insensitive matches to wildcard entries 234s ok 9 - getter matches to wildcard entries 234s ok 10 - text/* matches itself 234s ok 11 - getter still prefers case-insensitive matches to wildcard entries 234s ok 12 - text/* is preferred to */* 234s ok 13 - */* matches */*, once defined 234s ok 14 - */* is returned as a last resort 234s ok 15 - application/x-www-form-urlencoded happy path with unicode 234s ok 16 - application/x-ndjson happy path with unicode 234s ok 17 - application/x-ndjson dies with line number of the bad data 234s ok 18 - base64 encoding decoder + application/json media_type decoder 234s ok 19 - base64url encoding decoder + application/json media_type decoder 234s 1..19 234s ok 2 - media_type and encoding handlers 234s # Subtest: draft2020-12 assertions 234s ok 1 - under the current spec version, content* keywords are not assertions 234s ok 2 - contentEncoding first decodes the string, erroring if it can't 234s ok 3 - then contentMediaType parses the decoded string, erroring if it can't, and does not continue with the schema 234s ok 4 - contentSchema evaluates the decoded data 234s ok 5 - null data is handled properly 234s ok 6 - contentSchema successfully evaluates the decoded data 234s 1..6 234s ok 3 - draft2020-12 assertions 234s # Subtest: draft7 assertions 234s ok 1 - in draft7, assertion behaviour is the default 234s ok 2 - in draft7, then contentMediaType parses the decoded string, erroring if it can't, and does not continue with the schema 234s ok 3 - under draft7, content* are assertions by default, but contentSchema does not exist 234s 1..3 234s ok 4 - draft7 assertions 234s # Subtest: more assertions 234s ok 1 - evaluation aborts with an unrecognized contentEncoding 234s ok 2 - evaluation aborts with an unrecognized contentMediaType 234s 1..2 234s ok 5 - more assertions 234s # Subtest: use of an absolute URI and different dialect within contentSchema 234s ok 1 - evaluation of the subschema correctly uses the new $id and $schema 234s 1..1 234s ok 6 - use of an absolute URI and different dialect within contentSchema 234s 1..6 234s ok 235s t/dialects.t ............................ 235s # Subtest: invalid use of the $schema keyword 235s ok 1 - $schema can only appear at the root of a schema, when there is no canonical URI 235s ok 2 - $schema can only appear where the canonical URI has no fragment, when there is a canonical URI 235s ok 3 - this is still not a resource root, even in a $ref target 235s 1..3 235s ok 1 - invalid use of the $schema keyword 235s # Subtest: defaults without a $schema keyword 235s ok 1 - boolean schema: no $id, no $schema 235s ok 2 - boolean schema: defaults to draft2020-12 without a $schema keyword 235s ok 3 - object schema: no $id, no $schema 235s ok 4 - object schema: defaults to draft2020-12 without a $schema keyword 235s ok 5 - "not" keyword, from the Applicator vocabulary, is traversed at the root level 235s ok 6 - object schema: $id, no $schema 235s ok 7 - named resource defaults to draft2020-12 without a $schema keyword 235s ok 8 - boolean schema: no $id, no $schema 235s ok 9 - boolean schema: specification_version overridden 235s ok 10 - object schema: no $id, no $schema, specification version overridden, other keywords are ignored during traversal 235s ok 11 - object schema: no $id, no $schema, specification version overridden, other keywords are ignored during evaluation 235s ok 12 - object schema: overridden to draft7 235s ok 13 - object schema: $id, no $schema, unrecognized+invalid keywords are ignored during traversal 235s ok 14 - object schema: $id, no $schema 235s ok 15 - object schema: overridden to draft7 and other keywords are ignored 235s 1..15 235s ok 2 - defaults without a $schema keyword 235s # Subtest: behaviour with a $schema keyword 235s ok 1 - object schema: no $id, has $schema, unrecognized+invalid keywords are ignored during traversal 235s ok 2 - object schema: no $id, has $schema, unrecognized keywords are ignored during evaluation 235s ok 3 - semantics can be changed to another draft version 235s ok 4 - schema is accepted with $schema without an empty fragment 235s ok 5 - ..and is still recognized as draft7 235s ok 6 - $id and $schema, unrecognized+invalid keywords are ignored during traversal 235s ok 7 - $id and $schema 235s ok 8 - named resource can be changed to another draft version and other keywords are ignored 235s ok 9 - no $id, specification version overridden twice; unrecognized+invalid keywords are ignored during traversal 235s ok 10 - no $id, specification version overridden twice, other keywords are ignored during evaluation 235s ok 11 - unnamed resource can be changed to another draft version 235s ok 12 - no $id, specification version overridden twice; unrecognized+invalid keywords are ignored during traversal 235s ok 13 - no $id, specification version overridden twice, other keywords are ignored during evaluation 235s ok 14 - unnamed resource can be changed to another draft version 235s 1..14 235s ok 3 - behaviour with a $schema keyword 235s # Subtest: setting or changing specification versions in a single document 235s ok 1 - $schema can appear adjacent to any $id 235s 1..1 235s ok 4 - setting or changing specification versions in a single document 235s # Subtest: changing specification versions across documents 235s ok 1 - no unexpected warnings 235s ok 2 - switching between specification versions is acceptable when crossing document boundaries 235s ok 3 - resources for top level schema 235s ok 4 - resources for subschema 235s ok 5 - no unexpected warnings 235s ok 6 - switching between specification versions is acceptable when crossing document boundaries 235s ok 7 - resources for top level schema 235s ok 8 - resources for subschema 235s 1..8 235s ok 5 - changing specification versions across documents 235s # Subtest: changing specification versions within documents 235s # no-longer-supported "dependencies" keyword present (at location "https://iam.draft2019-09-3.com"): this should be rewritten as "dependentSchemas" or "dependentRequired" at t/dialects.t line 677. 235s ok 1 - switching between specification versions is acceptable within a document, draft2019-09 -> draft7 235s ok 2 - resources for top level schema 235s ok 3 - resources for subschema 235s # no-longer-supported "dependencies" keyword present (at location "https://iam.draft2020-12-4.com"): this should be rewritten as "dependentSchemas" or "dependentRequired" at t/dialects.t line 781. 235s ok 4 - switching between specification versions is acceptable within a document, draft7 -> draf2020-12 235s ok 5 - resources for top level schema 235s ok 6 - resources for subschema 235s # no-longer-supported "dependencies" keyword present (at location "https://iam.draft2020-12-5.com"): this should be rewritten as "dependentSchemas" or "dependentRequired" at t/dialects.t line 884. 235s ok 7 - switching between specification versions is acceptable within a document, draft2020-12 -> draft4 235s ok 8 - resources for top level schema 235s ok 9 - resources for subschema 235s 1..9 235s ok 6 - changing specification versions within documents 235s # Subtest: $vocabulary syntax 235s ok 1 - $vocabulary syntax checks 235s ok 2 - $vocabulary location check - resource root 235s ok 3 - $vocabulary location check - document root 235s ok 4 - successfully evaluated a metaschema that specifies vocabularies 235s ok 5 - metaschemas are not saved on the resource 235s ok 6 - ..but once we use the schema as a metaschema, 235s ok 7 - ... the vocabulary information is now cached in the evaluator 235s 1..7 235s ok 7 - $vocabulary syntax 235s # Subtest: changing dialects (same specification version) 235s ok 1 - evaluation of the subschema in another document correctly uses the new $id and $schema 235s ok 2 - evaluation of the subschema in the same document via a $ref correctly uses the new $id and $schema 235s ok 3 - evaluation of the subschema in the same document with no $ref correctly uses the new $id and $schema 235s ok 4 - no errors found when traversing a document with a malformed keyword outside the dialect 235s 1..4 235s ok 8 - changing dialects (same specification version) 235s # Subtest: standard metaschemas 235s ok 1 - main metaschema evaluated against its own URI 235s ok 2 - main metaschema evaluated against its own content 235s ok 3 - core metaschema evaluated against the main metaschema URI 235s ok 4 - core metaschema evaluated against its own content 235s 1..4 235s ok 9 - standard metaschemas 235s # Subtest: custom metaschemas, without custom vocabularies 235s ok 1 - document contains correct values 235s ok 2 - specification version detected from standard metaschema URI 235s ok 3 - custom metaschema restricts schemas to objects 235s ok 4 - custom metaschema recurses to standard metaschema 235s ok 5 - objects are acceptable schemas to this metaschema 235s ok 6 - metaschemas without $vocabulary can still be used in the $schema keyword 235s ok 7 - ..and schema uses the correct spec version and vocabularies 235s 1..7 235s ok 10 - custom metaschemas, without custom vocabularies 235s # Subtest: custom metaschemas, with custom vocabularies 235s ok 1 - $schema values must be strings 235s ok 2 - $schema values must be URIs 235s ok 3 - custom metaschemas are okay, but the document must be known 235s ok 4 - $vocabulary location check - document root 235s ok 5 - metaschemas must have an i$id 235s ok 6 - $vocabulary validation that must be deferred until used as a metaschema 235s ok 7 - vocabularies in the metaschema must match the $schema version 235s ok 8 - metaschemas using "$vocabulary" must contain vocabularies 235s ok 9 - metaschemas must contain the Core vocabulary 235s ok 10 - validation succeeds because "minimum" never gets run 235s ok 11 - document contains correct values 235s ok 12 - determined vocabularies to use for this schema 235s 1..12 235s ok 11 - custom metaschemas, with custom vocabularies 235s # Subtest: custom vocabulary classes with add_vocabulary() 235s ok 1 - vocabulary class must exist 235s ok 2 - vocabulary class must implement the role 235s ok 3 - vocabulary class must implement some subs 235s ok 4 - vocabulary() sub in the vocabulary class must return uri => specification_version pairs 235s ok 5 - parse error from bad vocab sub 235s ok 6 - vocabulary() sub in the vocabulary class must contain valid absolute, fragmentless URIs 235s ok 7 - vocabulary() sub in the vocabulary class must reference a known specification version 235s ok 8 - added a vocabulary sub 235s ok 9 - vocabulary was successfully added 235s ok 10 - custom vocabulary class has a conflicting evaluation_order 235s ok 11 - added another vocabulary sub 235s ok 12 - custom vocabulary class used by a custom metaschema used by a schema 235s 1..12 235s ok 12 - custom vocabulary classes with add_vocabulary() 235s # Subtest: $schema points to a boolean schema 235s ok 1 - $schema cannot reference a boolean schema 235s 1..1 235s ok 13 - $schema points to a boolean schema 235s # Subtest: $ref to a different dialect 235s ok 1 - evaluation of the subschema correctly uses the new $id and $schema 235s 1..1 235s ok 14 - $ref to a different dialect 235s 1..14 235s ok 236s t/document.t ............................ 236s # Subtest: boolean document 236s ok 1 - boolean schema with no canonical_uri 236s ok 2 - boolean schema with invalid canonical_uri (fragment) 236s ok 3 - boolean schema with valid canonical_uri 236s 1..3 236s ok 1 - boolean document 236s # Subtest: object document 236s ok 1 - object schema with originally provided uri = '' and no root $id 236s ok 2 - object schema with originally provided uri = '' and no root $id 236s ok 3 - object schema with originally provided uri = '0' and no root $id 236s ok 4 - object schema with originally provided uri = '' and no root $id 236s ok 5 - object schema with originally provided uri = '' and no root $id 236s ok 6 - object schema with originally provided uri = '0' and no root $id 236s ok 7 - object schema with valid canonical_uri, no root $id 236s ok 8 - object schema with originally provided uri = '' and absolute root $id 236s ok 9 - object schema with originally provided uri = '' and absolute root $id 236s ok 10 - object schema with originally provided uri = '' and absolute root $id 236s ok 11 - originally provided uri is not indexed when overridden by an absolute root $id 236s ok 12 - originally provided uri is not indexed when overridden by an absolute root $id 236s ok 13 - originally provided uri is not indexed when overridden by an absolute root $id 236s ok 14 - when canonical_uri provided, the empty uri is not added as a referenceable uri 236s ok 15 - object schema with originally provided uri equal to root $id 236s ok 16 - object schema with canonical_uri and root $id, and additional resource schemas as well 236s ok 17 - relative $id at root is resolved against provided canonical_id 236s ok 18 - relative uri for inner $id 236s ok 19 - no root $id; absolute uri with path in subschema resource 236s ok 20 - no root $id or canonical_uri provided; anchor is indexed at the root 236s ok 21 - canonical_uri provided; empty uri not added as a referenceable uri when an anchor exists 236s ok 22 - absolute uri provided at root; adjacent anchor has the same canonical uri 236s ok 23 - absolute uri provided at root; anchor lower down has its own canonical uri 236s 1..23 236s ok 2 - object document 236s # Subtest: $id and $anchor as properties 236s ok 1 - did not index the $id and $anchor properties as if they were identifier keywords 236s 1..1 236s ok 3 - $id and $anchor as properties 236s # Subtest: $id with an empty fragment 236s ok 1 - $id is stored with the empty fragment stripped 236s 1..1 236s ok 4 - $id with an empty fragment 236s # Subtest: $id with a non-empty fragment 236s ok 1 - did not index the $id with a non-empty fragment, nor use it as the base for other identifiers 236s ok 2 - canonical_uri 236s ok 3 - nothing was indexed 236s 1..3 236s ok 5 - $id with a non-empty fragment 236s # Subtest: $anchor not conforming to syntax 236s ok 1 - did not index an $anchor with invalid characters 236s ok 2 - nothing was indexed 236s ok 3 - did not index a draft2020-12 $anchor with invalid characters, or non-fragment-only $id 236s ok 4 - nothing was indexed 236s ok 5 - did not index a draft2019-09 $anchor with invalid characters, or non-fragment-only $id 236s ok 6 - nothing was indexed 236s ok 7 - did not index a draft6 fragment-only $id with invalid characters, or non-fragment-only $id 236s ok 8 - nothing was indexed 236s ok 9 - did not index a draft7 fragment-only $id with invalid characters, or non-fragment-only $id 236s ok 10 - nothing was indexed 236s ok 11 - did not index a draft4 fragment-only id with invalid characters 236s ok 12 - nothing was indexed 236s ok 13 - no errors 236s ok 14 - can combine a canonical identifier with an anchor in draft4 236s 1..14 236s ok 6 - $anchor not conforming to syntax 236s # Subtest: $schema not conforming to syntax 236s ok 1 - invalid $schema is detected 236s 1..1 236s ok 7 - $schema not conforming to syntax 236s # Subtest: $anchor and $id below an $id that is not at the document root 236s ok 1 - canonical_uri uses the path from the innermost $id, not document root $id 236s 1..1 236s ok 8 - $anchor and $id below an $id that is not at the document root 236s # Subtest: JSON pointer and URI escaping 236s ok 1 - properly escaped special characters in JSON pointers and URIs 236s ok 2 - schema locations are tracked 236s ok 3 - non-schema locations are also tracked 236s ok 4 - schema locations can be queried 236s 1..4 236s ok 9 - JSON pointer and URI escaping 236s # Subtest: resource collisions 236s ok 1 - no collision when adding an identical resource (after resolving with base uri) 236s ok 2 - detected collision between document's initial uri and a subschema's uri 236s ok 3 - detected collision between two subschema uris in a document 236s ok 4 - add first document, resolving resources to a base uri 236s ok 5 - the resource in the second document resolves to the same uri as from the first document 236s ok 6 - ignored "duplicate" uris embedded in non-schemas 236s 1..6 236s ok 10 - resource collisions 236s # Subtest: create document with explicit canonical_uri set to the same as root $id 236s ok 1 - there is one single uri indexed to the document 236s 1..1 236s ok 11 - create document with explicit canonical_uri set to the same as root $id 236s # Subtest: canonical_uri identification from a document with errors 236s ok 1 - error lower down in document does not result in an inner identifier being used as canonical_uri 236s 1..1 236s ok 12 - canonical_uri identification from a document with errors 236s # Subtest: custom metaschema_uri 236s ok 1 - document contains correct values 236s ok 2 - determined vocabularies to use for this schema 236s ok 3 - validation succeeds because "minimum" never gets run 236s ok 4 - can evaluate at a subschema as well, with the same vocabularies 236s ok 5 - schema validates against its metaschema, and "minimum" is ignored 236s ok 6 - no leaks in the evaluator object 236s 1..6 236s ok 13 - custom metaschema_uri 236s # Subtest: multiple uris used for resolution and identification, and original_uri 236s ok 1 - document has correct resources, resolved against the provided base uri 236s ok 2 - evaluator has correct resources, resolved against the provided base uri 236s ok 3 - when evaluating the document using the canonical uri, error locations use the canonical uri 236s ok 4 - when evaluating the document using a retrieval uri, error locations still use the canonical uri 236s ok 5 - same document is added a second time 236s ok 6 - document resources are added using the new base, which appears in their canonical_uri values 236s ok 7 - when evaluating using the first base uri, error locations are relative to the provided base uri 236s ok 8 - when evaluating using the second base uri, error locations are relative to the original evaluation location 236s 1..8 236s ok 14 - multiple uris used for resolution and identification, and original_uri 236s 1..14 236s ok 236s t/equality.t ............................ 236s # Subtest: equality, using inflated data 236s ok 1 - null == null is true 236s ok 2 - error is undefined 236s ok 3 - no unexpected error encountered 236s ok 4 - type of arg 0 was not mutated while making equality check 236s ok 5 - type of arg 1 was not mutated while making equality check 236s # 236s ok 6 - null == false is false 236s ok 7 - two instances differ at the expected place 236s ok 8 - error is correct 236s ok 9 - no unexpected error encountered 236s ok 10 - type of arg 0 was not mutated while making equality check 236s ok 11 - type of arg 1 was not mutated while making equality check 236s # 236s ok 12 - null == true is false 236s ok 13 - two instances differ at the expected place 236s ok 14 - error is correct 236s ok 15 - no unexpected error encountered 236s ok 16 - type of arg 0 was not mutated while making equality check 236s ok 17 - type of arg 1 was not mutated while making equality check 236s # 236s ok 18 - null == 1 is false 236s ok 19 - two instances differ at the expected place 236s ok 20 - error is correct 236s ok 21 - no unexpected error encountered 236s ok 22 - type of arg 0 was not mutated while making equality check 236s ok 23 - type of arg 1 was not mutated while making equality check 236s ok 24 - arg 1 did not gain a POK 236s # 236s ok 25 - null == "1" is false 236s ok 26 - two instances differ at the expected place 236s ok 27 - error is correct 236s ok 28 - no unexpected error encountered 236s ok 29 - type of arg 0 was not mutated while making equality check 236s ok 30 - type of arg 1 was not mutated while making equality check 236s ok 31 - arg 1 did not gain an NOK or IOK 236s # 236s ok 32 - ["a", "b", "c"] == ["a", "b", "c"] is true 236s ok 33 - error is undefined 236s ok 34 - no unexpected error encountered 236s ok 35 - type of arg 0 was not mutated while making equality check 236s ok 36 - type of arg 1 was not mutated while making equality check 236s # 236s ok 37 - ["a", "b", "c"] == ["a", "b"] is false 236s ok 38 - two instances differ at the expected place 236s ok 39 - error is correct 236s ok 40 - no unexpected error encountered 236s ok 41 - type of arg 0 was not mutated while making equality check 236s ok 42 - type of arg 1 was not mutated while making equality check 236s # 236s ok 43 - ["a", "b"] == ["b", "a"] is false 236s ok 44 - two instances differ at the expected place 236s ok 45 - error is correct 236s ok 46 - no unexpected error encountered 236s ok 47 - type of arg 0 was not mutated while making equality check 236s ok 48 - type of arg 1 was not mutated while making equality check 236s # 236s ok 49 - 1 == 1 is true 236s ok 50 - error is undefined 236s ok 51 - no unexpected error encountered 236s ok 52 - type of arg 0 was not mutated while making equality check 236s ok 53 - type of arg 1 was not mutated while making equality check 236s ok 54 - arg 0 did not gain a POK 236s ok 55 - arg 1 did not gain a POK 236s # 236s ok 56 - 1 == 1.0 is true 236s ok 57 - error is undefined 236s ok 58 - no unexpected error encountered 236s ok 59 - type of arg 0 was not mutated while making equality check 236s ok 60 - type of arg 1 was not mutated while making equality check 236s ok 61 - arg 0 did not gain a POK 236s ok 62 - arg 1 did not gain a POK 236s # 236s ok 63 - 1 == "1.0" is false 236s ok 64 - two instances differ at the expected place 236s ok 65 - error is correct 236s ok 66 - no unexpected error encountered 236s ok 67 - type of arg 0 was not mutated while making equality check 236s ok 68 - type of arg 1 was not mutated while making equality check 236s ok 69 - arg 0 did not gain a POK 236s ok 70 - arg 1 did not gain an NOK or IOK 236s # 236s ok 71 - "1.1" == 1.1 is false 236s ok 72 - two instances differ at the expected place 236s ok 73 - error is correct 236s ok 74 - no unexpected error encountered 236s ok 75 - type of arg 0 was not mutated while making equality check 236s ok 76 - type of arg 1 was not mutated while making equality check 236s ok 77 - arg 0 did not gain an NOK or IOK 236s ok 78 - arg 1 did not gain a POK 236s # 236s ok 79 - "1" == 1 is false 236s ok 80 - two instances differ at the expected place 236s ok 81 - error is correct 236s ok 82 - no unexpected error encountered 236s ok 83 - type of arg 0 was not mutated while making equality check 236s ok 84 - type of arg 1 was not mutated while making equality check 236s ok 85 - arg 0 did not gain an NOK or IOK 236s ok 86 - arg 1 did not gain a POK 236s # 236s ok 87 - "1.1" == 1.1 is false 236s ok 88 - two instances differ at the expected place 236s ok 89 - error is correct 236s ok 90 - no unexpected error encountered 236s ok 91 - type of arg 0 was not mutated while making equality check 236s ok 92 - type of arg 1 was not mutated while making equality check 236s ok 93 - arg 0 did not gain an NOK or IOK 236s ok 94 - arg 1 did not gain a POK 236s # 236s ok 95 - [1, 2] == [2, 1] is false 236s ok 96 - two instances differ at the expected place 236s ok 97 - error is correct 236s ok 98 - no unexpected error encountered 236s ok 99 - type of arg 0 was not mutated while making equality check 236s ok 100 - type of arg 1 was not mutated while making equality check 236s # 236s ok 101 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 2} is true 236s ok 102 - error is undefined 236s ok 103 - no unexpected error encountered 236s ok 104 - type of arg 0 was not mutated while making equality check 236s ok 105 - type of arg 1 was not mutated while making equality check 236s # 236s ok 106 - {"a" : 1} == {"a" : 1.0} is true 236s ok 107 - error is undefined 236s ok 108 - no unexpected error encountered 236s ok 109 - type of arg 0 was not mutated while making equality check 236s ok 110 - type of arg 1 was not mutated while making equality check 236s # 236s ok 111 - ["école", "ಠ_ಠ"] == ["école", "ಠ_ಠ"] is true 236s ok 112 - error is undefined 236s ok 113 - no unexpected error encountered 236s ok 114 - type of arg 0 was not mutated while making equality check 236s ok 115 - type of arg 1 was not mutated while making equality check 236s # 236s ok 116 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 3} is false 236s ok 117 - two instances differ at the expected place 236s ok 118 - error is correct 236s ok 119 - no unexpected error encountered 236s ok 120 - type of arg 0 was not mutated while making equality check 236s ok 121 - type of arg 1 was not mutated while making equality check 236s # 236s ok 122 - {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 4}} == {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 5}} is false 236s ok 123 - two instances differ at the expected place 236s ok 124 - error is correct 236s ok 125 - no unexpected error encountered 236s ok 126 - type of arg 0 was not mutated while making equality check 236s ok 127 - type of arg 1 was not mutated while making equality check 236s # 236s ok 128 - [{"a" : 1}] == [{"a" : 1, "b" : 2}] is false 236s ok 129 - two instances differ at the expected place 236s ok 130 - error is correct 236s ok 131 - no unexpected error encountered 236s ok 132 - type of arg 0 was not mutated while making equality check 236s ok 133 - type of arg 1 was not mutated while making equality check 236s # 236s ok 134 - [{"a" : 1}] == [{"b" : 2}] is false 236s ok 135 - two instances differ at the expected place 236s ok 136 - error is correct 236s ok 137 - no unexpected error encountered 236s ok 138 - type of arg 0 was not mutated while making equality check 236s ok 139 - type of arg 1 was not mutated while making equality check 236s # 236s ok 140 - {"foo" : [[0]]} == {"foo" : [[0, 1]]} is false 236s ok 141 - two instances differ at the expected place 236s ok 142 - error is correct 236s ok 143 - no unexpected error encountered 236s ok 144 - type of arg 0 was not mutated while making equality check 236s ok 145 - type of arg 1 was not mutated while making equality check 236s # 236s 1..145 236s ok 1 - equality, using inflated data 236s # Subtest: equality, using JSON strings 236s ok 1 - null == null is true 236s ok 2 - no unexpected error encountered 236s ok 3 - type of arg 0 was not mutated while making equality check 236s ok 4 - type of arg 1 was not mutated while making equality check 236s # 236s ok 5 - null == 1 is false 236s ok 6 - two instances differ at the expected place 236s ok 7 - no unexpected error encountered 236s ok 8 - type of arg 0 was not mutated while making equality check 236s ok 9 - type of arg 1 was not mutated while making equality check 236s ok 10 - arg 1 did not gain a POK 236s # 236s ok 11 - ["a", "b", "c"] == ["a", "b", "c"] is true 236s ok 12 - no unexpected error encountered 236s ok 13 - type of arg 0 was not mutated while making equality check 236s ok 14 - type of arg 1 was not mutated while making equality check 236s # 236s ok 15 - ["a", "b", "c"] == ["a", "b"] is false 236s ok 16 - two instances differ at the expected place 236s ok 17 - no unexpected error encountered 236s ok 18 - type of arg 0 was not mutated while making equality check 236s ok 19 - type of arg 1 was not mutated while making equality check 236s # 236s ok 20 - ["a", "b"] == ["b", "a"] is false 236s ok 21 - two instances differ at the expected place 236s ok 22 - no unexpected error encountered 236s ok 23 - type of arg 0 was not mutated while making equality check 236s ok 24 - type of arg 1 was not mutated while making equality check 236s # 236s ok 25 - 1 == 1 is true 236s ok 26 - no unexpected error encountered 236s ok 27 - type of arg 0 was not mutated while making equality check 236s ok 28 - type of arg 1 was not mutated while making equality check 236s ok 29 - arg 0 did not gain a POK 236s ok 30 - arg 1 did not gain a POK 236s # 236s ok 31 - 1 == 1.0 is true 236s ok 32 - no unexpected error encountered 236s ok 33 - type of arg 0 was not mutated while making equality check 236s ok 34 - type of arg 1 was not mutated while making equality check 236s ok 35 - arg 0 did not gain a POK 236s ok 36 - arg 1 did not gain a POK 236s # 236s ok 37 - 10 == 10.0 is true 236s ok 38 - no unexpected error encountered 236s ok 39 - type of arg 0 was not mutated while making equality check 236s ok 40 - type of arg 1 was not mutated while making equality check 236s ok 41 - arg 0 did not gain a POK 236s ok 42 - arg 1 did not gain a POK 236s # 236s ok 43 - [1, 2] == [2, 1] is false 236s ok 44 - two instances differ at the expected place 236s ok 45 - no unexpected error encountered 236s ok 46 - type of arg 0 was not mutated while making equality check 236s ok 47 - type of arg 1 was not mutated while making equality check 236s # 236s ok 48 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 2} is true 236s ok 49 - no unexpected error encountered 236s ok 50 - type of arg 0 was not mutated while making equality check 236s ok 51 - type of arg 1 was not mutated while making equality check 236s # 236s ok 52 - {"a" : 1} == {"a" : 1.0} is true 236s ok 53 - no unexpected error encountered 236s ok 54 - type of arg 0 was not mutated while making equality check 236s ok 55 - type of arg 1 was not mutated while making equality check 236s # 236s ok 56 - ["école", "ಠ_ಠ"] == ["école", "ಠ_ಠ"] is true 236s ok 57 - no unexpected error encountered 236s ok 58 - type of arg 0 was not mutated while making equality check 236s ok 59 - type of arg 1 was not mutated while making equality check 236s # 236s ok 60 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 3} is false 236s ok 61 - two instances differ at the expected place 236s ok 62 - no unexpected error encountered 236s ok 63 - type of arg 0 was not mutated while making equality check 236s ok 64 - type of arg 1 was not mutated while making equality check 236s # 236s ok 65 - {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 4}} == {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 5}} is false 236s ok 66 - two instances differ at the expected place 236s ok 67 - no unexpected error encountered 236s ok 68 - type of arg 0 was not mutated while making equality check 236s ok 69 - type of arg 1 was not mutated while making equality check 236s # 236s 1..69 236s ok 2 - equality, using JSON strings 236s # Subtest: equality, using scalarref_booleans 236s ok 1 - false == true is false 236s ok 2 - two instances differ at the expected place 236s ok 3 - no unexpected error encountered 236s ok 4 - type of arg 0 was not mutated while making equality check 236s ok 5 - type of arg 1 was not mutated while making equality check 236s # 236s ok 6 - true == true is true 236s ok 7 - no unexpected error encountered 236s ok 8 - type of arg 0 was not mutated while making equality check 236s ok 9 - type of arg 1 was not mutated while making equality check 236s # 236s ok 10 - false == false is true 236s ok 11 - no unexpected error encountered 236s ok 12 - type of arg 0 was not mutated while making equality check 236s ok 13 - type of arg 1 was not mutated while making equality check 236s # 236s ok 14 - true == false is false 236s ok 15 - two instances differ at the expected place 236s ok 16 - no unexpected error encountered 236s ok 17 - type of arg 0 was not mutated while making equality check 236s ok 18 - type of arg 1 was not mutated while making equality check 236s # 236s ok 19 - null == false is false 236s ok 20 - two instances differ at the expected place 236s ok 21 - no unexpected error encountered 236s ok 22 - type of arg 0 was not mutated while making equality check 236s ok 23 - type of arg 1 was not mutated while making equality check 236s # 236s ok 24 - null == false is false 236s ok 25 - two instances differ at the expected place 236s ok 26 - no unexpected error encountered 236s ok 27 - type of arg 0 was not mutated while making equality check 236s ok 28 - type of arg 1 was not mutated while making equality check 236s # 236s 1..28 236s ok 3 - equality, using scalarref_booleans 236s # Subtest: equality, using stringy_numbers 236s ok 1 - 1 == 1 is true 236s ok 2 - no unexpected error encountered 236s ok 3 - type of arg 0 was not mutated while making equality check (get_type returns integer) 236s ok 4 - type of arg 1 was not mutated while making equality check (get_type returns integer) 236s ok 5 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 236s ok 6 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 236s ok 7 - arg 0 did not gain a POK 236s ok 8 - arg 1 did not gain a POK 236s # 236s ok 9 - 1 == 1.0 is true 236s ok 10 - no unexpected error encountered 236s ok 11 - type of arg 0 was not mutated while making equality check (get_type returns integer) 236s ok 12 - type of arg 1 was not mutated while making equality check (get_type returns integer) 236s ok 13 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 236s ok 14 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 236s ok 15 - arg 0 did not gain a POK 236s ok 16 - arg 1 did not gain a POK 236s # 236s ok 17 - 1 == "1.0" is true 236s ok 18 - no unexpected error encountered 236s ok 19 - type of arg 0 was not mutated while making equality check (get_type returns integer) 236s ok 20 - type of arg 1 was not mutated while making equality check (get_type returns string) 236s ok 21 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 236s ok 22 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 236s ok 23 - arg 0 did not gain a POK 236s ok 24 - arg 1 did not gain an NOK or IOK 236s # 236s ok 25 - "1.1" == 1.1 is true 236s ok 26 - no unexpected error encountered 236s ok 27 - type of arg 0 was not mutated while making equality check (get_type returns string) 236s ok 28 - type of arg 1 was not mutated while making equality check (get_type returns number) 236s ok 29 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 236s ok 30 - type of arg 1 was not mutated while making equality check (is_type('number') returns true) 236s ok 31 - arg 0 did not gain an NOK or IOK 236s ok 32 - arg 1 did not gain a POK 236s # 236s ok 33 - "1" == 1 is true 236s ok 34 - no unexpected error encountered 236s ok 35 - type of arg 0 was not mutated while making equality check (get_type returns string) 236s ok 36 - type of arg 1 was not mutated while making equality check (get_type returns integer) 236s ok 37 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 236s ok 38 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 236s ok 39 - arg 0 did not gain an NOK or IOK 236s ok 40 - arg 1 did not gain a POK 236s # 236s ok 41 - "1.1" == 1.1 is true 236s ok 42 - no unexpected error encountered 236s ok 43 - type of arg 0 was not mutated while making equality check (get_type returns string) 236s ok 44 - type of arg 1 was not mutated while making equality check (get_type returns number) 236s ok 45 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 236s ok 46 - type of arg 1 was not mutated while making equality check (is_type('number') returns true) 236s ok 47 - arg 0 did not gain an NOK or IOK 236s ok 48 - arg 1 did not gain a POK 236s # 236s ok 49 - "1" == "1.00" is true 236s ok 50 - no unexpected error encountered 236s ok 51 - type of arg 0 was not mutated while making equality check (get_type returns string) 236s ok 52 - type of arg 1 was not mutated while making equality check (get_type returns string) 236s ok 53 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 236s ok 54 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 236s ok 55 - arg 0 did not gain an NOK or IOK 236s ok 56 - arg 1 did not gain an NOK or IOK 236s # 236s ok 57 - "1.10" == "1.1000" is true 236s ok 58 - no unexpected error encountered 236s ok 59 - type of arg 0 was not mutated while making equality check (get_type returns string) 236s ok 60 - type of arg 1 was not mutated while making equality check (get_type returns string) 236s ok 61 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 236s ok 62 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 236s ok 63 - arg 0 did not gain an NOK or IOK 236s ok 64 - arg 1 did not gain an NOK or IOK 236s # 236s ok 65 - "x" == "x" is true 236s ok 66 - no unexpected error encountered 236s ok 67 - type of arg 0 was not mutated while making equality check (get_type returns string) 236s ok 68 - type of arg 1 was not mutated while making equality check (get_type returns string) 236s ok 69 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 236s ok 70 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 236s ok 71 - arg 0 did not gain an NOK or IOK 236s ok 72 - arg 1 did not gain an NOK or IOK 236s # 236s ok 73 - "x" == "y" is false 236s ok 74 - two instances differ at the expected place 236s ok 75 - no unexpected error encountered 236s ok 76 - type of arg 0 was not mutated while making equality check (get_type returns string) 236s ok 77 - type of arg 1 was not mutated while making equality check (get_type returns string) 236s ok 78 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 236s ok 79 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 236s ok 80 - arg 0 did not gain an NOK or IOK 236s ok 81 - arg 1 did not gain an NOK or IOK 236s # 236s ok 82 - "x" == 0 is false 236s ok 83 - two instances differ at the expected place 236s ok 84 - no unexpected error encountered 236s ok 85 - type of arg 0 was not mutated while making equality check (get_type returns string) 236s ok 86 - type of arg 1 was not mutated while making equality check (get_type returns integer) 236s ok 87 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 236s ok 88 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 236s ok 89 - arg 0 did not gain an NOK or IOK 236s ok 90 - arg 1 did not gain a POK 236s # 236s ok 91 - 0 == "y" is false 236s ok 92 - two instances differ at the expected place 236s ok 93 - no unexpected error encountered 236s ok 94 - type of arg 0 was not mutated while making equality check (get_type returns integer) 236s ok 95 - type of arg 1 was not mutated while making equality check (get_type returns string) 236s ok 96 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 236s ok 97 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 236s ok 98 - arg 0 did not gain a POK 236s ok 99 - arg 1 did not gain an NOK or IOK 236s # 236s ok 100 - "5" == 5 is true 236s ok 101 - no unexpected error encountered 236s ok 102 - type of arg 0 was not mutated while making equality check (get_type returns string) 236s ok 103 - type of arg 1 was not mutated while making equality check (get_type returns string) 236s ok 104 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 236s ok 105 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 236s ok 106 - arg 0 did not gain an NOK or IOK 236s # 236s ok 107 - 5 == 5 is true 236s ok 108 - no unexpected error encountered 236s ok 109 - type of arg 0 was not mutated while making equality check (get_type returns integer) 236s ok 110 - type of arg 1 was not mutated while making equality check (get_type returns string) 236s ok 111 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 236s ok 112 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 236s ok 113 - arg 0 did not gain a POK 236s # 236s ok 114 - "5" == "five" is false 236s ok 115 - two instances differ at the expected place 236s ok 116 - no unexpected error encountered 236s ok 117 - type of arg 0 was not mutated while making equality check (get_type returns string) 236s ok 118 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 236s ok 119 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 236s ok 120 - arg 0 did not gain an NOK or IOK 236s # 236s ok 121 - 5 == "five" is false 236s ok 122 - two instances differ at the expected place 236s ok 123 - no unexpected error encountered 236s ok 124 - type of arg 0 was not mutated while making equality check (get_type returns integer) 236s ok 125 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 236s ok 126 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 236s ok 127 - arg 0 did not gain a POK 236s # 236s ok 128 - "five" == "five" is false 236s ok 129 - two instances differ at the expected place 236s ok 130 - no unexpected error encountered 236s ok 131 - type of arg 0 was not mutated while making equality check (get_type returns ambiguous type) 236s ok 132 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 236s # 236s 1..132 236s ok 4 - equality, using stringy_numbers 236s 1..4 236s ok 237s t/errors.t .............................. 237s # Subtest: multiple types 237s ok 1 - type returned false 237s ok 2 - got error count 237s ok 3 - correct error generated from type 237s ok 4 - result object serializes correctly 237s 1..4 237s ok 1 - multiple types 237s # Subtest: multipleOf 237s ok 1 - correct error generated from multipleOf 237s 1..1 237s ok 2 - multipleOf 237s # Subtest: uniqueItems 237s ok 1 - correct error generated from uniqueItems 237s 1..1 237s ok 3 - uniqueItems 237s # Subtest: allOf, not, and false schema 237s ok 1 - correct errors with locations; did not collect errors inside "not" 237s ok 2 - short-circuited results contain fewer errors 237s 1..2 237s ok 4 - allOf, not, and false schema 237s # Subtest: anyOf keeps all errors for false paths when invalid, discards errors for false paths when valid 237s ok 1 - correct errors with locations; did not collect errors inside "not" 237s ok 2 - short-circuited results contain the same errors (short-circuiting not possible) 237s ok 3 - did not collect errors from failure paths from successful anyOf 237s ok 4 - no errors collected for true validation 237s 1..4 237s ok 5 - anyOf keeps all errors for false paths when invalid, discards errors for false paths when valid 237s # Subtest: applicators with non-boolean subschemas, discarding intermediary errors - items 237s ok 1 - collected all errors from subschemas for failing branches only (passing branches discard errors) 237s ok 2 - short-circuited results contain fewer errors 237s 1..2 237s ok 6 - applicators with non-boolean subschemas, discarding intermediary errors - items 237s # Subtest: applicators with non-boolean subschemas, discarding intermediary errors - contains 237s ok 1 - collected all errors from subschemas for failing branches only (passing branches discard errors) 237s ok 2 - short-circuited results contain the same errors 237s 1..2 237s ok 7 - applicators with non-boolean subschemas, discarding intermediary errors - contains 237s # Subtest: errors with $refs 237s ok 1 - errors have correct absolute keyword location via $ref 237s 1..1 237s ok 8 - errors with $refs 237s # Subtest: const and enum 237s ok 1 - got details about object differences in errors from const and enum 237s 1..1 237s ok 9 - const and enum 237s # Subtest: exceptions 237s ok 1 - attempting to evaluate a json string returns the exception as an error 237s ok 2 - exception flag is true on the result 237s ok 3 - a subschema of an invalid type returns an error at the right position, and evaluation continues 237s ok 4 - exception flag is true on the result 237s ok 5 - invalid argument to "type" returns an error at the right position, and evaluation continues 237s ok 6 - exception flag is true on the result 237s 1..6 237s ok 10 - exceptions 237s # Subtest: errors after crossing multiple $refs using $id and $anchor 237s ok 1 - errors have correct absolute keyword location via $ref 237s ok 2 - absolute keyword location is correct, even when not used in the $ref 237s 1..2 237s ok 11 - errors after crossing multiple $refs using $id and $anchor 237s # Subtest: unresolvable $ref to a local resource 237s ok 1 - error for a bad $ref reports the correct absolute location that was referred to 237s ok 2 - exception flag is true on the result 237s 1..2 237s ok 12 - unresolvable $ref to a local resource 237s # Subtest: unresolvable $ref to a remote resource 237s ok 1 - error for a bad $ref reports the correct absolute location that was referred to 237s ok 2 - exception flag is true on the result 237s 1..2 237s ok 13 - unresolvable $ref to a remote resource 237s # Subtest: unresolvable $ref to plain-name fragment 237s ok 1 - properly handled a bad $ref to an anchor 237s ok 2 - exception flag is true on the result 237s 1..2 237s ok 14 - unresolvable $ref to plain-name fragment 237s # Subtest: abort due to a schema error 237s ok 1 - exception inside a oneOf (where errors are localized) are still included in the result 237s 1..1 237s ok 15 - abort due to a schema error 237s # Subtest: sorted property names 237s ok 1 - property names are considered in sorted order 237s 1..1 237s ok 16 - sorted property names 237s # Subtest: bad regex in schema 237s ok 1 - bad "pattern" and "patternProperties" regexes are properly noted in error 237s ok 2 - bad "pattern" regex is properly noted in error 237s ok 3 - "pattern" regex is now valid, due to the Unicode property becoming defined 237s 1..3 237s ok 17 - bad regex in schema 237s # Subtest: JSON pointer escaping 237s ok 1 - JSON pointers are properly escaped; URIs doubly so 237s ok 2 - absoluteKeywordLocation is omitted when paths are the same, not counting uri encoding 237s ok 3 - use of _schema_path_suffix in a fatal error 237s 1..3 237s ok 18 - JSON pointer escaping 237s # Subtest: absoluteKeywordLocation 237s ok 1 - absoluteKeywordLocation is included when different from instanceLocation, even when empty 237s ok 2 - absoluteKeywordLocation is not included when the path equals keywordLocation, even if a $ref is present 237s ok 3 - absoluteKeywordLocation is never "\#" 237s ok 4 - absoluteKeywordLocation reflects the canonical schema uri as it changes when passing through $id 237s ok 5 - plain-name fragment in $id does not change canonical schema uri 237s 1..5 237s ok 19 - absoluteKeywordLocation 237s # Subtest: dependentRequired 237s ok 1 - dependentRequired traversal error 237s 1..1 237s ok 20 - dependentRequired 237s # Subtest: numbers in output 237s ok 1 - numbers in errors do not lose any digits of precision 237s 1..1 237s ok 21 - numbers in output 237s # Subtest: effective_base_uri and overriding starting locations 237s ok 1 - error locations are relative to the effective_base_uri, but $ref usage is not restricted 237s ok 2 - can alter locations with data_path, traversed_schema_path, effective_base_uri 237s 1..2 237s ok 22 - effective_base_uri and overriding starting locations 237s # Subtest: recommended_response 237s ok 1 - recommended_response is not defined when there are no errors 237s ok 2 - recommended_response uses the first error in the result 237s ok 3 - recommended_response indicates an exception occurred 237s ok 4 - recommended_response uses the one from the error that is explicitly set 237s 1..4 237s ok 23 - recommended_response 237s # Subtest: exclusiveMaximum, exclusiveMinimum across drafts 237s ok 1 - later drafts; errors are produced separately from the keywords 237s ok 2 - later drafts; two errors can result 237s ok 3 - draft4: one error comes from maximum, but includes the exclusiveMaximum check 237s ok 4 - draft4: maximum + exclusiveMaximum checks are combined 237s ok 5 - draft4: exclusive check uses the right boundary 237s ok 6 - draft4: maximum check is correct 237s 1..6 237s ok 24 - exclusiveMaximum, exclusiveMinimum across drafts 237s 1..24 237s ok 237s t/evaluate_json_string.t ................ 237s ok 1 - we have a JSON decoder 237s ok 2 - json data "true" is evaluated successfully 237s ok 3 - no exceptions in evaluate_json_string on good json 237s ok 4 - evaluating bad json data returns false, with error 237s ok 5 - no exceptions in evaluate_json_string on bad json 237s 1..5 237s ok 238s t/find-identifiers.t .................... 238s # Subtest: $id sets canonical uri 238s ok 1 - $id was recognized - $ref was successfully traversed 238s ok 2 - resources indexed; document canonical_uri is still unset 238s ok 3 - the same document object is indexed under both URIs 238s ok 4 - the schema contains no blessed leaf nodes 238s 1..4 238s ok 1 - $id sets canonical uri 238s # Subtest: anchors 238s ok 1 - $id was recognized - absolute locations use json paths, not anchors 238s ok 2 - internal resource index is correct 238s 1..2 238s ok 2 - anchors 238s # Subtest: $anchor at root without $id 238s ok 1 - $id without anchor was recognized - absolute locations use json paths, not anchors 238s ok 2 - internal resource index is correct 238s 1..2 238s ok 3 - $anchor at root without $id 238s # Subtest: $ids and $anchors in subschemas after $id changes 238s ok 1 - $anchor is legal in a subschema 238s ok 2 - internal resource index is correct 238s 1..2 238s ok 4 - $ids and $anchors in subschemas after $id changes 238s # Subtest: invalid $id and $anchor 238s ok 1 - bad $id and $anchor are detected, even if bad definitions are not traversed 238s ok 2 - "bad" $ids and $anchors that are not actually keywords are not reported as errors 238s 1..2 238s ok 5 - invalid $id and $anchor 238s # Subtest: nested $ids 238s ok 1 - errors have the correct location 238s ok 2 - properly resolved all the nested $ids 238s 1..2 238s ok 6 - nested $ids 238s # Subtest: multiple documents, each using canonical_uri = "" 238s ok 1 - evaluation of schema1 238s ok 2 - resources in initial schema are indexed 238s ok 3 - successful evaluation of schema2 238s ok 4 - resources in second schema are indexed; all resources from first schema are preserved except uri="" 238s 1..4 238s ok 7 - multiple documents, each using canonical_uri = "" 238s # Subtest: multiple documents, each using canonical_uri = "", collisions in other resources 238s ok 1 - evaluation of schema1 238s ok 2 - resources in initial schema are indexed 238s ok 3 - schema2 cannot be evaluated - an internal $id collides with an existing resource 238s 1..3 238s ok 8 - multiple documents, each using canonical_uri = "", collisions in other resources 238s # Subtest: resource collisions in canonical uris 238s ok 1 - detected collision between a document's initial uri and a document's subschema's uri 238s ok 2 - detected collision between two document subschema uris 238s 1..2 238s ok 9 - resource collisions in canonical uris 238s # Subtest: relative uri in $id 238s ok 1 - root schema location is correctly identified 238s ok 2 - properly able to traverse a recursive schema using a relative $id 238s 1..2 238s ok 10 - relative uri in $id 238s 1..10 238s ok 239s t/formats.t ............................. 239s # Subtest: no validation 239s ok 1 - validate_formats=0 disables format assertion behaviour; annotation is still produced 239s ok 2 - format validation can be turned off in evaluate() 239s 1..2 239s ok 1 - no validation 239s # Subtest: simple validation 239s ok 1 - non-string values are valid, and produce an annotation 239s ok 2 - simple success 239s ok 3 - simple failure 239s ok 4 - format_validation defaults to false 239s ok 5 - format validation can be turned on in evaluate() 239s ok 6 - ...but the value is still false on the object 239s 1..6 239s ok 2 - simple validation 239s # Subtest: override a format sub 239s ok 1 - check syntax of override to existing format via constructor 239s ok 2 - check syntax of override format name to existing format via setter 239s ok 3 - check syntax of override definition value to existing format via setter 239s ok 4 - type is required if passing a hashref 239s ok 5 - cannot override a core format to support a different data type 239s ok 6 - can override a core format definition, as long as it uses the same type 239s ok 7 - check syntax of implementation for a new format 239s ok 8 - check syntax of implementation when adding an override to existing format 239s ok 9 - check syntax of implementation when adding a new format 239s ok 10 - swapping out format implementation turns success into failure; wrong types are still valid 239s ok 11 - can override a custom format definition to use a different type 239s 1..11 239s ok 3 - override a format sub 239s # Subtest: toggle validate_formats after adding schema 239s ok 1 - assertion behaviour is off initially 239s ok 2 - assertion behaviour can be enabled later with an already-loaded schema 239s ok 3 - valid assertion behaviour does not die 239s ok 4 - a schema document can be used with another evaluator with assertion behaviour 239s ok 5 - valid assertion behaviour does not die 239s 1..5 239s ok 4 - toggle validate_formats after adding schema 239s # Subtest: custom metaschemas 239s ok 1 - custom metaschema using format-assertion=false validates formats 239s ok 2 - custom metaschema using format-assertion=true validates formats 239s 1..2 239s ok 5 - custom metaschemas 239s # Subtest: core formats added after draft7 239s ok 1 - duration is not implemented in draft7 239s ok 2 - uuid is not implemented in draft7 239s 1..2 239s ok 6 - core formats added after draft7 239s # Subtest: unimplemented core formats 239s ok 1 - draft4 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 239s ok 2 - draft6 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 239s ok 3 - draft7 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 239s ok 4 - draft2019-09 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 239s ok 5 - draft2020-12 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 239s ok 6 - draft2020-12 with Format-Assertion vocabulary: error when using a core format that is unimplemented 239s ok 7 - draft2020-12 with Format-Assertion vocabulary: error is seen even when containing subschema would be true, and evaluation is short-circuited 239s ok 8 - unimplemented core format can have a custom definition provided 239s 1..8 239s ok 7 - unimplemented core formats 239s # Subtest: unknown custom formats 239s ok 1 - draft4: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 239s ok 2 - draft6: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 239s ok 3 - draft7: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 239s ok 4 - draft2019-09: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure; annotation is still produced 239s ok 5 - draft2020-12: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure; annotation is still produced 239s ok 6 - draft2020-12: for format validation with the Format-Assertion vocabulary, no errors during traversal when using an unknown custom format 239s ok 7 - draft2020-12: for format validation with the Format-Assertion vocabulary, unrecognized custom formats are detected at evaluation time 239s ok 8 - ...but this error can be avoided if the keyword is never evaluated 239s 1..8 239s ok 8 - unknown custom formats 239s # Subtest: format: invalid base type(s) 239s ok 1 - integer is not a valid base type for a format validation 239s ok 2 - integer, string is not a valid base type for a format validation 239s 1..2 239s ok 9 - format: invalid base type(s) 239s # Subtest: format: pure_integer 239s ok 1 - pure_integer format with type 239s ok 2 - pure_integer format without type 239s 1..2 239s ok 10 - format: pure_integer 239s # Subtest: formats supporting multiple core types 239s ok 1 - int64 format without type - accepts both numbers and strings 239s ok 2 - int64 format without type - accepts both numbers and strings 239s 1..2 239s ok 11 - formats supporting multiple core types 239s # Subtest: stringy numbers with a numeric format 239s ok 1 - FormatAnnotation+validate_formats: strings that look like numbers can be validated against a numeric format when stringy_numbers=1 239s ok 2 - FormatAssertion: strings that look like numbers can be validated against a numeric format when stringy_numbers=1 239s 1..2 239s ok 12 - stringy numbers with a numeric format 239s # Subtest: annotation formats using implementations that rely on optional dependencies 239s ok 1 - can annotate a non-string against formats without their optional dependencies, without dying 239s 1..1 239s ok 13 - annotation formats using implementations that rely on optional dependencies 239s # Subtest: assertion formats using implementations that rely on optional dependencies 239s ok 1 - draft4: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 239s ok 2 - draft4: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 239s ok 3 - draft6: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 239s ok 4 - draft6: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 239s ok 5 - draft7: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 239s ok 6 - draft7: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 239s ok 7 - draft2019-09: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 239s ok 8 - draft2019-09: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 239s ok 9 - draft2020-12: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 239s ok 10 - draft2020-12: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 239s ok 11 - draft2020-12: for format validation with the Format-Assertion vocabulary, no errors during traversal when using an unknown custom format 239s ok 12 - ...but we do warn for the missing module 239s ok 13 - draft2020-12: for Format-Asertion vocabulary, we immediately abort when encountering a format that throws an exception 239s 1..13 239s ok 14 - assertion formats using implementations that rely on optional dependencies 239s 1..14 239s ok 240s t/invalid-schemas.t ..................... 240s # 240s # AUTHOR_TESTING: 240s # AUTOMATED_TESTING: 1 240s # EXTENDED_TESTING: 240s # NO_TODO: 240s # TEST_DIR: 240s # NO_SHORT_CIRCUIT: 240s # 240s # running tests in /tmp/autopkgtest.uZAXGi/autopkgtest_tmp/smokeENIJgf/t/invalid-schemas against draft2019-09... 240s # 240s ok 1 - invalid-input.json: "invalid user input: type (string)" - "graceful error from 'type' (string)" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "type value is not a string", 240s # "instanceLocation": "", 240s # "keywordLocation": "/type" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "type value is not a string", 240s # "instanceLocation": "", 240s # "keywordLocation": "/type" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s ok 2 - invalid-input.json: "invalid user input: type (array)" - "graceful error from 'type' (array)" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "unrecognized type \"\"", 240s # "instanceLocation": "", 240s # "keywordLocation": "/type" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "unrecognized type \"\"", 240s # "instanceLocation": "", 240s # "keywordLocation": "/type" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s # 240s ok 3 - ref.json: "invalid $ref: unencoded characters" - "unencoded characters in $ref uri" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "$ref value is not a valid URI reference", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$defs/foo/$ref" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "$ref value is not a valid URI reference", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$defs/foo/$ref" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s ok 4 - ref.json: "invalid $ref: non-ascii characters" - "non-ascii characters in $ref uri" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "$ref value is not a valid URI reference", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$defs/foo/$ref" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "$ref value is not a valid URI reference", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$defs/foo/$ref" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s # 240s ok 5 - vocabulary.json: "invalid $vocabulary: need boolean values" - "an invalid $vocabulary value (value should be a boolean)" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s ok 6 - vocabulary.json: "invalid $vocabulary: uri must not have unencoded characters" - "unencoded characters in $vocabulary uri" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "\"http://foo^bar/path\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "\"http://foo^bar/path\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s ok 7 - vocabulary.json: "invalid $vocabulary: non-ascii characters in uri" - "non-ascii characters in $vocabulary uri" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s ok 8 - vocabulary.json: "invalid $vocabulary: missing scheme" - "$vocabulary uri is missing a scheme" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "\"foo.com\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/foo.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "\"foo.com\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/foo.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s # 240s # generated with: Test::JSON::Schema::Acceptance 1.029 240s # specification version: draft2019-09 240s # using custom test directory: t/invalid-schemas 240s # optional tests included: no 240s # 240s # filename pass todo-fail fail 240s # --------------------------------------------------------------- 240s # invalid-input.json 2 0 0 240s # ref.json 2 0 0 240s # vocabulary.json 4 0 0 240s # --------------------------------------------------------------- 240s # TOTAL 8 0 0 240s # 240s # Congratulations, all non-optional tests are passing! 240s # 240s ok 9 - no leaks in the main evaluator object 240s ok 10 - no leaks in the short-circuiting evaluator object 240s # 240s # AUTHOR_TESTING: 240s # AUTOMATED_TESTING: 1 240s # EXTENDED_TESTING: 240s # NO_TODO: 240s # TEST_DIR: 240s # NO_SHORT_CIRCUIT: 240s # 240s # running tests in /tmp/autopkgtest.uZAXGi/autopkgtest_tmp/smokeENIJgf/t/invalid-schemas against draft2020-12... 240s # 240s ok 11 - invalid-input.json: "invalid user input: type (string)" - "graceful error from 'type' (string)" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "type value is not a string", 240s # "instanceLocation": "", 240s # "keywordLocation": "/type" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "type value is not a string", 240s # "instanceLocation": "", 240s # "keywordLocation": "/type" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s ok 12 - invalid-input.json: "invalid user input: type (array)" - "graceful error from 'type' (array)" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "unrecognized type \"\"", 240s # "instanceLocation": "", 240s # "keywordLocation": "/type" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "unrecognized type \"\"", 240s # "instanceLocation": "", 240s # "keywordLocation": "/type" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s # 240s ok 13 - ref.json: "invalid $ref: unencoded characters" - "unencoded characters in $ref uri" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "$ref value is not a valid URI reference", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$defs/foo/$ref" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "$ref value is not a valid URI reference", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$defs/foo/$ref" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s ok 14 - ref.json: "invalid $ref: non-ascii characters" - "non-ascii characters in $ref uri" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "$ref value is not a valid URI reference", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$defs/foo/$ref" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "$ref value is not a valid URI reference", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$defs/foo/$ref" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s # 240s ok 15 - vocabulary.json: "invalid $vocabulary: need boolean values" - "an invalid $vocabulary value (value should be a boolean)" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s ok 16 - vocabulary.json: "invalid $vocabulary: uri must not have unencoded characters" - "unencoded characters in $vocabulary uri" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "\"http://foo^bar/path\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "\"http://foo^bar/path\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s ok 17 - vocabulary.json: "invalid $vocabulary: non-ascii characters in uri" - "non-ascii characters in $vocabulary uri" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s ok 18 - vocabulary.json: "invalid $vocabulary: missing scheme" - "$vocabulary uri is missing a scheme" { 240s # result: { 240s # "errors": [ 240s # { 240s # "error": "\"foo.com\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/foo.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s # short-circuited result: { 240s # "errors": [ 240s # { 240s # "error": "\"foo.com\" is not a valid URI", 240s # "instanceLocation": "", 240s # "keywordLocation": "/$vocabulary/foo.com" 240s # } 240s # ], 240s # "valid": false 240s # } 240s ok 1 - test passes: data is valid: false 240s 1..1 240s } 240s # 240s # generated with: Test::JSON::Schema::Acceptance 1.029 240s # specification version: draft2020-12 240s # using custom test directory: t/invalid-schemas 240s # optional tests included: no 240s # 240s # filename pass todo-fail fail 240s # --------------------------------------------------------------- 240s # invalid-input.json 2 0 0 240s # ref.json 2 0 0 240s # vocabulary.json 4 0 0 240s # --------------------------------------------------------------- 240s # TOTAL 8 0 0 240s # 240s # Congratulations, all non-optional tests are passing! 240s # 240s ok 19 - no leaks in the main evaluator object 240s ok 20 - no leaks in the short-circuiting evaluator object 240s 1..20 240s ok 240s t/max_traversal_depth.t ................. 240s ok 1 - evaluation is halted when traversal gets too deep 240s ok 2 - evaluation is halted when an instance location is evaluated against the same schema location a second time 240s ok 3 - the seen counter does not confuse URI paths and fragments: /properties/foo vs \#/properties/foo 240s ok 4 - the seen counter does not confuse two subschemas that both apply the same definition to the same instance location 240s 1..4 240s ok 241s t/multipleOf.t .......................... 241s # Subtest: multipleOf, native types 241s ok 1 - 4 is a multiple of 2 241s ok 2 - 4 is a multiple of 1 241s ok 3 - 4 is not a multiple of 3 241s ok 4 - 4.5 is a multiple of 1.5 241s ok 5 - 4.5 is not a multiple of 1 241s ok 6 - 4.5 is not a multiple of 3 241s ok 7 - 4 is a multiple of 2 241s ok 8 - 4 is not a multiple of 2.5 241s ok 9 - 5 is a multiple of 2.5 241s ok 10 - 4.5 is a multiple of 2.25 241s ok 11 - 4.5 is not a multiple of 2.5 241s ok 12 - 4.5 is not a multiple of 2 241s ok 13 - -9223372036854775808 is a multiple of 0.5 241s ok 14 - 9223372036854775807 is a multiple of 0.5 241s ok 15 - 18446744073709551615 is a multiple of 0.5 241s 1..15 241s ok 1 - multipleOf, native types 241s # Subtest: multipleOf, data is a bignum 241s ok 1 - 4 is a multiple of 2 241s ok 2 - 4 is a multiple of 1 241s ok 3 - 4 is not a multiple of 3 241s ok 4 - 4.5 is a multiple of 1.5 241s ok 5 - 4.5 is not a multiple of 1 241s ok 6 - 4.5 is not a multiple of 3 241s ok 7 - 4 is a multiple of 2 241s ok 8 - 4 is not a multiple of 2.5 241s ok 9 - 5 is a multiple of 2.5 241s ok 10 - 4.5 is a multiple of 2.25 241s ok 11 - 4.5 is not a multiple of 2.5 241s ok 12 - 4.5 is not a multiple of 2 241s ok 13 - -9223372036854775808 is a multiple of 0.5 241s ok 14 - 9223372036854775807 is a multiple of 0.5 241s ok 15 - 18446744073709551615 is a multiple of 0.5 241s 1..15 241s ok 2 - multipleOf, data is a bignum 241s # Subtest: multipleOf, multipleOf is a bignum 241s ok 1 - 4 is a multiple of 2 241s ok 2 - 4 is a multiple of 1 241s ok 3 - 4 is not a multiple of 3 241s ok 4 - 4.5 is a multiple of 1.5 241s ok 5 - 4.5 is not a multiple of 1 241s ok 6 - 4.5 is not a multiple of 3 241s ok 7 - 4 is a multiple of 2 241s ok 8 - 4 is not a multiple of 2.5 241s ok 9 - 5 is a multiple of 2.5 241s ok 10 - 4.5 is a multiple of 2.25 241s ok 11 - 4.5 is not a multiple of 2.5 241s ok 12 - 4.5 is not a multiple of 2 241s ok 13 - -9223372036854775808 is a multiple of 0.5 241s ok 14 - 9223372036854775807 is a multiple of 0.5 241s ok 15 - 18446744073709551615 is a multiple of 0.5 241s 1..15 241s ok 3 - multipleOf, multipleOf is a bignum 241s # Subtest: multipleOf, data and multipleOf are bignums 241s ok 1 - 4 is a multiple of 2 241s ok 2 - 4 is a multiple of 1 241s ok 3 - 4 is not a multiple of 3 241s ok 4 - 4.5 is a multiple of 1.5 241s ok 5 - 4.5 is not a multiple of 1 241s ok 6 - 4.5 is not a multiple of 3 241s ok 7 - 4 is a multiple of 2 241s ok 8 - 4 is not a multiple of 2.5 241s ok 9 - 5 is a multiple of 2.5 241s ok 10 - 4.5 is a multiple of 2.25 241s ok 11 - 4.5 is not a multiple of 2.5 241s ok 12 - 4.5 is not a multiple of 2 241s ok 13 - -9223372036854775808 is a multiple of 0.5 241s ok 14 - 9223372036854775807 is a multiple of 0.5 241s ok 15 - 18446744073709551615 is a multiple of 0.5 241s 1..15 241s ok 4 - multipleOf, data and multipleOf are bignums 241s 1..4 241s ok 241s t/output_format.t ....................... 241s ok 1 - output_format defaults to basic 241s ok 2 - Result object gets the output_format from the evaluator 241s ok 3 - basic format includes all errors linearly 241s ok 4 - flag format only includes the valid property 241s ok 5 - terse format omits errors from redundant applicator keywords 241s ok 6 - basic format includes all errors linearly 241s ok 7 - terse format does not omit these crucial errors 241s # Subtest: strict_basic 241s ok 1 - strict_basic turns json pointers into URIs, including uri escapes 241s 1..1 241s ok 8 - strict_basic 241s # Subtest: AND two result objects together 241s ok 1 - ANDing true and false results = invalid, but errors and annotations both preserved 241s ok 2 - ANDing two true results = valid 241s ok 3 - ANDing two false results = invalid 241s ok 4 - only Result objects can be processed 241s ok 5 - ANDing a result with itself is a no-op 241s 1..5 241s ok 9 - AND two result objects together 241s # Subtest: annotations 241s ok 1 - by default, annotations are included in the formatted output 241s ok 2 - but inclusion can be disabled 241s 1..2 241s ok 10 - annotations 241s # Subtest: data_only 241s ok 1 - data_only format outputs a string of data locations only, with duplicates removed 241s ok 2 - data_only format uses keyword locations when result came from traverse 241s 1..2 241s ok 11 - data_only 241s 1..11 241s ok 242s t/pattern.t ............................. 242s ok 1 - unchanged LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 242s ok 2 - unchanged LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 242s ok 3 - upgraded LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 242s ok 4 - upgraded LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 242s ok 5 - downgraded LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 242s ok 6 - downgraded LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 242s # Subtest: empty pattern 242s ok 1 - empty pattern in "pattern" will correctly match 242s ok 2 - empty pattern in "patternProperties" will correctly match 242s 1..2 242s ok 7 - empty pattern 242s 1..7 242s ok 243s t/ref.t ................................. 243s # Subtest: local JSON pointer 243s ok 1 - can follow local $ref to a true schema 243s ok 2 - can follow local $ref to a false schema 243s ok 3 - got error for unresolvable ref 243s ok 4 - no exception 243s 1..4 243s ok 1 - local JSON pointer 243s # Subtest: fragment with URI-escaped and JSON Pointer-escaped characters 243s ok 1 - can follow $ref with escaped components 243s 1..1 243s ok 2 - fragment with URI-escaped and JSON Pointer-escaped characters 243s # Subtest: local anchor 243s ok 1 - can follow local $ref to an $anchor to a true schema 243s ok 2 - can follow local $ref to an $anchor to a false schema 243s ok 3 - got error for unresolvable ref 243s ok 4 - no exception 243s 1..4 243s ok 3 - local anchor 243s # Subtest: $id with an empty fragment 243s ok 1 - $id with empty fragment can be found by $ref that did not include it; fragment not included in error either 243s 1..1 243s ok 4 - $id with an empty fragment 243s # Subtest: $recursiveRef without nesting behaves like $ref 243s ok 1 - $recursiveRef without nested $recursiveAnchor behaves like $ref 243s 1..1 243s ok 5 - $recursiveRef without nesting behaves like $ref 243s # Subtest: $recursiveRef without $recursiveAnchor behaves like $ref 243s ok 1 - $recursiveRef without $recursiveAnchor behaves like $ref 243s 1..1 243s ok 6 - $recursiveRef without $recursiveAnchor behaves like $ref 243s # Subtest: $recursiveAnchor must be at a schema resource root 243s ok 1 - $recursiveAnchor can only appear at a schema resource root 243s ok 2 - schema now valid when an $id is added 243s ok 3 - $recursiveAnchor can only appear at a schema resource root 243s ok 4 - properly detecting a bad $recursiveAnchor even before passing through a $ref 243s 1..4 243s ok 7 - $recursiveAnchor must be at a schema resource root 243s # Subtest: $recursiveAnchor and $recursiveRef - standard usecases 243s ok 1 - validation requires the override that is not in scope 243s ok 2 - $recursiveRef requires a $recursiveAnchor that does not exist 243s ok 3 - $recursiveRef with both $recursiveAnchors in scope 243s 1..3 243s ok 8 - $recursiveAnchor and $recursiveRef - standard usecases 243s # Subtest: $recursiveRef without $recursiveAnchor 243s ok 1 - $ref - one level recursion 243s ok 2 - $recursiveRef with no $recursiveAnchor in scope has the same outcome 243s 1..2 243s ok 9 - $recursiveRef without $recursiveAnchor 243s # Subtest: $recursiveAnchor in our dynamic scope, but not in the target schema 243s ok 1 - $recursiveAnchor does not exist in the target schema - local recursion only, so integers match 243s ok 2 - $recursiveAnchor does not exist in the target schema - no recursion 243s ok 3 - $recursiveAnchor does not exist in the target schema - local recursion only 243s 1..3 243s ok 10 - $recursiveAnchor in our dynamic scope, but not in the target schema 243s # Subtest: $dynamicRef without nesting behaves like $ref 243s ok 1 - $dynamicRef without nested $dynamicAnchor behaves like $ref 243s 1..1 243s ok 11 - $dynamicRef without nesting behaves like $ref 243s # Subtest: $recursiveRef without $dynamicAnchor behaves like $ref 243s ok 1 - $dynamicRef without $dynamicAnchor behaves like $ref 243s 1..1 243s ok 12 - $recursiveRef without $dynamicAnchor behaves like $ref 243s # Subtest: $dynamicAnchor and $dynamicRef - standard usecases 243s ok 1 - validation requires the override that is not in scope 243s ok 2 - $dynamicRef requires a $dynamicAnchor that does not exist 243s ok 3 - $dynamicRef must use a URI containing the dynamic anchor fragment 243s ok 4 - there is no outer $dynamicAnchor in scope to recurse to 243s ok 5 - we have an outer $dynamicAnchor, and are using the fragment URI, but we used $ref rather than $dynamicRef 243s ok 6 - there is an outer $dynamicAnchor in scope to recurse to, but $dynamicRef must use a URI containing the dynamic anchor fragment 243s ok 7 - now everything is in place to recurse to the base 243s ok 8 - there is no $dynamicAnchor at the original target, and no anchor used in the target URI 243s 1..8 243s ok 13 - $dynamicAnchor and $dynamicRef - standard usecases 243s # Subtest: $dynamicRef to $dynamicAnchor not directly in the evaluation path 243s ok 1 - second dynamic anchor is not in the evaluation path, but we found it via dynamic scope - type does not match 243s ok 2 - regular $anchor in dynamic scope should not be used by $dynamicRef 243s ok 3 - some other $dynamicAnchor in dynamic scope should not be used by $dynamicRef 243s ok 4 - second dynamic anchor is not in the evaluation path, but we found it via dynamic scope - type matches 243s ok 5 - the first dynamic scope is set by document uri, not just the $id keyword 243s 1..5 243s ok 14 - $dynamicRef to $dynamicAnchor not directly in the evaluation path 243s # Subtest: after leaving a dynamic scope, it should not be used by a $dynamicRef 243s ok 1 - first_scope is no longer in scope, so it is not used by $dynamicRef 243s 1..1 243s ok 15 - after leaving a dynamic scope, it should not be used by a $dynamicRef 243s # Subtest: anchors do not match 243s ok 1 - $dynamicRef goes to enhanced schema 243s ok 2 - $dynamicRef -> $dynamicAnchor -> $anchor is a no go: we stay at the original schema 243s 1..2 243s ok 16 - anchors do not match 243s # Subtest: reference to a non-schema location 243s ok 1 - $ref to a non-schema is not permitted 243s ok 2 - $dynamicRef to a non-schema is not permitted 243s ok 3 - $recursiveRef to a non-schema is not permitted 243s ok 4 - $schema to a non-schema is not permitted 243s 1..4 243s ok 17 - reference to a non-schema location 243s # Subtest: evaluate at a non-schema location 243s ok 1 - evaluating at a non-schema location is not permitted 243s 1..1 243s ok 18 - evaluate at a non-schema location 243s 1..18 243s ok 244s t/serialization.t ....................... 244s ok 1 - evaluated against an empty schema 244s ok 2 - evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 244s ok 3 - evaluate data against schema with custom dialect; format-annotation is used 244s ok 4 - frozen object contains all the right keys 244s ok 5 - thawed object contains all the right keys 244s ok 6 - evaluate again against an empty schema 244s ok 7 - in thawed object, evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 244s ok 8 - evaluate again against an empty schema 244s ok 9 - core vocabulary_class for a different spec version works in a thawed object 244s ok 10 - format-assertion vocabulary_class works in a thawed object 244s ok 11 - metaschema_vocabulary_classes works in a thawed object 244s ok 12 - media_type works in a thawed object 244s ok 13 - encoding works in a thawed object 244s # Subtest: thaw object in a separate process 244s ok 1 - thawed object in a new process contains all the right keys 244s ok 2 - in thawed object, evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 244s ok 3 - evaluate data against schema with custom dialect; format-assertion is used 244s 1..3 244s ok 14 - thaw object in a separate process 244s ok 15 - child process finished successfully 244s 1..15 244s ok 245s t/specification_version.t ............... 245s ok 1 - unrecognized $SPECIFICATION_VERSION 245s # Subtest: specification aliases 245s ok 1 - 2020-12 is an alias for draft2020-12 245s ok 2 - 2019-09 is an alias for draft2019-09 245s ok 3 - 7 is an alias for draft7 245s 1..3 245s ok 2 - specification aliases 245s # Subtest: $ref and older specification versions 245s ok 1 - $schema and $ref cannot be used together, when $schema is too old 245s 1..1 245s ok 3 - $ref and older specification versions 245s # Subtest: <= draft7: $ref in combination with any other keyword causes the other keywords to be ignored 245s ok 1 - keywords adjacent to $ref are not evaluated 245s 1..1 245s ok 4 - <= draft7: $ref in combination with any other keyword causes the other keywords to be ignored 245s # Subtest: $ref adjacent to a path used in a $ref 245s ok 1 - the presence of $ref also blocks the use of other $refs to adjacent locations 245s 1..1 245s ok 5 - $ref adjacent to a path used in a $ref 245s # Subtest: $defs support 245s ok 1 - $defs is not recognized in <= draft7 245s ok 2 - $defs is supported in > draft7 245s 1..2 245s ok 6 - $defs support 245s # Subtest: definitions support 245s ok 1 - definitions is not recognized in >= draft2019-09 245s ok 2 - warned when using no-longer-supported keyword 245s ok 3 - definitions is supported in <= draft7 245s 1..3 245s ok 7 - definitions support 245s # Subtest: dependencies, dependentRequired, dependentSchemas 245s ok 1 - dependencies is not recognized in >= draft2019-09 245s ok 2 - warned when using no-longer-supported keyword 245s ok 3 - dependentRequired is supported in >= draft2019-09 245s ok 4 - dependentSchemas is supported in >= draft2019-09 245s ok 5 - dependencies is supported in <= draft7 245s ok 6 - dependentRequired is not recognized in <= draft7 245s ok 7 - dependentSchemas is not recognized in <= draft7 245s 1..7 245s ok 8 - dependencies, dependentRequired, dependentSchemas 245s # Subtest: prefixItems, items and additionalItems 245s ok 1 - prefixitems+items works when specification_version >= draft2020-12 245s ok 2 - array form of items not supported when specification_version >= draft2020-12 245s ok 3 - additionalitems not recognized when specification_version >= draft2020-12 245s ok 4 - warned when using no-longer-supported keyword 245s ok 5 - prefixitems not supported when specification_version specifies other than draft2020-12 245s ok 6 - array-based items in >= draft2020-12 245s ok 7 - prefixItems + additionalItems 245s ok 8 - warned when using no-longer-supported keyword 245s ok 9 - prefixItems + schema-based items 245s ok 10 - schema-based items + additionalItems, failure case 245s ok 11 - warned when using no-longer-supported keyword 245s ok 12 - schema-based items + additionalItems, passing case 245s ok 13 - warned when using no-longer-supported keyword 245s 1..13 245s ok 9 - prefixItems, items and additionalItems 245s 1..9 245s ok 245s t/strict.t .............................. 245s ok 1 - strict defaults to false 245s ok 2 - by default, unknown keywords are allowed in evaluate() 245s ok 3 - strict mode disallows unknown keywords during evaluation via a config override 245s ok 4 - by default, unknown keywords are allowed in validate_schema() 245s ok 5 - strict mode disallows unknown keywords in validate_schema() via a config override 245s ok 6 - strict mode disallows unknown keywords during evaluation, even if the document was already traversed 245s ok 7 - strict mode disallows unknown keywords in the schema data passed to validate_schema() 245s ok 8 - strict mode disallows unknown keywords during traverse 245s ok 9 - strict mode only detected one property this time - bloop is evaluated 245s ok 10 - strict mode detects unknown keywords using draft7 245s 1..10 245s ok 246s t/stringy-numbers.t ..................... 246s # stringy_numbers = 0 246s ok 1 - strings cannot be used in place of numbers in schema for multipleOf 246s ok 2 - strings cannot be used in place of numbers in schema for maximum 246s ok 3 - strings cannot be used in place of numbers in schema for exclusiveMaximum 246s ok 4 - strings cannot be used in place of numbers in schema for minimum 246s ok 5 - strings cannot be used in place of numbers in schema for exclusiveMinimum 246s ok 6 - strings that do not look like numbers are never valid as numbers 246s ok 7 - by default "type": "string" does not accept numbers 246s ok 8 - real numbers are always evaluated 246s ok 9 - by default, stringy numbers are not evaluated by numeric keywords 246s ok 10 - data was not mutated 246s ok 11 - by default, stringy numbers are not the same as numbers using comparison keywords 246s ok 12 - data was not mutated 246s # stringy_numbers = 1 246s ok 13 - strings cannot be used in place of numbers in schema for multipleOf 246s ok 14 - strings cannot be used in place of numbers in schema for maximum 246s ok 15 - strings cannot be used in place of numbers in schema for exclusiveMaximum 246s ok 16 - strings cannot be used in place of numbers in schema for minimum 246s ok 17 - strings cannot be used in place of numbers in schema for exclusiveMinimum 246s ok 18 - strings that do not look like numbers are never valid as numbers 246s ok 19 - using stringy numbers, numeric strings are treated as numbers but are still not always integers 246s ok 20 - real numbers are always evaluated 246s ok 21 - with the config enabled, stringy numbers are treated as numbers by numeric keywords 246s ok 22 - data was not mutated 246s ok 23 - with the config enabled, stringy numbers are the same as numbers using comparison keywords 246s ok 24 - data was not mutated 246s 1..24 246s ok 247s t/traverse.t ............................ 247s # Subtest: traversal with callbacks 247s ok 1 - errors encountered during traversal are returned 247s ok 2 - callback for erroneous keyword was not called 247s ok 3 - extracted all the real $refs out of the schema, with locations and canonical targets 247s ok 4 - identified all subschemas 247s 1..4 247s ok 1 - traversal with callbacks 247s # Subtest: errors when parsing $schema keyword 247s ok 1 - $schema is not a string 247s ok 2 - $schema is not a URI 247s 1..2 247s ok 2 - errors when parsing $schema keyword 247s # Subtest: default metaschema 247s ok 1 - dialect is properly determined 247s ok 2 - error within $defs is found, showing both Core and Applicator vocabularies are used 247s 1..2 247s ok 3 - default metaschema 247s # Subtest: traversing a dialect with different core keywords 247s ok 1 - dialect changes at root, with $id - dialect is switched in time to get a new keyword list for the core vocabulary 247s ok 2 - other $state information is correct 247s ok 3 - no errors when parsing this schema 247s ok 4 - switched dialect in time to extract all identifiers, from root and definition 247s ok 5 - dialect changes at root, no $id - dialect is switched in time to get a new keyword list for the core vocabulary 247s ok 6 - dialect changes below root - dialect is switched in time to get a new keyword list for the core vocabulary 247s 1..6 247s ok 4 - traversing a dialect with different core keywords 247s # Subtest: $schema without an $id, below the root 247s ok 1 - $schema cannot exist without an $id, or at the root 247s 1..1 247s ok 5 - $schema without an $id, below the root 247s # Subtest: duplicate identifiers 247s ok 1 - detected colliding $ids within a single schema 247s ok 2 - two anchors with different base uris are acceptable 247s ok 3 - detected colliding $anchors within a single schema 247s 1..3 247s ok 6 - duplicate identifiers 247s # Subtest: $anchor without $id 247s ok 1 - found anchor at root, without an $id to pre-populate the identifiers hash 247s ok 2 - found anchor within schema, without an $id to pre-populate the identifiers hash 247s 1..2 247s ok 7 - $anchor without $id 247s # Subtest: traverse with overridden specification_version 247s ok 1 - $state is correct with no $schema keyword, no overrides 247s ok 2 - $state is correct with a $schema keyword, no overrides 247s ok 3 - $state is correct with no $schema keyword, and an overridden specification_version 247s ok 4 - $state is correct with a $schema keyword, and an overridden specification_version 247s 1..4 247s ok 8 - traverse with overridden specification_version 247s # Subtest: traverse with overridden metaschema_uri 247s ok 1 - metaschema_uri is not a known uri 247s ok 2 - boolean schema: metaschema_uri is overridden with a bad schema: same errors are returned 247s ok 3 - object schema: metaschema_uri is overridden with a bad schema: same errors are returned 247s ok 4 - metaschema_uri is overridden with a bad schema and there is a traversal path: errors contain the right locations 247s ok 5 - determined specification version and vocabularies to use for this schema from override 247s ok 6 - determined specification version and vocabularies to use for this schema from $schema keyword 247s ok 7 - when $schema keyword is used, custom metaschema_uri is never parsed, so there are no errors 247s 1..7 247s ok 9 - traverse with overridden metaschema_uri 247s # Subtest: start traversing below the document root 247s ok 1 - identified the overridden location of all errors during traverse 247s ok 2 - identifiers are correctly extracted when traversing below the document root 247s ok 3 - identifiers are correctly extracted when traversing below the document root, with anchor 247s 1..3 247s ok 10 - start traversing below the document root 247s 1..10 247s ok 247s t/type.t ................................ 247s # Subtest: inflated data, type: array 247s ok 1 - is_type("array", []) is true 247s ok 2 - get_type([]) = array 247s ok 3 - is_type("boolean", []) is false 247s ok 4 - is_type("integer", []) is false 247s ok 5 - is_type("null", []) is false 247s ok 6 - is_type("number", []) is false 247s ok 7 - is_type("object", []) is false 247s ok 8 - is_type("string", []) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("array", [1]) is true 247s ok 11 - get_type([1]) = array 247s ok 12 - is_type("boolean", [1]) is false 247s ok 13 - is_type("integer", [1]) is false 247s ok 14 - is_type("null", [1]) is false 247s ok 15 - is_type("number", [1]) is false 247s ok 16 - is_type("object", [1]) is false 247s ok 17 - is_type("string", [1]) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s 1..18 247s ok 1 - inflated data, type: array 247s # Subtest: inflated data, type: boolean 247s ok 1 - is_type("boolean", false) is true 247s ok 2 - get_type(false) = boolean 247s ok 3 - is_type("array", false) is false 247s ok 4 - is_type("integer", false) is false 247s ok 5 - is_type("null", false) is false 247s ok 6 - is_type("number", false) is false 247s ok 7 - is_type("object", false) is false 247s ok 8 - is_type("string", false) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("boolean", true) is true 247s ok 11 - get_type(true) = boolean 247s ok 12 - is_type("array", true) is false 247s ok 13 - is_type("integer", true) is false 247s ok 14 - is_type("null", true) is false 247s ok 15 - is_type("number", true) is false 247s ok 16 - is_type("object", true) is false 247s ok 17 - is_type("string", true) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s 1..18 247s ok 2 - inflated data, type: boolean 247s # Subtest: inflated data, type: integer 247s ok 1 - is_type("integer", 0) is true 247s ok 2 - is_type("number", 0) is true 247s ok 3 - get_type(0) = integer 247s ok 4 - is_type("array", 0) is false 247s ok 5 - is_type("boolean", 0) is false 247s ok 6 - is_type("null", 0) is false 247s ok 7 - is_type("object", 0) is false 247s ok 8 - is_type("string", 0) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("integer", -1) is true 247s ok 11 - is_type("number", -1) is true 247s ok 12 - get_type(-1) = integer 247s ok 13 - is_type("array", -1) is false 247s ok 14 - is_type("boolean", -1) is false 247s ok 15 - is_type("null", -1) is false 247s ok 16 - is_type("object", -1) is false 247s ok 17 - is_type("string", -1) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s ok 19 - is_type("integer", 2) is true 247s ok 20 - is_type("number", 2) is true 247s ok 21 - get_type(2) = integer 247s ok 22 - is_type("array", 2) is false 247s ok 23 - is_type("boolean", 2) is false 247s ok 24 - is_type("null", 2) is false 247s ok 25 - is_type("object", 2) is false 247s ok 26 - is_type("string", 2) is false 247s ok 27 - data is not tampered with while it is tested (not dualvar) 247s ok 28 - is_type("integer", 2.0) is true 247s ok 29 - is_type("number", 2.0) is true 247s ok 30 - get_type(2.0) = integer 247s ok 31 - is_type("array", 2.0) is false 247s ok 32 - is_type("boolean", 2.0) is false 247s ok 33 - is_type("null", 2.0) is false 247s ok 34 - is_type("object", 2.0) is false 247s ok 35 - is_type("string", 2.0) is false 247s ok 36 - data is not tampered with while it is tested (not dualvar) 247s ok 37 - is_type("integer", 2147483647) is true 247s ok 38 - is_type("number", 2147483647) is true 247s ok 39 - get_type(2147483647) = integer 247s ok 40 - is_type("array", 2147483647) is false 247s ok 41 - is_type("boolean", 2147483647) is false 247s ok 42 - is_type("null", 2147483647) is false 247s ok 43 - is_type("object", 2147483647) is false 247s ok 44 - is_type("string", 2147483647) is false 247s ok 45 - data is not tampered with while it is tested (not dualvar) 247s ok 46 - is_type("integer", 2147483648.0) is true 247s ok 47 - is_type("number", 2147483648.0) is true 247s ok 48 - get_type(2147483648.0) = integer 247s ok 49 - is_type("array", 2147483648.0) is false 247s ok 50 - is_type("boolean", 2147483648.0) is false 247s ok 51 - is_type("null", 2147483648.0) is false 247s ok 52 - is_type("object", 2147483648.0) is false 247s ok 53 - is_type("string", 2147483648.0) is false 247s ok 54 - data is not tampered with while it is tested (not dualvar) 247s ok 55 - is_type("integer", 9.22337203685478e+18) is true 247s ok 56 - is_type("number", 9.22337203685478e+18) is true 247s ok 57 - get_type(9.22337203685478e+18) = integer 247s ok 58 - is_type("array", 9.22337203685478e+18) is false 247s ok 59 - is_type("boolean", 9.22337203685478e+18) is false 247s ok 60 - is_type("null", 9.22337203685478e+18) is false 247s ok 61 - is_type("object", 9.22337203685478e+18) is false 247s ok 62 - is_type("string", 9.22337203685478e+18) is false 247s ok 63 - data is not tampered with while it is tested (not dualvar) 247s ok 64 - is_type("integer", 9.22337203685478e+18) is true 247s ok 65 - is_type("number", 9.22337203685478e+18) is true 247s ok 66 - get_type(9.22337203685478e+18) = integer 247s ok 67 - is_type("array", 9.22337203685478e+18) is false 247s ok 68 - is_type("boolean", 9.22337203685478e+18) is false 247s ok 69 - is_type("null", 9.22337203685478e+18) is false 247s ok 70 - is_type("object", 9.22337203685478e+18) is false 247s ok 71 - is_type("string", 9.22337203685478e+18) is false 247s ok 72 - data is not tampered with while it is tested (not dualvar) 247s ok 73 - is_type("integer", 1.84467440737096e+19) is true 247s ok 74 - is_type("number", 1.84467440737096e+19) is true 247s ok 75 - get_type(1.84467440737096e+19) = integer 247s ok 76 - is_type("array", 1.84467440737096e+19) is false 247s ok 77 - is_type("boolean", 1.84467440737096e+19) is false 247s ok 78 - is_type("null", 1.84467440737096e+19) is false 247s ok 79 - is_type("object", 1.84467440737096e+19) is false 247s ok 80 - is_type("string", 1.84467440737096e+19) is false 247s ok 81 - data is not tampered with while it is tested (not dualvar) 247s ok 82 - is_type("integer", 3.68934881474191e+19) is true 247s ok 83 - is_type("number", 3.68934881474191e+19) is true 247s ok 84 - get_type(3.68934881474191e+19) = integer 247s ok 85 - is_type("array", 3.68934881474191e+19) is false 247s ok 86 - is_type("boolean", 3.68934881474191e+19) is false 247s ok 87 - is_type("null", 3.68934881474191e+19) is false 247s ok 88 - is_type("object", 3.68934881474191e+19) is false 247s ok 89 - is_type("string", 3.68934881474191e+19) is false 247s ok 90 - data is not tampered with while it is tested (not dualvar) 247s ok 91 - is_type("integer", 1000000000000000) is true 247s ok 92 - is_type("number", 1000000000000000) is true 247s ok 93 - get_type(1000000000000000) = integer 247s ok 94 - is_type("array", 1000000000000000) is false 247s ok 95 - is_type("boolean", 1000000000000000) is false 247s ok 96 - is_type("null", 1000000000000000) is false 247s ok 97 - is_type("object", 1000000000000000) is false 247s ok 98 - is_type("string", 1000000000000000) is false 247s ok 99 - data is not tampered with while it is tested (not dualvar) 247s ok 100 - is_type("integer", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 247s ok 101 - is_type("number", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 247s ok 102 - get_type(Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 247s ok 103 - is_type("array", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 104 - is_type("boolean", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 105 - is_type("null", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 106 - is_type("object", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 107 - is_type("string", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 108 - data is not tampered with while it is tested (not dualvar) 247s ok 109 - is_type("integer", Math::BigInt->new('1')) is true 247s ok 110 - is_type("number", Math::BigInt->new('1')) is true 247s ok 111 - get_type(Math::BigInt->new('1')) = integer 247s ok 112 - is_type("array", Math::BigInt->new('1')) is false 247s ok 113 - is_type("boolean", Math::BigInt->new('1')) is false 247s ok 114 - is_type("null", Math::BigInt->new('1')) is false 247s ok 115 - is_type("object", Math::BigInt->new('1')) is false 247s ok 116 - is_type("string", Math::BigInt->new('1')) is false 247s ok 117 - data is not tampered with while it is tested (not dualvar) 247s ok 118 - is_type("integer", Math::BigInt->new('1')) is true 247s ok 119 - is_type("number", Math::BigInt->new('1')) is true 247s ok 120 - get_type(Math::BigInt->new('1')) = integer 247s ok 121 - is_type("array", Math::BigInt->new('1')) is false 247s ok 122 - is_type("boolean", Math::BigInt->new('1')) is false 247s ok 123 - is_type("null", Math::BigInt->new('1')) is false 247s ok 124 - is_type("object", Math::BigInt->new('1')) is false 247s ok 125 - is_type("string", Math::BigInt->new('1')) is false 247s ok 126 - data is not tampered with while it is tested (not dualvar) 247s ok 127 - is_type("integer", Math::BigInt->new('12345123451234512345')) is true 247s ok 128 - is_type("number", Math::BigInt->new('12345123451234512345')) is true 247s ok 129 - get_type(Math::BigInt->new('12345123451234512345')) = integer 247s ok 130 - is_type("array", Math::BigInt->new('12345123451234512345')) is false 247s ok 131 - is_type("boolean", Math::BigInt->new('12345123451234512345')) is false 247s ok 132 - is_type("null", Math::BigInt->new('12345123451234512345')) is false 247s ok 133 - is_type("object", Math::BigInt->new('12345123451234512345')) is false 247s ok 134 - is_type("string", Math::BigInt->new('12345123451234512345')) is false 247s ok 135 - data is not tampered with while it is tested (not dualvar) 247s ok 136 - is_type("integer", Math::BigFloat->new('12345123451234512345')) is true 247s ok 137 - is_type("number", Math::BigFloat->new('12345123451234512345')) is true 247s ok 138 - get_type(Math::BigFloat->new('12345123451234512345')) = integer 247s ok 139 - is_type("array", Math::BigFloat->new('12345123451234512345')) is false 247s ok 140 - is_type("boolean", Math::BigFloat->new('12345123451234512345')) is false 247s ok 141 - is_type("null", Math::BigFloat->new('12345123451234512345')) is false 247s ok 142 - is_type("object", Math::BigFloat->new('12345123451234512345')) is false 247s ok 143 - is_type("string", Math::BigFloat->new('12345123451234512345')) is false 247s ok 144 - data is not tampered with while it is tested (not dualvar) 247s ok 145 - is_type("integer", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 247s ok 146 - is_type("number", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 247s ok 147 - get_type(Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 247s ok 148 - is_type("array", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 149 - is_type("boolean", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 150 - is_type("null", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 151 - is_type("object", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 152 - is_type("string", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 153 - data is not tampered with while it is tested (not dualvar) 247s ok 154 - is_type("integer", Math::BigFloat->new('20000000000000')) is true 247s ok 155 - is_type("number", Math::BigFloat->new('20000000000000')) is true 247s ok 156 - get_type(Math::BigFloat->new('20000000000000')) = integer 247s ok 157 - is_type("array", Math::BigFloat->new('20000000000000')) is false 247s ok 158 - is_type("boolean", Math::BigFloat->new('20000000000000')) is false 247s ok 159 - is_type("null", Math::BigFloat->new('20000000000000')) is false 247s ok 160 - is_type("object", Math::BigFloat->new('20000000000000')) is false 247s ok 161 - is_type("string", Math::BigFloat->new('20000000000000')) is false 247s ok 162 - data is not tampered with while it is tested (not dualvar) 247s ok 163 - is_type("integer", Math::BigFloat->new('20')) is true 247s ok 164 - is_type("number", Math::BigFloat->new('20')) is true 247s ok 165 - get_type(Math::BigFloat->new('20')) = integer 247s ok 166 - is_type("array", Math::BigFloat->new('20')) is false 247s ok 167 - is_type("boolean", Math::BigFloat->new('20')) is false 247s ok 168 - is_type("null", Math::BigFloat->new('20')) is false 247s ok 169 - is_type("object", Math::BigFloat->new('20')) is false 247s ok 170 - is_type("string", Math::BigFloat->new('20')) is false 247s ok 171 - data is not tampered with while it is tested (not dualvar) 247s ok 172 - is_type("integer", Math::BigFloat->new('1')) is true 247s ok 173 - is_type("number", Math::BigFloat->new('1')) is true 247s ok 174 - get_type(Math::BigFloat->new('1')) = integer 247s ok 175 - is_type("array", Math::BigFloat->new('1')) is false 247s ok 176 - is_type("boolean", Math::BigFloat->new('1')) is false 247s ok 177 - is_type("null", Math::BigFloat->new('1')) is false 247s ok 178 - is_type("object", Math::BigFloat->new('1')) is false 247s ok 179 - is_type("string", Math::BigFloat->new('1')) is false 247s ok 180 - data is not tampered with while it is tested (not dualvar) 247s ok 181 - is_type("integer", Math::BigFloat->new('1')) is true 247s ok 182 - is_type("number", Math::BigFloat->new('1')) is true 247s ok 183 - get_type(Math::BigFloat->new('1')) = integer 247s ok 184 - is_type("array", Math::BigFloat->new('1')) is false 247s ok 185 - is_type("boolean", Math::BigFloat->new('1')) is false 247s ok 186 - is_type("null", Math::BigFloat->new('1')) is false 247s ok 187 - is_type("object", Math::BigFloat->new('1')) is false 247s ok 188 - is_type("string", Math::BigFloat->new('1')) is false 247s ok 189 - data is not tampered with while it is tested (not dualvar) 247s 1..189 247s ok 3 - inflated data, type: integer 247s # Subtest: inflated data, type: null 247s ok 1 - is_type("null", null) is true 247s ok 2 - get_type(null) = null 247s ok 3 - is_type("array", null) is false 247s ok 4 - is_type("boolean", null) is false 247s ok 5 - is_type("integer", null) is false 247s ok 6 - is_type("number", null) is false 247s ok 7 - is_type("object", null) is false 247s ok 8 - is_type("string", null) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s 1..9 247s ok 4 - inflated data, type: null 247s # Subtest: inflated data, type: number 247s ok 1 - is_type("number", 3.1) is true 247s ok 2 - get_type(3.1) = number 247s ok 3 - is_type("array", 3.1) is false 247s ok 4 - is_type("boolean", 3.1) is false 247s ok 5 - is_type("integer", 3.1) is false 247s ok 6 - is_type("null", 3.1) is false 247s ok 7 - is_type("object", 3.1) is false 247s ok 8 - is_type("string", 3.1) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("number", 12345678901.2) is true 247s ok 11 - get_type(12345678901.2) = number 247s ok 12 - is_type("array", 12345678901.2) is false 247s ok 13 - is_type("boolean", 12345678901.2) is false 247s ok 14 - is_type("integer", 12345678901.2) is false 247s ok 15 - is_type("null", 12345678901.2) is false 247s ok 16 - is_type("object", 12345678901.2) is false 247s ok 17 - is_type("string", 12345678901.2) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s ok 19 - is_type("number", Math::BigFloat->new('0.123')) is true 247s ok 20 - get_type(Math::BigFloat->new('0.123')) = number 247s ok 21 - is_type("array", Math::BigFloat->new('0.123')) is false 247s ok 22 - is_type("boolean", Math::BigFloat->new('0.123')) is false 247s ok 23 - is_type("integer", Math::BigFloat->new('0.123')) is false 247s ok 24 - is_type("null", Math::BigFloat->new('0.123')) is false 247s ok 25 - is_type("object", Math::BigFloat->new('0.123')) is false 247s ok 26 - is_type("string", Math::BigFloat->new('0.123')) is false 247s ok 27 - data is not tampered with while it is tested (not dualvar) 247s ok 28 - is_type("number", Math::BigFloat->new('12345123451234512345.2')) is true 247s ok 29 - get_type(Math::BigFloat->new('12345123451234512345.2')) = number 247s ok 30 - is_type("array", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 31 - is_type("boolean", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 32 - is_type("integer", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 33 - is_type("null", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 34 - is_type("object", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 35 - is_type("string", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 36 - data is not tampered with while it is tested (not dualvar) 247s 1..36 247s ok 5 - inflated data, type: number 247s # Subtest: inflated data, type: object 247s ok 1 - is_type("object", {}) is true 247s ok 2 - get_type({}) = object 247s ok 3 - is_type("array", {}) is false 247s ok 4 - is_type("boolean", {}) is false 247s ok 5 - is_type("integer", {}) is false 247s ok 6 - is_type("null", {}) is false 247s ok 7 - is_type("number", {}) is false 247s ok 8 - is_type("string", {}) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("object", {"a" : 1}) is true 247s ok 11 - get_type({"a" : 1}) = object 247s ok 12 - is_type("array", {"a" : 1}) is false 247s ok 13 - is_type("boolean", {"a" : 1}) is false 247s ok 14 - is_type("integer", {"a" : 1}) is false 247s ok 15 - is_type("null", {"a" : 1}) is false 247s ok 16 - is_type("number", {"a" : 1}) is false 247s ok 17 - is_type("string", {"a" : 1}) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s 1..18 247s ok 6 - inflated data, type: object 247s # Subtest: inflated data, type: string 247s ok 1 - is_type("string", "") is true 247s ok 2 - get_type("") = string 247s ok 3 - is_type("array", "") is false 247s ok 4 - is_type("boolean", "") is false 247s ok 5 - is_type("integer", "") is false 247s ok 6 - is_type("null", "") is false 247s ok 7 - is_type("number", "") is false 247s ok 8 - is_type("object", "") is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("string", "0") is true 247s ok 11 - get_type("0") = string 247s ok 12 - is_type("array", "0") is false 247s ok 13 - is_type("boolean", "0") is false 247s ok 14 - is_type("integer", "0") is false 247s ok 15 - is_type("null", "0") is false 247s ok 16 - is_type("number", "0") is false 247s ok 17 - is_type("object", "0") is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s ok 19 - is_type("string", "-1") is true 247s ok 20 - get_type("-1") = string 247s ok 21 - is_type("array", "-1") is false 247s ok 22 - is_type("boolean", "-1") is false 247s ok 23 - is_type("integer", "-1") is false 247s ok 24 - is_type("null", "-1") is false 247s ok 25 - is_type("number", "-1") is false 247s ok 26 - is_type("object", "-1") is false 247s ok 27 - data is not tampered with while it is tested (not dualvar) 247s ok 28 - is_type("string", "2") is true 247s ok 29 - get_type("2") = string 247s ok 30 - is_type("array", "2") is false 247s ok 31 - is_type("boolean", "2") is false 247s ok 32 - is_type("integer", "2") is false 247s ok 33 - is_type("null", "2") is false 247s ok 34 - is_type("number", "2") is false 247s ok 35 - is_type("object", "2") is false 247s ok 36 - data is not tampered with while it is tested (not dualvar) 247s ok 37 - is_type("string", "2.0") is true 247s ok 38 - get_type("2.0") = string 247s ok 39 - is_type("array", "2.0") is false 247s ok 40 - is_type("boolean", "2.0") is false 247s ok 41 - is_type("integer", "2.0") is false 247s ok 42 - is_type("null", "2.0") is false 247s ok 43 - is_type("number", "2.0") is false 247s ok 44 - is_type("object", "2.0") is false 247s ok 45 - data is not tampered with while it is tested (not dualvar) 247s ok 46 - is_type("string", "3.1") is true 247s ok 47 - get_type("3.1") = string 247s ok 48 - is_type("array", "3.1") is false 247s ok 49 - is_type("boolean", "3.1") is false 247s ok 50 - is_type("integer", "3.1") is false 247s ok 51 - is_type("null", "3.1") is false 247s ok 52 - is_type("number", "3.1") is false 247s ok 53 - is_type("object", "3.1") is false 247s ok 54 - data is not tampered with while it is tested (not dualvar) 247s ok 55 - is_type("string", "école") is true 247s ok 56 - get_type("école") = string 247s ok 57 - is_type("array", "école") is false 247s ok 58 - is_type("boolean", "école") is false 247s ok 59 - is_type("integer", "école") is false 247s ok 60 - is_type("null", "école") is false 247s ok 61 - is_type("number", "école") is false 247s ok 62 - is_type("object", "école") is false 247s ok 63 - data is not tampered with while it is tested (not dualvar) 247s ok 64 - is_type("string", "ಠ_ಠ") is true 247s ok 65 - get_type("ಠ_ಠ") = string 247s ok 66 - is_type("array", "ಠ_ಠ") is false 247s ok 67 - is_type("boolean", "ಠ_ಠ") is false 247s ok 68 - is_type("integer", "ಠ_ಠ") is false 247s ok 69 - is_type("null", "ಠ_ಠ") is false 247s ok 70 - is_type("number", "ಠ_ಠ") is false 247s ok 71 - is_type("object", "ಠ_ಠ") is false 247s ok 72 - data is not tampered with while it is tested (not dualvar) 247s 1..72 247s ok 7 - inflated data, type: string 247s # Subtest: JSON-encoded data, type: array 247s ok 1 - is_type("array", []) is true 247s ok 2 - get_type([]) = array 247s ok 3 - is_type("boolean", []) is false 247s ok 4 - is_type("integer", []) is false 247s ok 5 - is_type("null", []) is false 247s ok 6 - is_type("number", []) is false 247s ok 7 - is_type("object", []) is false 247s ok 8 - is_type("string", []) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("array", [1]) is true 247s ok 11 - get_type([1]) = array 247s ok 12 - is_type("boolean", [1]) is false 247s ok 13 - is_type("integer", [1]) is false 247s ok 14 - is_type("null", [1]) is false 247s ok 15 - is_type("number", [1]) is false 247s ok 16 - is_type("object", [1]) is false 247s ok 17 - is_type("string", [1]) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s 1..18 247s ok 8 - JSON-encoded data, type: array 247s # Subtest: JSON-encoded data, type: boolean 247s ok 1 - is_type("boolean", false) is true 247s ok 2 - get_type(false) = boolean 247s ok 3 - is_type("array", false) is false 247s ok 4 - is_type("integer", false) is false 247s ok 5 - is_type("null", false) is false 247s ok 6 - is_type("number", false) is false 247s ok 7 - is_type("object", false) is false 247s ok 8 - is_type("string", false) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("boolean", true) is true 247s ok 11 - get_type(true) = boolean 247s ok 12 - is_type("array", true) is false 247s ok 13 - is_type("integer", true) is false 247s ok 14 - is_type("null", true) is false 247s ok 15 - is_type("number", true) is false 247s ok 16 - is_type("object", true) is false 247s ok 17 - is_type("string", true) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s 1..18 247s ok 9 - JSON-encoded data, type: boolean 247s # Subtest: JSON-encoded data, type: integer 247s ok 1 - is_type("integer", 0) is true 247s ok 2 - is_type("number", 0) is true 247s ok 3 - get_type(0) = integer 247s ok 4 - is_type("array", 0) is false 247s ok 5 - is_type("boolean", 0) is false 247s ok 6 - is_type("null", 0) is false 247s ok 7 - is_type("object", 0) is false 247s ok 8 - is_type("string", 0) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("integer", -1) is true 247s ok 11 - is_type("number", -1) is true 247s ok 12 - get_type(-1) = integer 247s ok 13 - is_type("array", -1) is false 247s ok 14 - is_type("boolean", -1) is false 247s ok 15 - is_type("null", -1) is false 247s ok 16 - is_type("object", -1) is false 247s ok 17 - is_type("string", -1) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s ok 19 - is_type("integer", Math::BigFloat->new('2')) is true 247s ok 20 - is_type("number", Math::BigFloat->new('2')) is true 247s ok 21 - get_type(Math::BigFloat->new('2')) = integer 247s ok 22 - is_type("array", Math::BigFloat->new('2')) is false 247s ok 23 - is_type("boolean", Math::BigFloat->new('2')) is false 247s ok 24 - is_type("null", Math::BigFloat->new('2')) is false 247s ok 25 - is_type("object", Math::BigFloat->new('2')) is false 247s ok 26 - is_type("string", Math::BigFloat->new('2')) is false 247s ok 27 - data is not tampered with while it is tested (not dualvar) 247s ok 28 - is_type("integer", 2147483647) is true 247s ok 29 - is_type("number", 2147483647) is true 247s ok 30 - get_type(2147483647) = integer 247s ok 31 - is_type("array", 2147483647) is false 247s ok 32 - is_type("boolean", 2147483647) is false 247s ok 33 - is_type("null", 2147483647) is false 247s ok 34 - is_type("object", 2147483647) is false 247s ok 35 - is_type("string", 2147483647) is false 247s ok 36 - data is not tampered with while it is tested (not dualvar) 247s ok 37 - is_type("integer", 2147483648) is true 247s ok 38 - is_type("number", 2147483648) is true 247s ok 39 - get_type(2147483648) = integer 247s ok 40 - is_type("array", 2147483648) is false 247s ok 41 - is_type("boolean", 2147483648) is false 247s ok 42 - is_type("null", 2147483648) is false 247s ok 43 - is_type("object", 2147483648) is false 247s ok 44 - is_type("string", 2147483648) is false 247s ok 45 - data is not tampered with while it is tested (not dualvar) 247s ok 46 - is_type("integer", Math::BigFloat->new('9223372036854780000')) is true 247s ok 47 - is_type("number", Math::BigFloat->new('9223372036854780000')) is true 247s ok 48 - get_type(Math::BigFloat->new('9223372036854780000')) = integer 247s ok 49 - is_type("array", Math::BigFloat->new('9223372036854780000')) is false 247s ok 50 - is_type("boolean", Math::BigFloat->new('9223372036854780000')) is false 247s ok 51 - is_type("null", Math::BigFloat->new('9223372036854780000')) is false 247s ok 52 - is_type("object", Math::BigFloat->new('9223372036854780000')) is false 247s ok 53 - is_type("string", Math::BigFloat->new('9223372036854780000')) is false 247s ok 54 - data is not tampered with while it is tested (not dualvar) 247s ok 55 - is_type("integer", Math::BigFloat->new('9223372036854780000')) is true 247s ok 56 - is_type("number", Math::BigFloat->new('9223372036854780000')) is true 247s ok 57 - get_type(Math::BigFloat->new('9223372036854780000')) = integer 247s ok 58 - is_type("array", Math::BigFloat->new('9223372036854780000')) is false 247s ok 59 - is_type("boolean", Math::BigFloat->new('9223372036854780000')) is false 247s ok 60 - is_type("null", Math::BigFloat->new('9223372036854780000')) is false 247s ok 61 - is_type("object", Math::BigFloat->new('9223372036854780000')) is false 247s ok 62 - is_type("string", Math::BigFloat->new('9223372036854780000')) is false 247s ok 63 - data is not tampered with while it is tested (not dualvar) 247s ok 64 - is_type("integer", Math::BigFloat->new('18446744073709600000')) is true 247s ok 65 - is_type("number", Math::BigFloat->new('18446744073709600000')) is true 247s ok 66 - get_type(Math::BigFloat->new('18446744073709600000')) = integer 247s ok 67 - is_type("array", Math::BigFloat->new('18446744073709600000')) is false 247s ok 68 - is_type("boolean", Math::BigFloat->new('18446744073709600000')) is false 247s ok 69 - is_type("null", Math::BigFloat->new('18446744073709600000')) is false 247s ok 70 - is_type("object", Math::BigFloat->new('18446744073709600000')) is false 247s ok 71 - is_type("string", Math::BigFloat->new('18446744073709600000')) is false 247s ok 72 - data is not tampered with while it is tested (not dualvar) 247s ok 73 - is_type("integer", Math::BigFloat->new('36893488147419100000')) is true 247s ok 74 - is_type("number", Math::BigFloat->new('36893488147419100000')) is true 247s ok 75 - get_type(Math::BigFloat->new('36893488147419100000')) = integer 247s ok 76 - is_type("array", Math::BigFloat->new('36893488147419100000')) is false 247s ok 77 - is_type("boolean", Math::BigFloat->new('36893488147419100000')) is false 247s ok 78 - is_type("null", Math::BigFloat->new('36893488147419100000')) is false 247s ok 79 - is_type("object", Math::BigFloat->new('36893488147419100000')) is false 247s ok 80 - is_type("string", Math::BigFloat->new('36893488147419100000')) is false 247s ok 81 - data is not tampered with while it is tested (not dualvar) 247s ok 82 - is_type("integer", 1000000000000000) is true 247s ok 83 - is_type("number", 1000000000000000) is true 247s ok 84 - get_type(1000000000000000) = integer 247s ok 85 - is_type("array", 1000000000000000) is false 247s ok 86 - is_type("boolean", 1000000000000000) is false 247s ok 87 - is_type("null", 1000000000000000) is false 247s ok 88 - is_type("object", 1000000000000000) is false 247s ok 89 - is_type("string", 1000000000000000) is false 247s ok 90 - data is not tampered with while it is tested (not dualvar) 247s ok 91 - is_type("integer", Math::BigFloat->new('20')) is true 247s ok 92 - is_type("number", Math::BigFloat->new('20')) is true 247s ok 93 - get_type(Math::BigFloat->new('20')) = integer 247s ok 94 - is_type("array", Math::BigFloat->new('20')) is false 247s ok 95 - is_type("boolean", Math::BigFloat->new('20')) is false 247s ok 96 - is_type("null", Math::BigFloat->new('20')) is false 247s ok 97 - is_type("object", Math::BigFloat->new('20')) is false 247s ok 98 - is_type("string", Math::BigFloat->new('20')) is false 247s ok 99 - data is not tampered with while it is tested (not dualvar) 247s ok 100 - is_type("integer", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 247s ok 101 - is_type("number", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 247s ok 102 - get_type(Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 247s ok 103 - is_type("array", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 104 - is_type("boolean", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 105 - is_type("null", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 106 - is_type("object", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 107 - is_type("string", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 247s ok 108 - data is not tampered with while it is tested (not dualvar) 247s ok 109 - is_type("integer", Math::BigFloat->new('12345123451234512345')) is true 247s ok 110 - is_type("number", Math::BigFloat->new('12345123451234512345')) is true 247s ok 111 - get_type(Math::BigFloat->new('12345123451234512345')) = integer 247s ok 112 - is_type("array", Math::BigFloat->new('12345123451234512345')) is false 247s ok 113 - is_type("boolean", Math::BigFloat->new('12345123451234512345')) is false 247s ok 114 - is_type("null", Math::BigFloat->new('12345123451234512345')) is false 247s ok 115 - is_type("object", Math::BigFloat->new('12345123451234512345')) is false 247s ok 116 - is_type("string", Math::BigFloat->new('12345123451234512345')) is false 247s ok 117 - data is not tampered with while it is tested (not dualvar) 247s 1..117 247s ok 10 - JSON-encoded data, type: integer 247s # Subtest: JSON-encoded data, type: null 247s ok 1 - is_type("null", null) is true 247s ok 2 - get_type(null) = null 247s ok 3 - is_type("array", null) is false 247s ok 4 - is_type("boolean", null) is false 247s ok 5 - is_type("integer", null) is false 247s ok 6 - is_type("number", null) is false 247s ok 7 - is_type("object", null) is false 247s ok 8 - is_type("string", null) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s 1..9 247s ok 11 - JSON-encoded data, type: null 247s # Subtest: JSON-encoded data, type: number 247s ok 1 - is_type("number", Math::BigFloat->new('3.1')) is true 247s ok 2 - get_type(Math::BigFloat->new('3.1')) = number 247s ok 3 - is_type("array", Math::BigFloat->new('3.1')) is false 247s ok 4 - is_type("boolean", Math::BigFloat->new('3.1')) is false 247s ok 5 - is_type("integer", Math::BigFloat->new('3.1')) is false 247s ok 6 - is_type("null", Math::BigFloat->new('3.1')) is false 247s ok 7 - is_type("object", Math::BigFloat->new('3.1')) is false 247s ok 8 - is_type("string", Math::BigFloat->new('3.1')) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("number", Math::BigFloat->new('12345678901.2')) is true 247s ok 11 - get_type(Math::BigFloat->new('12345678901.2')) = number 247s ok 12 - is_type("array", Math::BigFloat->new('12345678901.2')) is false 247s ok 13 - is_type("boolean", Math::BigFloat->new('12345678901.2')) is false 247s ok 14 - is_type("integer", Math::BigFloat->new('12345678901.2')) is false 247s ok 15 - is_type("null", Math::BigFloat->new('12345678901.2')) is false 247s ok 16 - is_type("object", Math::BigFloat->new('12345678901.2')) is false 247s ok 17 - is_type("string", Math::BigFloat->new('12345678901.2')) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s ok 19 - is_type("number", Math::BigFloat->new('0.123')) is true 247s ok 20 - get_type(Math::BigFloat->new('0.123')) = number 247s ok 21 - is_type("array", Math::BigFloat->new('0.123')) is false 247s ok 22 - is_type("boolean", Math::BigFloat->new('0.123')) is false 247s ok 23 - is_type("integer", Math::BigFloat->new('0.123')) is false 247s ok 24 - is_type("null", Math::BigFloat->new('0.123')) is false 247s ok 25 - is_type("object", Math::BigFloat->new('0.123')) is false 247s ok 26 - is_type("string", Math::BigFloat->new('0.123')) is false 247s ok 27 - data is not tampered with while it is tested (not dualvar) 247s ok 28 - is_type("number", Math::BigFloat->new('12345123451234512345.2')) is true 247s ok 29 - get_type(Math::BigFloat->new('12345123451234512345.2')) = number 247s ok 30 - is_type("array", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 31 - is_type("boolean", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 32 - is_type("integer", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 33 - is_type("null", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 34 - is_type("object", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 35 - is_type("string", Math::BigFloat->new('12345123451234512345.2')) is false 247s ok 36 - data is not tampered with while it is tested (not dualvar) 247s 1..36 247s ok 12 - JSON-encoded data, type: number 247s # Subtest: JSON-encoded data, type: object 247s ok 1 - is_type("object", {}) is true 247s ok 2 - get_type({}) = object 247s ok 3 - is_type("array", {}) is false 247s ok 4 - is_type("boolean", {}) is false 247s ok 5 - is_type("integer", {}) is false 247s ok 6 - is_type("null", {}) is false 247s ok 7 - is_type("number", {}) is false 247s ok 8 - is_type("string", {}) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("object", {"a" : 1}) is true 247s ok 11 - get_type({"a" : 1}) = object 247s ok 12 - is_type("array", {"a" : 1}) is false 247s ok 13 - is_type("boolean", {"a" : 1}) is false 247s ok 14 - is_type("integer", {"a" : 1}) is false 247s ok 15 - is_type("null", {"a" : 1}) is false 247s ok 16 - is_type("number", {"a" : 1}) is false 247s ok 17 - is_type("string", {"a" : 1}) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s 1..18 247s ok 13 - JSON-encoded data, type: object 247s # Subtest: JSON-encoded data, type: string 247s ok 1 - is_type("string", "") is true 247s ok 2 - get_type("") = string 247s ok 3 - is_type("array", "") is false 247s ok 4 - is_type("boolean", "") is false 247s ok 5 - is_type("integer", "") is false 247s ok 6 - is_type("null", "") is false 247s ok 7 - is_type("number", "") is false 247s ok 8 - is_type("object", "") is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("string", "0") is true 247s ok 11 - get_type("0") = string 247s ok 12 - is_type("array", "0") is false 247s ok 13 - is_type("boolean", "0") is false 247s ok 14 - is_type("integer", "0") is false 247s ok 15 - is_type("null", "0") is false 247s ok 16 - is_type("number", "0") is false 247s ok 17 - is_type("object", "0") is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s ok 19 - is_type("string", "-1") is true 247s ok 20 - get_type("-1") = string 247s ok 21 - is_type("array", "-1") is false 247s ok 22 - is_type("boolean", "-1") is false 247s ok 23 - is_type("integer", "-1") is false 247s ok 24 - is_type("null", "-1") is false 247s ok 25 - is_type("number", "-1") is false 247s ok 26 - is_type("object", "-1") is false 247s ok 27 - data is not tampered with while it is tested (not dualvar) 247s ok 28 - is_type("string", "2.0") is true 247s ok 29 - get_type("2.0") = string 247s ok 30 - is_type("array", "2.0") is false 247s ok 31 - is_type("boolean", "2.0") is false 247s ok 32 - is_type("integer", "2.0") is false 247s ok 33 - is_type("null", "2.0") is false 247s ok 34 - is_type("number", "2.0") is false 247s ok 35 - is_type("object", "2.0") is false 247s ok 36 - data is not tampered with while it is tested (not dualvar) 247s ok 37 - is_type("string", "3.1") is true 247s ok 38 - get_type("3.1") = string 247s ok 39 - is_type("array", "3.1") is false 247s ok 40 - is_type("boolean", "3.1") is false 247s ok 41 - is_type("integer", "3.1") is false 247s ok 42 - is_type("null", "3.1") is false 247s ok 43 - is_type("number", "3.1") is false 247s ok 44 - is_type("object", "3.1") is false 247s ok 45 - data is not tampered with while it is tested (not dualvar) 247s ok 46 - is_type("string", "école") is true 247s ok 47 - get_type("école") = string 247s ok 48 - is_type("array", "école") is false 247s ok 49 - is_type("boolean", "école") is false 247s ok 50 - is_type("integer", "école") is false 247s ok 51 - is_type("null", "école") is false 247s ok 52 - is_type("number", "école") is false 247s ok 53 - is_type("object", "école") is false 247s ok 54 - data is not tampered with while it is tested (not dualvar) 247s ok 55 - is_type("string", "ಠ_ಠ") is true 247s ok 56 - get_type("ಠ_ಠ") = string 247s ok 57 - is_type("array", "ಠ_ಠ") is false 247s ok 58 - is_type("boolean", "ಠ_ಠ") is false 247s ok 59 - is_type("integer", "ಠ_ಠ") is false 247s ok 60 - is_type("null", "ಠ_ಠ") is false 247s ok 61 - is_type("number", "ಠ_ಠ") is false 247s ok 62 - is_type("object", "ಠ_ಠ") is false 247s ok 63 - data is not tampered with while it is tested (not dualvar) 247s 1..63 247s ok 14 - JSON-encoded data, type: string 247s # Subtest: integers and numbers in draft4 247s # Subtest: pre-inflated data 247s ok 1 - is_type("integer", 0) is true 247s ok 2 - is_type("number", 0) is true 247s ok 3 - get_type(0) = integer 247s ok 4 - is_type("null", 0) is false 247s ok 5 - is_type("boolean", 0) is false 247s ok 6 - is_type("object", 0) is false 247s ok 7 - is_type("array", 0) is false 247s ok 8 - is_type("string", 0) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("integer", -1) is true 247s ok 11 - is_type("number", -1) is true 247s ok 12 - get_type(-1) = integer 247s ok 13 - is_type("null", -1) is false 247s ok 14 - is_type("boolean", -1) is false 247s ok 15 - is_type("object", -1) is false 247s ok 16 - is_type("array", -1) is false 247s ok 17 - is_type("string", -1) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s ok 19 - is_type("integer", 2) is true 247s ok 20 - is_type("number", 2) is true 247s ok 21 - get_type(2) = integer 247s ok 22 - is_type("null", 2) is false 247s ok 23 - is_type("boolean", 2) is false 247s ok 24 - is_type("object", 2) is false 247s ok 25 - is_type("array", 2) is false 247s ok 26 - is_type("string", 2) is false 247s ok 27 - data is not tampered with while it is tested (not dualvar) 247s ok 28 - is_type("integer", Math::BigInt->new('2')) is true 247s ok 29 - is_type("number", Math::BigInt->new('2')) is true 247s ok 30 - get_type(Math::BigInt->new('2')) = integer 247s ok 31 - is_type("null", Math::BigInt->new('2')) is false 247s ok 32 - is_type("boolean", Math::BigInt->new('2')) is false 247s ok 33 - is_type("object", Math::BigInt->new('2')) is false 247s ok 34 - is_type("array", Math::BigInt->new('2')) is false 247s ok 35 - is_type("string", Math::BigInt->new('2')) is false 247s ok 36 - data is not tampered with while it is tested (not dualvar) 247s ok 37 - is_type("integer", Math::BigInt->new('1')) is true 247s ok 38 - is_type("number", Math::BigInt->new('1')) is true 247s ok 39 - get_type(Math::BigInt->new('1')) = integer 247s ok 40 - is_type("null", Math::BigInt->new('1')) is false 247s ok 41 - is_type("boolean", Math::BigInt->new('1')) is false 247s ok 42 - is_type("object", Math::BigInt->new('1')) is false 247s ok 43 - is_type("array", Math::BigInt->new('1')) is false 247s ok 44 - is_type("string", Math::BigInt->new('1')) is false 247s ok 45 - data is not tampered with while it is tested (not dualvar) 247s ok 46 - is_type("number", 3.1) is true 247s ok 47 - get_type(3.1) = number 247s ok 48 - is_type("null", 3.1) is false 247s ok 49 - is_type("boolean", 3.1) is false 247s ok 50 - is_type("object", 3.1) is false 247s ok 51 - is_type("array", 3.1) is false 247s ok 52 - is_type("string", 3.1) is false 247s ok 53 - is_type("integer", 3.1) is false 247s ok 54 - data is not tampered with while it is tested (not dualvar) 247s ok 55 - is_type("number", 2.0) is true 247s ok 56 - get_type(2.0) = number 247s ok 57 - is_type("null", 2.0) is false 247s ok 58 - is_type("boolean", 2.0) is false 247s ok 59 - is_type("object", 2.0) is false 247s ok 60 - is_type("array", 2.0) is false 247s ok 61 - is_type("string", 2.0) is false 247s ok 62 - is_type("integer", 2.0) is false 247s ok 63 - data is not tampered with while it is tested (not dualvar) 247s ok 64 - is_type("number", 12345678901.2) is true 247s ok 65 - get_type(12345678901.2) = number 247s ok 66 - is_type("null", 12345678901.2) is false 247s ok 67 - is_type("boolean", 12345678901.2) is false 247s ok 68 - is_type("object", 12345678901.2) is false 247s ok 69 - is_type("array", 12345678901.2) is false 247s ok 70 - is_type("string", 12345678901.2) is false 247s ok 71 - is_type("integer", 12345678901.2) is false 247s ok 72 - data is not tampered with while it is tested (not dualvar) 247s ok 73 - is_type("number", Math::BigFloat->new('0.123')) is true 247s ok 74 - get_type(Math::BigFloat->new('0.123')) = number 247s ok 75 - is_type("null", Math::BigFloat->new('0.123')) is false 247s ok 76 - is_type("boolean", Math::BigFloat->new('0.123')) is false 247s ok 77 - is_type("object", Math::BigFloat->new('0.123')) is false 247s ok 78 - is_type("array", Math::BigFloat->new('0.123')) is false 247s ok 79 - is_type("string", Math::BigFloat->new('0.123')) is false 247s ok 80 - is_type("integer", Math::BigFloat->new('0.123')) is false 247s ok 81 - data is not tampered with while it is tested (not dualvar) 247s ok 82 - is_type("number", Math::BigFloat->new('2')) is true 247s ok 83 - get_type(Math::BigFloat->new('2')) = number 247s ok 84 - is_type("null", Math::BigFloat->new('2')) is false 247s ok 85 - is_type("boolean", Math::BigFloat->new('2')) is false 247s ok 86 - is_type("object", Math::BigFloat->new('2')) is false 247s ok 87 - is_type("array", Math::BigFloat->new('2')) is false 247s ok 88 - is_type("string", Math::BigFloat->new('2')) is false 247s ok 89 - is_type("integer", Math::BigFloat->new('2')) is false 247s ok 90 - data is not tampered with while it is tested (not dualvar) 247s 1..90 247s ok 1 - pre-inflated data 247s # Subtest: data from encoded json 247s ok 1 - is_type("integer", 0) is true 247s ok 2 - is_type("number", 0) is true 247s ok 3 - get_type(0) = integer 247s ok 4 - is_type("null", 0) is false 247s ok 5 - is_type("boolean", 0) is false 247s ok 6 - is_type("object", 0) is false 247s ok 7 - is_type("array", 0) is false 247s ok 8 - is_type("string", 0) is false 247s ok 9 - data is not tampered with while it is tested (not dualvar) 247s ok 10 - is_type("integer", -1) is true 247s ok 11 - is_type("number", -1) is true 247s ok 12 - get_type(-1) = integer 247s ok 13 - is_type("null", -1) is false 247s ok 14 - is_type("boolean", -1) is false 247s ok 15 - is_type("object", -1) is false 247s ok 16 - is_type("array", -1) is false 247s ok 17 - is_type("string", -1) is false 247s ok 18 - data is not tampered with while it is tested (not dualvar) 247s ok 19 - is_type("integer", 1000000000000000) is true 247s ok 20 - is_type("number", 1000000000000000) is true 247s ok 21 - get_type(1000000000000000) = integer 247s ok 22 - is_type("null", 1000000000000000) is false 247s ok 23 - is_type("boolean", 1000000000000000) is false 247s ok 24 - is_type("object", 1000000000000000) is false 247s ok 25 - is_type("array", 1000000000000000) is false 247s ok 26 - is_type("string", 1000000000000000) is false 247s ok 27 - data is not tampered with while it is tested (not dualvar) 247s ok 28 - is_type("number", Math::BigFloat->new('3.1')) is true 247s ok 29 - get_type(Math::BigFloat->new('3.1')) = number 247s ok 30 - is_type("null", Math::BigFloat->new('3.1')) is false 247s ok 31 - is_type("boolean", Math::BigFloat->new('3.1')) is false 247s ok 32 - is_type("object", Math::BigFloat->new('3.1')) is false 247s ok 33 - is_type("array", Math::BigFloat->new('3.1')) is false 247s ok 34 - is_type("string", Math::BigFloat->new('3.1')) is false 247s ok 35 - is_type("integer", Math::BigFloat->new('3.1')) is false 247s ok 36 - data is not tampered with while it is tested (not dualvar) 247s ok 37 - is_type("number", Math::BigFloat->new('12345678901.2')) is true 247s ok 38 - get_type(Math::BigFloat->new('12345678901.2')) = number 247s ok 39 - is_type("null", Math::BigFloat->new('12345678901.2')) is false 247s ok 40 - is_type("boolean", Math::BigFloat->new('12345678901.2')) is false 247s ok 41 - is_type("object", Math::BigFloat->new('12345678901.2')) is false 247s ok 42 - is_type("array", Math::BigFloat->new('12345678901.2')) is false 247s ok 43 - is_type("string", Math::BigFloat->new('12345678901.2')) is false 247s ok 44 - is_type("integer", Math::BigFloat->new('12345678901.2')) is false 247s ok 45 - data is not tampered with while it is tested (not dualvar) 247s ok 46 - is_type("number", Math::BigFloat->new('0.123')) is true 247s ok 47 - get_type(Math::BigFloat->new('0.123')) = number 247s ok 48 - is_type("null", Math::BigFloat->new('0.123')) is false 247s ok 49 - is_type("boolean", Math::BigFloat->new('0.123')) is false 247s ok 50 - is_type("object", Math::BigFloat->new('0.123')) is false 247s ok 51 - is_type("array", Math::BigFloat->new('0.123')) is false 247s ok 52 - is_type("string", Math::BigFloat->new('0.123')) is false 247s ok 53 - is_type("integer", Math::BigFloat->new('0.123')) is false 247s ok 54 - data is not tampered with while it is tested (not dualvar) 247s ok 55 - is_type("number", Math::BigFloat->new('2')) is true 247s ok 56 - get_type(Math::BigFloat->new('2')) = number 247s ok 57 - is_type("null", Math::BigFloat->new('2')) is false 247s ok 58 - is_type("boolean", Math::BigFloat->new('2')) is false 247s ok 59 - is_type("object", Math::BigFloat->new('2')) is false 247s ok 60 - is_type("array", Math::BigFloat->new('2')) is false 247s ok 61 - is_type("string", Math::BigFloat->new('2')) is false 247s ok 62 - is_type("integer", Math::BigFloat->new('2')) is false 247s ok 63 - data is not tampered with while it is tested (not dualvar) 247s 1..63 247s ok 2 - data from encoded json 247s 1..2 247s ok 15 - integers and numbers in draft4 247s ok 16 - non-existent type does not result in exception 247s # Subtest: ambiguous types 247s # Subtest: integers 247s ok 1 - dualvar integers with different values are ambiguous 247s ok 2 - dualvar integers with different values are not integers 247s ok 3 - dualvar integers with different values are not numbers 247s ok 4 - dualvar integers with different values are not strings 247s ok 5 # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 247s ok 6 - integer that is later used as a string is still identified as a integer 247s ok 7 - integer that is later used as a string is still an integer 247s ok 8 - integer that is later used as a string is still a number 247s ok 9 - integer that is later used as a string is not a string 247s 1..9 247s ok 1 - integers 247s # Subtest: numbers 247s ok 1 - dualvar numbers are ambiguous in get_type 247s ok 2 - dualvar numbers are not integers 247s ok 3 - dualvar numbers are not numbers 247s ok 4 - dualvar numbers are not strings 247s ok 5 - number that is later used as a string is still identified as a number 247s ok 6 - number that is later used as a string is not an integer 247s ok 7 - number that is later used as a string is still a number 247s ok 8 - number that is later used as a string is not a string 247s 1..8 247s ok 2 - numbers 247s # Subtest: strings 247s ok 1 - dualvar strings are ambiguous in get_type 247s ok 2 - dualvar strings are not integers 247s ok 3 - dualvar strings are not numbers 247s ok 4 - dualvar strings are not strings 247s ok 5 - string that is later used as an integer is still identified as a string 247s ok 6 # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 247s ok 7 - string that is later used as an integer is not an integer 247s ok 8 - string that is later used as an integer is not a number 247s ok 9 - string that is later used as an integer is still a string 247s ok 10 - string that is later used as a number is still identified as a string 247s ok 11 - string that is later used as a number is not an integer 247s ok 12 # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 247s ok 13 - string that is later used as a number is not a number 247s ok 14 - string that is later used as a number is still a string 247s 1..14 247s ok 3 - strings 247s 1..3 247s ok 17 - ambiguous types 247s # Subtest: is_type and get_type for references 247s ok 1 - reference to SCALAR type is reported without exception 247s ok 2 - value is a reference to SCALAR 247s ok 3 - value is not a null 247s ok 4 - value is not a object 247s ok 5 - value is not a array 247s ok 6 - value is not a boolean 247s ok 7 - value is not a string 247s ok 8 - value is not a number 247s ok 9 - value is not a integer 247s ok 10 - reference to REF type is reported without exception 247s ok 11 - value is a reference to REF 247s ok 12 - value is not a null 247s ok 13 - value is not a object 247s ok 14 - value is not a array 247s ok 15 - value is not a boolean 247s ok 16 - value is not a string 247s ok 17 - value is not a number 247s ok 18 - value is not a integer 247s ok 19 - reference to CODE type is reported without exception 247s ok 20 - value is a reference to CODE 247s ok 21 - value is not a null 247s ok 22 - value is not a object 247s ok 23 - value is not a array 247s ok 24 - value is not a boolean 247s ok 25 - value is not a string 247s ok 26 - value is not a number 247s ok 27 - value is not a integer 247s ok 28 - reference to GLOB type is reported without exception 247s ok 29 - value is a reference to GLOB 247s ok 30 - value is not a null 247s ok 31 - value is not a object 247s ok 32 - value is not a array 247s ok 33 - value is not a boolean 247s ok 34 - value is not a string 247s ok 35 - value is not a number 247s ok 36 - value is not a integer 247s ok 37 - reference to LVALUE type is reported without exception 247s ok 38 - value is a reference to LVALUE 247s ok 39 - value is not a null 247s ok 40 - value is not a object 247s ok 41 - value is not a array 247s ok 42 - value is not a boolean 247s ok 43 - value is not a string 247s ok 44 - value is not a number 247s ok 45 - value is not a integer 247s ok 46 - reference to VSTRING type is reported without exception 247s ok 47 - value is a reference to VSTRING 247s ok 48 - value is not a null 247s ok 49 - value is not a object 247s ok 50 - value is not a array 247s ok 51 - value is not a boolean 247s ok 52 - value is not a string 247s ok 53 - value is not a number 247s ok 54 - value is not a integer 247s ok 55 - Regexp type is reported without exception 247s ok 56 - value is a Regexp 247s ok 57 - value is not a null 247s ok 58 - value is not a object 247s ok 59 - value is not a array 247s ok 60 - value is not a boolean 247s ok 61 - value is not a string 247s ok 62 - value is not a number 247s ok 63 - value is not a integer 247s ok 64 - IO::File type is reported without exception 247s ok 65 - value is a IO::File 247s ok 66 - value is not a null 247s ok 67 - value is not a object 247s ok 68 - value is not a array 247s ok 69 - value is not a boolean 247s ok 70 - value is not a string 247s ok 71 - value is not a number 247s ok 72 - value is not a integer 247s ok 73 - Foo type is reported without exception 247s ok 74 - value is a Foo 247s ok 75 - value is not a null 247s ok 76 - value is not a object 247s ok 77 - value is not a array 247s ok 78 - value is not a boolean 247s ok 79 - value is not a string 247s ok 80 - value is not a number 247s ok 81 - value is not a integer 247s ok 82 - 0 type is reported without exception 247s ok 83 - value is a 0 247s ok 84 - value is not a null 247s ok 85 - value is not a object 247s ok 86 - value is not a array 247s ok 87 - value is not a boolean 247s ok 88 - value is not a string 247s ok 89 - value is not a number 247s ok 90 - value is not a integer 247s 1..90 247s ok 18 - is_type and get_type for references 247s 1..18 247s ok 248s t/unsupported-keywords.t ................ 248s # 248s # draft6 248s ok 1 - schema with "id" still validates in draft6 248s ok 2 - warned for "id" in draft6 248s # 248s # draft7 248s ok 3 - schema with "id" still validates in draft7 248s ok 4 - warned for "id" in draft7 248s ok 5 - schema with "definitions" validates in draft7 248s ok 6 - did not warn for "definitions" in draft7 248s ok 7 - schema with "dependencies" validates in draft7 248s ok 8 - did not warn for "dependencies" in draft7 248s # 248s # draft2019-09 248s ok 9 - schema with "id" still validates in draft2019-09 248s ok 10 - warned for "id" in draft2019-09 248s ok 11 - schema with "definitions" still validates in draft2019-09 248s ok 12 - warned for "definitions" in draft2019-09 248s ok 13 - schema with "dependencies" still validates in draft2019-09 248s ok 14 - warned for "dependencies" in draft2019-09 248s 1..14 248s ok 248s t/validate-schema.t ..................... 248s ok 1 - validate_schema on simple schema with no $schema keyword 248s ok 2 - validate_schema on schema with metaschema $schema keyword 248s ok 3 - validate_schema with custom metaschema 248s ok 4 - validate_schema with schema that validates against the metaschema, but fails in extra traverse checks 248s 1..4 248s ok 249s t/vocabularies.t ........................ 249s # Subtest: valid keywords 249s ok 1 - draft4, Applicator: calculated keyword list matches hardcoded table 249s ok 2 - draft4, Core: calculated keyword list matches hardcoded table 249s ok 3 - draft4, FormatAnnotation: calculated keyword list matches hardcoded table 249s ok 4 - draft4, MetaData: calculated keyword list matches hardcoded table 249s ok 5 - draft4, Validation: calculated keyword list matches hardcoded table 249s ok 6 - draft6, Applicator: calculated keyword list matches hardcoded table 249s ok 7 - draft6, Core: calculated keyword list matches hardcoded table 249s ok 8 - draft6, FormatAnnotation: calculated keyword list matches hardcoded table 249s ok 9 - draft6, MetaData: calculated keyword list matches hardcoded table 249s ok 10 - draft6, Validation: calculated keyword list matches hardcoded table 249s ok 11 - draft7, Applicator: calculated keyword list matches hardcoded table 249s ok 12 - draft7, Content: calculated keyword list matches hardcoded table 249s ok 13 - draft7, Core: calculated keyword list matches hardcoded table 249s ok 14 - draft7, FormatAnnotation: calculated keyword list matches hardcoded table 249s ok 15 - draft7, MetaData: calculated keyword list matches hardcoded table 249s ok 16 - draft7, Validation: calculated keyword list matches hardcoded table 249s ok 17 - draft2019-09, Applicator: calculated keyword list matches hardcoded table 249s ok 18 - draft2019-09, Content: calculated keyword list matches hardcoded table 249s ok 19 - draft2019-09, Core: calculated keyword list matches hardcoded table 249s ok 20 - draft2019-09, FormatAnnotation: calculated keyword list matches hardcoded table 249s ok 21 - draft2019-09, MetaData: calculated keyword list matches hardcoded table 249s ok 22 - draft2019-09, Validation: calculated keyword list matches hardcoded table 249s ok 23 - draft2020-12, Applicator: calculated keyword list matches hardcoded table 249s ok 24 - draft2020-12, Content: calculated keyword list matches hardcoded table 249s ok 25 - draft2020-12, Core: calculated keyword list matches hardcoded table 249s ok 26 - draft2020-12, FormatAnnotation: calculated keyword list matches hardcoded table 249s ok 27 - draft2020-12, MetaData: calculated keyword list matches hardcoded table 249s ok 28 - draft2020-12, Unevaluated: calculated keyword list matches hardcoded table 249s ok 29 - draft2020-12, Validation: calculated keyword list matches hardcoded table 249s 1..29 249s ok 1 - valid keywords 249s 1..1 249s ok 252s t/zzz-acceptance-draft2019-09-format.t .. 252s # 252s # AUTHOR_TESTING: 252s # AUTOMATED_TESTING: 1 252s # EXTENDED_TESTING: 252s # NO_TODO: 252s # TEST_DIR: 252s # NO_SHORT_CIRCUIT: 252s # 252s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2019-09/optional/format against draft2019-09... 252s # 252s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date-time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 32 - date.json: "validation of date strings" - "a valid date string" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 64 - date.json: "validation of date strings" - "invalid month" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid date string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 73 - duration.json: "validation of duration strings" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 74 - duration.json: "validation of duration strings" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 75 - duration.json: "validation of duration strings" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 76 - duration.json: "validation of duration strings" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 77 - duration.json: "validation of duration strings" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 78 - duration.json: "validation of duration strings" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 79 - duration.json: "validation of duration strings" - "a valid duration string" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 80 - duration.json: "validation of duration strings" - "an invalid duration string" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 81 - duration.json: "validation of duration strings" - "must start with P" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 82 - duration.json: "validation of duration strings" - "no elements present" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 83 - duration.json: "validation of duration strings" - "no time elements present" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 84 - duration.json: "validation of duration strings" - "no date or time elements present" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 85 - duration.json: "validation of duration strings" - "elements out of order" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 86 - duration.json: "validation of duration strings" - "missing time separator" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 87 - duration.json: "validation of duration strings" - "time element in the date position" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 88 - duration.json: "validation of duration strings" - "four years duration" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 89 - duration.json: "validation of duration strings" - "zero time, in seconds" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 90 - duration.json: "validation of duration strings" - "zero time, in days" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 91 - duration.json: "validation of duration strings" - "one month duration" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 92 - duration.json: "validation of duration strings" - "one minute duration" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 93 - duration.json: "validation of duration strings" - "one and a half days, in hours" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 94 - duration.json: "validation of duration strings" - "one and a half days, in days and hours" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 95 - duration.json: "validation of duration strings" - "two weeks" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 96 - duration.json: "validation of duration strings" - "weeks cannot be combined with other units" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 97 - duration.json: "validation of duration strings" - "invalid non-ASCII '২' (a Bengali 2)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 98 - duration.json: "validation of duration strings" - "element without unit" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid duration string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 99 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 100 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 101 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 102 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 103 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 104 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 105 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 106 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 107 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 108 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 109 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 110 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 111 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 112 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 113 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 114 - hostname.json: "validation of host names" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 115 - hostname.json: "validation of host names" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 116 - hostname.json: "validation of host names" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 117 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 118 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 119 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 120 - hostname.json: "validation of host names" - "a valid host name" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 121 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 122 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 123 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 124 - hostname.json: "validation of host names" - "a host name with a component too long" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 125 - hostname.json: "validation of host names" - "starts with hyphen" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 126 - hostname.json: "validation of host names" - "ends with hyphen" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 127 - hostname.json: "validation of host names" - "starts with underscore" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 128 - hostname.json: "validation of host names" - "ends with underscore" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 129 - hostname.json: "validation of host names" - "contains underscore" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 130 - hostname.json: "validation of host names" - "maximum label length" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 131 - hostname.json: "validation of host names" - "exceeds maximum label length" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 132 - hostname.json: "validation of host names" - "single label" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 133 - hostname.json: "validation of host names" - "single label with hyphen" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 134 - hostname.json: "validation of host names" - "single label with digits" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 135 - hostname.json: "validation of host names" - "single label starting with digit" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 136 - hostname.json: "validation of host names" - "single label ending with digit" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 137 - hostname.json: "validation of host names" - "empty string" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 138 - hostname.json: "validation of host names" - "single dot" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 139 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 140 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 141 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 142 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 143 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 144 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 145 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 146 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 147 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 148 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-email string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 149 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 150 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 151 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 152 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 153 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 154 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 155 - idn-hostname.json: "validation of internationalized host names" - "a valid host name (example.test in Hangul)" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 156 - idn-hostname.json: "validation of internationalized host names" - "illegal first char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 157 - idn-hostname.json: "validation of internationalized host names" - "contains illegal char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "실〮례.테스트" 252s # result: 1 252s 1..1 252s } 252s ok 158 - idn-hostname.json: "validation of internationalized host names" - "a host name with a component too long" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 159 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 160 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 161 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "xn--X" 252s # result: 1 252s 1..1 252s } 252s ok 162 - idn-hostname.json: "validation of internationalized host names" - "U-label contains "--" in the 3rd and 4th position" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "XN--aa---o47jg78q" 252s # result: 1 252s 1..1 252s } 252s ok 163 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 164 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 165 - idn-hostname.json: "validation of internationalized host names" - "U-label starts and ends with a dash" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 166 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 167 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 168 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 169 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 170 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 171 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "ـߺ" 252s # result: 1 252s 1..1 252s } 252s ok 172 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "〱〲〳〴〵〮〯〻" 252s # result: 1 252s 1..1 252s } 252s ok 173 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "a·l" 252s # result: 1 252s 1..1 252s } 252s ok 174 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "·l" 252s # result: 1 252s 1..1 252s } 252s ok 175 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "l·a" 252s # result: 1 252s 1..1 252s } 252s ok 176 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "l·" 252s # result: 1 252s 1..1 252s } 252s ok 177 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 178 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "α͵S" 252s # result: 1 252s 1..1 252s } 252s ok 179 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "α͵" 252s # result: 1 252s 1..1 252s } 252s ok 180 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 181 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 182 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "׳ב" 252s # result: 1 252s 1..1 252s } 252s ok 183 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 184 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 185 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "״ב" 252s # result: 1 252s 1..1 252s } 252s ok 186 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 187 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "def・abc" 252s # result: 1 252s 1..1 252s } 252s ok 188 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "idn-hostname" 252s # } 252s # data: "・" 252s # result: 1 252s 1..1 252s } 252s ok 189 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 190 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 191 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 192 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 193 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits not mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 194 - idn-hostname.json: "validation of internationalized host names" - "Extended Arabic-Indic digits not mixed with Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 195 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 196 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 197 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 198 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 199 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER not preceded by Virama but matches regexp" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 200 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 201 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 202 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 203 - idn-hostname.json: "validation of internationalized host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 204 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 205 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false # 252s 1..1 252s } 252s ok 206 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 207 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 208 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 209 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid idn-hostname string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 210 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 211 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 212 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 213 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s # 252s ok 214 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 215 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 216 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 217 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 218 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 219 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 220 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 221 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 222 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 223 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 224 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 225 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 226 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 227 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 228 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 229 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv4 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 230 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 231 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 232 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 233 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 234 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 235 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 236 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 237 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 238 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 239 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 240 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 241 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 242 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 243 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 244 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 245 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 246 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 247 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 248 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 249 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 250 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 251 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 252 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 253 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 254 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 255 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 256 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 257 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 258 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 259 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 260 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 261 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 262 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 263 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 264 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 265 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 266 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 267 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 268 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 269 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid ipv6 string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 270 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 271 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 272 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 273 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 274 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 275 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 276 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 277 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 278 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 279 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "iri-reference" 252s # } 252s # data: "\\\\WINDOWS\\filëßåré" 252s # result: 1 252s 1..1 252s } 252s ok 280 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 281 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 282 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "iri-reference" 252s # } 252s # data: "#ƒräg\\mênt" 252s # result: 1 252s 1..1 252s } 252s # 252s ok 283 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 284 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 285 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 286 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 287 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 288 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 289 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 290 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 291 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 292 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 293 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 294 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "iri" 252s # } 252s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 252s # result: 1 252s 1..1 252s } 252s ok 295 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid iri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid iri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 296 - iri.json: "validation of IRIs" - "an invalid IRI" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid iri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid iri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 297 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid iri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid iri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 298 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 299 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 300 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 301 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 302 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 303 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 304 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 305 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 308 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 309 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 310 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 311 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 312 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 313 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 314 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 315 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 316 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 317 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 318 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 319 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 320 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 321 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 322 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 323 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 324 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 325 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 326 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 327 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 328 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 329 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 330 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 331 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 332 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 333 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 334 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 335 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 336 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 337 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 338 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 339 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 340 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 341 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 342 - regex.json: "validation of regular expressions" - "a valid regular expression" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 343 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid regex string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid regex string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 344 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 345 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 346 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 347 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 348 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 349 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 350 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 351 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 352 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 353 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 354 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 355 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 356 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 357 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 358 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 359 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 360 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid relative-json-pointer string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 361 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s # 252s ok 362 - time.json: "validation of time strings" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 363 - time.json: "validation of time strings" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 364 - time.json: "validation of time strings" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 365 - time.json: "validation of time strings" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 366 - time.json: "validation of time strings" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 367 - time.json: "validation of time strings" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 368 - time.json: "validation of time strings" - "a valid time string" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 369 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 370 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 371 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 372 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 373 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 374 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 375 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 376 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 377 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 378 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 379 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 380 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 381 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 382 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 383 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 384 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 385 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 386 - time.json: "validation of time strings" - "a valid time string with second fraction" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 387 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 388 - time.json: "validation of time strings" - "a valid time string with plus offset" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 389 - time.json: "validation of time strings" - "a valid time string with minus offset" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 390 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 391 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 392 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 393 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 394 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 395 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 396 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 397 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 398 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 399 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 400 - time.json: "validation of time strings" - "an invalid offset indicator" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 401 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 402 - time.json: "validation of time strings" - "no time offset" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 403 - time.json: "validation of time strings" - "no time offset with second fraction" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 404 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 405 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 406 - time.json: "validation of time strings" - "contains letters" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid time string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 407 - unknown.json: "unknown format" - "unknown formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 408 - unknown.json: "unknown format" - "unknown formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 409 - unknown.json: "unknown format" - "unknown formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 410 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 411 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 412 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 413 - unknown.json: "unknown format" - "unknown formats ignore strings" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s # 252s ok 414 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 415 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 416 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 417 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 418 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 419 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 420 - uri-reference.json: "validation of URI References" - "a valid URI" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 421 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 422 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 423 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri-reference string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri-reference string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 424 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 425 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 426 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri-reference string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri-reference string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s # 252s ok 427 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 428 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 429 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 430 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 431 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 432 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 433 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 434 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "uri-template" 252s # } 252s # data: "http://example.com/dictionary/{term:1}/{term" 252s # result: 1 252s 1..1 252s } 252s ok 435 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s ok 436 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true # 252s 1..1 252s } 252s # 252s ok 437 - uri.json: "validation of URIs" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 438 - uri.json: "validation of URIs" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 439 - uri.json: "validation of URIs" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 440 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 441 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 442 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 443 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 444 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 445 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 446 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 447 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 448 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 449 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 450 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 451 - uri.json: "validation of URIs" - "a valid URL " { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 452 - uri.json: "validation of URIs" - "a valid mailto URI" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 453 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 454 - uri.json: "validation of URIs" - "a valid tel URI" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 455 - uri.json: "validation of URIs" - "a valid URN" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 456 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 457 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 458 - uri.json: "validation of URIs" - "an invalid URI" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 459 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 460 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 461 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uri string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 462 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s not ok 1 - evaluation result is incorrect # 252s # Failed test (with amnesty) 'evaluation result is incorrect' 252s # at t/zzz-acceptance-draft2019-09-format.t line 70. 252s # expected false; got true 252s # schema: { 252s # "$schema": "https://json-schema.org/draft/2019-09/schema", 252s # "format": "uri" 252s # } 252s # data: "bar,baz:foo" 252s # result: 1 252s 1..1 252s } 252s # 252s ok 463 - uuid.json: "uuid format" - "all string formats ignore integers" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 464 - uuid.json: "uuid format" - "all string formats ignore floats" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 465 - uuid.json: "uuid format" - "all string formats ignore objects" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 466 - uuid.json: "uuid format" - "all string formats ignore arrays" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 467 - uuid.json: "uuid format" - "all string formats ignore booleans" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 468 - uuid.json: "uuid format" - "all string formats ignore nulls" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 469 - uuid.json: "uuid format" - "all upper-case" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 470 - uuid.json: "uuid format" - "all lower-case" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 471 - uuid.json: "uuid format" - "mixed case" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 472 - uuid.json: "uuid format" - "all zeroes is valid" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 473 - uuid.json: "uuid format" - "wrong length" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 474 - uuid.json: "uuid format" - "missing section" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 475 - uuid.json: "uuid format" - "bad characters (not hex)" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 476 - uuid.json: "uuid format" - "no dashes" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 477 - uuid.json: "uuid format" - "too few dashes" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 478 - uuid.json: "uuid format" - "too many dashes" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 479 - uuid.json: "uuid format" - "dashes in the wrong spot" { 252s # result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s # short-circuited result: { 252s # "errors": [ 252s # { 252s # "error": "not a valid uuid string", 252s # "instanceLocation": "", 252s # "keywordLocation": "/format" 252s # } 252s # ], 252s # "valid": false 252s # } 252s ok 1 - test passes: data is valid: false 252s 1..1 252s } 252s ok 480 - uuid.json: "uuid format" - "valid version 4" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 481 - uuid.json: "uuid format" - "valid version 5" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 482 - uuid.json: "uuid format" - "hypothetical version 6" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s ok 483 - uuid.json: "uuid format" - "hypothetical version 15" { 252s # result: { 252s # "valid": true 252s # } 252s # short-circuited result: { 252s # "valid": true 252s # } 252s ok 1 - test passes: data is valid: true 252s 1..1 252s } 252s # 252s # generated with: Test::JSON::Schema::Acceptance 1.029 252s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 252s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 252s # specification version: draft2019-09 252s # using custom test directory: /optional/format 252s # optional tests included: yes 252s # 252s # filename pass todo-fail fail 252s # --------------------------------------------------------------- 252s # date-time.json 25 0 0 252s # date.json 47 0 0 252s # duration.json 26 0 0 252s # email.json 15 0 0 252s # hostname.json 25 0 0 252s # idn-email.json 10 0 0 252s # idn-hostname.json 50 15 0 252s # ipv4.json 16 0 0 252s # ipv6.json 40 0 0 252s # iri-reference.json 11 2 0 252s # iri.json 14 1 0 252s # json-pointer.json 38 0 0 252s # regex.json 8 0 0 252s # relative-json-pointer.json 18 0 0 252s # time.json 45 0 0 252s # unknown.json 7 0 0 252s # uri-reference.json 13 0 0 252s # uri-template.json 9 1 0 252s # uri.json 25 1 0 252s # uuid.json 21 0 0 252s # --------------------------------------------------------------- 252s # TOTAL 463 20 0 252s # 252s # Congratulations, all non-optional tests are passing! 252s # 252s ok 484 - no leaks in the main evaluator object 252s ok 485 - no leaks in the short-circuiting evaluator object 252s 1..485 252s ok 264s t/zzz-acceptance-draft2019-09.t ......... 264s # 264s # AUTHOR_TESTING: 264s # AUTOMATED_TESTING: 1 264s # EXTENDED_TESTING: 264s # NO_TODO: 264s # TEST_DIR: 264s # NO_SHORT_CIRCUIT: 264s # 264s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 264s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2019-09 against draft2019-09... 264s # 264s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/3", 264s # "keywordLocation": "/additionalItems/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/3", 264s # "keywordLocation": "/additionalItems/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/items/type" 264s # }, 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/2", 264s # "keywordLocation": "/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "additional item not permitted", 264s # "instanceLocation": "/3", 264s # "keywordLocation": "/additionalItems" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "additional item not permitted", 264s # "instanceLocation": "/3", 264s # "keywordLocation": "/additionalItems" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not boolean", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/additionalItems/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not boolean", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/additionalItems/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/additionalItems/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/additionalItems/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "additional item not permitted", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/additionalItems" 264s # }, 264s # { 264s # "error": "additional item not permitted", 264s # "instanceLocation": "/2", 264s # "keywordLocation": "/additionalItems" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "additional item not permitted", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/additionalItems" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s # 264s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/quux", 264s # "keywordLocation": "/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/quux", 264s # "keywordLocation": "/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/élmény", 264s # "keywordLocation": "/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/élmény", 264s # "keywordLocation": "/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not boolean", 264s # "instanceLocation": "/quux", 264s # "keywordLocation": "/additionalProperties/type" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not boolean", 264s # "instanceLocation": "/quux", 264s # "keywordLocation": "/additionalProperties/type" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not boolean", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/additionalProperties/type" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not boolean", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/additionalProperties/type" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not boolean", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/additionalProperties/type" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not boolean", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/additionalProperties/type" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 37 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against both keywords" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 38 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against propertyNames, but not additionalProperties" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not number", 264s # "instanceLocation": "/pear", 264s # "keywordLocation": "/additionalProperties/type" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not number", 264s # "instanceLocation": "/pear", 264s # "keywordLocation": "/additionalProperties/type" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 39 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties doesn't consider dependentSchemas" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 40 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 41 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar even when foo2 is present" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 42 - allOf.json: "allOf" - "allOf" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 43 - allOf.json: "allOf" - "mismatch second" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/required" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/required" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 44 - allOf.json: "allOf" - "mismatch first" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/1/required" 264s # }, 264s # { 264s # "error": "subschema 1 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/1/required" 264s # }, 264s # { 264s # "error": "subschema 1 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 45 - allOf.json: "allOf" - "wrong type" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/allOf/0/properties/bar/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/properties" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/allOf/0/properties/bar/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/properties" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 46 - allOf.json: "allOf with base schema" - "valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 47 - allOf.json: "allOf with base schema" - "mismatch base schema" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/required" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/required" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 48 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/required" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/required" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 49 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: baz", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/1/required" 264s # }, 264s # { 264s # "error": "subschema 1 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: baz", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/1/required" 264s # }, 264s # { 264s # "error": "subschema 1 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 50 - allOf.json: "allOf with base schema" - "mismatch both" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/required" 264s # }, 264s # { 264s # "error": "object is missing property: baz", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/1/required" 264s # }, 264s # { 264s # "error": "subschemas 0, 1 are not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/required" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 51 - allOf.json: "allOf simple types" - "valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 52 - allOf.json: "allOf simple types" - "mismatch one" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than 30", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/maximum" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than 30", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/maximum" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 53 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 54 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/1" 264s # }, 264s # { 264s # "error": "subschema 1 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/1" 264s # }, 264s # { 264s # "error": "subschema 1 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 55 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0" 264s # }, 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/1" 264s # }, 264s # { 264s # "error": "subschemas 0, 1 are not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 56 - allOf.json: "allOf with one empty schema" - "any data is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 57 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 58 - allOf.json: "allOf with the first empty schema" - "number is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 59 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not number", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/1/type" 264s # }, 264s # { 264s # "error": "subschema 1 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not number", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/1/type" 264s # }, 264s # { 264s # "error": "subschema 1 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 60 - allOf.json: "allOf with the last empty schema" - "number is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 61 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not number", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/type" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not number", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/type" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 62 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 63 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not null", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/allOf/0/type" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/allOf" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not null", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/allOf/0/type" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/allOf" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 5", 264s # "instanceLocation": "", 264s # "keywordLocation": "/oneOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/oneOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 5", 264s # "instanceLocation": "", 264s # "keywordLocation": "/oneOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/oneOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 67 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 68 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 5", 264s # "instanceLocation": "", 264s # "keywordLocation": "/oneOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/oneOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 69 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 70 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 5", 264s # "instanceLocation": "", 264s # "keywordLocation": "/oneOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/oneOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 5", 264s # "instanceLocation": "", 264s # "keywordLocation": "/oneOf/0/multipleOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/oneOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 71 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s # 264s ok 72 - anchor.json: "Location-independent identifier" - "match" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 73 - anchor.json: "Location-independent identifier" - "mismatch" { 264s # result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "#/$defs/A/type", 264s # "error": "got string, not integer", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/type" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "#/$defs/A/type", 264s # "error": "got string, not integer", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/type" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 74 - anchor.json: "Location-independent identifier with absolute URI" - "match" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 75 - anchor.json: "Location-independent identifier with absolute URI" - "mismatch" { 264s # result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/bar#/type", 264s # "error": "got string, not integer", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/type" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/bar#/type", 264s # "error": "got string, not integer", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/type" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 76 - anchor.json: "Location-independent identifier with base URI change in subschema" - "match" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 77 - anchor.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 264s # result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested.json#/$defs/B/type", 264s # "error": "got string, not integer", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/type" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested.json#/$defs/B/type", 264s # "error": "got string, not integer", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/type" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 78 - anchor.json: "same $anchor with different base uri" - "$ref resolves to /$defs/A/allOf/1" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 79 - anchor.json: "same $anchor with different base uri" - "$ref does not resolve to /$defs/A/allOf/0" { 264s # result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/child1#/allOf/1/type", 264s # "error": "got integer, not string", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/type" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/child1#/allOf/1/type", 264s # "error": "got integer, not string", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/type" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 80 - anyOf.json: "anyOf" - "first anyOf valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 81 - anyOf.json: "anyOf" - "second anyOf valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 82 - anyOf.json: "anyOf" - "both anyOf valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 83 - anyOf.json: "anyOf" - "neither anyOf valid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got number, not integer", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/type" 264s # }, 264s # { 264s # "error": "value is less than 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/1/minimum" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got number, not integer", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/type" 264s # }, 264s # { 264s # "error": "value is less than 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/1/minimum" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 84 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not string", 264s # "instanceLocation": "", 264s # "keywordLocation": "/type" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not string", 264s # "instanceLocation": "", 264s # "keywordLocation": "/type" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 85 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 86 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "length is greater than 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/maxLength" 264s # }, 264s # { 264s # "error": "length is less than 4", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/1/minLength" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "length is greater than 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/maxLength" 264s # }, 264s # { 264s # "error": "length is less than 4", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/1/minLength" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 87 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 88 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 89 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0" 264s # }, 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/1" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0" 264s # }, 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/1" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 90 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 91 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 92 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 93 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/anyOf/0/properties/bar/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/properties" 264s # }, 264s # { 264s # "error": "got integer, not string", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/anyOf/1/properties/foo/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/1/properties" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/anyOf/0/properties/bar/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/properties" 264s # }, 264s # { 264s # "error": "got integer, not string", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/anyOf/1/properties/foo/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/1/properties" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 94 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 95 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 96 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 97 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not null", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/anyOf/0/type" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/anyOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not null", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/anyOf/0/type" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf/0/anyOf" 264s # }, 264s # { 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/anyOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 98 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 99 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 100 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 101 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 102 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 103 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 104 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 105 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 106 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 107 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 108 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 109 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 110 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 111 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 112 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 113 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 114 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 115 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 116 - const.json: "const validation" - "same value is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 117 - const.json: "const validation" - "another value is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 118 - const.json: "const validation" - "another type is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 119 - const.json: "const with object" - "same object is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 120 - const.json: "const with object" - "same object with different property order is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 121 - const.json: "const with object" - "another object is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 122 - const.json: "const with object" - "another type is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 123 - const.json: "const with array" - "same array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 124 - const.json: "const with array" - "another array item is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/0': wrong type: integer vs object)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/0': wrong type: integer vs object)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 125 - const.json: "const with array" - "array with additional items is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 126 - const.json: "const with null" - "null is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 127 - const.json: "const with null" - "not null is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 128 - const.json: "const with false does not match 0" - "false is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 129 - const.json: "const with false does not match 0" - "integer zero is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 130 - const.json: "const with false does not match 0" - "float zero is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 131 - const.json: "const with true does not match 1" - "true is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 132 - const.json: "const with true does not match 1" - "integer one is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 133 - const.json: "const with true does not match 1" - "float one is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 134 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 135 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 136 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 137 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 138 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 139 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 140 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 141 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 142 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 143 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 144 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 145 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 146 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 147 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 148 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 149 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 150 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 151 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 152 - const.json: "const with 1 does not match true" - "true is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 153 - const.json: "const with 1 does not match true" - "integer one is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 154 - const.json: "const with 1 does not match true" - "float one is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 155 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 156 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 157 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 158 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 159 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 160 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 161 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 162 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 163 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 164 - const.json: "nul characters in strings" - "match string with nul" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 165 - const.json: "nul characters in strings" - "do not match string lacking nul" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/const" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 166 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 167 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 168 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 169 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is less than 5", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/contains/minimum" 264s # }, 264s # { 264s # "error": "value is less than 5", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/contains/minimum" 264s # }, 264s # { 264s # "error": "value is less than 5", 264s # "instanceLocation": "/2", 264s # "keywordLocation": "/contains/minimum" 264s # }, 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is less than 5", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/contains/minimum" 264s # }, 264s # { 264s # "error": "value is less than 5", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/contains/minimum" 264s # }, 264s # { 264s # "error": "value is less than 5", 264s # "instanceLocation": "/2", 264s # "keywordLocation": "/contains/minimum" 264s # }, 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 170 - contains.json: "contains keyword validation" - "empty array is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 171 - contains.json: "contains keyword validation" - "not array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 172 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 173 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 174 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/contains/const" 264s # }, 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/contains/const" 264s # }, 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/2", 264s # "keywordLocation": "/contains/const" 264s # }, 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/3", 264s # "keywordLocation": "/contains/const" 264s # }, 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/contains/const" 264s # }, 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/contains/const" 264s # }, 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/2", 264s # "keywordLocation": "/contains/const" 264s # }, 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/3", 264s # "keywordLocation": "/contains/const" 264s # }, 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 175 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 176 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 177 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/contains" 264s # }, 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/contains" 264s # }, 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 178 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 179 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 180 - contains.json: "items + contains" - "matches items, does not match contains" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/contains/multipleOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/contains/multipleOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "/2", 264s # "keywordLocation": "/contains/multipleOf" 264s # }, 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/contains/multipleOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/contains/multipleOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "/2", 264s # "keywordLocation": "/contains/multipleOf" 264s # }, 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 181 - contains.json: "items + contains" - "does not match items, matches contains" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/multipleOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "/2", 264s # "keywordLocation": "/items/multipleOf" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/multipleOf" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 182 - contains.json: "items + contains" - "matches both items and contains" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 183 - contains.json: "items + contains" - "matches neither items nor contains" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/multipleOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/items/multipleOf" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # }, 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/contains/multipleOf" 264s # }, 264s # { 264s # "error": "value is not a multiple of 3", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/contains/multipleOf" 264s # }, 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/multipleOf" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 184 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 185 - contains.json: "contains with false if subschema" - "empty array is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 186 - contains.json: "contains with null instance elements" - "allows null items" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s # 264s ok 187 - content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 188 - content.json: "validation of string-encoded content based on media type" - "an invalid JSON document; validates true" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 189 - content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 190 - content.json: "validation of binary string-encoding" - "a valid base64 string" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 191 - content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character); validates true" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 192 - content.json: "validation of binary string-encoding" - "ignores non-strings" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 193 - content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 194 - content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document; validates true" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 195 - content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON; validates true" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 196 - content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 197 - content.json: "validation of binary-encoded media type documents with schema" - "a valid base64-encoded JSON document" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 198 - content.json: "validation of binary-encoded media type documents with schema" - "another valid base64-encoded JSON document" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 199 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64-encoded JSON document; validates true" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 200 - content.json: "validation of binary-encoded media type documents with schema" - "an empty object as a base64-encoded JSON document; validates true" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 201 - content.json: "validation of binary-encoded media type documents with schema" - "an empty array as a base64-encoded JSON document" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 202 - content.json: "validation of binary-encoded media type documents with schema" - "a validly-encoded invalid JSON document; validates true" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 203 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64 string that is valid JSON; validates true" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 204 - content.json: "validation of binary-encoded media type documents with schema" - "ignores non-strings" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s # 264s ok 205 - default.json: "invalid type for default" - "valid when property is specified" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 206 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 207 - default.json: "invalid string value for default" - "valid when property is specified" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 208 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 209 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (passing)" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 210 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (failing)" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than 3", 264s # "instanceLocation": "/alpha", 264s # "keywordLocation": "/properties/alpha/maximum" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/properties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than 3", 264s # "instanceLocation": "/alpha", 264s # "keywordLocation": "/properties/alpha/maximum" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/properties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 211 - default.json: "the default keyword does not do anything if the property is missing" - "missing properties are not filled in with the default" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s # 264s ok 212 - defs.json: "validate definition against metaschema" - "valid definition schema" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 213 - defs.json: "validate definition against metaschema" - "invalid definition schema" { 264s # result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/simpleTypes/enum", 264s # "error": "value does not match", 264s # "instanceLocation": "/$defs/foo/type", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/0/$ref/enum" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf/1/type", 264s # "error": "got integer, not array", 264s # "instanceLocation": "/$defs/foo/type", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/1/type" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf", 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "/$defs/foo/type", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 264s # "error": "not all properties are valid", 264s # "instanceLocation": "/$defs/foo", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 264s # "error": "subschema 2 is not valid", 264s # "instanceLocation": "/$defs/foo", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties/$defs/additionalProperties", 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "/$defs", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties", 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/simpleTypes/enum", 264s # "error": "value does not match", 264s # "instanceLocation": "/$defs/foo/type", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/0/$ref/enum" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf/1/type", 264s # "error": "got integer, not array", 264s # "instanceLocation": "/$defs/foo/type", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/1/type" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf", 264s # "error": "no subschemas are valid", 264s # "instanceLocation": "/$defs/foo/type", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 264s # "error": "not all properties are valid", 264s # "instanceLocation": "/$defs/foo", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 264s # "error": "subschema 2 is not valid", 264s # "instanceLocation": "/$defs/foo", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties/$defs/additionalProperties", 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "/$defs", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties", 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/$ref/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 214 - dependentRequired.json: "single dependency" - "neither" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 215 - dependentRequired.json: "single dependency" - "nondependant" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 216 - dependentRequired.json: "single dependency" - "with dependency" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 217 - dependentRequired.json: "single dependency" - "missing dependency" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/bar" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/bar" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 218 - dependentRequired.json: "single dependency" - "ignores arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 219 - dependentRequired.json: "single dependency" - "ignores strings" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 220 - dependentRequired.json: "single dependency" - "ignores other non-objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 221 - dependentRequired.json: "empty dependents" - "empty object" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 222 - dependentRequired.json: "empty dependents" - "object with one property" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 223 - dependentRequired.json: "empty dependents" - "non-object is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 224 - dependentRequired.json: "multiple dependents required" - "neither" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 225 - dependentRequired.json: "multiple dependents required" - "nondependants" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 226 - dependentRequired.json: "multiple dependents required" - "with dependencies" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 227 - dependentRequired.json: "multiple dependents required" - "missing dependency" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/quux" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/quux" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 228 - dependentRequired.json: "multiple dependents required" - "missing other dependency" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/quux" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/quux" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 229 - dependentRequired.json: "multiple dependents required" - "missing both dependencies" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing properties: foo, bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/quux" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing properties: foo, bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/quux" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 230 - dependentRequired.json: "dependencies with escaped characters" - "CRLF" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 231 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 232 - dependentRequired.json: "dependencies with escaped characters" - "CRLF missing dependent" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo\rbar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/foo\nbar" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo\rbar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/foo\nbar" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 233 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo'bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/foo\"bar" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo'bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired/foo\"bar" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentRequired" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 234 - dependentSchemas.json: "single dependency" - "valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 235 - dependentSchemas.json: "single dependency" - "no dependency" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 236 - dependentSchemas.json: "single dependency" - "wrong type" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/bar/properties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/bar/properties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 237 - dependentSchemas.json: "single dependency" - "wrong type other" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/bar/properties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/bar/properties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 238 - dependentSchemas.json: "single dependency" - "wrong type both" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 264s # }, 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/bar/properties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/bar/properties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 239 - dependentSchemas.json: "single dependency" - "ignores arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 240 - dependentSchemas.json: "single dependency" - "ignores strings" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 241 - dependentSchemas.json: "single dependency" - "ignores other non-objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 242 - dependentSchemas.json: "boolean subschemas" - "object with property having schema true is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 243 - dependentSchemas.json: "boolean subschemas" - "object with property having schema false is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/bar" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/bar" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 244 - dependentSchemas.json: "boolean subschemas" - "object with both properties is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/bar" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is false", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/bar" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 245 - dependentSchemas.json: "boolean subschemas" - "empty object is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 246 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 247 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo\"bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/foo'bar/required" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo\"bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/foo'bar/required" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 248 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab invalid under dependent schema" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object has fewer than 4 properties", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object has fewer than 4 properties", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 249 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote invalid under dependent schema" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo\"bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/foo'bar/required" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: foo\"bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/foo'bar/required" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 250 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches root" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 251 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches dependency" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 252 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches both" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "additional property not permitted", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 264s # }, 264s # { 264s # "error": "not all dependencies are satisfied", 264s # "instanceLocation": "", 264s # "keywordLocation": "/dependentSchemas" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 253 - dependentSchemas.json: "dependent subschema incompatible with root" - "no dependency" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s # 264s ok 254 - enum.json: "simple enum validation" - "one of the enum is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 255 - enum.json: "simple enum validation" - "something else is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 256 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 257 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 258 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 259 - enum.json: "heterogeneous enum validation" - "valid object matches" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 260 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 261 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 262 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 263 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 264 - enum.json: "enums in properties" - "both properties are valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 265 - enum.json: "enums in properties" - "wrong foo value" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/properties/foo/enum" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/properties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/properties/foo/enum" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/properties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 266 - enum.json: "enums in properties" - "wrong bar value" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/properties/bar/enum" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/properties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/bar", 264s # "keywordLocation": "/properties/bar/enum" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/properties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 267 - enum.json: "enums in properties" - "missing optional property is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 268 - enum.json: "enums in properties" - "missing required property is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/required" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/required" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 269 - enum.json: "enums in properties" - "missing all properties is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/required" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object is missing property: bar", 264s # "instanceLocation": "", 264s # "keywordLocation": "/required" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 270 - enum.json: "enum with escaped characters" - "member 1 is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 271 - enum.json: "enum with escaped characters" - "member 2 is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 272 - enum.json: "enum with escaped characters" - "another string is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 273 - enum.json: "enum with false does not match 0" - "false is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 274 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 275 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 276 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 277 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 278 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 279 - enum.json: "enum with true does not match 1" - "true is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 280 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 281 - enum.json: "enum with true does not match 1" - "float one is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 282 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 283 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 284 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 285 - enum.json: "enum with 0 does not match false" - "false is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 286 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 287 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 288 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 289 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 290 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 291 - enum.json: "enum with 1 does not match true" - "true is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 292 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 293 - enum.json: "enum with 1 does not match true" - "float one is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 294 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 295 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 296 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 297 - enum.json: "nul characters in strings" - "match string with nul" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 298 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/enum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 299 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 300 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than or equal to 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/exclusiveMaximum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than or equal to 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/exclusiveMaximum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 301 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than or equal to 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/exclusiveMaximum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than or equal to 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/exclusiveMaximum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 302 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s # 264s ok 303 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 304 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is less than or equal to 1.1", 264s # "instanceLocation": "", 264s # "keywordLocation": "/exclusiveMinimum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is less than or equal to 1.1", 264s # "instanceLocation": "", 264s # "keywordLocation": "/exclusiveMinimum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 305 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is less than or equal to 1.1", 264s # "instanceLocation": "", 264s # "keywordLocation": "/exclusiveMinimum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is less than or equal to 1.1", 264s # "instanceLocation": "", 264s # "keywordLocation": "/exclusiveMinimum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 306 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s # 264s ok 307 - format.json: "email format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 308 - format.json: "email format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 309 - format.json: "email format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 310 - format.json: "email format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 311 - format.json: "email format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 312 - format.json: "email format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 313 - format.json: "idn-email format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 314 - format.json: "idn-email format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 315 - format.json: "idn-email format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 316 - format.json: "idn-email format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 317 - format.json: "idn-email format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 318 - format.json: "idn-email format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 319 - format.json: "regex format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 320 - format.json: "regex format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 321 - format.json: "regex format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 322 - format.json: "regex format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 323 - format.json: "regex format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 324 - format.json: "regex format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 325 - format.json: "ipv4 format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 326 - format.json: "ipv4 format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 327 - format.json: "ipv4 format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 328 - format.json: "ipv4 format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 329 - format.json: "ipv4 format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 330 - format.json: "ipv4 format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 331 - format.json: "ipv6 format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 332 - format.json: "ipv6 format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 333 - format.json: "ipv6 format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 334 - format.json: "ipv6 format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 335 - format.json: "ipv6 format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 336 - format.json: "ipv6 format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 337 - format.json: "idn-hostname format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 338 - format.json: "idn-hostname format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 339 - format.json: "idn-hostname format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 340 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 341 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 342 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 343 - format.json: "hostname format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 344 - format.json: "hostname format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 345 - format.json: "hostname format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 346 - format.json: "hostname format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 347 - format.json: "hostname format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 348 - format.json: "hostname format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 349 - format.json: "date format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 350 - format.json: "date format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 351 - format.json: "date format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 352 - format.json: "date format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 353 - format.json: "date format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 354 - format.json: "date format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 355 - format.json: "date-time format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 356 - format.json: "date-time format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 357 - format.json: "date-time format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 358 - format.json: "date-time format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 359 - format.json: "date-time format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 360 - format.json: "date-time format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 361 - format.json: "time format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 362 - format.json: "time format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 363 - format.json: "time format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 364 - format.json: "time format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 365 - format.json: "time format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 366 - format.json: "time format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 367 - format.json: "json-pointer format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 368 - format.json: "json-pointer format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 369 - format.json: "json-pointer format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 370 - format.json: "json-pointer format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 371 - format.json: "json-pointer format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 372 - format.json: "json-pointer format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 373 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 374 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 375 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 376 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 377 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 378 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 379 - format.json: "iri format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 380 - format.json: "iri format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 381 - format.json: "iri format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 382 - format.json: "iri format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 383 - format.json: "iri format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 384 - format.json: "iri format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 385 - format.json: "iri-reference format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 386 - format.json: "iri-reference format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 387 - format.json: "iri-reference format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 388 - format.json: "iri-reference format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 389 - format.json: "iri-reference format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 390 - format.json: "iri-reference format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 391 - format.json: "uri format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 392 - format.json: "uri format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 393 - format.json: "uri format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 394 - format.json: "uri format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 395 - format.json: "uri format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 396 - format.json: "uri format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 397 - format.json: "uri-reference format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 398 - format.json: "uri-reference format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 399 - format.json: "uri-reference format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 400 - format.json: "uri-reference format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 401 - format.json: "uri-reference format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 402 - format.json: "uri-reference format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 403 - format.json: "uri-template format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 404 - format.json: "uri-template format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 405 - format.json: "uri-template format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 406 - format.json: "uri-template format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 407 - format.json: "uri-template format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 408 - format.json: "uri-template format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 409 - format.json: "uuid format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 410 - format.json: "uuid format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 411 - format.json: "uuid format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 412 - format.json: "uuid format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 413 - format.json: "uuid format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 414 - format.json: "uuid format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 415 - format.json: "duration format" - "all string formats ignore integers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 416 - format.json: "duration format" - "all string formats ignore floats" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 417 - format.json: "duration format" - "all string formats ignore objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 418 - format.json: "duration format" - "all string formats ignore arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 419 - format.json: "duration format" - "all string formats ignore booleans" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 420 - format.json: "duration format" - "all string formats ignore nulls" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s # 264s ok 421 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 422 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 423 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 424 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 425 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 426 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 427 - if-then-else.json: "if and then without else" - "valid through then" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 428 - if-then-else.json: "if and then without else" - "invalid through then" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is less than -10", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then/minimum" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is less than -10", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then/minimum" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 429 - if-then-else.json: "if and then without else" - "valid when if test fails" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 430 - if-then-else.json: "if and else without then" - "valid when if test passes" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 431 - if-then-else.json: "if and else without then" - "valid through else" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 432 - if-then-else.json: "if and else without then" - "invalid through else" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else/multipleOf" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else/multipleOf" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 433 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 434 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is less than -10", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then/minimum" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is less than -10", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then/minimum" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 435 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 436 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else/multipleOf" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is not a multiple of 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else/multipleOf" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 437 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 438 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 439 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 440 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then/const" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then/const" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 441 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else/const" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else/const" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 442 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 443 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 444 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 445 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then/const" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then/const" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/then" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 446 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else/const" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else/const" 264s # }, 264s # { 264s # "error": "subschema is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/else" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 447 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "passing case" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 448 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "failing case" { 264s # result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "#/$defs/int/type", 264s # "error": "got string, not integer", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/properties" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "#/$defs/int/type", 264s # "error": "got string, not integer", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 264s # }, 264s # { 264s # "error": "not all additional properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/1/additionalProperties" 264s # }, 264s # { 264s # "error": "subschemas 0, 1 are not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "#/$defs/int/type", 264s # "error": "got string, not integer", 264s # "instanceLocation": "/foo", 264s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 264s # }, 264s # { 264s # "error": "not all properties are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf/0/properties" 264s # }, 264s # { 264s # "error": "subschema 0 is not valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/allOf" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 449 - items.json: "a schema given for items" - "valid items" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 450 - items.json: "a schema given for items" - "wrong type of items" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 451 - items.json: "a schema given for items" - "ignores non-arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 452 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 453 - items.json: "an array of schemas for items" - "correct types" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 454 - items.json: "an array of schemas for items" - "wrong types" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/0/type" 264s # }, 264s # { 264s # "error": "got integer, not string", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/items/1/type" 264s # }, 264s # { 264s # "error": "not all items are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not integer", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/0/type" 264s # }, 264s # { 264s # "error": "not all items are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 455 - items.json: "an array of schemas for items" - "incomplete array of items" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 456 - items.json: "an array of schemas for items" - "array with additional items" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 457 - items.json: "an array of schemas for items" - "empty array" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 458 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 459 - items.json: "items with boolean schema (true)" - "any array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 460 - items.json: "items with boolean schema (true)" - "empty array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 461 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "item not permitted", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items" 264s # }, 264s # { 264s # "error": "item not permitted", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/items" 264s # }, 264s # { 264s # "error": "item not permitted", 264s # "instanceLocation": "/2", 264s # "keywordLocation": "/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "item not permitted", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 462 - items.json: "items with boolean schema (false)" - "empty array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 463 - items.json: "items with boolean schemas" - "array with one item is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 464 - items.json: "items with boolean schemas" - "array with two items is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "item not permitted", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/items/1" 264s # }, 264s # { 264s # "error": "not all items are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "item not permitted", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/items/1" 264s # }, 264s # { 264s # "error": "not all items are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 465 - items.json: "items with boolean schemas" - "empty array is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 466 - items.json: "items and subitems" - "valid items" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 467 - items.json: "items and subitems" - "too many items" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "additional item not permitted", 264s # "instanceLocation": "/3", 264s # "keywordLocation": "/additionalItems" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "additional item not permitted", 264s # "instanceLocation": "/3", 264s # "keywordLocation": "/additionalItems" 264s # }, 264s # { 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/additionalItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 468 - items.json: "items and subitems" - "too many sub-items" { 264s # result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 264s # "error": "additional item not permitted", 264s # "instanceLocation": "/0/2", 264s # "keywordLocation": "/items/0/$ref/additionalItems" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/0/$ref/additionalItems" 264s # }, 264s # { 264s # "error": "not all items are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 264s # "error": "additional item not permitted", 264s # "instanceLocation": "/0/2", 264s # "keywordLocation": "/items/0/$ref/additionalItems" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 264s # "error": "subschema is not valid against all additional items", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/0/$ref/additionalItems" 264s # }, 264s # { 264s # "error": "not all items are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 469 - items.json: "items and subitems" - "wrong item" { 264s # result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "#/$defs/item/type", 264s # "error": "got object, not array", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/0/$ref/type" 264s # }, 264s # { 264s # "error": "not all items are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "#/$defs/item/type", 264s # "error": "got object, not array", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/0/$ref/type" 264s # }, 264s # { 264s # "error": "not all items are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 470 - items.json: "items and subitems" - "wrong sub-item" { 264s # result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "/0/0", 264s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "#/$defs/item/items", 264s # "error": "not all items are valid", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/0/$ref/items" 264s # }, 264s # { 264s # "error": "not all items are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 264s # "error": "object is missing property: foo", 264s # "instanceLocation": "/0/0", 264s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 264s # }, 264s # { 264s # "absoluteKeywordLocation": "#/$defs/item/items", 264s # "error": "not all items are valid", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/0/$ref/items" 264s # }, 264s # { 264s # "error": "not all items are valid", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 471 - items.json: "items and subitems" - "fewer items is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 472 - items.json: "nested items" - "valid nested array" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 473 - items.json: "nested items" - "nested array with invalid type" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not number", 264s # "instanceLocation": "/0/0/0/0", 264s # "keywordLocation": "/items/items/items/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0/0/0", 264s # "keywordLocation": "/items/items/items/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0/0", 264s # "keywordLocation": "/items/items/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got string, not number", 264s # "instanceLocation": "/0/0/0/0", 264s # "keywordLocation": "/items/items/items/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0/0/0", 264s # "keywordLocation": "/items/items/items/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0/0", 264s # "keywordLocation": "/items/items/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 474 - items.json: "nested items" - "not deep enough" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not array", 264s # "instanceLocation": "/0/0/0", 264s # "keywordLocation": "/items/items/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0/0", 264s # "keywordLocation": "/items/items/items" 264s # }, 264s # { 264s # "error": "got integer, not array", 264s # "instanceLocation": "/0/1/0", 264s # "keywordLocation": "/items/items/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0/1", 264s # "keywordLocation": "/items/items/items" 264s # }, 264s # { 264s # "error": "got integer, not array", 264s # "instanceLocation": "/0/2/0", 264s # "keywordLocation": "/items/items/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0/2", 264s # "keywordLocation": "/items/items/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/items" 264s # }, 264s # { 264s # "error": "got integer, not array", 264s # "instanceLocation": "/1/0/0", 264s # "keywordLocation": "/items/items/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/1/0", 264s # "keywordLocation": "/items/items/items" 264s # }, 264s # { 264s # "error": "got integer, not array", 264s # "instanceLocation": "/1/1/0", 264s # "keywordLocation": "/items/items/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/1/1", 264s # "keywordLocation": "/items/items/items" 264s # }, 264s # { 264s # "error": "got integer, not array", 264s # "instanceLocation": "/1/2/0", 264s # "keywordLocation": "/items/items/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/1/2", 264s # "keywordLocation": "/items/items/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/1", 264s # "keywordLocation": "/items/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "got integer, not array", 264s # "instanceLocation": "/0/0/0", 264s # "keywordLocation": "/items/items/items/type" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0/0", 264s # "keywordLocation": "/items/items/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/items/items" 264s # }, 264s # { 264s # "error": "subschema is not valid against all items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/items" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 475 - items.json: "single-form items with null instance elements" - "allows null elements" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 476 - items.json: "array-form items with null instance elements" - "allows null elements" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s # 264s ok 477 - maxContains.json: "maxContains without contains is ignored" - "one item valid against lone maxContains" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 478 - maxContains.json: "maxContains without contains is ignored" - "two items still valid against lone maxContains" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 479 - maxContains.json: "maxContains with contains" - "empty data" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 480 - maxContains.json: "maxContains with contains" - "all elements match, valid maxContains" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 481 - maxContains.json: "maxContains with contains" - "all elements match, invalid maxContains" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "array contains more than 1 matching items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxContains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "array contains more than 1 matching items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxContains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 482 - maxContains.json: "maxContains with contains" - "some elements match, valid maxContains" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 483 - maxContains.json: "maxContains with contains" - "some elements match, invalid maxContains" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "array contains more than 1 matching items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxContains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "array contains more than 1 matching items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxContains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 484 - maxContains.json: "maxContains with contains, value with a decimal" - "one element matches, valid maxContains" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 485 - maxContains.json: "maxContains with contains, value with a decimal" - "too many elements match, invalid maxContains" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "array contains more than 1 matching items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxContains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "array contains more than 1 matching items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxContains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 486 - maxContains.json: "minContains < maxContains" - "actual < minContains < maxContains" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # }, 264s # { 264s # "error": "array contains fewer than 1 matching items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/minContains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 487 - maxContains.json: "minContains < maxContains" - "minContains < actual < maxContains" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 488 - maxContains.json: "minContains < maxContains" - "minContains < maxContains < actual" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "array contains more than 3 matching items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxContains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "array contains more than 3 matching items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxContains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 489 - maxItems.json: "maxItems validation" - "shorter is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 490 - maxItems.json: "maxItems validation" - "exact length is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 491 - maxItems.json: "maxItems validation" - "too long is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "array has more than 2 items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "array has more than 2 items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 492 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 493 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 494 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "array has more than 2 items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "array has more than 2 items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxItems" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 495 - maxLength.json: "maxLength validation" - "shorter is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 496 - maxLength.json: "maxLength validation" - "exact length is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 497 - maxLength.json: "maxLength validation" - "too long is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "length is greater than 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxLength" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "length is greater than 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxLength" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 498 - maxLength.json: "maxLength validation" - "ignores non-strings" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 499 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 500 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 501 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "length is greater than 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxLength" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "length is greater than 2", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxLength" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 502 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 503 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 504 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object has more than 2 properties", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object has more than 2 properties", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 505 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 506 - maxProperties.json: "maxProperties validation" - "ignores strings" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 507 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 508 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 509 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object has more than 2 properties", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object has more than 2 properties", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 510 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 511 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "object has more than 0 property", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "object has more than 0 property", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maxProperties" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 512 - maximum.json: "maximum validation" - "below the maximum is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 513 - maximum.json: "maximum validation" - "boundary point is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 514 - maximum.json: "maximum validation" - "above the maximum is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maximum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than 3", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maximum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 515 - maximum.json: "maximum validation" - "ignores non-numbers" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 516 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 517 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 518 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 519 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than 300", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maximum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value is greater than 300", 264s # "instanceLocation": "", 264s # "keywordLocation": "/maximum" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s # 264s ok 520 - minContains.json: "minContains without contains is ignored" - "one item valid against lone minContains" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 521 - minContains.json: "minContains without contains is ignored" - "zero items still valid against lone minContains" { 264s # result: { 264s # "valid": true 264s # } 264s # short-circuited result: { 264s # "valid": true 264s # } 264s ok 1 - test passes: data is valid: true 264s 1..1 264s } 264s ok 522 - minContains.json: "minContains=1 with contains" - "empty data" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # }, 264s # { 264s # "error": "array contains fewer than 1 matching items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/minContains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 523 - minContains.json: "minContains=1 with contains" - "no elements match" { 264s # result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/contains/const" 264s # }, 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # }, 264s # { 264s # "error": "array contains fewer than 1 matching items", 264s # "instanceLocation": "", 264s # "keywordLocation": "/minContains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s # short-circuited result: { 264s # "errors": [ 264s # { 264s # "error": "value does not match", 264s # "instanceLocation": "/0", 264s # "keywordLocation": "/contains/const" 264s # }, 264s # { 264s # "error": "subschema is not valid against any item", 264s # "instanceLocation": "", 264s # "keywordLocation": "/contains" 264s # } 264s # ], 264s # "valid": false 264s # } 264s ok 1 - test passes: data is valid: false 264s 1..1 264s } 264s ok 524 - minContains.json: "minContains=1 with contains" - "single element matches, valid minContains" { 264s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 525 - minContains.json: "minContains=1 with contains" - "some elements match, valid minContains" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 526 - minContains.json: "minContains=1 with contains" - "all elements match, valid minContains" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 527 - minContains.json: "minContains=2 with contains" - "empty data" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is not valid against any item", 265s # "instanceLocation": "", 265s # "keywordLocation": "/contains" 265s # }, 265s # { 265s # "error": "array contains fewer than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is not valid against any item", 265s # "instanceLocation": "", 265s # "keywordLocation": "/contains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 528 - minContains.json: "minContains=2 with contains" - "all elements match, invalid minContains" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array contains fewer than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array contains fewer than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 529 - minContains.json: "minContains=2 with contains" - "some elements match, invalid minContains" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array contains fewer than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array contains fewer than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 530 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (exactly as needed)" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 531 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (more than needed)" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 532 - minContains.json: "minContains=2 with contains" - "some elements match, valid minContains" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 533 - minContains.json: "minContains=2 with contains with a decimal value" - "one element matches, invalid minContains" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array contains fewer than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array contains fewer than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 534 - minContains.json: "minContains=2 with contains with a decimal value" - "both elements match, valid minContains" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 535 - minContains.json: "maxContains = minContains" - "empty data" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is not valid against any item", 265s # "instanceLocation": "", 265s # "keywordLocation": "/contains" 265s # }, 265s # { 265s # "error": "array contains fewer than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is not valid against any item", 265s # "instanceLocation": "", 265s # "keywordLocation": "/contains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 536 - minContains.json: "maxContains = minContains" - "all elements match, invalid minContains" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array contains fewer than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array contains fewer than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 537 - minContains.json: "maxContains = minContains" - "all elements match, invalid maxContains" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array contains more than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/maxContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array contains more than 2 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/maxContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 538 - minContains.json: "maxContains = minContains" - "all elements match, valid maxContains and minContains" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 539 - minContains.json: "maxContains < minContains" - "empty data" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is not valid against any item", 265s # "instanceLocation": "", 265s # "keywordLocation": "/contains" 265s # }, 265s # { 265s # "error": "array contains fewer than 3 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is not valid against any item", 265s # "instanceLocation": "", 265s # "keywordLocation": "/contains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 540 - minContains.json: "maxContains < minContains" - "invalid minContains" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array contains fewer than 3 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array contains fewer than 3 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 541 - minContains.json: "maxContains < minContains" - "invalid maxContains" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array contains more than 1 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/maxContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array contains more than 1 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/maxContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 542 - minContains.json: "maxContains < minContains" - "invalid maxContains and minContains" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array contains more than 1 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/maxContains" 265s # }, 265s # { 265s # "error": "array contains fewer than 3 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array contains more than 1 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/maxContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 543 - minContains.json: "minContains = 0 with no maxContains" - "empty data" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 544 - minContains.json: "minContains = 0 with no maxContains" - "minContains = 0 makes contains always pass" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 545 - minContains.json: "minContains = 0 with maxContains" - "empty data" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 546 - minContains.json: "minContains = 0 with maxContains" - "not more than maxContains" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 547 - minContains.json: "minContains = 0 with maxContains" - "too many" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array contains more than 1 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/maxContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array contains more than 1 matching items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/maxContains" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 548 - minItems.json: "minItems validation" - "longer is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 549 - minItems.json: "minItems validation" - "exact length is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 550 - minItems.json: "minItems validation" - "too short is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array has fewer than 1 item", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array has fewer than 1 item", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 551 - minItems.json: "minItems validation" - "ignores non-arrays" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 552 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 553 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array has fewer than 1 item", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array has fewer than 1 item", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 554 - minLength.json: "minLength validation" - "longer is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 555 - minLength.json: "minLength validation" - "exact length is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 556 - minLength.json: "minLength validation" - "too short is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "length is less than 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minLength" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "length is less than 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minLength" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 557 - minLength.json: "minLength validation" - "ignores non-strings" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 558 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "length is less than 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minLength" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "length is less than 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minLength" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 559 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 560 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "length is less than 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minLength" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "length is less than 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minLength" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 561 - minProperties.json: "minProperties validation" - "longer is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 562 - minProperties.json: "minProperties validation" - "exact length is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 563 - minProperties.json: "minProperties validation" - "too short is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "object has fewer than 1 property", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "object has fewer than 1 property", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 564 - minProperties.json: "minProperties validation" - "ignores arrays" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 565 - minProperties.json: "minProperties validation" - "ignores strings" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 566 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 567 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 568 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "object has fewer than 1 property", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "object has fewer than 1 property", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 569 - minimum.json: "minimum validation" - "above the minimum is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 570 - minimum.json: "minimum validation" - "boundary point is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 571 - minimum.json: "minimum validation" - "below the minimum is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value is less than 1.1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minimum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value is less than 1.1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minimum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 572 - minimum.json: "minimum validation" - "ignores non-numbers" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 573 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 574 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 575 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 576 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 577 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value is less than -2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minimum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value is less than -2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minimum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 578 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value is less than -2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minimum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value is less than -2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minimum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 579 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 580 - multipleOf.json: "by int" - "int by int" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 581 - multipleOf.json: "by int" - "int by int fail" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value is not a multiple of 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/multipleOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value is not a multiple of 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/multipleOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 582 - multipleOf.json: "by int" - "ignores non-numbers" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 583 - multipleOf.json: "by number" - "zero is multiple of anything" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 584 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 585 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value is not a multiple of 1.5", 265s # "instanceLocation": "", 265s # "keywordLocation": "/multipleOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value is not a multiple of 1.5", 265s # "instanceLocation": "", 265s # "keywordLocation": "/multipleOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 586 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 587 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value is not a multiple of 0.0001", 265s # "instanceLocation": "", 265s # "keywordLocation": "/multipleOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value is not a multiple of 0.0001", 265s # "instanceLocation": "", 265s # "keywordLocation": "/multipleOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 588 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value is not a multiple of 0.123456789", 265s # "instanceLocation": "", 265s # "keywordLocation": "/multipleOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value is not a multiple of 0.123456789", 265s # "instanceLocation": "", 265s # "keywordLocation": "/multipleOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 589 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 590 - not.json: "not" - "allowed" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 591 - not.json: "not" - "disallowed" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 592 - not.json: "not multiple types" - "valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 593 - not.json: "not multiple types" - "mismatch" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 594 - not.json: "not multiple types" - "other mismatch" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 595 - not.json: "not more complex schema" - "match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 596 - not.json: "not more complex schema" - "other match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 597 - not.json: "not more complex schema" - "mismatch" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 598 - not.json: "forbidden property" - "property present" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/not" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/not" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 599 - not.json: "forbidden property" - "property absent" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 600 - not.json: "forbid everything with empty schema" - "number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 601 - not.json: "forbid everything with empty schema" - "string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 602 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 603 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 604 - not.json: "forbid everything with empty schema" - "null is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 605 - not.json: "forbid everything with empty schema" - "object is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 606 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 607 - not.json: "forbid everything with empty schema" - "array is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 608 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 609 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 610 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 611 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 612 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 613 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 614 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 615 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 616 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 617 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is true", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 618 - not.json: "allow everything with boolean schema false" - "number is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 619 - not.json: "allow everything with boolean schema false" - "string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 620 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 621 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 622 - not.json: "allow everything with boolean schema false" - "null is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 623 - not.json: "allow everything with boolean schema false" - "object is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 624 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 625 - not.json: "allow everything with boolean schema false" - "array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 626 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 627 - not.json: "double negation" - "any value is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 628 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 629 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/not" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 630 - oneOf.json: "oneOf" - "first oneOf valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 631 - oneOf.json: "oneOf" - "second oneOf valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 632 - oneOf.json: "oneOf" - "both oneOf valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 633 - oneOf.json: "oneOf" - "neither oneOf valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/type" 265s # }, 265s # { 265s # "error": "value is less than 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/minimum" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/type" 265s # }, 265s # { 265s # "error": "value is less than 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/minimum" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 634 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # }, 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 635 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 636 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 637 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1, 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 638 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 639 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 640 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is false", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0" 265s # }, 265s # { 265s # "error": "subschema is false", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1" 265s # }, 265s # { 265s # "error": "subschema is false", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/2" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is false", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0" 265s # }, 265s # { 265s # "error": "subschema is false", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1" 265s # }, 265s # { 265s # "error": "subschema is false", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/2" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 641 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 642 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 643 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 644 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/oneOf/0/properties/bar/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/properties" 265s # }, 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/oneOf/1/properties/foo/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/properties" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/oneOf/0/properties/bar/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/properties" 265s # }, 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/oneOf/1/properties/foo/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/properties" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 645 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 646 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 647 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing property: foo", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/required" 265s # }, 265s # { 265s # "error": "object is missing properties: foo, baz", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing property: foo", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/required" 265s # }, 265s # { 265s # "error": "object is missing properties: foo, baz", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 648 - oneOf.json: "oneOf with required" - "first valid - valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 649 - oneOf.json: "oneOf with required" - "second valid - valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 650 - oneOf.json: "oneOf with required" - "both valid - invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 651 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 652 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 653 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 654 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing property: bar", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/required" 265s # }, 265s # { 265s # "error": "object is missing property: foo", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing property: bar", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/required" 265s # }, 265s # { 265s # "error": "object is missing property: foo", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 655 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 656 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/oneOf/0/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/oneOf" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/oneOf/0/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/oneOf" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 657 - pattern.json: "pattern validation" - "a matching pattern is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 658 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 659 - pattern.json: "pattern validation" - "ignores booleans" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 660 - pattern.json: "pattern validation" - "ignores integers" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 661 - pattern.json: "pattern validation" - "ignores floats" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 662 - pattern.json: "pattern validation" - "ignores objects" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 663 - pattern.json: "pattern validation" - "ignores arrays" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 664 - pattern.json: "pattern validation" - "ignores null" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 665 - pattern.json: "pattern is not anchored" - "matches a substring" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 666 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 667 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 668 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/patternProperties/f.*o/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/patternProperties/f.*o/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 669 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/patternProperties/f.*o/type" 265s # }, 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/foooooo", 265s # "keywordLocation": "/patternProperties/f.*o/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/patternProperties/f.*o/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 670 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 671 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 672 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 673 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 674 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 675 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 676 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/a", 265s # "keywordLocation": "/patternProperties/a*/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/a", 265s # "keywordLocation": "/patternProperties/a*/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 677 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value is greater than 20", 265s # "instanceLocation": "/aaaa", 265s # "keywordLocation": "/patternProperties/aaa*/maximum" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value is greater than 20", 265s # "instanceLocation": "/aaaa", 265s # "keywordLocation": "/patternProperties/aaa*/maximum" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 678 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/aaa", 265s # "keywordLocation": "/patternProperties/a*/type" 265s # }, 265s # { 265s # "error": "value is greater than 20", 265s # "instanceLocation": "/aaaa", 265s # "keywordLocation": "/patternProperties/aaa*/maximum" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/aaa", 265s # "keywordLocation": "/patternProperties/a*/type" 265s # }, 265s # { 265s # "error": "value is greater than 20", 265s # "instanceLocation": "/aaaa", 265s # "keywordLocation": "/patternProperties/aaa*/maximum" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 679 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 680 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not boolean", 265s # "instanceLocation": "/a31b", 265s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not boolean", 265s # "instanceLocation": "/a31b", 265s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 681 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 682 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/a_X_3", 265s # "keywordLocation": "/patternProperties/X_/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/a_X_3", 265s # "keywordLocation": "/patternProperties/X_/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 683 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 684 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/patternProperties/b.*" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/patternProperties/b.*" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 685 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/patternProperties/b.*" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/patternProperties/b.*" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 686 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "property not permitted", 265s # "instanceLocation": "/foobar", 265s # "keywordLocation": "/patternProperties/b.*" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "property not permitted", 265s # "instanceLocation": "/foobar", 265s # "keywordLocation": "/patternProperties/b.*" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 687 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 688 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 689 - properties.json: "object properties validation" - "both properties present and valid is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 690 - properties.json: "object properties validation" - "one property invalid is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not string", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not string", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 691 - properties.json: "object properties validation" - "both properties invalid is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not string", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/type" 265s # }, 265s # { 265s # "error": "got array, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not string", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 692 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 693 - properties.json: "object properties validation" - "ignores arrays" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 694 - properties.json: "object properties validation" - "ignores other non-objects" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 695 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 696 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array has more than 3 items", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/maxItems" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array has more than 3 items", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/maxItems" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 697 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array has fewer than 2 items", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/patternProperties/f.o/minItems" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array has fewer than 2 items", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/patternProperties/f.o/minItems" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 698 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 699 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array has fewer than 2 items", 265s # "instanceLocation": "/fxo", 265s # "keywordLocation": "/patternProperties/f.o/minItems" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array has fewer than 2 items", 265s # "instanceLocation": "/fxo", 265s # "keywordLocation": "/patternProperties/f.o/minItems" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 700 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 701 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 702 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/quux", 265s # "keywordLocation": "/additionalProperties/type" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/quux", 265s # "keywordLocation": "/additionalProperties/type" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 703 - properties.json: "properties with boolean schema" - "no property present is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 704 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 705 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 706 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 707 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 708 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "/foo\tbar", 265s # "keywordLocation": "/properties/foo\tbar/type" 265s # }, 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "/foo\nbar", 265s # "keywordLocation": "/properties/foo\nbar/type" 265s # }, 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "/foo\fbar", 265s # "keywordLocation": "/properties/foo\fbar/type" 265s # }, 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "/foo\rbar", 265s # "keywordLocation": "/properties/foo\rbar/type" 265s # }, 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "/foo\"bar", 265s # "keywordLocation": "/properties/foo\"bar/type" 265s # }, 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "/foo\\bar", 265s # "keywordLocation": "/properties/foo\\bar/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "/foo\tbar", 265s # "keywordLocation": "/properties/foo\tbar/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 709 - properties.json: "properties with null valued instance properties" - "allows null values" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 710 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 711 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 712 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 713 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "/__proto__", 265s # "keywordLocation": "/properties/__proto__/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "/__proto__", 265s # "keywordLocation": "/properties/__proto__/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 714 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/toString/length", 265s # "keywordLocation": "/properties/toString/properties/length/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/toString", 265s # "keywordLocation": "/properties/toString/properties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/toString/length", 265s # "keywordLocation": "/properties/toString/properties/length/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/toString", 265s # "keywordLocation": "/properties/toString/properties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 715 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not number", 265s # "instanceLocation": "/constructor", 265s # "keywordLocation": "/properties/constructor/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not number", 265s # "instanceLocation": "/constructor", 265s # "keywordLocation": "/properties/constructor/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 716 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 717 - propertyNames.json: "propertyNames validation" - "all property names valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 718 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "length is greater than 3", 265s # "instanceLocation": "/foobar", 265s # "keywordLocation": "/propertyNames/maxLength" 265s # }, 265s # { 265s # "error": "not all property names are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/propertyNames" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "length is greater than 3", 265s # "instanceLocation": "/foobar", 265s # "keywordLocation": "/propertyNames/maxLength" 265s # }, 265s # { 265s # "error": "not all property names are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/propertyNames" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 719 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 720 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 721 - propertyNames.json: "propertyNames validation" - "ignores strings" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 722 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 723 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 724 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "/aaA", 265s # "keywordLocation": "/propertyNames/pattern" 265s # }, 265s # { 265s # "error": "not all property names are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/propertyNames" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "/aaA", 265s # "keywordLocation": "/propertyNames/pattern" 265s # }, 265s # { 265s # "error": "not all property names are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/propertyNames" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 725 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 726 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 727 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 728 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is false", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/propertyNames" 265s # }, 265s # { 265s # "error": "not all property names are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/propertyNames" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "subschema is false", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/propertyNames" 265s # }, 265s # { 265s # "error": "not all property names are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/propertyNames" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 729 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 730 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 731 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value does not match", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/propertyNames/const" 265s # }, 265s # { 265s # "error": "not all property names are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/propertyNames" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value does not match", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/propertyNames/const" 265s # }, 265s # { 265s # "error": "not all property names are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/propertyNames" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 732 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 733 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 734 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 735 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value does not match", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/propertyNames/enum" 265s # }, 265s # { 265s # "error": "not all property names are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/propertyNames" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value does not match", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/propertyNames/enum" 265s # }, 265s # { 265s # "error": "not all property names are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/propertyNames" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 736 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 737 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 738 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 739 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "mismatch" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 740 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive mismatch" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/additionalProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/additionalProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 741 - recursiveRef.json: "$recursiveRef without using nesting" - "integer matches at the outer level" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 742 - recursiveRef.json: "$recursiveRef without using nesting" - "single level match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 743 - recursiveRef.json: "$recursiveRef without using nesting" - "integer does not match as a property value" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 744 - recursiveRef.json: "$recursiveRef without using nesting" - "two levels, properties match with inner definition" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 745 - recursiveRef.json: "$recursiveRef without using nesting" - "two levels, no match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 746 - recursiveRef.json: "$recursiveRef with nesting" - "integer matches at the outer level" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 747 - recursiveRef.json: "$recursiveRef with nesting" - "single level match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 748 - recursiveRef.json: "$recursiveRef with nesting" - "integer now matches as a property value" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 749 - recursiveRef.json: "$recursiveRef with nesting" - "two levels, properties match with inner definition" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 750 - recursiveRef.json: "$recursiveRef with nesting" - "two levels, properties match with $recursiveRef" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 751 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "integer matches at the outer level" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 752 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "single level match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 753 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "integer does not match as a property value" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 754 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "two levels, properties match with inner definition" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 755 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "two levels, integer does not match as a property value" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 756 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "integer matches at the outer level" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 757 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "single level match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 758 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "integer does not match as a property value" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 759 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "two levels, properties match with inner definition" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 760 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "two levels, integer does not match as a property value" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 265s # "error": "got integer, not object", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 761 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node does not match; no recursion" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 265s # "error": "got object, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 265s # "error": "got boolean, not object", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 265s # "error": "got object, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 265s # "error": "got boolean, not object", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 762 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node matches: recursion uses the inner schema" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 763 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node does not match: recursion uses the inner schema" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 265s # "error": "got object, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 265s # "error": "got boolean, not object", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 265s # "error": "got object, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 265s # "error": "got boolean, not object", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 764 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node does not match; no recursion" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 265s # "error": "got object, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 265s # "error": "got boolean, not object", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 265s # "error": "got object, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 265s # "error": "got boolean, not object", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 765 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node matches: recursion only uses inner schema" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 766 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node does not match: recursion only uses inner schema" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 265s # "error": "got object, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 265s # "error": "got boolean, not object", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 265s # "error": "got object, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 265s # "error": "got object, not integer", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 265s # "error": "got boolean, not object", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 767 - recursiveRef.json: "multiple dynamic paths to the $recursiveRef keyword" - "recurse to anyLeafNode - floats are allowed" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 768 - recursiveRef.json: "multiple dynamic paths to the $recursiveRef keyword" - "recurse to integerNode - floats are not allowed" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_integerNode.json#/type", 265s # "error": "got number, not one of object, integer", 265s # "instanceLocation": "/november", 265s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_inner.json#/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/else/$ref/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_main.json#/else", 265s # "error": "subschema is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/else" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_integerNode.json#/type", 265s # "error": "got number, not one of object, integer", 265s # "instanceLocation": "/november", 265s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_inner.json#/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/else/$ref/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_main.json#/else", 265s # "error": "subschema is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/else" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 769 - recursiveRef.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "numeric node" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 770 - recursiveRef.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "integer node" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/integerNode.json#/type", 265s # "error": "got number, not one of object, integer", 265s # "instanceLocation": "/november", 265s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/inner.json#/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/else/$ref/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/main.json#/else", 265s # "error": "subschema is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/else" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/integerNode.json#/type", 265s # "error": "got number, not one of object, integer", 265s # "instanceLocation": "/november", 265s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/inner.json#/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/else/$ref/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/main.json#/else", 265s # "error": "subschema is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/else" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 771 - ref.json: "root pointer ref" - "match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 772 - ref.json: "root pointer ref" - "recursive match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 773 - ref.json: "root pointer ref" - "mismatch" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 774 - ref.json: "root pointer ref" - "recursive mismatch" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/additionalProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/additionalProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/additionalProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 775 - ref.json: "relative pointer ref to object" - "match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 776 - ref.json: "relative pointer ref to object" - "mismatch" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/properties/foo/type", 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/properties/foo/type", 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 777 - ref.json: "relative pointer ref to array" - "match array" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 778 - ref.json: "relative pointer ref to array" - "mismatch array" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/items/0/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/items/1/$ref/type" 265s # }, 265s # { 265s # "error": "not all items are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/items" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/items/0/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/items/1/$ref/type" 265s # }, 265s # { 265s # "error": "not all items are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/items" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 779 - ref.json: "escaped pointer ref" - "slash invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/slash", 265s # "keywordLocation": "/properties/slash/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/slash", 265s # "keywordLocation": "/properties/slash/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 780 - ref.json: "escaped pointer ref" - "tilde invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/tilde", 265s # "keywordLocation": "/properties/tilde/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/tilde", 265s # "keywordLocation": "/properties/tilde/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 781 - ref.json: "escaped pointer ref" - "percent invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/percent", 265s # "keywordLocation": "/properties/percent/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/percent", 265s # "keywordLocation": "/properties/percent/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 782 - ref.json: "escaped pointer ref" - "slash valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 783 - ref.json: "escaped pointer ref" - "tilde valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 784 - ref.json: "escaped pointer ref" - "percent valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 785 - ref.json: "nested refs" - "nested ref valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 786 - ref.json: "nested refs" - "nested ref invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/a/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/a/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 787 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 788 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "array has more than 2 items", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/maxItems" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "array has more than 2 items", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/maxItems" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 789 - ref.json: "ref applies alongside sibling keywords" - "ref invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/reffed/type", 265s # "error": "got string, not array", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/reffed/type", 265s # "error": "got string, not array", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 790 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 791 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/nonNegativeInteger/minimum", 265s # "error": "value is less than 0", 265s # "instanceLocation": "/minLength", 265s # "keywordLocation": "/$ref/allOf/2/$ref/properties/minLength/$ref/$ref/minimum" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/allOf/2/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 265s # "error": "subschema 2 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/nonNegativeInteger/minimum", 265s # "error": "value is less than 0", 265s # "instanceLocation": "/minLength", 265s # "keywordLocation": "/$ref/allOf/2/$ref/properties/minLength/$ref/$ref/minimum" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/allOf/2/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 265s # "error": "subschema 2 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 792 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 793 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/$ref", 265s # "keywordLocation": "/properties/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/$ref", 265s # "keywordLocation": "/properties/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 794 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 795 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/is-string/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/$ref", 265s # "keywordLocation": "/properties/$ref/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/is-string/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/$ref", 265s # "keywordLocation": "/properties/$ref/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 796 - ref.json: "$ref to boolean schema true" - "any value is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 797 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/bool", 265s # "error": "subschema is false", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/bool", 265s # "error": "subschema is false", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 798 - ref.json: "Recursive references between schemas" - "valid tree" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 799 - ref.json: "Recursive references between schemas" - "invalid tree" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties/value/type", 265s # "error": "got string, not number", 265s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 265s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/nodes/0/subtree/nodes/0", 265s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "/nodes/0/subtree/nodes", 265s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/nodes/0/subtree", 265s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/nodes/0", 265s # "keywordLocation": "/properties/nodes/items/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "/nodes", 265s # "keywordLocation": "/properties/nodes/items" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties/value/type", 265s # "error": "got string, not number", 265s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 265s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/nodes/0/subtree/nodes/0", 265s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "/nodes/0/subtree/nodes", 265s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/nodes/0/subtree", 265s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/nodes/0", 265s # "keywordLocation": "/properties/nodes/items/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "/nodes", 265s # "keywordLocation": "/properties/nodes/items" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 800 - ref.json: "refs with quote" - "object with numbers is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 801 - ref.json: "refs with quote" - "object with strings is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 265s # "error": "got string, not number", 265s # "instanceLocation": "/foo\"bar", 265s # "keywordLocation": "/properties/foo\"bar/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 265s # "error": "got string, not number", 265s # "instanceLocation": "/foo\"bar", 265s # "keywordLocation": "/properties/foo\"bar/$ref/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 802 - ref.json: "ref creates new scope when adjacent to keywords" - "referenced subschema doesn't see annotations from properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/prop1", 265s # "keywordLocation": "/$ref/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/prop1", 265s # "keywordLocation": "/$ref/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 803 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/enum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/enum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 804 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/enum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/enum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 805 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 806 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 807 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/$ref/$ref/properties/bar/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/$ref/$ref/properties/bar/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 808 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 809 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo/bar", 265s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 810 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/$ref/$ref/properties/bar/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/$ref/$ref/properties/bar/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 811 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 812 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 813 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 814 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 815 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id1/int.json#/maximum", 265s # "error": "value is greater than 10", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/maximum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id1/int.json#/maximum", 265s # "error": "value is greater than 10", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/maximum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 816 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 817 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id2/base.json#/$defs/bigint/maximum", 265s # "error": "value is greater than 10", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/maximum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id2/base.json#/$defs/bigint/maximum", 265s # "error": "value is greater than 10", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/maximum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 818 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 819 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 265s # "error": "value is less than 30", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/minimum" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 265s # "error": "value is less than 30", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/minimum" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 820 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 821 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 822 - ref.json: "URN base URI with NSS" - "a string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 823 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 824 - ref.json: "URN base URI with r-component" - "a string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 825 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 826 - ref.json: "URN base URI with q-component" - "a string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 827 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 828 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 829 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 830 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 831 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 832 - ref.json: "URN ref with nested pointer ref" - "a string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 833 - ref.json: "URN ref with nested pointer ref" - "a non-string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 834 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 835 - ref.json: "ref to if" - "an integer is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 836 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 837 - ref.json: "ref to then" - "an integer is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 838 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 839 - ref.json: "ref to else" - "an integer is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 840 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 841 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 842 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 843 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 844 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 845 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 846 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 847 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs//$defs//type", 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/$ref/type" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs//$defs//type", 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/$ref/type" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 848 - ref.json: "$ref with $recursiveAnchor" - "extra items allowed for inner arrays" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 849 - ref.json: "$ref with $recursiveAnchor" - "extra items disallowed for root" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 850 - refRemote.json: "remote ref" - "remote ref valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 851 - refRemote.json: "remote ref" - "remote ref invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 852 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 853 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 854 - refRemote.json: "anchor within remote ref" - "remote anchor valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 855 - refRemote.json: "anchor within remote ref" - "remote anchor invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 856 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 857 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 858 - refRemote.json: "base URI change" - "base URI change ref valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 859 - refRemote.json: "base URI change" - "base URI change ref invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/folderInteger.json#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/0/0", 265s # "keywordLocation": "/items/items/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/#/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/items/items" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/#/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/items" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/folderInteger.json#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/0/0", 265s # "keywordLocation": "/items/items/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/#/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/items/items" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/#/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/items" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 860 - refRemote.json: "base URI change - change folder" - "number is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 861 - refRemote.json: "base URI change - change folder" - "string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/folderInteger.json#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/list/0", 265s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/#/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "/list", 265s # "keywordLocation": "/properties/list/$ref/items" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs1.json#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/folderInteger.json#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/list/0", 265s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/#/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "/list", 265s # "keywordLocation": "/properties/list/$ref/items" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs1.json#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 862 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 863 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/folderInteger.json#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/list/0", 265s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/#/$defs/bar/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "/list", 265s # "keywordLocation": "/properties/list/$ref/items" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs2.json#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/folderInteger.json#/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "/list/0", 265s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/#/$defs/bar/items", 265s # "error": "subschema is not valid against all items", 265s # "instanceLocation": "/list", 265s # "keywordLocation": "/properties/list/$ref/items" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs2.json#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 864 - refRemote.json: "root ref in remote ref" - "string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 865 - refRemote.json: "root ref in remote ref" - "null is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 866 - refRemote.json: "root ref in remote ref" - "object is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf/0/type", 265s # "error": "got object, not null", 265s # "instanceLocation": "/name", 265s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "/name", 265s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/name", 265s # "keywordLocation": "/properties/name/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/object#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf/0/type", 265s # "error": "got object, not null", 265s # "instanceLocation": "/name", 265s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "/name", 265s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "/name", 265s # "keywordLocation": "/properties/name/$ref/anyOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/object#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 867 - refRemote.json: "remote ref with ref to defs" - "invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/$ref/$ref/properties/bar/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/$ref/$ref/properties/bar/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 868 - refRemote.json: "remote ref with ref to defs" - "valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 869 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 870 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 871 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/name/foo", 265s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/foo-ref-string.json#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/name", 265s # "keywordLocation": "/properties/name/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/some-id#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/name/foo", 265s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/foo-ref-string.json#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/name", 265s # "keywordLocation": "/properties/name/$ref/properties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/some-id#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 872 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 873 - refRemote.json: "remote HTTP ref with different $id" - "number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 874 - refRemote.json: "remote HTTP ref with different $id" - "string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 875 - refRemote.json: "remote HTTP ref with different URN $id" - "number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 876 - refRemote.json: "remote HTTP ref with different URN $id" - "string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 877 - refRemote.json: "remote HTTP ref with nested absolute ref" - "number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 878 - refRemote.json: "remote HTTP ref with nested absolute ref" - "string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 879 - refRemote.json: "$ref to $ref finds detached $anchor" - "number is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 880 - refRemote.json: "$ref to $ref finds detached $anchor" - "non-number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/detached-ref.json#/$defs/detached/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/detached-ref.json#/$defs/detached/type", 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/$ref/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 881 - required.json: "required validation" - "present required property is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 882 - required.json: "required validation" - "non-present required property is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing property: foo", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing property: foo", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 883 - required.json: "required validation" - "ignores arrays" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 884 - required.json: "required validation" - "ignores strings" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 885 - required.json: "required validation" - "ignores other non-objects" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 886 - required.json: "required default validation" - "not required by default" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 887 - required.json: "required with empty array" - "property not required" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 888 - required.json: "required with escaped characters" - "object with all properties present is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 889 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 890 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 891 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 892 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing properties: __proto__, toString, constructor", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing properties: __proto__, toString, constructor", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 893 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing properties: toString, constructor", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing properties: toString, constructor", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 894 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing properties: __proto__, constructor", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing properties: __proto__, constructor", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 895 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing properties: __proto__, toString", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "object is missing properties: __proto__, toString", 265s # "instanceLocation": "", 265s # "keywordLocation": "/required" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 896 - required.json: "required properties whose names are Javascript object property names" - "all present" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 897 - type.json: "integer type matches integers" - "an integer is an integer" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 898 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 899 - type.json: "integer type matches integers" - "a float is not an integer" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 900 - type.json: "integer type matches integers" - "a string is not an integer" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 901 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 902 - type.json: "integer type matches integers" - "an object is not an integer" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 903 - type.json: "integer type matches integers" - "an array is not an integer" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 904 - type.json: "integer type matches integers" - "a boolean is not an integer" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 905 - type.json: "integer type matches integers" - "null is not an integer" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not integer", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 906 - type.json: "number type matches numbers" - "an integer is a number" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 907 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 908 - type.json: "number type matches numbers" - "a float is a number" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 909 - type.json: "number type matches numbers" - "a string is not a number" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 910 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 911 - type.json: "number type matches numbers" - "an object is not a number" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 912 - type.json: "number type matches numbers" - "an array is not a number" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 913 - type.json: "number type matches numbers" - "a boolean is not a number" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 914 - type.json: "number type matches numbers" - "null is not a number" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 915 - type.json: "string type matches strings" - "1 is not a string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 916 - type.json: "string type matches strings" - "a float is not a string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 917 - type.json: "string type matches strings" - "a string is a string" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 918 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 919 - type.json: "string type matches strings" - "an empty string is still a string" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 920 - type.json: "string type matches strings" - "an object is not a string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 921 - type.json: "string type matches strings" - "an array is not a string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 922 - type.json: "string type matches strings" - "a boolean is not a string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 923 - type.json: "string type matches strings" - "null is not a string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 924 - type.json: "object type matches objects" - "an integer is not an object" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 925 - type.json: "object type matches objects" - "a float is not an object" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 926 - type.json: "object type matches objects" - "a string is not an object" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 927 - type.json: "object type matches objects" - "an object is an object" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 928 - type.json: "object type matches objects" - "an array is not an object" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 929 - type.json: "object type matches objects" - "a boolean is not an object" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 930 - type.json: "object type matches objects" - "null is not an object" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 931 - type.json: "array type matches arrays" - "an integer is not an array" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 932 - type.json: "array type matches arrays" - "a float is not an array" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 933 - type.json: "array type matches arrays" - "a string is not an array" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 934 - type.json: "array type matches arrays" - "an object is not an array" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 935 - type.json: "array type matches arrays" - "an array is an array" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 936 - type.json: "array type matches arrays" - "a boolean is not an array" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 937 - type.json: "array type matches arrays" - "null is not an array" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not array", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 938 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 939 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 940 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 941 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 942 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 943 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 944 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 945 - type.json: "boolean type matches booleans" - "true is a boolean" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 946 - type.json: "boolean type matches booleans" - "false is a boolean" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 947 - type.json: "boolean type matches booleans" - "null is not a boolean" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not boolean", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 948 - type.json: "null type matches only the null object" - "an integer is not null" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 949 - type.json: "null type matches only the null object" - "a float is not null" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 950 - type.json: "null type matches only the null object" - "zero is not null" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 951 - type.json: "null type matches only the null object" - "a string is not null" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 952 - type.json: "null type matches only the null object" - "an empty string is not null" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 953 - type.json: "null type matches only the null object" - "an object is not null" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 954 - type.json: "null type matches only the null object" - "an array is not null" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 955 - type.json: "null type matches only the null object" - "true is not null" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 956 - type.json: "null type matches only the null object" - "false is not null" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 957 - type.json: "null type matches only the null object" - "null is null" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 958 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 959 - type.json: "multiple types can be specified in an array" - "a string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 960 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not one of integer, string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got number, not one of integer, string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 961 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not one of integer, string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got object, not one of integer, string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 962 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not one of integer, string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got array, not one of integer, string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 963 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not one of integer, string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got boolean, not one of integer, string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 964 - type.json: "multiple types can be specified in an array" - "null is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not one of integer, string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not one of integer, string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 965 - type.json: "type as array with one item" - "string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 966 - type.json: "type as array with one item" - "number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not one of string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not one of string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 967 - type.json: "type: array or object" - "array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 968 - type.json: "type: array or object" - "object is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 969 - type.json: "type: array or object" - "number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not one of array, object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not one of array, object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 970 - type.json: "type: array or object" - "string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not one of array, object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not one of array, object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 971 - type.json: "type: array or object" - "null is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not one of array, object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got null, not one of array, object", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 972 - type.json: "type: array, object or null" - "array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 973 - type.json: "type: array, object or null" - "object is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 974 - type.json: "type: array, object or null" - "null is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 975 - type.json: "type: array, object or null" - "number is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not one of array, object, null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not one of array, object, null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 976 - type.json: "type: array, object or null" - "string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not one of array, object, null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not one of array, object, null", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 977 - unevaluatedItems.json: "unevaluatedItems true" - "with no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 978 - unevaluatedItems.json: "unevaluatedItems true" - "with unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 979 - unevaluatedItems.json: "unevaluatedItems false" - "with no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 980 - unevaluatedItems.json: "unevaluatedItems false" - "with unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 981 - unevaluatedItems.json: "unevaluatedItems as schema" - "with no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 982 - unevaluatedItems.json: "unevaluatedItems as schema" - "with valid unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 983 - unevaluatedItems.json: "unevaluatedItems as schema" - "with invalid unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/unevaluatedItems/type" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/unevaluatedItems/type" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 984 - unevaluatedItems.json: "unevaluatedItems with uniform items" - "unevaluatedItems doesn't apply" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 985 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 986 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 987 - unevaluatedItems.json: "unevaluatedItems with items and additionalItems" - "unevaluatedItems doesn't apply" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 988 - unevaluatedItems.json: "unevaluatedItems with ignored additionalItems" - "invalid under unevaluatedItems" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/unevaluatedItems/type" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/unevaluatedItems/type" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 989 - unevaluatedItems.json: "unevaluatedItems with ignored additionalItems" - "all valid under unevaluatedItems" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 990 - unevaluatedItems.json: "unevaluatedItems with ignored applicator additionalItems" - "invalid under unevaluatedItems" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/unevaluatedItems/type" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/unevaluatedItems/type" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 991 - unevaluatedItems.json: "unevaluatedItems with ignored applicator additionalItems" - "all valid under unevaluatedItems" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 992 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 993 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 994 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with only (valid) additional items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 995 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with no additional items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 996 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with invalid additional item" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not boolean", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/unevaluatedItems/type" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not boolean", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/unevaluatedItems/type" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 997 - unevaluatedItems.json: "unevaluatedItems with nested items and additionalItems" - "with no additional items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 998 - unevaluatedItems.json: "unevaluatedItems with nested items and additionalItems" - "with additional items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 999 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with no additional items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1000 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with additional items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1001 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1002 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1003 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1004 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/3", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/3", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1005 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1006 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1007 - unevaluatedItems.json: "unevaluatedItems with not" - "with unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1008 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1009 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/3", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/3", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1010 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1011 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/4", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/4", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1012 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1013 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1014 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1015 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1016 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1017 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1018 - unevaluatedItems.json: "unevaluatedItems with $recursiveRef" - "with no unevaluated items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1019 - unevaluatedItems.json: "unevaluatedItems with $recursiveRef" - "with unevaluated items" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/1/3", 265s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items", 265s # "error": "not all items are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/items" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/1/3", 265s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "/1", 265s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items", 265s # "error": "not all items are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/items" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1020 - unevaluatedItems.json: "unevaluatedItems can't see inside cousins" - "always fails" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/allOf/1/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/1/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema 1 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/allOf/1/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/1/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema 1 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1021 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "no extra items" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1022 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "uncle keyword evaluation is not significant" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/foo/1", 265s # "keywordLocation": "/properties/foo/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/unevaluatedItems" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/foo/1", 265s # "keywordLocation": "/properties/foo/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/unevaluatedItems" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1023 - unevaluatedItems.json: "non-array instances are valid" - "ignores booleans" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1024 - unevaluatedItems.json: "non-array instances are valid" - "ignores integers" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1025 - unevaluatedItems.json: "non-array instances are valid" - "ignores floats" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1026 - unevaluatedItems.json: "non-array instances are valid" - "ignores objects" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1027 - unevaluatedItems.json: "non-array instances are valid" - "ignores strings" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1028 - unevaluatedItems.json: "non-array instances are valid" - "ignores null" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1029 - unevaluatedItems.json: "unevaluatedItems with null instance elements" - "allows null elements" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1030 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "valid in case if is evaluated" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1031 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "invalid in case if is evaluated" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/unevaluatedItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 1032 - unevaluatedProperties.json: "unevaluatedProperties true" - "with no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1033 - unevaluatedProperties.json: "unevaluatedProperties true" - "with unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1034 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1035 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with valid unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1036 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with invalid unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "length is less than 3", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties/minLength" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "length is less than 3", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties/minLength" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1037 - unevaluatedProperties.json: "unevaluatedProperties false" - "with no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1038 - unevaluatedProperties.json: "unevaluatedProperties false" - "with unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1039 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1040 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1041 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1042 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1043 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with no additional properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1044 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with additional properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1045 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with no additional properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1046 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with additional properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1047 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with no additional properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1048 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with additional properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1049 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with no additional properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1050 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with additional properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1051 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with no nested unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1052 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with nested unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1053 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1054 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1055 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1056 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/quux", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/quux", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1057 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1058 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/quux", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/quux", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1059 - unevaluatedProperties.json: "unevaluatedProperties with not" - "with unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1060 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1061 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1062 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1063 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1064 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has no unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1065 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1066 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1067 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1068 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1069 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1070 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has no unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1071 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1072 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1073 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1074 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1075 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1076 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1077 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1078 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1079 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/baz", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1080 - unevaluatedProperties.json: "unevaluatedProperties with $recursiveRef" - "with no unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1081 - unevaluatedProperties.json: "unevaluatedProperties with $recursiveRef" - "with unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/branches/foo", 265s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/branches", 265s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/branches/foo", 265s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/branches", 265s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1082 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins" - "always fails" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 1 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 1 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1083 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins (reverse order)" - "always fails" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1084 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with no nested unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1085 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with nested unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1086 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with no nested unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1087 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with nested unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1088 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with no nested unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1089 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with nested unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1090 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with no nested unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1091 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with nested unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1092 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with no nested unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 1 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 1 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1093 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with nested unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 1 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 1 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1094 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with no nested unevaluated properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1095 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with nested unevaluated properties" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 1 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/1/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 1 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1096 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "no extra properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1097 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "uncle keyword evaluation is not significant" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo/faz", 265s # "keywordLocation": "/properties/foo/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo/faz", 265s # "keywordLocation": "/properties/foo/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/properties/foo/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1098 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "base case: both properties present" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1099 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, bar is missing" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1100 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, foo is missing" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "subschema 0 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1101 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "base case: both properties present" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1102 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, bar is missing" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1103 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, foo is missing" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1104 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Empty is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1105 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Single is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1106 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 1st level is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/y", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/y", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1107 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Nested is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1108 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 2nd level is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/unevaluatedProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/x/y", 265s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/unevaluatedProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/x", 265s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/unevaluatedProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/x/y", 265s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/unevaluatedProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/x", 265s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1109 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Deep nested is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1110 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 3rd level is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/unevaluatedProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/x/x/y", 265s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/unevaluatedProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/x/x", 265s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/x", 265s # "keywordLocation": "/properties/x/$ref/properties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/unevaluatedProperties", 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/x/x/y", 265s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/unevaluatedProperties", 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "/x/x", 265s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "/x", 265s # "keywordLocation": "/properties/x/$ref/properties" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1111 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "Empty is invalid (no x or y)" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/required", 265s # "error": "object is missing property: x", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 265s # }, 265s # { 265s # "error": "object is missing property: y", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf" 265s # }, 265s # { 265s # "error": "subschema 2 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/required", 265s # "error": "object is missing property: x", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 265s # }, 265s # { 265s # "error": "object is missing property: y", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf" 265s # }, 265s # { 265s # "error": "subschema 2 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1112 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b are invalid (no x or y)" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/required", 265s # "error": "object is missing property: x", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 265s # }, 265s # { 265s # "error": "object is missing property: y", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf" 265s # }, 265s # { 265s # "error": "subschema 2 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/required", 265s # "error": "object is missing property: x", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 265s # }, 265s # { 265s # "error": "object is missing property: y", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf" 265s # }, 265s # { 265s # "error": "subschema 2 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1113 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "x and y are invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf" 265s # }, 265s # { 265s # "error": "subschema 2 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/x", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/y", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf" 265s # }, 265s # { 265s # "error": "subschema 2 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/x", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/y", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1114 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and x are valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1115 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and y are valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1116 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x are valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1117 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and y are valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1118 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x and y are invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf" 265s # }, 265s # { 265s # "error": "subschema 2 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/x", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/y", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf/2/oneOf" 265s # }, 265s # { 265s # "error": "subschema 2 is not valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/allOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/x", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/y", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1119 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "Empty is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 265s # "error": "object is missing property: c", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 265s # "error": "object is missing property: d", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 265s # "error": "object is missing property: b", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 265s # "error": "object is missing property: xx", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 265s # "error": "object is missing property: all", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 265s # "error": "object is missing property: c", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 265s # "error": "object is missing property: d", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 265s # "error": "object is missing property: b", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 265s # "error": "object is missing property: xx", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 265s # "error": "object is missing property: all", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1120 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1121 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1122 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1123 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "d is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1124 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + b is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1125 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + c is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1126 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + d is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1127 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + c is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/b", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/c", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/b", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/c", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1128 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + d is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/b", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/d", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/b", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/d", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1129 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c + d is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 265s # "error": "object is missing property: b", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 265s # "error": "object is missing property: xx", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 265s # "error": "object is missing property: all", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/c", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/d", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 265s # "error": "object is missing property: b", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 265s # "error": "object is missing property: xx", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 265s # "error": "object is missing property: all", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/c", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/d", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1130 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1131 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foox is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1132 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foo is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1133 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + a is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1134 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + b is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "multiple subschemas are valid: 1, 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/b", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/xx", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "multiple subschemas are valid: 1, 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/b", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/xx", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1135 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + c is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "multiple subschemas are valid: 0, 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/c", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/xx", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "multiple subschemas are valid: 0, 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/c", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/xx", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1136 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + d is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "multiple subschemas are valid: 0, 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/d", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/xx", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 265s # "error": "multiple subschemas are valid: 0, 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/0/$ref/oneOf" 265s # }, 265s # { 265s # "error": "object is missing property: a", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf/1/required" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/d", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/xx", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1137 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1138 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + foo is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1139 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + a is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "multiple subschemas are valid: 0, 1", 265s # "instanceLocation": "", 265s # "keywordLocation": "/oneOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1140 - unevaluatedProperties.json: "non-object instances are valid" - "ignores booleans" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1141 - unevaluatedProperties.json: "non-object instances are valid" - "ignores integers" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1142 - unevaluatedProperties.json: "non-object instances are valid" - "ignores floats" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1143 - unevaluatedProperties.json: "non-object instances are valid" - "ignores arrays" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1144 - unevaluatedProperties.json: "non-object instances are valid" - "ignores strings" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1145 - unevaluatedProperties.json: "non-object instances are valid" - "ignores null" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1146 - unevaluatedProperties.json: "unevaluatedProperties with null valued instance properties" - "allows null valued properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1147 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "allows only number properties" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1148 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "string property is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "/a", 265s # "keywordLocation": "/unevaluatedProperties/type" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "/a", 265s # "keywordLocation": "/unevaluatedProperties/type" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1149 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "valid in case if is evaluated" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1150 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "invalid in case if is evaluated" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1151 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't consider dependentSchemas" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/foo", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1152 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't see bar when foo2 is absent" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/unevaluatedProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/unevaluatedProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1153 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties sees bar when foo2 is present" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 1154 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1155 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1156 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 2 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 2 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1157 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1158 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1159 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1160 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1161 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 2 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 2 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1162 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1163 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1164 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1165 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1166 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1167 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1168 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1169 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 2 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 2 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1170 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1171 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1172 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1173 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1174 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1175 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1176 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1177 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 4 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 4 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1178 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1179 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1180 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1181 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1182 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1183 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1184 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1185 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1186 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1187 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1188 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 2 and 3 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 2 and 3 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1189 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 2 and 3 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 2 and 3 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1190 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1191 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1192 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1193 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "items at indices 0 and 1 are not unique", 265s # "instanceLocation": "", 265s # "keywordLocation": "/uniqueItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1194 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/additionalItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/additionalItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1195 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1196 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1197 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1198 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1199 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1200 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1201 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1202 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1203 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1204 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1205 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1206 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1207 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1208 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1209 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1210 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1211 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1212 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1213 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1214 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1215 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1216 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1217 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1218 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1219 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1220 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1221 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1222 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/additionalItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional item not permitted", 265s # "instanceLocation": "/2", 265s # "keywordLocation": "/additionalItems" 265s # }, 265s # { 265s # "error": "subschema is not valid against all additional items", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 1223 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "applicator vocabulary still works" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 265s # "error": "property not permitted", 265s # "instanceLocation": "/badProperty", 265s # "keywordLocation": "/properties/badProperty" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 265s # "error": "property not permitted", 265s # "instanceLocation": "/badProperty", 265s # "keywordLocation": "/properties/badProperty" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/properties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1224 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: valid number" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1225 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: invalid number, but it still validates" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1226 - vocabulary.json: "ignore unrecognized optional vocabulary" - "string value" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not number", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1227 - vocabulary.json: "ignore unrecognized optional vocabulary" - "number value" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 1228 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "exact match to enum, and type matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1229 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "in implementations that strip $anchor, this may match either $def" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 265s # "error": "value does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/$ref/enum" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 265s # "error": "value does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/$ref/enum" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 265s # "error": "got object, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1230 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "match $ref to $anchor" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1231 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "no match on enum or $ref to $anchor" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 265s # "error": "value does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/$ref/enum" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 265s # "error": "value does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/$ref/enum" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 1232 - optional/bignum.json: "integer" - "a bignum is an integer" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1233 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1234 - optional/bignum.json: "number" - "a bignum is a number" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1235 - optional/bignum.json: "number" - "a negative bignum is a number" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1236 - optional/bignum.json: "string" - "a bignum is not a string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/type" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1237 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1238 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 265s # "instanceLocation": "", 265s # "keywordLocation": "/exclusiveMaximum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 265s # "instanceLocation": "", 265s # "keywordLocation": "/exclusiveMaximum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1239 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1240 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 265s # "instanceLocation": "", 265s # "keywordLocation": "/exclusiveMinimum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 265s # "instanceLocation": "", 265s # "keywordLocation": "/exclusiveMinimum" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 1241 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "first item not a string is invalid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/$ref/prefixItems/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems", 265s # "error": "not all items are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/prefixItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems/0/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "/0", 265s # "keywordLocation": "/$ref/prefixItems/0/type" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems", 265s # "error": "not all items are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref/prefixItems" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1242 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "first item is a string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1243 - optional/cross-draft.json: "refs to historic drafts are processed as historic drafts" - "missing bar is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 1244 - optional/dependencies-compatibility.json: "single dependency" - "neither" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1245 - optional/dependencies-compatibility.json: "single dependency" - "nondependant" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1246 - optional/dependencies-compatibility.json: "single dependency" - "with dependency" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1247 - optional/dependencies-compatibility.json: "single dependency" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "bar": [ 265s # "foo" 265s # ] 265s # } 265s # } 265s # data: { 265s # "bar": 2 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1248 - optional/dependencies-compatibility.json: "single dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1249 - optional/dependencies-compatibility.json: "single dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1250 - optional/dependencies-compatibility.json: "single dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1251 - optional/dependencies-compatibility.json: "empty dependents" - "empty object" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1252 - optional/dependencies-compatibility.json: "empty dependents" - "object with one property" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1253 - optional/dependencies-compatibility.json: "empty dependents" - "non-object is valid" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1254 - optional/dependencies-compatibility.json: "multiple dependents required" - "neither" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1255 - optional/dependencies-compatibility.json: "multiple dependents required" - "nondependants" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1256 - optional/dependencies-compatibility.json: "multiple dependents required" - "with dependencies" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1257 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "quux": [ 265s # "foo", 265s # "bar" 265s # ] 265s # } 265s # } 265s # data: { 265s # "foo": 1, 265s # "quux": 2 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1258 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing other dependency" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "quux": [ 265s # "foo", 265s # "bar" 265s # ] 265s # } 265s # } 265s # data: { 265s # "bar": 1, 265s # "quux": 2 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1259 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing both dependencies" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "quux": [ 265s # "foo", 265s # "bar" 265s # ] 265s # } 265s # } 265s # data: { 265s # "quux": 1 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1260 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1261 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1262 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF missing dependent" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "foo\nbar": [ 265s # "foo\rbar" 265s # ], 265s # "foo\"bar": [ 265s # "foo'bar" 265s # ] 265s # } 265s # } 265s # data: { 265s # "foo": 2, 265s # "foo\nbar": 1 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1263 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "foo\nbar": [ 265s # "foo\rbar" 265s # ], 265s # "foo\"bar": [ 265s # "foo'bar" 265s # ] 265s # } 265s # } 265s # data: { 265s # "foo\"bar": 2 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1264 - optional/dependencies-compatibility.json: "single schema dependency" - "valid" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1265 - optional/dependencies-compatibility.json: "single schema dependency" - "no dependency" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1266 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "bar": { 265s # "properties": { 265s # "bar": { 265s # "type": "integer" 265s # }, 265s # "foo": { 265s # "type": "integer" 265s # } 265s # } 265s # } 265s # } 265s # } 265s # data: { 265s # "bar": 2, 265s # "foo": "quux" 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1267 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type other" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "bar": { 265s # "properties": { 265s # "bar": { 265s # "type": "integer" 265s # }, 265s # "foo": { 265s # "type": "integer" 265s # } 265s # } 265s # } 265s # } 265s # } 265s # data: { 265s # "bar": "quux", 265s # "foo": 2 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1268 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type both" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "bar": { 265s # "properties": { 265s # "bar": { 265s # "type": "integer" 265s # }, 265s # "foo": { 265s # "type": "integer" 265s # } 265s # } 265s # } 265s # } 265s # } 265s # data: { 265s # "bar": "quux", 265s # "foo": "quux" 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1269 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1270 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1271 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1272 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema true is valid" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1273 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema false is invalid" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "bar": false, 265s # "foo": true 265s # } 265s # } 265s # data: { 265s # "bar": 2 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1274 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with both properties is invalid" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "bar": false, 265s # "foo": true 265s # } 265s # } 265s # data: { 265s # "bar": 2, 265s # "foo": 1 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1275 - optional/dependencies-compatibility.json: "boolean subschemas" - "empty object is valid" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1276 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1277 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "foo\tbar": { 265s # "minProperties": 4 265s # }, 265s # "foo'bar": { 265s # "required": [ 265s # "foo\"bar" 265s # ] 265s # } 265s # } 265s # } 265s # data: { 265s # "foo'bar": { 265s # "foo\"bar": 1 265s # } 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1278 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "foo\tbar": { 265s # "minProperties": 4 265s # }, 265s # "foo'bar": { 265s # "required": [ 265s # "foo\"bar" 265s # ] 265s # } 265s # } 265s # } 265s # data: { 265s # "a": 2, 265s # "foo\tbar": 1 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1279 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "dependencies": { 265s # "foo\tbar": { 265s # "minProperties": 4 265s # }, 265s # "foo'bar": { 265s # "required": [ 265s # "foo\"bar" 265s # ] 265s # } 265s # } 265s # } 265s # data: { 265s # "foo'bar": 1 265s # } 265s # result: 1 265s 1..1 265s } 265s # 265s ok 1280 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1281 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1282 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1283 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1284 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1285 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1286 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1287 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1288 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1289 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "pattern": "^\\d$", 265s # "type": "string" 265s # } 265s # data: "߀" 265s # result: 1 265s 1..1 265s } 265s ok 1290 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO (as \u escape) does not match" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "pattern": "^\\d$", 265s # "type": "string" 265s # } 265s # data: "߀" 265s # result: 1 265s 1..1 265s } 265s ok 1291 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false # 265s 1..1 265s } 265s ok 1292 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected true; got false 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "pattern": "^\\D$", 265s # "type": "string" 265s # } 265s # data: "߀" 265s # result: 0 265s 1..1 265s } 265s ok 1293 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO (as \u escape) matches" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected true; got false 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "pattern": "^\\D$", 265s # "type": "string" 265s # } 265s # data: "߀" 265s # result: 0 265s 1..1 265s } 265s ok 1294 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true # 265s 1..1 265s } 265s ok 1295 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "latin-1 e-acute does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "pattern": "^\\w$", 265s # "type": "string" 265s # } 265s # data: "é" 265s # result: 1 265s 1..1 265s } 265s ok 1296 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false # 265s 1..1 265s } 265s ok 1297 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "latin-1 e-acute matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected true; got false 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "pattern": "^\\W$", 265s # "type": "string" 265s # } 265s # data: "é" 265s # result: 0 265s 1..1 265s } 265s ok 1298 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1299 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1300 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1301 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1302 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1303 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected true; got false 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "pattern": "^\\s$", 265s # "type": "string" 265s # } 265s # data: "" 265s # result: 0 265s 1..1 265s } 265s ok 1304 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1305 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1306 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1307 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1308 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1309 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1310 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1311 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1312 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1313 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1314 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "pattern": "^\\S$", 265s # "type": "string" 265s # } 265s # data: "" 265s # result: 1 265s 1..1 265s } 265s ok 1315 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1316 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1317 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1318 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1319 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1320 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1321 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1322 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1323 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1324 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1325 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "pattern": "\\wcole" 265s # } 265s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 265s # result: 1 265s 1..1 265s } 265s ok 1326 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "pattern": "\\wcole" 265s # } 265s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 265s # result: 1 265s 1..1 265s } 265s ok 1327 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1328 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1329 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1330 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1331 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1332 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1333 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "pattern": "^\\d+$" 265s # } 265s # data: "৪২" 265s # result: 1 265s 1..1 265s } 265s ok 1334 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1335 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1336 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1337 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1338 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1339 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1340 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/L'ÉCOLE", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/L'ÉCOLE", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1341 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1342 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "additionalProperties": false, 265s # "patternProperties": { 265s # "\\wcole": true 265s # }, 265s # "type": "object" 265s # } 265s # data: { 265s # "l'école": "pas de vraie vie" 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1343 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "additionalProperties": false, 265s # "patternProperties": { 265s # "\\wcole": true 265s # }, 265s # "type": "object" 265s # } 265s # data: { 265s # "l'école": "pas de vraie vie" 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1344 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/L'ÉCOLE", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/L'ÉCOLE", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1345 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/l'école", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/l'école", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1346 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/l'école", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/l'école", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1347 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1348 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1349 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/-%#", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/-%#", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1350 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected false; got true 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "additionalProperties": false, 265s # "patternProperties": { 265s # "^\\d+$": true 265s # }, 265s # "type": "object" 265s # } 265s # data: { 265s # "৪২": "khajit has wares if you have coin" 265s # } 265s # result: 1 265s 1..1 265s } 265s ok 1351 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1352 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/-%#", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "additional property not permitted", 265s # "instanceLocation": "/-%#", 265s # "keywordLocation": "/additionalProperties" 265s # }, 265s # { 265s # "error": "not all additional properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/additionalProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1353 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 1354 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 1355 - optional/id.json: "$id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1356 - optional/id.json: "$id inside an enum is not a real identifier" - "match $ref to $id" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1357 - optional/id.json: "$id inside an enum is not a real identifier" - "no match on enum or $ref to $id" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 265s # "error": "value does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/$ref/enum" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/id/my_identifier.json#/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 265s # "error": "value does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/$ref/enum" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/id/my_identifier.json#/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 1358 - optional/no-schema.json: "validation without $schema" - "a 3-character string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1359 - optional/no-schema.json: "validation without $schema" - "a 1-character string is not valid" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "length is less than 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minLength" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "length is less than 2", 265s # "instanceLocation": "", 265s # "keywordLocation": "/minLength" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1360 - optional/no-schema.json: "validation without $schema" - "a non-string is valid" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s # 265s ok 1361 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1362 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1363 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1364 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1365 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1366 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1367 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "pattern does not match", 265s # "instanceLocation": "", 265s # "keywordLocation": "/pattern" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1368 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1369 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1370 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1371 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/🐲", 265s # "keywordLocation": "/patternProperties/^🐲*$/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/🐲", 265s # "keywordLocation": "/patternProperties/^🐲*$/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1372 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/🐲🐲", 265s # "keywordLocation": "/patternProperties/^🐲*$/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "got string, not integer", 265s # "instanceLocation": "/🐲🐲", 265s # "keywordLocation": "/patternProperties/^🐲*$/type" 265s # }, 265s # { 265s # "error": "not all properties are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/patternProperties" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s ok 1373 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "match" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected true; got false 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "properties": { 265s # "bar": { 265s # "$ref": "#/unknown-keyword" 265s # } 265s # }, 265s # "unknown-keyword": { 265s # "type": "integer" 265s # } 265s # } 265s # data: { 265s # "bar": 3 265s # } 265s # result: null 265s 1..1 265s } 265s ok 1374 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "mismatch" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false # 265s 1..1 265s } 265s ok 1375 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "match" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected true; got false 265s # schema: { 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "properties": { 265s # "bar": { 265s # "$ref": "#/properties/foo/unknown-keyword" 265s # }, 265s # "foo": { 265s # "unknown-keyword": { 265s # "type": "integer" 265s # } 265s # } 265s # } 265s # } 265s # data: { 265s # "bar": 3 265s # } 265s # result: null 265s 1..1 265s } 265s ok 1376 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "mismatch" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 265s # "instanceLocation": "/bar", 265s # "keywordLocation": "/properties/bar/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false # 265s 1..1 265s } 265s ok 1377 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "match" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "/base#/$ref", 265s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "/base#/$ref", 265s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s not ok 1 - evaluation result is incorrect # 265s # Failed test (with amnesty) 'evaluation result is incorrect' 265s # at t/zzz-acceptance-draft2019-09.t line 54. 265s # expected true; got false 265s # schema: { 265s # "$id": "/base", 265s # "$ref": "#/examples/0", 265s # "$schema": "https://json-schema.org/draft/2019-09/schema", 265s # "examples": [ 265s # { 265s # "type": "string" 265s # } 265s # ] 265s # } 265s # data: "a string" 265s # result: null 265s 1..1 265s } 265s ok 1378 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "mismatch" { # TODO Test marked TODO via "todo_tests" 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "/base#/$ref", 265s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "/base#/$ref", 265s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 265s # "instanceLocation": "", 265s # "keywordLocation": "/$ref" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false # 265s 1..1 265s } 265s # 265s ok 1379 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 265s # result: { 265s # "valid": true 265s # } 265s # short-circuited result: { 265s # "valid": true 265s # } 265s ok 1 - test passes: data is valid: true 265s 1..1 265s } 265s ok 1380 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/$ref/not" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/not" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 265s # "error": "got null, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/2/$ref/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/$ref/not" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/not" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 265s # "error": "got null, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/2/$ref/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s ok 1381 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 265s # result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/$ref/not" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/not" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/2/$ref/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s # short-circuited result: { 265s # "errors": [ 265s # { 265s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/0/$ref/not" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 265s # "error": "subschema is valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/1/$ref/not" 265s # }, 265s # { 265s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 265s # "error": "got integer, not string", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf/2/$ref/type" 265s # }, 265s # { 265s # "error": "no subschemas are valid", 265s # "instanceLocation": "", 265s # "keywordLocation": "/anyOf" 265s # } 265s # ], 265s # "valid": false 265s # } 265s ok 1 - test passes: data is valid: false 265s 1..1 265s } 265s # 265s # generated with: Test::JSON::Schema::Acceptance 1.029 265s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 265s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 265s # specification version: draft2019-09 265s # optional tests included: yes 265s # skipping directory: optional/format 265s # 265s # filename pass todo-fail fail 265s # --------------------------------------------------------------- 265s # additionalItems.json 20 0 0 265s # additionalProperties.json 21 0 0 265s # allOf.json 30 0 0 265s # anchor.json 8 0 0 265s # anyOf.json 18 0 0 265s # boolean_schema.json 18 0 0 265s # const.json 50 0 0 265s # contains.json 21 0 0 265s # content.json 18 0 0 265s # default.json 7 0 0 265s # defs.json 2 0 0 265s # dependentRequired.json 20 0 0 265s # dependentSchemas.json 20 0 0 265s # enum.json 45 0 0 265s # exclusiveMaximum.json 4 0 0 265s # exclusiveMinimum.json 4 0 0 265s # format.json 114 0 0 265s # if-then-else.json 26 0 0 265s # infinite-loop-detection.json 2 0 0 265s # items.json 28 0 0 265s # maxContains.json 12 0 0 265s # maxItems.json 6 0 0 265s # maxLength.json 7 0 0 265s # maxProperties.json 10 0 0 265s # maximum.json 8 0 0 265s # minContains.json 28 0 0 265s # minItems.json 6 0 0 265s # minLength.json 7 0 0 265s # minProperties.json 8 0 0 265s # minimum.json 11 0 0 265s # multipleOf.json 10 0 0 265s # not.json 40 0 0 265s # oneOf.json 27 0 0 265s # pattern.json 9 0 0 265s # patternProperties.json 23 0 0 265s # properties.json 28 0 0 265s # propertyNames.json 20 0 0 265s # recursiveRef.json 34 0 0 265s # ref.json 79 0 0 265s # refRemote.json 31 0 0 265s # required.json 16 0 0 265s # type.json 80 0 0 265s # unevaluatedItems.json 55 0 0 265s # unevaluatedProperties.json 122 0 0 265s # uniqueItems.json 69 0 0 265s # vocabulary.json 5 0 0 265s # optional/anchor.json 4 0 0 265s # optional/bignum.json 9 0 0 265s # optional/cross-draft.json 3 0 0 265s # optional/dependencies-compatibility.json 22 14 0 265s # optional/ecmascript-regex.json 60 14 0 265s # optional/float-overflow.json 1 0 0 265s # optional/id.json 3 0 0 265s # optional/no-schema.json 3 0 0 265s # optional/non-bmp-regex.json 12 0 0 265s # optional/refOfUnknownKeyword.json 3 3 0 265s # optional/unknownKeyword.json 3 0 0 265s # --------------------------------------------------------------- 265s # TOTAL 1350 31 0 265s # 265s # Congratulations, all non-optional tests are passing! 265s # 265s ok 1382 - no leaks in the main evaluator object 265s ok 1383 - no leaks in the short-circuiting evaluator object 265s 1..1383 265s ok 267s t/zzz-acceptance-draft2020-12-format.t .. 267s # 267s # AUTHOR_TESTING: 267s # AUTOMATED_TESTING: 1 267s # EXTENDED_TESTING: 267s # NO_TODO: 267s # TEST_DIR: 267s # NO_SHORT_CIRCUIT: 267s # 267s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2020-12/optional/format against draft2020-12... 267s # 267s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 267s # result: { 267s # "valid": true 267s # } 267s # short-circuited result: { 267s # "valid": true 267s # } 267s ok 1 - test passes: data is valid: true 267s 1..1 267s } 267s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 267s # result: { 267s # "errors": [ 267s # { 267s # "error": "not a valid date-time string", 267s # "instanceLocation": "", 267s # "keywordLocation": "/format" 267s # } 267s # ], 267s # "valid": false 267s # } 267s # short-circuited result: { 267s # "errors": [ 267s # { 267s # "error": "not a valid date-time string", 267s # "instanceLocation": "", 267s # "keywordLocation": "/format" 267s # } 267s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date-time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 32 - date.json: "validation of date strings" - "a valid date string" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 64 - date.json: "validation of date strings" - "invalid month" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid date string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 73 - duration.json: "validation of duration strings" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 74 - duration.json: "validation of duration strings" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 75 - duration.json: "validation of duration strings" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 76 - duration.json: "validation of duration strings" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 77 - duration.json: "validation of duration strings" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 78 - duration.json: "validation of duration strings" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 79 - duration.json: "validation of duration strings" - "a valid duration string" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 80 - duration.json: "validation of duration strings" - "an invalid duration string" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 81 - duration.json: "validation of duration strings" - "must start with P" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 82 - duration.json: "validation of duration strings" - "no elements present" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 83 - duration.json: "validation of duration strings" - "no time elements present" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 84 - duration.json: "validation of duration strings" - "no date or time elements present" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 85 - duration.json: "validation of duration strings" - "elements out of order" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 86 - duration.json: "validation of duration strings" - "missing time separator" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 87 - duration.json: "validation of duration strings" - "time element in the date position" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 88 - duration.json: "validation of duration strings" - "four years duration" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 89 - duration.json: "validation of duration strings" - "zero time, in seconds" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 90 - duration.json: "validation of duration strings" - "zero time, in days" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 91 - duration.json: "validation of duration strings" - "one month duration" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 92 - duration.json: "validation of duration strings" - "one minute duration" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 93 - duration.json: "validation of duration strings" - "one and a half days, in hours" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 94 - duration.json: "validation of duration strings" - "one and a half days, in days and hours" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 95 - duration.json: "validation of duration strings" - "two weeks" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 96 - duration.json: "validation of duration strings" - "weeks cannot be combined with other units" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 97 - duration.json: "validation of duration strings" - "invalid non-ASCII '২' (a Bengali 2)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 98 - duration.json: "validation of duration strings" - "element without unit" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 99 - ecmascript-regex.json: "\a is not an ECMA 262 control escape" - "when used as a pattern" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "regex" 268s # } 268s # data: "\\a" 268s # result: 1 268s 1..1 268s } 268s # 268s ok 100 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 101 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 102 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 103 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 104 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 105 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 106 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 107 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 108 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 109 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 110 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 111 - email.json: "validation of e-mail addresses" - "a quoted string with a space in the local part is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 112 - email.json: "validation of e-mail addresses" - "a quoted string with a double dot in the local part is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 113 - email.json: "validation of e-mail addresses" - "a quoted string with a @ in the local part is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 114 - email.json: "validation of e-mail addresses" - "an IPv4-address-literal after the @ is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 115 - email.json: "validation of e-mail addresses" - "an IPv6-address-literal after the @ is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 116 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 117 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 118 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 119 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 120 - email.json: "validation of e-mail addresses" - "an invalid domain" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "email" 268s # } 268s # data: "joe.bloggs@invalid=domain.com" 268s # result: 1 268s 1..1 268s } 268s ok 121 - email.json: "validation of e-mail addresses" - "an invalid IPv4-address-literal" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "email" 268s # } 268s # data: "joe.bloggs@[127.0.0.300]" 268s # result: 1 268s 1..1 268s } 268s # 268s ok 122 - hostname.json: "validation of host names" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 123 - hostname.json: "validation of host names" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 124 - hostname.json: "validation of host names" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 125 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 126 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 127 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 128 - hostname.json: "validation of host names" - "a valid host name" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 129 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 130 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 131 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 132 - hostname.json: "validation of host names" - "a host name with a component too long" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 133 - hostname.json: "validation of host names" - "starts with hyphen" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 134 - hostname.json: "validation of host names" - "ends with hyphen" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 135 - hostname.json: "validation of host names" - "starts with underscore" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 136 - hostname.json: "validation of host names" - "ends with underscore" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 137 - hostname.json: "validation of host names" - "contains underscore" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 138 - hostname.json: "validation of host names" - "maximum label length" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 139 - hostname.json: "validation of host names" - "exceeds maximum label length" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 140 - hostname.json: "validation of host names" - "single label" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 141 - hostname.json: "validation of host names" - "single label with hyphen" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 142 - hostname.json: "validation of host names" - "single label with digits" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 143 - hostname.json: "validation of host names" - "single label starting with digit" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 144 - hostname.json: "validation of host names" - "single label ending with digit" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 145 - hostname.json: "validation of host names" - "empty string" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 146 - hostname.json: "validation of host names" - "single dot" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 147 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 148 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 149 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 150 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 151 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 152 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 153 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 154 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 155 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 156 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-email string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 157 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 158 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 159 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 160 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 161 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 162 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 163 - idn-hostname.json: "validation of internationalized host names" - "a valid host name (example.test in Hangul)" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 164 - idn-hostname.json: "validation of internationalized host names" - "illegal first char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 165 - idn-hostname.json: "validation of internationalized host names" - "contains illegal char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "실〮례.테스트" 268s # result: 1 268s 1..1 268s } 268s ok 166 - idn-hostname.json: "validation of internationalized host names" - "a host name with a component too long" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 167 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 168 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 169 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "xn--X" 268s # result: 1 268s 1..1 268s } 268s ok 170 - idn-hostname.json: "validation of internationalized host names" - "U-label contains "--" in the 3rd and 4th position" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "XN--aa---o47jg78q" 268s # result: 1 268s 1..1 268s } 268s ok 171 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 172 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 173 - idn-hostname.json: "validation of internationalized host names" - "U-label starts and ends with a dash" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 174 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 175 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 176 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 177 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 178 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 179 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "ـߺ" 268s # result: 1 268s 1..1 268s } 268s ok 180 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "〱〲〳〴〵〮〯〻" 268s # result: 1 268s 1..1 268s } 268s ok 181 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "a·l" 268s # result: 1 268s 1..1 268s } 268s ok 182 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "·l" 268s # result: 1 268s 1..1 268s } 268s ok 183 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "l·a" 268s # result: 1 268s 1..1 268s } 268s ok 184 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "l·" 268s # result: 1 268s 1..1 268s } 268s ok 185 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 186 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "α͵S" 268s # result: 1 268s 1..1 268s } 268s ok 187 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "α͵" 268s # result: 1 268s 1..1 268s } 268s ok 188 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 189 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 190 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "׳ב" 268s # result: 1 268s 1..1 268s } 268s ok 191 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 192 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 193 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "״ב" 268s # result: 1 268s 1..1 268s } 268s ok 194 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 195 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "def・abc" 268s # result: 1 268s 1..1 268s } 268s ok 196 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "idn-hostname" 268s # } 268s # data: "・" 268s # result: 1 268s 1..1 268s } 268s ok 197 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 198 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 199 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 200 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 201 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits not mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 202 - idn-hostname.json: "validation of internationalized host names" - "Extended Arabic-Indic digits not mixed with Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 203 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 204 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 205 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 206 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 207 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER not preceded by Virama but matches regexp" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 208 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 209 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 210 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 211 - idn-hostname.json: "validation of internationalized host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 212 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 213 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false # 268s 1..1 268s } 268s ok 214 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 215 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 216 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 217 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid idn-hostname string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 218 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 219 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 220 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 221 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s # 268s ok 222 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 223 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 224 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 225 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 226 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 227 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 228 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 229 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 230 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 231 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 232 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 233 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 234 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 235 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 236 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 237 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv4 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 238 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 239 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 240 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 241 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 242 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 243 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 244 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 245 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 246 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 247 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 248 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 249 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 250 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 251 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 252 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 253 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 254 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 255 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 256 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 257 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 258 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 259 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 260 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 261 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 262 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 263 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 264 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 265 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 266 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 267 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 268 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 269 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 270 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 271 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 272 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 273 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 274 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 275 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 276 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 277 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid ipv6 string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 278 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 279 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 280 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 281 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 282 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 283 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 284 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 285 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 286 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 287 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "iri-reference" 268s # } 268s # data: "\\\\WINDOWS\\filëßåré" 268s # result: 1 268s 1..1 268s } 268s ok 288 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 289 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 290 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "iri-reference" 268s # } 268s # data: "#ƒräg\\mênt" 268s # result: 1 268s 1..1 268s } 268s # 268s ok 291 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 292 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 293 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 294 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 295 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 296 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 297 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 298 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 299 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 300 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 301 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 302 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "iri" 268s # } 268s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 268s # result: 1 268s 1..1 268s } 268s ok 303 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid iri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid iri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 304 - iri.json: "validation of IRIs" - "an invalid IRI" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid iri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid iri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 305 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid iri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid iri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 308 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 309 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 310 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 311 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 312 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 313 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 314 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 315 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 316 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 317 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 318 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 319 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 320 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 321 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 322 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 323 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 324 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 325 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 326 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 327 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 328 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 329 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 330 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 331 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 332 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 333 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 334 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 335 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 336 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 337 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 338 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 339 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 340 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 341 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 342 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 343 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 344 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 345 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 346 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 347 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 348 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 349 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 350 - regex.json: "validation of regular expressions" - "a valid regular expression" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 351 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid regex string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid regex string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 352 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 353 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 354 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 355 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 356 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 357 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 358 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 359 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 360 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 361 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 362 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 363 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 364 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 365 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 366 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 367 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 368 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid relative-json-pointer string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 369 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s # 268s ok 370 - time.json: "validation of time strings" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 371 - time.json: "validation of time strings" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 372 - time.json: "validation of time strings" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 373 - time.json: "validation of time strings" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 374 - time.json: "validation of time strings" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 375 - time.json: "validation of time strings" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 376 - time.json: "validation of time strings" - "a valid time string" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 377 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 378 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 379 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 380 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 381 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 382 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 383 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 384 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 385 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 386 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 387 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 388 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 389 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 390 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 391 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 392 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 393 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 394 - time.json: "validation of time strings" - "a valid time string with second fraction" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 395 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 396 - time.json: "validation of time strings" - "a valid time string with plus offset" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 397 - time.json: "validation of time strings" - "a valid time string with minus offset" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 398 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 399 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 400 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 401 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 402 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 403 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 404 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 405 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 406 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 407 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 408 - time.json: "validation of time strings" - "an invalid offset indicator" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 409 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 410 - time.json: "validation of time strings" - "no time offset" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 411 - time.json: "validation of time strings" - "no time offset with second fraction" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 412 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 413 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 414 - time.json: "validation of time strings" - "contains letters" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid time string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 415 - unknown.json: "unknown format" - "unknown formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 416 - unknown.json: "unknown format" - "unknown formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 417 - unknown.json: "unknown format" - "unknown formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 418 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 419 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 420 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 421 - unknown.json: "unknown format" - "unknown formats ignore strings" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s # 268s ok 422 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 423 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 424 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 425 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 426 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 427 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 428 - uri-reference.json: "validation of URI References" - "a valid URI" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 429 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 430 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 431 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri-reference string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri-reference string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 432 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 433 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 434 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri-reference string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri-reference string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 435 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 436 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 437 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 438 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 439 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 440 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 441 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 442 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "uri-template" 268s # } 268s # data: "http://example.com/dictionary/{term:1}/{term" 268s # result: 1 268s 1..1 268s } 268s ok 443 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s ok 444 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true # 268s 1..1 268s } 268s # 268s ok 445 - uri.json: "validation of URIs" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 446 - uri.json: "validation of URIs" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 447 - uri.json: "validation of URIs" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 448 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 449 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 450 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 451 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 452 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 453 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 454 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 455 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 456 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 457 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 458 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 459 - uri.json: "validation of URIs" - "a valid URL " { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 460 - uri.json: "validation of URIs" - "a valid mailto URI" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 461 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 462 - uri.json: "validation of URIs" - "a valid tel URI" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 463 - uri.json: "validation of URIs" - "a valid URN" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 464 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 465 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 466 - uri.json: "validation of URIs" - "an invalid URI" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 467 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 468 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 469 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uri string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 470 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s not ok 1 - evaluation result is incorrect # 268s # Failed test (with amnesty) 'evaluation result is incorrect' 268s # at t/zzz-acceptance-draft2020-12-format.t line 70. 268s # expected false; got true 268s # schema: { 268s # "$schema": "https://json-schema.org/draft/2020-12/schema", 268s # "format": "uri" 268s # } 268s # data: "bar,baz:foo" 268s # result: 1 268s 1..1 268s } 268s # 268s ok 471 - uuid.json: "uuid format" - "all string formats ignore integers" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 472 - uuid.json: "uuid format" - "all string formats ignore floats" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 473 - uuid.json: "uuid format" - "all string formats ignore objects" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 474 - uuid.json: "uuid format" - "all string formats ignore arrays" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 475 - uuid.json: "uuid format" - "all string formats ignore booleans" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 476 - uuid.json: "uuid format" - "all string formats ignore nulls" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 477 - uuid.json: "uuid format" - "all upper-case" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 478 - uuid.json: "uuid format" - "all lower-case" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 479 - uuid.json: "uuid format" - "mixed case" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 480 - uuid.json: "uuid format" - "all zeroes is valid" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 481 - uuid.json: "uuid format" - "wrong length" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 482 - uuid.json: "uuid format" - "missing section" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 483 - uuid.json: "uuid format" - "bad characters (not hex)" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 484 - uuid.json: "uuid format" - "no dashes" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 485 - uuid.json: "uuid format" - "too few dashes" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 486 - uuid.json: "uuid format" - "too many dashes" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 487 - uuid.json: "uuid format" - "dashes in the wrong spot" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "not a valid uuid string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 488 - uuid.json: "uuid format" - "valid version 4" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 489 - uuid.json: "uuid format" - "valid version 5" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 490 - uuid.json: "uuid format" - "hypothetical version 6" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 491 - uuid.json: "uuid format" - "hypothetical version 15" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s # 268s # generated with: Test::JSON::Schema::Acceptance 1.029 268s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 268s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 268s # specification version: draft2020-12 268s # using custom test directory: /optional/format 268s # optional tests included: yes 268s # 268s # filename pass todo-fail fail 268s # --------------------------------------------------------------- 268s # date-time.json 25 0 0 268s # date.json 47 0 0 268s # duration.json 26 0 0 268s # ecmascript-regex.json 0 1 0 268s # email.json 20 2 0 268s # hostname.json 25 0 0 268s # idn-email.json 10 0 0 268s # idn-hostname.json 50 15 0 268s # ipv4.json 16 0 0 268s # ipv6.json 40 0 0 268s # iri-reference.json 11 2 0 268s # iri.json 14 1 0 268s # json-pointer.json 38 0 0 268s # regex.json 8 0 0 268s # relative-json-pointer.json 18 0 0 268s # time.json 45 0 0 268s # unknown.json 7 0 0 268s # uri-reference.json 13 0 0 268s # uri-template.json 9 1 0 268s # uri.json 25 1 0 268s # uuid.json 21 0 0 268s # --------------------------------------------------------------- 268s # TOTAL 468 23 0 268s # 268s # Congratulations, all non-optional tests are passing! 268s # 268s ok 492 - no leaks in the main evaluator object 268s ok 493 - no leaks in the short-circuiting evaluator object 268s 1..493 268s ok 280s t/zzz-acceptance-draft2020-12.t ......... 280s # 280s # AUTHOR_TESTING: 280s # AUTOMATED_TESTING: 1 280s # EXTENDED_TESTING: 280s # NO_TODO: 280s # TEST_DIR: 280s # NO_SHORT_CIRCUIT: 280s # 280s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 280s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2020-12 against draft2020-12... 280s # 280s ok 1 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 2 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "additional property not permitted", 280s # "instanceLocation": "/quux", 280s # "keywordLocation": "/additionalProperties" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "additional property not permitted", 280s # "instanceLocation": "/quux", 280s # "keywordLocation": "/additionalProperties" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 3 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 4 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 5 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 6 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 7 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 8 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "additional property not permitted", 280s # "instanceLocation": "/élmény", 280s # "keywordLocation": "/additionalProperties" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "additional property not permitted", 280s # "instanceLocation": "/élmény", 280s # "keywordLocation": "/additionalProperties" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 9 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 10 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 11 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "got integer, not boolean", 280s # "instanceLocation": "/quux", 280s # "keywordLocation": "/additionalProperties/type" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "got integer, not boolean", 280s # "instanceLocation": "/quux", 280s # "keywordLocation": "/additionalProperties/type" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 12 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 13 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "got integer, not boolean", 280s # "instanceLocation": "/foo", 280s # "keywordLocation": "/additionalProperties/type" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "got integer, not boolean", 280s # "instanceLocation": "/foo", 280s # "keywordLocation": "/additionalProperties/type" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 14 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 15 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "got integer, not boolean", 280s # "instanceLocation": "/foo", 280s # "keywordLocation": "/additionalProperties/type" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "got integer, not boolean", 280s # "instanceLocation": "/foo", 280s # "keywordLocation": "/additionalProperties/type" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 16 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 17 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against both keywords" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 18 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against propertyNames, but not additionalProperties" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "got string, not number", 280s # "instanceLocation": "/pear", 280s # "keywordLocation": "/additionalProperties/type" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "got string, not number", 280s # "instanceLocation": "/pear", 280s # "keywordLocation": "/additionalProperties/type" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 19 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties doesn't consider dependentSchemas" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "additional property not permitted", 280s # "instanceLocation": "/foo", 280s # "keywordLocation": "/additionalProperties" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "additional property not permitted", 280s # "instanceLocation": "/foo", 280s # "keywordLocation": "/additionalProperties" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 20 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "additional property not permitted", 280s # "instanceLocation": "/bar", 280s # "keywordLocation": "/additionalProperties" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "additional property not permitted", 280s # "instanceLocation": "/bar", 280s # "keywordLocation": "/additionalProperties" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 21 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar even when foo2 is present" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "additional property not permitted", 280s # "instanceLocation": "/bar", 280s # "keywordLocation": "/additionalProperties" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "additional property not permitted", 280s # "instanceLocation": "/bar", 280s # "keywordLocation": "/additionalProperties" 280s # }, 280s # { 280s # "error": "not all additional properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/additionalProperties" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s # 280s ok 22 - allOf.json: "allOf" - "allOf" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 23 - allOf.json: "allOf" - "mismatch second" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: bar", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/required" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: bar", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/required" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 24 - allOf.json: "allOf" - "mismatch first" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: foo", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/1/required" 280s # }, 280s # { 280s # "error": "subschema 1 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: foo", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/1/required" 280s # }, 280s # { 280s # "error": "subschema 1 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 25 - allOf.json: "allOf" - "wrong type" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "got string, not integer", 280s # "instanceLocation": "/bar", 280s # "keywordLocation": "/allOf/0/properties/bar/type" 280s # }, 280s # { 280s # "error": "not all properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/properties" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "got string, not integer", 280s # "instanceLocation": "/bar", 280s # "keywordLocation": "/allOf/0/properties/bar/type" 280s # }, 280s # { 280s # "error": "not all properties are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/properties" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 26 - allOf.json: "allOf with base schema" - "valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 27 - allOf.json: "allOf with base schema" - "mismatch base schema" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: bar", 280s # "instanceLocation": "", 280s # "keywordLocation": "/required" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: bar", 280s # "instanceLocation": "", 280s # "keywordLocation": "/required" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 28 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: foo", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/required" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: foo", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/required" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 29 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: baz", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/1/required" 280s # }, 280s # { 280s # "error": "subschema 1 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: baz", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/1/required" 280s # }, 280s # { 280s # "error": "subschema 1 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 30 - allOf.json: "allOf with base schema" - "mismatch both" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: foo", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/required" 280s # }, 280s # { 280s # "error": "object is missing property: baz", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/1/required" 280s # }, 280s # { 280s # "error": "subschemas 0, 1 are not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "object is missing property: foo", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/required" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 31 - allOf.json: "allOf simple types" - "valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 32 - allOf.json: "allOf simple types" - "mismatch one" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "value is greater than 30", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/maximum" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "value is greater than 30", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/maximum" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 33 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 34 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "subschema is false", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/1" 280s # }, 280s # { 280s # "error": "subschema 1 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "subschema is false", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/1" 280s # }, 280s # { 280s # "error": "subschema 1 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 35 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "subschema is false", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0" 280s # }, 280s # { 280s # "error": "subschema is false", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/1" 280s # }, 280s # { 280s # "error": "subschemas 0, 1 are not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "subschema is false", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 36 - allOf.json: "allOf with one empty schema" - "any data is valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 37 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 38 - allOf.json: "allOf with the first empty schema" - "number is valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 39 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "got string, not number", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/1/type" 280s # }, 280s # { 280s # "error": "subschema 1 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "got string, not number", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/1/type" 280s # }, 280s # { 280s # "error": "subschema 1 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 40 - allOf.json: "allOf with the last empty schema" - "number is valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 41 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "got string, not number", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/type" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "got string, not number", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/type" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 42 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 280s ok 1 - test passes: data is valid: true 280s 1..1 280s } 280s ok 43 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "got integer, not null", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/allOf/0/type" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/allOf" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "got integer, not null", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/allOf/0/type" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/allOf" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 44 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 2", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # }, 280s # { 280s # "error": "value is not a multiple of 3", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "no subschemas are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf" 280s # }, 280s # { 280s # "error": "value is not a multiple of 5", 280s # "instanceLocation": "", 280s # "keywordLocation": "/oneOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "no subschemas are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/oneOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 2", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 45 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 2", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # }, 280s # { 280s # "error": "value is not a multiple of 3", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "no subschemas are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 2", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 46 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 2", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # }, 280s # { 280s # "error": "value is not a multiple of 5", 280s # "instanceLocation": "", 280s # "keywordLocation": "/oneOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "no subschemas are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/oneOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 2", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 47 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 2", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 2", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "subschema 0 is not valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/allOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 48 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 3", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "no subschemas are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf" 280s # }, 280s # { 280s # "error": "value is not a multiple of 5", 280s # "instanceLocation": "", 280s # "keywordLocation": "/oneOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "no subschemas are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/oneOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 3", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "no subschemas are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 49 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 3", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "no subschemas are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 3", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "no subschemas are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/anyOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 50 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 280s # result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 5", 280s # "instanceLocation": "", 280s # "keywordLocation": "/oneOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "no subschemas are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/oneOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s # short-circuited result: { 280s # "errors": [ 280s # { 280s # "error": "value is not a multiple of 5", 280s # "instanceLocation": "", 280s # "keywordLocation": "/oneOf/0/multipleOf" 280s # }, 280s # { 280s # "error": "no subschemas are valid", 280s # "instanceLocation": "", 280s # "keywordLocation": "/oneOf" 280s # } 280s # ], 280s # "valid": false 280s # } 280s ok 1 - test passes: data is valid: false 280s 1..1 280s } 280s ok 51 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 280s # result: { 280s # "valid": true 280s # } 280s # short-circuited result: { 280s # "valid": true 280s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 52 - anchor.json: "Location-independent identifier" - "match" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 53 - anchor.json: "Location-independent identifier" - "mismatch" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/A/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/A/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 54 - anchor.json: "Location-independent identifier with absolute URI" - "match" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 55 - anchor.json: "Location-independent identifier with absolute URI" - "mismatch" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/bar#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/bar#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 56 - anchor.json: "Location-independent identifier with base URI change in subschema" - "match" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 57 - anchor.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested.json#/$defs/B/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested.json#/$defs/B/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 58 - anchor.json: "same $anchor with different base uri" - "$ref resolves to /$defs/A/allOf/1" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 59 - anchor.json: "same $anchor with different base uri" - "$ref does not resolve to /$defs/A/allOf/0" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/child1#/allOf/1/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/child1#/allOf/1/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 60 - anyOf.json: "anyOf" - "first anyOf valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 61 - anyOf.json: "anyOf" - "second anyOf valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 62 - anyOf.json: "anyOf" - "both anyOf valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 63 - anyOf.json: "anyOf" - "neither anyOf valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/type" 281s # }, 281s # { 281s # "error": "value is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/minimum" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/type" 281s # }, 281s # { 281s # "error": "value is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/minimum" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 64 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 65 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 66 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "length is greater than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/maxLength" 281s # }, 281s # { 281s # "error": "length is less than 4", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/minLength" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "length is greater than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/maxLength" 281s # }, 281s # { 281s # "error": "length is less than 4", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/minLength" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 67 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 68 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 69 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0" 281s # }, 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0" 281s # }, 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 70 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 71 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 72 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 73 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/anyOf/0/properties/bar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/properties" 281s # }, 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/anyOf/1/properties/foo/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/properties" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/anyOf/0/properties/bar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/properties" 281s # }, 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/anyOf/1/properties/foo/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/properties" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 74 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 75 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 76 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 77 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/anyOf/0/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/anyOf" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/anyOf/0/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/anyOf" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 78 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 79 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 80 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 81 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 82 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 83 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 84 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 85 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 86 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 87 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 88 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 89 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 90 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 91 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 92 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 93 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 94 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 95 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 96 - const.json: "const validation" - "same value is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 97 - const.json: "const validation" - "another value is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 98 - const.json: "const validation" - "another type is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 99 - const.json: "const with object" - "same object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 100 - const.json: "const with object" - "same object with different property order is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 101 - const.json: "const with object" - "another object is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 102 - const.json: "const with object" - "another type is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 103 - const.json: "const with array" - "same array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 104 - const.json: "const with array" - "another array item is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/0': wrong type: integer vs object)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/0': wrong type: integer vs object)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 105 - const.json: "const with array" - "array with additional items is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 106 - const.json: "const with null" - "null is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 107 - const.json: "const with null" - "not null is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 108 - const.json: "const with false does not match 0" - "false is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 109 - const.json: "const with false does not match 0" - "integer zero is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 110 - const.json: "const with false does not match 0" - "float zero is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 111 - const.json: "const with true does not match 1" - "true is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 112 - const.json: "const with true does not match 1" - "integer one is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 113 - const.json: "const with true does not match 1" - "float one is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 114 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 115 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 116 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 117 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 118 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 119 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 120 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 121 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 122 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 123 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 124 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 125 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 126 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 127 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 128 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 129 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 130 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 131 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 132 - const.json: "const with 1 does not match true" - "true is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 133 - const.json: "const with 1 does not match true" - "integer one is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 134 - const.json: "const with 1 does not match true" - "float one is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 135 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 136 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 137 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 138 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 139 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 140 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 141 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 142 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 143 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 144 - const.json: "nul characters in strings" - "match string with nul" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 145 - const.json: "nul characters in strings" - "do not match string lacking nul" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/const" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 146 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 147 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 148 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 149 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than 5", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains/minimum" 281s # }, 281s # { 281s # "error": "value is less than 5", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/contains/minimum" 281s # }, 281s # { 281s # "error": "value is less than 5", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/contains/minimum" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than 5", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains/minimum" 281s # }, 281s # { 281s # "error": "value is less than 5", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/contains/minimum" 281s # }, 281s # { 281s # "error": "value is less than 5", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/contains/minimum" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 150 - contains.json: "contains keyword validation" - "empty array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 151 - contains.json: "contains keyword validation" - "not array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 152 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 153 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 154 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains/const" 281s # }, 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/contains/const" 281s # }, 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/contains/const" 281s # }, 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/contains/const" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains/const" 281s # }, 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/contains/const" 281s # }, 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/contains/const" 281s # }, 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/contains/const" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 155 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 156 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 157 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 158 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 159 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 160 - contains.json: "items + contains" - "matches items, does not match contains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 3", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains/multipleOf" 281s # }, 281s # { 281s # "error": "value is not a multiple of 3", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/contains/multipleOf" 281s # }, 281s # { 281s # "error": "value is not a multiple of 3", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/contains/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 3", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains/multipleOf" 281s # }, 281s # { 281s # "error": "value is not a multiple of 3", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/contains/multipleOf" 281s # }, 281s # { 281s # "error": "value is not a multiple of 3", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/contains/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 161 - contains.json: "items + contains" - "does not match items, matches contains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/multipleOf" 281s # }, 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/items/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 162 - contains.json: "items + contains" - "matches both items and contains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 163 - contains.json: "items + contains" - "matches neither items nor contains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/multipleOf" 281s # }, 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "value is not a multiple of 3", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains/multipleOf" 281s # }, 281s # { 281s # "error": "value is not a multiple of 3", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/contains/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 164 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 165 - contains.json: "contains with false if subschema" - "empty array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 166 - contains.json: "contains with null instance elements" - "allows null items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 167 - content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 168 - content.json: "validation of string-encoded content based on media type" - "an invalid JSON document; validates true" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 169 - content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 170 - content.json: "validation of binary string-encoding" - "a valid base64 string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 171 - content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character); validates true" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 172 - content.json: "validation of binary string-encoding" - "ignores non-strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 173 - content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 174 - content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document; validates true" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 175 - content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON; validates true" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 176 - content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 177 - content.json: "validation of binary-encoded media type documents with schema" - "a valid base64-encoded JSON document" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 178 - content.json: "validation of binary-encoded media type documents with schema" - "another valid base64-encoded JSON document" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 179 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64-encoded JSON document; validates true" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 180 - content.json: "validation of binary-encoded media type documents with schema" - "an empty object as a base64-encoded JSON document; validates true" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 181 - content.json: "validation of binary-encoded media type documents with schema" - "an empty array as a base64-encoded JSON document" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 182 - content.json: "validation of binary-encoded media type documents with schema" - "a validly-encoded invalid JSON document; validates true" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 183 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64 string that is valid JSON; validates true" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 184 - content.json: "validation of binary-encoded media type documents with schema" - "ignores non-strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 185 - default.json: "invalid type for default" - "valid when property is specified" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 186 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 187 - default.json: "invalid string value for default" - "valid when property is specified" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 188 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 189 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (passing)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 190 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (failing)" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than 3", 281s # "instanceLocation": "/alpha", 281s # "keywordLocation": "/properties/alpha/maximum" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than 3", 281s # "instanceLocation": "/alpha", 281s # "keywordLocation": "/properties/alpha/maximum" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 191 - default.json: "the default keyword does not do anything if the property is missing" - "missing properties are not filled in with the default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 192 - defs.json: "validate definition against metaschema" - "valid definition schema" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 193 - defs.json: "validate definition against metaschema" - "invalid definition schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/simpleTypes/enum", 281s # "error": "value does not match", 281s # "instanceLocation": "/$defs/foo/type", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/0/$ref/enum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf/1/type", 281s # "error": "got integer, not array", 281s # "instanceLocation": "/$defs/foo/type", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/1/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf", 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "/$defs/foo/type", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/$defs/foo", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 281s # "error": "subschema 3 is not valid", 281s # "instanceLocation": "/$defs/foo", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties/$defs/additionalProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/$defs", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/simpleTypes/enum", 281s # "error": "value does not match", 281s # "instanceLocation": "/$defs/foo/type", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/0/$ref/enum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf/1/type", 281s # "error": "got integer, not array", 281s # "instanceLocation": "/$defs/foo/type", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/1/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf", 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "/$defs/foo/type", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/$defs/foo", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 281s # "error": "subschema 3 is not valid", 281s # "instanceLocation": "/$defs/foo", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties/$defs/additionalProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/$defs", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 194 - dependentRequired.json: "single dependency" - "neither" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 195 - dependentRequired.json: "single dependency" - "nondependant" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 196 - dependentRequired.json: "single dependency" - "with dependency" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 197 - dependentRequired.json: "single dependency" - "missing dependency" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/bar" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/bar" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 198 - dependentRequired.json: "single dependency" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 199 - dependentRequired.json: "single dependency" - "ignores strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 200 - dependentRequired.json: "single dependency" - "ignores other non-objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 201 - dependentRequired.json: "empty dependents" - "empty object" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 202 - dependentRequired.json: "empty dependents" - "object with one property" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 203 - dependentRequired.json: "empty dependents" - "non-object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 204 - dependentRequired.json: "multiple dependents required" - "neither" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 205 - dependentRequired.json: "multiple dependents required" - "nondependants" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 206 - dependentRequired.json: "multiple dependents required" - "with dependencies" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 207 - dependentRequired.json: "multiple dependents required" - "missing dependency" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/quux" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/quux" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 208 - dependentRequired.json: "multiple dependents required" - "missing other dependency" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/quux" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/quux" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 209 - dependentRequired.json: "multiple dependents required" - "missing both dependencies" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: foo, bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/quux" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: foo, bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/quux" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 210 - dependentRequired.json: "dependencies with escaped characters" - "CRLF" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 211 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 212 - dependentRequired.json: "dependencies with escaped characters" - "CRLF missing dependent" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo\rbar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/foo\nbar" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo\rbar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/foo\nbar" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 213 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo'bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/foo\"bar" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo'bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired/foo\"bar" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentRequired" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 214 - dependentSchemas.json: "single dependency" - "valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 215 - dependentSchemas.json: "single dependency" - "no dependency" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 216 - dependentSchemas.json: "single dependency" - "wrong type" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/bar/properties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/bar/properties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 217 - dependentSchemas.json: "single dependency" - "wrong type other" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/bar/properties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/bar/properties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 218 - dependentSchemas.json: "single dependency" - "wrong type both" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 281s # }, 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/bar/properties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/bar/properties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 219 - dependentSchemas.json: "single dependency" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 220 - dependentSchemas.json: "single dependency" - "ignores strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 221 - dependentSchemas.json: "single dependency" - "ignores other non-objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 222 - dependentSchemas.json: "boolean subschemas" - "object with property having schema true is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 223 - dependentSchemas.json: "boolean subschemas" - "object with property having schema false is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/bar" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/bar" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 224 - dependentSchemas.json: "boolean subschemas" - "object with both properties is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/bar" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/bar" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 225 - dependentSchemas.json: "boolean subschemas" - "empty object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 226 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 227 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo\"bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/foo'bar/required" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo\"bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/foo'bar/required" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 228 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab invalid under dependent schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object has fewer than 4 properties", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object has fewer than 4 properties", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 229 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote invalid under dependent schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo\"bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/foo'bar/required" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo\"bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/foo'bar/required" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 230 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches root" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 231 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches dependency" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 232 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches both" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 281s # }, 281s # { 281s # "error": "not all dependencies are satisfied", 281s # "instanceLocation": "", 281s # "keywordLocation": "/dependentSchemas" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 233 - dependentSchemas.json: "dependent subschema incompatible with root" - "no dependency" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 234 - dynamicRef.json: "A $dynamicRef to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array of strings is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 235 - dynamicRef.json: "A $dynamicRef to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array containing non-strings is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/$defs/foo/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/$defs/foo/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 236 - dynamicRef.json: "A $dynamicRef to an $anchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array of strings is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 237 - dynamicRef.json: "A $dynamicRef to an $anchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array containing non-strings is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/$defs/foo/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/$defs/foo/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 238 - dynamicRef.json: "A $ref to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array of strings is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 239 - dynamicRef.json: "A $ref to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array containing non-strings is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/$defs/foo/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/$defs/foo/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 240 - dynamicRef.json: "A $dynamicRef resolves to the first $dynamicAnchor still in scope that is encountered when the schema is evaluated" - "An array of strings is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 241 - dynamicRef.json: "A $dynamicRef resolves to the first $dynamicAnchor still in scope that is encountered when the schema is evaluated" - "An array containing non-strings is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/root#/$defs/foo/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/$ref/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/list#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/root#/$defs/foo/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/$ref/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/list#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 242 - dynamicRef.json: "A $dynamicRef without anchor in fragment behaves identical to $ref" - "An array of strings is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/$ref/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/$ref/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/$ref/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 243 - dynamicRef.json: "A $dynamicRef without anchor in fragment behaves identical to $ref" - "An array of numbers is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 244 - dynamicRef.json: "A $dynamicRef with intermediate scopes that don't include a matching $dynamicAnchor does not affect dynamic scope resolution" - "An array of strings is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 245 - dynamicRef.json: "A $dynamicRef with intermediate scopes that don't include a matching $dynamicAnchor does not affect dynamic scope resolution" - "An array containing non-strings is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root#/$defs/foo/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/$ref/$ref/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/list#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root#/$defs/foo/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/$ref/$ref/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/list#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 246 - dynamicRef.json: "An $anchor with the same name as a $dynamicAnchor is not used for dynamic scope resolution" - "Any array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 247 - dynamicRef.json: "A $dynamicRef without a matching $dynamicAnchor in the same schema resource behaves like a normal $ref to $anchor" - "Any array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 248 - dynamicRef.json: "A $dynamicRef with a non-matching $dynamicAnchor in the same schema resource behaves like a normal $ref to $anchor" - "Any array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 249 - dynamicRef.json: "A $dynamicRef that initially resolves to a schema with a matching $dynamicAnchor resolves to the first $dynamicAnchor in the dynamic scope" - "The recursive part is valid against the root" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 250 - dynamicRef.json: "A $dynamicRef that initially resolves to a schema with a matching $dynamicAnchor resolves to the first $dynamicAnchor in the dynamic scope" - "The recursive part is not valid against the root" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties/foo/const", 281s # "error": "value does not match", 281s # "instanceLocation": "/bar/baz/foo", 281s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties/foo/const" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/bar/baz", 281s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/bar#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/$ref/properties/bar/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/extended#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties/foo/const", 281s # "error": "value does not match", 281s # "instanceLocation": "/bar/baz/foo", 281s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties/foo/const" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/bar/baz", 281s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/bar#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/$ref/properties/bar/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/extended#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 251 - dynamicRef.json: "A $dynamicRef that initially resolves to a schema without a matching $dynamicAnchor behaves like a normal $ref to $anchor" - "The recursive part doesn't need to validate against the root" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 252 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "number list with number values" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 253 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "number list with string values" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/numberList#/$defs/itemType/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "/list/0", 281s # "keywordLocation": "/then/$ref/$ref/properties/list/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/list", 281s # "keywordLocation": "/then/$ref/$ref/properties/list/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/$ref/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/then", 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/numberList#/$defs/itemType/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "/list/0", 281s # "keywordLocation": "/then/$ref/$ref/properties/list/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/list", 281s # "keywordLocation": "/then/$ref/$ref/properties/list/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/$ref/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/then", 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 254 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "string list with number values" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/stringList#/$defs/itemType/type", 281s # "error": "got number, not string", 281s # "instanceLocation": "/list/0", 281s # "keywordLocation": "/else/$ref/$ref/properties/list/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/list", 281s # "keywordLocation": "/else/$ref/$ref/properties/list/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else/$ref/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/else", 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/stringList#/$defs/itemType/type", 281s # "error": "got number, not string", 281s # "instanceLocation": "/list/0", 281s # "keywordLocation": "/else/$ref/$ref/properties/list/items/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/list", 281s # "keywordLocation": "/else/$ref/$ref/properties/list/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else/$ref/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/else", 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 255 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "string list with string values" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 256 - dynamicRef.json: "after leaving a dynamic scope, it is not used by a $dynamicRef" - "string matches /$defs/thingy, but the $dynamicRef does not stop here" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 281s # "error": "got string, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/$ref/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 281s # "error": "got string, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/$ref/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 257 - dynamicRef.json: "after leaving a dynamic scope, it is not used by a $dynamicRef" - "first_scope is not in dynamic scope for the $dynamicRef" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 281s # "error": "got integer, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/$ref/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 281s # "error": "got integer, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/$ref/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 258 - dynamicRef.json: "after leaving a dynamic scope, it is not used by a $dynamicRef" - "/then/$defs/thingy is the final stop for the $dynamicRef" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 259 - dynamicRef.json: "strict-tree schema, guards against misspelled properties" - "instance with misspelled field" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/children/0/daat", 281s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/children/0", 281s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties/children/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/children", 281s # "keywordLocation": "/$ref/properties/children/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/children", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/children/0/daat", 281s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/children/0", 281s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties/children/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/children", 281s # "keywordLocation": "/$ref/properties/children/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/children", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 260 - dynamicRef.json: "strict-tree schema, guards against misspelled properties" - "instance with correct field" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 261 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "incorrect parent schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 281s # "error": "object is missing property: elements", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/a", 281s # "keywordLocation": "/$ref/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 281s # "error": "object is missing property: elements", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 262 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "incorrect extended schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/required", 281s # "error": "object is missing property: a", 281s # "instanceLocation": "/elements/0", 281s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/additionalProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/elements/0/b", 281s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/additionalProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/elements/0", 281s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/elements", 281s # "keywordLocation": "/$ref/properties/elements/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/required", 281s # "error": "object is missing property: a", 281s # "instanceLocation": "/elements/0", 281s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/elements", 281s # "keywordLocation": "/$ref/properties/elements/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 263 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "correct extended schema" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 264 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "incorrect parent schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 281s # "error": "object is missing property: elements", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/$ref/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/a", 281s # "keywordLocation": "/allOf/0/$ref/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/$ref/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 281s # "error": "object is missing property: elements", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/$ref/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 265 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "incorrect extended schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/required", 281s # "error": "object is missing property: a", 281s # "instanceLocation": "/elements/0", 281s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/additionalProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/elements/0/b", 281s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/additionalProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/elements/0", 281s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/elements", 281s # "keywordLocation": "/allOf/0/$ref/properties/elements/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/required", 281s # "error": "object is missing property: a", 281s # "instanceLocation": "/elements/0", 281s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/elements", 281s # "keywordLocation": "/allOf/0/$ref/properties/elements/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 266 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "correct extended schema" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 267 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "incorrect parent schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 281s # "error": "object is missing property: elements", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/$ref/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/a", 281s # "keywordLocation": "/allOf/1/$ref/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/$ref/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 281s # "error": "object is missing property: elements", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/$ref/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 268 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "incorrect extended schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/required", 281s # "error": "object is missing property: a", 281s # "instanceLocation": "/elements/0", 281s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/additionalProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/elements/0/b", 281s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/additionalProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/elements/0", 281s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/elements", 281s # "keywordLocation": "/allOf/1/$ref/properties/elements/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/required", 281s # "error": "object is missing property: a", 281s # "instanceLocation": "/elements/0", 281s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/elements", 281s # "keywordLocation": "/allOf/1/$ref/properties/elements/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 269 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "correct extended schema" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 270 - dynamicRef.json: "$ref to $dynamicRef finds detached $dynamicAnchor" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 271 - dynamicRef.json: "$ref to $dynamicRef finds detached $dynamicAnchor" - "non-number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-dynamicref.json#/$defs/detached/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$dynamicRef/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-dynamicref.json#/$defs/detached/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$dynamicRef/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 272 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a true schema" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 273 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a false schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/false", 281s # "error": "subschema is false", 281s # "instanceLocation": "/false", 281s # "keywordLocation": "/properties/false/$dynamicRef" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/false", 281s # "error": "subschema is false", 281s # "instanceLocation": "/false", 281s # "keywordLocation": "/properties/false/$dynamicRef" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 274 - dynamicRef.json: "$dynamicRef skips over intermediate resources - direct reference" - "integer property passes" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 275 - dynamicRef.json: "$dynamicRef skips over intermediate resources - direct reference" - "string property fails" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/$defs/defaultContent/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar-item/content", 281s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/bar-item", 281s # "keywordLocation": "/properties/bar-item/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/$defs/defaultContent/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar-item/content", 281s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/bar-item", 281s # "keywordLocation": "/properties/bar-item/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 276 - enum.json: "simple enum validation" - "one of the enum is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 277 - enum.json: "simple enum validation" - "something else is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 278 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 279 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 280 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 281 - enum.json: "heterogeneous enum validation" - "valid object matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 282 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 283 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 284 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 285 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 286 - enum.json: "enums in properties" - "both properties are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 287 - enum.json: "enums in properties" - "wrong foo value" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/enum" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/enum" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 288 - enum.json: "enums in properties" - "wrong bar value" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/enum" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/enum" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 289 - enum.json: "enums in properties" - "missing optional property is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 290 - enum.json: "enums in properties" - "missing required property is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 291 - enum.json: "enums in properties" - "missing all properties is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 292 - enum.json: "enum with escaped characters" - "member 1 is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 293 - enum.json: "enum with escaped characters" - "member 2 is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 294 - enum.json: "enum with escaped characters" - "another string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 295 - enum.json: "enum with false does not match 0" - "false is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 296 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 297 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 298 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 299 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 300 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 301 - enum.json: "enum with true does not match 1" - "true is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 302 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 303 - enum.json: "enum with true does not match 1" - "float one is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 304 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 305 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 306 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 307 - enum.json: "enum with 0 does not match false" - "false is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 308 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 309 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 310 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 311 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 312 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 313 - enum.json: "enum with 1 does not match true" - "true is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 314 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 315 - enum.json: "enum with 1 does not match true" - "float one is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 316 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 317 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 318 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 319 - enum.json: "nul characters in strings" - "match string with nul" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 320 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 321 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 322 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than or equal to 3", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMaximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than or equal to 3", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMaximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 323 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than or equal to 3", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMaximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than or equal to 3", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMaximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 324 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 325 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 326 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than or equal to 1.1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMinimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than or equal to 1.1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMinimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 327 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than or equal to 1.1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMinimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than or equal to 1.1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMinimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 328 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 329 - format.json: "email format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 330 - format.json: "email format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 331 - format.json: "email format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 332 - format.json: "email format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 333 - format.json: "email format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 334 - format.json: "email format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 335 - format.json: "email format" - "invalid email string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 336 - format.json: "idn-email format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 337 - format.json: "idn-email format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 338 - format.json: "idn-email format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 339 - format.json: "idn-email format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 340 - format.json: "idn-email format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 341 - format.json: "idn-email format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 342 - format.json: "idn-email format" - "invalid idn-email string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 343 - format.json: "regex format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 344 - format.json: "regex format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 345 - format.json: "regex format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 346 - format.json: "regex format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 347 - format.json: "regex format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 348 - format.json: "regex format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 349 - format.json: "regex format" - "invalid regex string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 350 - format.json: "ipv4 format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 351 - format.json: "ipv4 format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 352 - format.json: "ipv4 format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 353 - format.json: "ipv4 format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 354 - format.json: "ipv4 format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 355 - format.json: "ipv4 format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 356 - format.json: "ipv4 format" - "invalid ipv4 string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 357 - format.json: "ipv6 format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 358 - format.json: "ipv6 format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 359 - format.json: "ipv6 format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 360 - format.json: "ipv6 format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 361 - format.json: "ipv6 format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 362 - format.json: "ipv6 format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 363 - format.json: "ipv6 format" - "invalid ipv6 string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 364 - format.json: "idn-hostname format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 365 - format.json: "idn-hostname format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 366 - format.json: "idn-hostname format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 367 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 368 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 369 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 370 - format.json: "idn-hostname format" - "invalid idn-hostname string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 371 - format.json: "hostname format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 372 - format.json: "hostname format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 373 - format.json: "hostname format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 374 - format.json: "hostname format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 375 - format.json: "hostname format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 376 - format.json: "hostname format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 377 - format.json: "hostname format" - "invalid hostname string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 378 - format.json: "date format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 379 - format.json: "date format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 380 - format.json: "date format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 381 - format.json: "date format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 382 - format.json: "date format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 383 - format.json: "date format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 384 - format.json: "date format" - "invalid date string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 385 - format.json: "date-time format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 386 - format.json: "date-time format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 387 - format.json: "date-time format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 388 - format.json: "date-time format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 389 - format.json: "date-time format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 390 - format.json: "date-time format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 391 - format.json: "date-time format" - "invalid date-time string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 392 - format.json: "time format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 393 - format.json: "time format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 394 - format.json: "time format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 395 - format.json: "time format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 396 - format.json: "time format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 397 - format.json: "time format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 398 - format.json: "time format" - "invalid time string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 399 - format.json: "json-pointer format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 400 - format.json: "json-pointer format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 401 - format.json: "json-pointer format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 402 - format.json: "json-pointer format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 403 - format.json: "json-pointer format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 404 - format.json: "json-pointer format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 405 - format.json: "json-pointer format" - "invalid json-pointer string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 406 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 407 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 408 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 409 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 410 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 411 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 412 - format.json: "relative-json-pointer format" - "invalid relative-json-pointer string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 413 - format.json: "iri format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 414 - format.json: "iri format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 415 - format.json: "iri format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 416 - format.json: "iri format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 417 - format.json: "iri format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 418 - format.json: "iri format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 419 - format.json: "iri format" - "invalid iri string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 420 - format.json: "iri-reference format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 421 - format.json: "iri-reference format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 422 - format.json: "iri-reference format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 423 - format.json: "iri-reference format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 424 - format.json: "iri-reference format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 425 - format.json: "iri-reference format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 426 - format.json: "iri-reference format" - "invalid iri-reference string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 427 - format.json: "uri format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 428 - format.json: "uri format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 429 - format.json: "uri format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 430 - format.json: "uri format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 431 - format.json: "uri format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 432 - format.json: "uri format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 433 - format.json: "uri format" - "invalid uri string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 434 - format.json: "uri-reference format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 435 - format.json: "uri-reference format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 436 - format.json: "uri-reference format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 437 - format.json: "uri-reference format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 438 - format.json: "uri-reference format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 439 - format.json: "uri-reference format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 440 - format.json: "uri-reference format" - "invalid uri-reference string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 441 - format.json: "uri-template format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 442 - format.json: "uri-template format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 443 - format.json: "uri-template format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 444 - format.json: "uri-template format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 445 - format.json: "uri-template format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 446 - format.json: "uri-template format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 447 - format.json: "uri-template format" - "invalid uri-template string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 448 - format.json: "uuid format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 449 - format.json: "uuid format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 450 - format.json: "uuid format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 451 - format.json: "uuid format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 452 - format.json: "uuid format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 453 - format.json: "uuid format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 454 - format.json: "uuid format" - "invalid uuid string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 455 - format.json: "duration format" - "all string formats ignore integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 456 - format.json: "duration format" - "all string formats ignore floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 457 - format.json: "duration format" - "all string formats ignore objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 458 - format.json: "duration format" - "all string formats ignore arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 459 - format.json: "duration format" - "all string formats ignore booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 460 - format.json: "duration format" - "all string formats ignore nulls" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 461 - format.json: "duration format" - "invalid duration string is only an annotation by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 462 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 463 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 464 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 465 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 466 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 467 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 468 - if-then-else.json: "if and then without else" - "valid through then" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 469 - if-then-else.json: "if and then without else" - "invalid through then" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than -10", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/minimum" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than -10", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/minimum" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 470 - if-then-else.json: "if and then without else" - "valid when if test fails" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 471 - if-then-else.json: "if and else without then" - "valid when if test passes" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 472 - if-then-else.json: "if and else without then" - "valid through else" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 473 - if-then-else.json: "if and else without then" - "invalid through else" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 474 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 475 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than -10", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/minimum" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than -10", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/minimum" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 476 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 477 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 478 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 479 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 480 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 481 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/const" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/const" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 482 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else/const" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else/const" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 483 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 484 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 485 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 486 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/const" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then/const" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/then" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 487 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else/const" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else/const" 281s # }, 281s # { 281s # "error": "subschema is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/else" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 488 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "passing case" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 489 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "failing case" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/int/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/int/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/additionalProperties" 281s # }, 281s # { 281s # "error": "subschemas 0, 1 are not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/int/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/properties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 490 - items.json: "a schema given for items" - "valid items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 491 - items.json: "a schema given for items" - "wrong type of items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 492 - items.json: "a schema given for items" - "ignores non-arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 493 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 494 - items.json: "items with boolean schema (true)" - "any array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 495 - items.json: "items with boolean schema (true)" - "empty array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 496 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 497 - items.json: "items with boolean schema (false)" - "empty array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 498 - items.json: "items and subitems" - "valid items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 499 - items.json: "items and subitems" - "too many items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 500 - items.json: "items and subitems" - "too many sub-items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/item/items", 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0/2", 281s # "keywordLocation": "/prefixItems/0/$ref/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/item/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/prefixItems/0/$ref/items" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/item/items", 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0/2", 281s # "keywordLocation": "/prefixItems/0/$ref/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/item/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/prefixItems/0/$ref/items" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 501 - items.json: "items and subitems" - "wrong item" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/item/type", 281s # "error": "got object, not array", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/prefixItems/0/$ref/type" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/item/type", 281s # "error": "got object, not array", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/prefixItems/0/$ref/type" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 502 - items.json: "items and subitems" - "wrong sub-item" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "/0/0", 281s # "keywordLocation": "/prefixItems/0/$ref/prefixItems/0/$ref/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/item/prefixItems", 281s # "error": "not all items are valid", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/prefixItems/0/$ref/prefixItems" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "/0/0", 281s # "keywordLocation": "/prefixItems/0/$ref/prefixItems/0/$ref/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/item/prefixItems", 281s # "error": "not all items are valid", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/prefixItems/0/$ref/prefixItems" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 503 - items.json: "items and subitems" - "fewer items is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 504 - items.json: "nested items" - "valid nested array" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 505 - items.json: "nested items" - "nested array with invalid type" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/0/0/0/0", 281s # "keywordLocation": "/items/items/items/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0/0/0", 281s # "keywordLocation": "/items/items/items/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0/0", 281s # "keywordLocation": "/items/items/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/0/0/0/0", 281s # "keywordLocation": "/items/items/items/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0/0/0", 281s # "keywordLocation": "/items/items/items/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0/0", 281s # "keywordLocation": "/items/items/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 506 - items.json: "nested items" - "not deep enough" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not array", 281s # "instanceLocation": "/0/0/0", 281s # "keywordLocation": "/items/items/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0/0", 281s # "keywordLocation": "/items/items/items" 281s # }, 281s # { 281s # "error": "got integer, not array", 281s # "instanceLocation": "/0/1/0", 281s # "keywordLocation": "/items/items/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0/1", 281s # "keywordLocation": "/items/items/items" 281s # }, 281s # { 281s # "error": "got integer, not array", 281s # "instanceLocation": "/0/2/0", 281s # "keywordLocation": "/items/items/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0/2", 281s # "keywordLocation": "/items/items/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/items" 281s # }, 281s # { 281s # "error": "got integer, not array", 281s # "instanceLocation": "/1/0/0", 281s # "keywordLocation": "/items/items/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/1/0", 281s # "keywordLocation": "/items/items/items" 281s # }, 281s # { 281s # "error": "got integer, not array", 281s # "instanceLocation": "/1/1/0", 281s # "keywordLocation": "/items/items/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/1/1", 281s # "keywordLocation": "/items/items/items" 281s # }, 281s # { 281s # "error": "got integer, not array", 281s # "instanceLocation": "/1/2/0", 281s # "keywordLocation": "/items/items/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/1/2", 281s # "keywordLocation": "/items/items/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not array", 281s # "instanceLocation": "/0/0/0", 281s # "keywordLocation": "/items/items/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0/0", 281s # "keywordLocation": "/items/items/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 507 - items.json: "prefixItems with no additional items allowed" - "empty array" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 508 - items.json: "prefixItems with no additional items allowed" - "fewer number of items present (1)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 509 - items.json: "prefixItems with no additional items allowed" - "fewer number of items present (2)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 510 - items.json: "prefixItems with no additional items allowed" - "equal number of items present" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 511 - items.json: "prefixItems with no additional items allowed" - "additional items are not permitted" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 512 - items.json: "items does not look in applicators, valid case" - "prefixItems in allOf does not constrain items, invalid case" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than 5", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/minimum" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than 5", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/minimum" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 513 - items.json: "items does not look in applicators, valid case" - "prefixItems in allOf does not constrain items, valid case" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 514 - items.json: "prefixItems validation adjusts the starting index for items" - "valid items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 515 - items.json: "prefixItems validation adjusts the starting index for items" - "wrong type of second item" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 516 - items.json: "items with heterogeneous array" - "heterogeneous invalid instance" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 517 - items.json: "items with heterogeneous array" - "valid instance" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 518 - items.json: "items with null instance elements" - "allows null elements" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 519 - maxContains.json: "maxContains without contains is ignored" - "one item valid against lone maxContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 520 - maxContains.json: "maxContains without contains is ignored" - "two items still valid against lone maxContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 521 - maxContains.json: "maxContains with contains" - "empty data" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 522 - maxContains.json: "maxContains with contains" - "all elements match, valid maxContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 523 - maxContains.json: "maxContains with contains" - "all elements match, invalid maxContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 524 - maxContains.json: "maxContains with contains" - "some elements match, valid maxContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 525 - maxContains.json: "maxContains with contains" - "some elements match, invalid maxContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 526 - maxContains.json: "maxContains with contains, value with a decimal" - "one element matches, valid maxContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 527 - maxContains.json: "maxContains with contains, value with a decimal" - "too many elements match, invalid maxContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 528 - maxContains.json: "minContains < maxContains" - "actual < minContains < maxContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # }, 281s # { 281s # "error": "array contains fewer than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 529 - maxContains.json: "minContains < maxContains" - "minContains < actual < maxContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 530 - maxContains.json: "minContains < maxContains" - "minContains < maxContains < actual" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 3 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 3 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 531 - maxItems.json: "maxItems validation" - "shorter is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 532 - maxItems.json: "maxItems validation" - "exact length is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 533 - maxItems.json: "maxItems validation" - "too long is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array has more than 2 items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array has more than 2 items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 534 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 535 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 536 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array has more than 2 items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array has more than 2 items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 537 - maxLength.json: "maxLength validation" - "shorter is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 538 - maxLength.json: "maxLength validation" - "exact length is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 539 - maxLength.json: "maxLength validation" - "too long is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "length is greater than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "length is greater than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 540 - maxLength.json: "maxLength validation" - "ignores non-strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 541 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 542 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 543 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "length is greater than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "length is greater than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 544 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 545 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 546 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object has more than 2 properties", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object has more than 2 properties", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 547 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 548 - maxProperties.json: "maxProperties validation" - "ignores strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 549 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 550 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 551 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object has more than 2 properties", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object has more than 2 properties", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 552 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 553 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object has more than 0 property", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object has more than 0 property", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 554 - maximum.json: "maximum validation" - "below the maximum is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 555 - maximum.json: "maximum validation" - "boundary point is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 556 - maximum.json: "maximum validation" - "above the maximum is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than 3", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than 3", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 557 - maximum.json: "maximum validation" - "ignores non-numbers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 558 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 559 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 560 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 561 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than 300", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than 300", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 562 - minContains.json: "minContains without contains is ignored" - "one item valid against lone minContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 563 - minContains.json: "minContains without contains is ignored" - "zero items still valid against lone minContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 564 - minContains.json: "minContains=1 with contains" - "empty data" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # }, 281s # { 281s # "error": "array contains fewer than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 565 - minContains.json: "minContains=1 with contains" - "no elements match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains/const" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # }, 281s # { 281s # "error": "array contains fewer than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains/const" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 566 - minContains.json: "minContains=1 with contains" - "single element matches, valid minContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 567 - minContains.json: "minContains=1 with contains" - "some elements match, valid minContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 568 - minContains.json: "minContains=1 with contains" - "all elements match, valid minContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 569 - minContains.json: "minContains=2 with contains" - "empty data" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # }, 281s # { 281s # "error": "array contains fewer than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 570 - minContains.json: "minContains=2 with contains" - "all elements match, invalid minContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains fewer than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains fewer than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 571 - minContains.json: "minContains=2 with contains" - "some elements match, invalid minContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains fewer than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains fewer than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 572 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (exactly as needed)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 573 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (more than needed)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 574 - minContains.json: "minContains=2 with contains" - "some elements match, valid minContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 575 - minContains.json: "minContains=2 with contains with a decimal value" - "one element matches, invalid minContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains fewer than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains fewer than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 576 - minContains.json: "minContains=2 with contains with a decimal value" - "both elements match, valid minContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 577 - minContains.json: "maxContains = minContains" - "empty data" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # }, 281s # { 281s # "error": "array contains fewer than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 578 - minContains.json: "maxContains = minContains" - "all elements match, invalid minContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains fewer than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains fewer than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 579 - minContains.json: "maxContains = minContains" - "all elements match, invalid maxContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 2 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 580 - minContains.json: "maxContains = minContains" - "all elements match, valid maxContains and minContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 581 - minContains.json: "maxContains < minContains" - "empty data" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # }, 281s # { 281s # "error": "array contains fewer than 3 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 582 - minContains.json: "maxContains < minContains" - "invalid minContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains fewer than 3 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains fewer than 3 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 583 - minContains.json: "maxContains < minContains" - "invalid maxContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 584 - minContains.json: "maxContains < minContains" - "invalid maxContains and minContains" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # }, 281s # { 281s # "error": "array contains fewer than 3 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 585 - minContains.json: "minContains = 0" - "empty data" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 586 - minContains.json: "minContains = 0" - "minContains = 0 makes contains always pass" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 587 - minContains.json: "minContains = 0 with maxContains" - "empty data" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 588 - minContains.json: "minContains = 0 with maxContains" - "not more than maxContains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 589 - minContains.json: "minContains = 0 with maxContains" - "too many" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array contains more than 1 matching items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/maxContains" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 590 - minItems.json: "minItems validation" - "longer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 591 - minItems.json: "minItems validation" - "exact length is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 592 - minItems.json: "minItems validation" - "too short is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array has fewer than 1 item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array has fewer than 1 item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 593 - minItems.json: "minItems validation" - "ignores non-arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 594 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 595 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array has fewer than 1 item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array has fewer than 1 item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 596 - minLength.json: "minLength validation" - "longer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 597 - minLength.json: "minLength validation" - "exact length is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 598 - minLength.json: "minLength validation" - "too short is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "length is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "length is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 599 - minLength.json: "minLength validation" - "ignores non-strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 600 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "length is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "length is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 601 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 602 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "length is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "length is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 603 - minProperties.json: "minProperties validation" - "longer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 604 - minProperties.json: "minProperties validation" - "exact length is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 605 - minProperties.json: "minProperties validation" - "too short is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object has fewer than 1 property", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object has fewer than 1 property", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 606 - minProperties.json: "minProperties validation" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 607 - minProperties.json: "minProperties validation" - "ignores strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 608 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 609 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 610 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object has fewer than 1 property", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object has fewer than 1 property", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 611 - minimum.json: "minimum validation" - "above the minimum is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 612 - minimum.json: "minimum validation" - "boundary point is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 613 - minimum.json: "minimum validation" - "below the minimum is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than 1.1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than 1.1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 614 - minimum.json: "minimum validation" - "ignores non-numbers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 615 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 616 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 617 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 618 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 619 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than -2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than -2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 620 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than -2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than -2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 621 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 622 - multipleOf.json: "by int" - "int by int" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 623 - multipleOf.json: "by int" - "int by int fail" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/multipleOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/multipleOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 624 - multipleOf.json: "by int" - "ignores non-numbers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 625 - multipleOf.json: "by number" - "zero is multiple of anything" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 626 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 627 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 1.5", 281s # "instanceLocation": "", 281s # "keywordLocation": "/multipleOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 1.5", 281s # "instanceLocation": "", 281s # "keywordLocation": "/multipleOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 628 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 629 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 0.0001", 281s # "instanceLocation": "", 281s # "keywordLocation": "/multipleOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 0.0001", 281s # "instanceLocation": "", 281s # "keywordLocation": "/multipleOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 630 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 0.123456789", 281s # "instanceLocation": "", 281s # "keywordLocation": "/multipleOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 0.123456789", 281s # "instanceLocation": "", 281s # "keywordLocation": "/multipleOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 631 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 632 - not.json: "not" - "allowed" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 633 - not.json: "not" - "disallowed" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 634 - not.json: "not multiple types" - "valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 635 - not.json: "not multiple types" - "mismatch" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 636 - not.json: "not multiple types" - "other mismatch" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 637 - not.json: "not more complex schema" - "match" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 638 - not.json: "not more complex schema" - "other match" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 639 - not.json: "not more complex schema" - "mismatch" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 640 - not.json: "forbidden property" - "property present" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/not" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/not" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 641 - not.json: "forbidden property" - "property absent" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 642 - not.json: "forbid everything with empty schema" - "number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 643 - not.json: "forbid everything with empty schema" - "string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 644 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 645 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 646 - not.json: "forbid everything with empty schema" - "null is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 647 - not.json: "forbid everything with empty schema" - "object is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 648 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 649 - not.json: "forbid everything with empty schema" - "array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 650 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 651 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 652 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 653 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 654 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 655 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 656 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 657 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 658 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 659 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is true", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 660 - not.json: "allow everything with boolean schema false" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 661 - not.json: "allow everything with boolean schema false" - "string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 662 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 663 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 664 - not.json: "allow everything with boolean schema false" - "null is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 665 - not.json: "allow everything with boolean schema false" - "object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 666 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 667 - not.json: "allow everything with boolean schema false" - "array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 668 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 669 - not.json: "double negation" - "any value is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 670 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 671 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/not" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 672 - oneOf.json: "oneOf" - "first oneOf valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 673 - oneOf.json: "oneOf" - "second oneOf valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 674 - oneOf.json: "oneOf" - "both oneOf valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 675 - oneOf.json: "oneOf" - "neither oneOf valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/type" 281s # }, 281s # { 281s # "error": "value is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/minimum" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/type" 281s # }, 281s # { 281s # "error": "value is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/minimum" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 676 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # }, 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 677 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 678 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 679 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1, 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 680 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 681 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 682 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0" 281s # }, 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1" 281s # }, 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/2" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0" 281s # }, 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1" 281s # }, 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/2" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 683 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 684 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 685 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 686 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/oneOf/0/properties/bar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/properties" 281s # }, 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/oneOf/1/properties/foo/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/properties" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/oneOf/0/properties/bar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/properties" 281s # }, 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/oneOf/1/properties/foo/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/properties" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 687 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 688 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 689 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/required" 281s # }, 281s # { 281s # "error": "object is missing properties: foo, baz", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/required" 281s # }, 281s # { 281s # "error": "object is missing properties: foo, baz", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 690 - oneOf.json: "oneOf with required" - "first valid - valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 691 - oneOf.json: "oneOf with required" - "second valid - valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 692 - oneOf.json: "oneOf with required" - "both valid - invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 693 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 694 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 695 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 696 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/required" 281s # }, 281s # { 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: bar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/required" 281s # }, 281s # { 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 697 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 698 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/oneOf/0/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/oneOf" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/oneOf/0/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/oneOf" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 699 - pattern.json: "pattern validation" - "a matching pattern is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 700 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 701 - pattern.json: "pattern validation" - "ignores booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 702 - pattern.json: "pattern validation" - "ignores integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 703 - pattern.json: "pattern validation" - "ignores floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 704 - pattern.json: "pattern validation" - "ignores objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 705 - pattern.json: "pattern validation" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 706 - pattern.json: "pattern validation" - "ignores null" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 707 - pattern.json: "pattern is not anchored" - "matches a substring" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 708 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 709 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 710 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/patternProperties/f.*o/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/patternProperties/f.*o/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 711 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/patternProperties/f.*o/type" 281s # }, 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/foooooo", 281s # "keywordLocation": "/patternProperties/f.*o/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/patternProperties/f.*o/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 712 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 713 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 714 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 715 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 716 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 717 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 718 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/a", 281s # "keywordLocation": "/patternProperties/a*/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/a", 281s # "keywordLocation": "/patternProperties/a*/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 719 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than 20", 281s # "instanceLocation": "/aaaa", 281s # "keywordLocation": "/patternProperties/aaa*/maximum" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than 20", 281s # "instanceLocation": "/aaaa", 281s # "keywordLocation": "/patternProperties/aaa*/maximum" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 720 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/aaa", 281s # "keywordLocation": "/patternProperties/a*/type" 281s # }, 281s # { 281s # "error": "value is greater than 20", 281s # "instanceLocation": "/aaaa", 281s # "keywordLocation": "/patternProperties/aaa*/maximum" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/aaa", 281s # "keywordLocation": "/patternProperties/a*/type" 281s # }, 281s # { 281s # "error": "value is greater than 20", 281s # "instanceLocation": "/aaaa", 281s # "keywordLocation": "/patternProperties/aaa*/maximum" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 721 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 722 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not boolean", 281s # "instanceLocation": "/a31b", 281s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not boolean", 281s # "instanceLocation": "/a31b", 281s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 723 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 724 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/a_X_3", 281s # "keywordLocation": "/patternProperties/X_/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/a_X_3", 281s # "keywordLocation": "/patternProperties/X_/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 725 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 726 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/patternProperties/b.*" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/patternProperties/b.*" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 727 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/patternProperties/b.*" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/patternProperties/b.*" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 728 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "property not permitted", 281s # "instanceLocation": "/foobar", 281s # "keywordLocation": "/patternProperties/b.*" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "property not permitted", 281s # "instanceLocation": "/foobar", 281s # "keywordLocation": "/patternProperties/b.*" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 729 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 730 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 731 - prefixItems.json: "a schema given for prefixItems" - "correct types" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 732 - prefixItems.json: "a schema given for prefixItems" - "wrong types" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/prefixItems/0/type" 281s # }, 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/prefixItems/1/type" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/prefixItems/0/type" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 733 - prefixItems.json: "a schema given for prefixItems" - "incomplete array of items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 734 - prefixItems.json: "a schema given for prefixItems" - "array with additional items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 735 - prefixItems.json: "a schema given for prefixItems" - "empty array" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 736 - prefixItems.json: "a schema given for prefixItems" - "JavaScript pseudo-array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 737 - prefixItems.json: "prefixItems with boolean schemas" - "array with one item is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 738 - prefixItems.json: "prefixItems with boolean schemas" - "array with two items is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/prefixItems/1" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/prefixItems/1" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 739 - prefixItems.json: "prefixItems with boolean schemas" - "empty array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 740 - prefixItems.json: "additional items are allowed by default" - "only the first item is validated" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 741 - prefixItems.json: "prefixItems with null instance elements" - "allows null elements" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 742 - properties.json: "object properties validation" - "both properties present and valid is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 743 - properties.json: "object properties validation" - "one property invalid is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 744 - properties.json: "object properties validation" - "both properties invalid is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/type" 281s # }, 281s # { 281s # "error": "got array, not integer", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 745 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 746 - properties.json: "object properties validation" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 747 - properties.json: "object properties validation" - "ignores other non-objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 748 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 749 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array has more than 3 items", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/maxItems" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array has more than 3 items", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/maxItems" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 750 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array has fewer than 2 items", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/patternProperties/f.o/minItems" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array has fewer than 2 items", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/patternProperties/f.o/minItems" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 751 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 752 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array has fewer than 2 items", 281s # "instanceLocation": "/fxo", 281s # "keywordLocation": "/patternProperties/f.o/minItems" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array has fewer than 2 items", 281s # "instanceLocation": "/fxo", 281s # "keywordLocation": "/patternProperties/f.o/minItems" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 753 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 754 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 755 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/quux", 281s # "keywordLocation": "/additionalProperties/type" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/quux", 281s # "keywordLocation": "/additionalProperties/type" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 756 - properties.json: "properties with boolean schema" - "no property present is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 757 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 758 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 759 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 760 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 761 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/foo\tbar", 281s # "keywordLocation": "/properties/foo\tbar/type" 281s # }, 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/foo\nbar", 281s # "keywordLocation": "/properties/foo\nbar/type" 281s # }, 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/foo\fbar", 281s # "keywordLocation": "/properties/foo\fbar/type" 281s # }, 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/foo\rbar", 281s # "keywordLocation": "/properties/foo\rbar/type" 281s # }, 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/foo\"bar", 281s # "keywordLocation": "/properties/foo\"bar/type" 281s # }, 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/foo\\bar", 281s # "keywordLocation": "/properties/foo\\bar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/foo\tbar", 281s # "keywordLocation": "/properties/foo\tbar/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 762 - properties.json: "properties with null valued instance properties" - "allows null values" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 763 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 764 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 765 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 766 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/__proto__", 281s # "keywordLocation": "/properties/__proto__/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/__proto__", 281s # "keywordLocation": "/properties/__proto__/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 767 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/toString/length", 281s # "keywordLocation": "/properties/toString/properties/length/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/toString", 281s # "keywordLocation": "/properties/toString/properties" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/toString/length", 281s # "keywordLocation": "/properties/toString/properties/length/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/toString", 281s # "keywordLocation": "/properties/toString/properties" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 768 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not number", 281s # "instanceLocation": "/constructor", 281s # "keywordLocation": "/properties/constructor/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not number", 281s # "instanceLocation": "/constructor", 281s # "keywordLocation": "/properties/constructor/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 769 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 770 - propertyNames.json: "propertyNames validation" - "all property names valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 771 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "length is greater than 3", 281s # "instanceLocation": "/foobar", 281s # "keywordLocation": "/propertyNames/maxLength" 281s # }, 281s # { 281s # "error": "not all property names are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/propertyNames" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "length is greater than 3", 281s # "instanceLocation": "/foobar", 281s # "keywordLocation": "/propertyNames/maxLength" 281s # }, 281s # { 281s # "error": "not all property names are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/propertyNames" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 772 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 773 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 774 - propertyNames.json: "propertyNames validation" - "ignores strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 775 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 776 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 777 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "/aaA", 281s # "keywordLocation": "/propertyNames/pattern" 281s # }, 281s # { 281s # "error": "not all property names are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/propertyNames" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "/aaA", 281s # "keywordLocation": "/propertyNames/pattern" 281s # }, 281s # { 281s # "error": "not all property names are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/propertyNames" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 778 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 779 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 780 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 781 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/propertyNames" 281s # }, 281s # { 281s # "error": "not all property names are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/propertyNames" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "subschema is false", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/propertyNames" 281s # }, 281s # { 281s # "error": "not all property names are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/propertyNames" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 782 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 783 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 784 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/propertyNames/const" 281s # }, 281s # { 281s # "error": "not all property names are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/propertyNames" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/propertyNames/const" 281s # }, 281s # { 281s # "error": "not all property names are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/propertyNames" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 785 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 786 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 787 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 788 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/propertyNames/enum" 281s # }, 281s # { 281s # "error": "not all property names are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/propertyNames" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/propertyNames/enum" 281s # }, 281s # { 281s # "error": "not all property names are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/propertyNames" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 789 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 790 - ref.json: "root pointer ref" - "match" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 791 - ref.json: "root pointer ref" - "recursive match" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 792 - ref.json: "root pointer ref" - "mismatch" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 793 - ref.json: "root pointer ref" - "recursive mismatch" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/additionalProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo/bar", 281s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/additionalProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/additionalProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo/bar", 281s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/additionalProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 794 - ref.json: "relative pointer ref to object" - "match" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 795 - ref.json: "relative pointer ref to object" - "mismatch" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/properties/foo/type", 281s # "error": "got boolean, not integer", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/properties/foo/type", 281s # "error": "got boolean, not integer", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 796 - ref.json: "relative pointer ref to array" - "match array" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 797 - ref.json: "relative pointer ref to array" - "mismatch array" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/prefixItems/0/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/prefixItems/1/$ref/type" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/prefixItems/0/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/prefixItems/1/$ref/type" 281s # }, 281s # { 281s # "error": "not all items are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/prefixItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 798 - ref.json: "escaped pointer ref" - "slash invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/slash", 281s # "keywordLocation": "/properties/slash/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/slash", 281s # "keywordLocation": "/properties/slash/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 799 - ref.json: "escaped pointer ref" - "tilde invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/tilde", 281s # "keywordLocation": "/properties/tilde/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/tilde", 281s # "keywordLocation": "/properties/tilde/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 800 - ref.json: "escaped pointer ref" - "percent invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/percent", 281s # "keywordLocation": "/properties/percent/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/percent", 281s # "keywordLocation": "/properties/percent/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 801 - ref.json: "escaped pointer ref" - "slash valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 802 - ref.json: "escaped pointer ref" - "tilde valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 803 - ref.json: "escaped pointer ref" - "percent valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 804 - ref.json: "nested refs" - "nested ref valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 805 - ref.json: "nested refs" - "nested ref invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/a/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/a/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 806 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 807 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "array has more than 2 items", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/maxItems" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "array has more than 2 items", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/maxItems" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 808 - ref.json: "ref applies alongside sibling keywords" - "ref invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/reffed/type", 281s # "error": "got string, not array", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/reffed/type", 281s # "error": "got string, not array", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 809 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 810 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/nonNegativeInteger/minimum", 281s # "error": "value is less than 0", 281s # "instanceLocation": "/minLength", 281s # "keywordLocation": "/$ref/allOf/3/$ref/properties/minLength/$ref/$ref/minimum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/allOf/3/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 281s # "error": "subschema 3 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/nonNegativeInteger/minimum", 281s # "error": "value is less than 0", 281s # "instanceLocation": "/minLength", 281s # "keywordLocation": "/$ref/allOf/3/$ref/properties/minLength/$ref/$ref/minimum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/allOf/3/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 281s # "error": "subschema 3 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 811 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 812 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/$ref", 281s # "keywordLocation": "/properties/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/$ref", 281s # "keywordLocation": "/properties/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 813 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 814 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/is-string/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/$ref", 281s # "keywordLocation": "/properties/$ref/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/is-string/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/$ref", 281s # "keywordLocation": "/properties/$ref/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 815 - ref.json: "$ref to boolean schema true" - "any value is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 816 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/bool", 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/bool", 281s # "error": "subschema is false", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 817 - ref.json: "Recursive references between schemas" - "valid tree" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 818 - ref.json: "Recursive references between schemas" - "invalid tree" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties/value/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 281s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/nodes/0/subtree/nodes/0", 281s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/nodes/0/subtree/nodes", 281s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/nodes/0/subtree", 281s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/nodes/0", 281s # "keywordLocation": "/properties/nodes/items/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/nodes", 281s # "keywordLocation": "/properties/nodes/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties/value/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 281s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/nodes/0/subtree/nodes/0", 281s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/nodes/0/subtree/nodes", 281s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/nodes/0/subtree", 281s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/nodes/0", 281s # "keywordLocation": "/properties/nodes/items/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/nodes", 281s # "keywordLocation": "/properties/nodes/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 819 - ref.json: "refs with quote" - "object with numbers is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 820 - ref.json: "refs with quote" - "object with strings is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "/foo\"bar", 281s # "keywordLocation": "/properties/foo\"bar/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "/foo\"bar", 281s # "keywordLocation": "/properties/foo\"bar/$ref/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 821 - ref.json: "ref creates new scope when adjacent to keywords" - "referenced subschema doesn't see annotations from properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/prop1", 281s # "keywordLocation": "/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/prop1", 281s # "keywordLocation": "/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 822 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 823 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/enum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 824 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 825 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo/bar", 281s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo/bar", 281s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 826 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/$ref/$ref/properties/bar/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/$ref/$ref/properties/bar/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 827 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 828 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo/bar", 281s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo/bar", 281s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 829 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/$ref/$ref/properties/bar/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/$ref/$ref/properties/bar/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 830 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 831 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 832 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 833 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 834 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id1/int.json#/maximum", 281s # "error": "value is greater than 10", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/maximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id1/int.json#/maximum", 281s # "error": "value is greater than 10", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/maximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 835 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 836 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id2/base.json#/$defs/bigint/maximum", 281s # "error": "value is greater than 10", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/maximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id2/base.json#/$defs/bigint/maximum", 281s # "error": "value is greater than 10", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/maximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 837 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 838 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 281s # "error": "value is less than 30", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/minimum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 281s # "error": "value is less than 30", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/minimum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 839 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 840 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 841 - ref.json: "URN base URI with NSS" - "a string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 842 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 843 - ref.json: "URN base URI with r-component" - "a string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 844 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 845 - ref.json: "URN base URI with q-component" - "a string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 846 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 847 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 848 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 849 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 850 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 851 - ref.json: "URN ref with nested pointer ref" - "a string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 852 - ref.json: "URN ref with nested pointer ref" - "a non-string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 853 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 854 - ref.json: "ref to if" - "an integer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 855 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 856 - ref.json: "ref to then" - "an integer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 857 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 858 - ref.json: "ref to else" - "an integer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 859 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 860 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 861 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 862 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 863 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 864 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 865 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 866 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs//$defs//type", 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/$ref/type" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs//$defs//type", 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/$ref/type" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 867 - refRemote.json: "remote ref" - "remote ref valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 868 - refRemote.json: "remote ref" - "remote ref invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 869 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 870 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 871 - refRemote.json: "anchor within remote ref" - "remote anchor valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 872 - refRemote.json: "anchor within remote ref" - "remote anchor invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 873 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 874 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 875 - refRemote.json: "base URI change" - "base URI change ref valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 876 - refRemote.json: "base URI change" - "base URI change ref invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/folderInteger.json#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/0/0", 281s # "keywordLocation": "/items/items/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/folderInteger.json#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/0/0", 281s # "keywordLocation": "/items/items/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 877 - refRemote.json: "base URI change - change folder" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 878 - refRemote.json: "base URI change - change folder" - "string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/folderInteger.json#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/list/0", 281s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/list", 281s # "keywordLocation": "/properties/list/$ref/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs1.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/folderInteger.json#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/list/0", 281s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/#/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/list", 281s # "keywordLocation": "/properties/list/$ref/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs1.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 879 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 880 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/folderInteger.json#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/list/0", 281s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/#/$defs/bar/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/list", 281s # "keywordLocation": "/properties/list/$ref/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs2.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/folderInteger.json#/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/list/0", 281s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/#/$defs/bar/items", 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "/list", 281s # "keywordLocation": "/properties/list/$ref/items" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs2.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 881 - refRemote.json: "root ref in remote ref" - "string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 882 - refRemote.json: "root ref in remote ref" - "null is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 883 - refRemote.json: "root ref in remote ref" - "object is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf/0/type", 281s # "error": "got object, not null", 281s # "instanceLocation": "/name", 281s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/type", 281s # "error": "got object, not string", 281s # "instanceLocation": "/name", 281s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf", 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "/name", 281s # "keywordLocation": "/properties/name/$ref/anyOf" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/object#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf/0/type", 281s # "error": "got object, not null", 281s # "instanceLocation": "/name", 281s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/type", 281s # "error": "got object, not string", 281s # "instanceLocation": "/name", 281s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf", 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "/name", 281s # "keywordLocation": "/properties/name/$ref/anyOf" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/object#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 884 - refRemote.json: "remote ref with ref to defs" - "invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/$ref/$ref/properties/bar/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/$ref/$ref/properties/bar/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 885 - refRemote.json: "remote ref with ref to defs" - "valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 886 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 887 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 888 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/name/foo", 281s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/foo-ref-string.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/name", 281s # "keywordLocation": "/properties/name/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/some-id#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "/name/foo", 281s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/foo-ref-string.json#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/name", 281s # "keywordLocation": "/properties/name/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/some-id#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 889 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 890 - refRemote.json: "remote HTTP ref with different $id" - "number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 891 - refRemote.json: "remote HTTP ref with different $id" - "string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 892 - refRemote.json: "remote HTTP ref with different URN $id" - "number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 893 - refRemote.json: "remote HTTP ref with different URN $id" - "string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 894 - refRemote.json: "remote HTTP ref with nested absolute ref" - "number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 895 - refRemote.json: "remote HTTP ref with nested absolute ref" - "string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 896 - refRemote.json: "$ref to $ref finds detached $anchor" - "number is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 897 - refRemote.json: "$ref to $ref finds detached $anchor" - "non-number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-ref.json#/$defs/detached/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-ref.json#/$defs/detached/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/$ref/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 898 - required.json: "required validation" - "present required property is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 899 - required.json: "required validation" - "non-present required property is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing property: foo", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 900 - required.json: "required validation" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 901 - required.json: "required validation" - "ignores strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 902 - required.json: "required validation" - "ignores other non-objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 903 - required.json: "required default validation" - "not required by default" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 904 - required.json: "required with empty array" - "property not required" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 905 - required.json: "required with escaped characters" - "object with all properties present is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 906 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 907 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 908 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 909 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: __proto__, toString, constructor", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: __proto__, toString, constructor", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 910 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: toString, constructor", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: toString, constructor", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 911 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: __proto__, constructor", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: __proto__, constructor", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 912 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: __proto__, toString", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "object is missing properties: __proto__, toString", 281s # "instanceLocation": "", 281s # "keywordLocation": "/required" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 913 - required.json: "required properties whose names are Javascript object property names" - "all present" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 914 - type.json: "integer type matches integers" - "an integer is an integer" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 915 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 916 - type.json: "integer type matches integers" - "a float is not an integer" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 917 - type.json: "integer type matches integers" - "a string is not an integer" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 918 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 919 - type.json: "integer type matches integers" - "an object is not an integer" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 920 - type.json: "integer type matches integers" - "an array is not an integer" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 921 - type.json: "integer type matches integers" - "a boolean is not an integer" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 922 - type.json: "integer type matches integers" - "null is not an integer" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not integer", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 923 - type.json: "number type matches numbers" - "an integer is a number" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 924 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 925 - type.json: "number type matches numbers" - "a float is a number" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 926 - type.json: "number type matches numbers" - "a string is not a number" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 927 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 928 - type.json: "number type matches numbers" - "an object is not a number" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 929 - type.json: "number type matches numbers" - "an array is not a number" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 930 - type.json: "number type matches numbers" - "a boolean is not a number" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 931 - type.json: "number type matches numbers" - "null is not a number" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 932 - type.json: "string type matches strings" - "1 is not a string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 933 - type.json: "string type matches strings" - "a float is not a string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 934 - type.json: "string type matches strings" - "a string is a string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 935 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 936 - type.json: "string type matches strings" - "an empty string is still a string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 937 - type.json: "string type matches strings" - "an object is not a string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 938 - type.json: "string type matches strings" - "an array is not a string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 939 - type.json: "string type matches strings" - "a boolean is not a string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 940 - type.json: "string type matches strings" - "null is not a string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 941 - type.json: "object type matches objects" - "an integer is not an object" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 942 - type.json: "object type matches objects" - "a float is not an object" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 943 - type.json: "object type matches objects" - "a string is not an object" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 944 - type.json: "object type matches objects" - "an object is an object" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 945 - type.json: "object type matches objects" - "an array is not an object" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 946 - type.json: "object type matches objects" - "a boolean is not an object" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 947 - type.json: "object type matches objects" - "null is not an object" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 948 - type.json: "array type matches arrays" - "an integer is not an array" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 949 - type.json: "array type matches arrays" - "a float is not an array" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 950 - type.json: "array type matches arrays" - "a string is not an array" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 951 - type.json: "array type matches arrays" - "an object is not an array" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 952 - type.json: "array type matches arrays" - "an array is an array" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 953 - type.json: "array type matches arrays" - "a boolean is not an array" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 954 - type.json: "array type matches arrays" - "null is not an array" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not array", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 955 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 956 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 957 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 958 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 959 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 960 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 961 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 962 - type.json: "boolean type matches booleans" - "true is a boolean" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 963 - type.json: "boolean type matches booleans" - "false is a boolean" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 964 - type.json: "boolean type matches booleans" - "null is not a boolean" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not boolean", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 965 - type.json: "null type matches only the null object" - "an integer is not null" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 966 - type.json: "null type matches only the null object" - "a float is not null" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 967 - type.json: "null type matches only the null object" - "zero is not null" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 968 - type.json: "null type matches only the null object" - "a string is not null" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 969 - type.json: "null type matches only the null object" - "an empty string is not null" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 970 - type.json: "null type matches only the null object" - "an object is not null" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 971 - type.json: "null type matches only the null object" - "an array is not null" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 972 - type.json: "null type matches only the null object" - "true is not null" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 973 - type.json: "null type matches only the null object" - "false is not null" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 974 - type.json: "null type matches only the null object" - "null is null" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 975 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 976 - type.json: "multiple types can be specified in an array" - "a string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 977 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not one of integer, string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got number, not one of integer, string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 978 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not one of integer, string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got object, not one of integer, string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 979 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not one of integer, string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got array, not one of integer, string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 980 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not one of integer, string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got boolean, not one of integer, string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 981 - type.json: "multiple types can be specified in an array" - "null is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not one of integer, string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not one of integer, string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 982 - type.json: "type as array with one item" - "string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 983 - type.json: "type as array with one item" - "number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not one of string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not one of string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 984 - type.json: "type: array or object" - "array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 985 - type.json: "type: array or object" - "object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 986 - type.json: "type: array or object" - "number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not one of array, object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not one of array, object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 987 - type.json: "type: array or object" - "string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not one of array, object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not one of array, object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 988 - type.json: "type: array or object" - "null is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not one of array, object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got null, not one of array, object", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 989 - type.json: "type: array, object or null" - "array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 990 - type.json: "type: array, object or null" - "object is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 991 - type.json: "type: array, object or null" - "null is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 992 - type.json: "type: array, object or null" - "number is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not one of array, object, null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not one of array, object, null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 993 - type.json: "type: array, object or null" - "string is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not one of array, object, null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not one of array, object, null", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 994 - unevaluatedItems.json: "unevaluatedItems true" - "with no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 995 - unevaluatedItems.json: "unevaluatedItems true" - "with unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 996 - unevaluatedItems.json: "unevaluatedItems false" - "with no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 997 - unevaluatedItems.json: "unevaluatedItems false" - "with unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 998 - unevaluatedItems.json: "unevaluatedItems as schema" - "with no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 999 - unevaluatedItems.json: "unevaluatedItems as schema" - "with valid unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1000 - unevaluatedItems.json: "unevaluatedItems as schema" - "with invalid unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1001 - unevaluatedItems.json: "unevaluatedItems with uniform items" - "unevaluatedItems doesn't apply" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1002 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1003 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1004 - unevaluatedItems.json: "unevaluatedItems with items and prefixItems" - "unevaluatedItems doesn't apply" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1005 - unevaluatedItems.json: "unevaluatedItems with items" - "valid under items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1006 - unevaluatedItems.json: "unevaluatedItems with items" - "invalid under items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/type" 281s # }, 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/type" 281s # }, 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/items/type" 281s # }, 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/items/type" 281s # }, 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/items/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1007 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1008 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1009 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with only (valid) additional items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1010 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with no additional items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1011 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with invalid additional item" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not boolean", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not boolean", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1012 - unevaluatedItems.json: "unevaluatedItems with nested prefixItems and items" - "with no additional items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1013 - unevaluatedItems.json: "unevaluatedItems with nested prefixItems and items" - "with additional items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1014 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with no additional items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1015 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with additional items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1016 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1017 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1018 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1019 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1020 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1021 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1022 - unevaluatedItems.json: "unevaluatedItems with not" - "with unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1023 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1024 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1025 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1026 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/4", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/4", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1027 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1028 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1029 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1030 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1031 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1032 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1033 - unevaluatedItems.json: "unevaluatedItems with $dynamicRef" - "with no unevaluated items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1034 - unevaluatedItems.json: "unevaluatedItems with $dynamicRef" - "with unevaluated items" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/$ref/unevaluatedItems" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/$ref/unevaluatedItems" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1035 - unevaluatedItems.json: "unevaluatedItems can't see inside cousins" - "always fails" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/allOf/1/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/allOf/1/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1036 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "no extra items" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1037 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "uncle keyword evaluation is not significant" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/foo/1", 281s # "keywordLocation": "/properties/foo/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/unevaluatedItems" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/foo/1", 281s # "keywordLocation": "/properties/foo/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/unevaluatedItems" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1038 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "second item is evaluated by contains" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1039 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "contains fails, second item is not evaluated" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains/type" 281s # }, 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/contains/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/contains/type" 281s # }, 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/contains/type" 281s # }, 281s # { 281s # "error": "subschema is not valid against any item", 281s # "instanceLocation": "", 281s # "keywordLocation": "/contains" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1040 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "contains passes, second item is not evaluated" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1041 - unevaluatedItems.json: "unevaluatedItems depends on multiple nested contains" - "5 not evaluated, passes unevaluatedItems" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1042 - unevaluatedItems.json: "unevaluatedItems depends on multiple nested contains" - "7 not evaluated, fails unevaluatedItems" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 5", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/unevaluatedItems/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is not a multiple of 5", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/unevaluatedItems/multipleOf" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1043 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "empty array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1044 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only a's are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1045 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "a's and b's are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1046 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "a's, b's and c's are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1047 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only b's are invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1048 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only c's are invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1049 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only b's and c's are invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/4", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/1", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/3", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/4", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1050 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only a's and c's are invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/4", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/4", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1051 - unevaluatedItems.json: "non-array instances are valid" - "ignores booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1052 - unevaluatedItems.json: "non-array instances are valid" - "ignores integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1053 - unevaluatedItems.json: "non-array instances are valid" - "ignores floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1054 - unevaluatedItems.json: "non-array instances are valid" - "ignores objects" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1055 - unevaluatedItems.json: "non-array instances are valid" - "ignores strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1056 - unevaluatedItems.json: "non-array instances are valid" - "ignores null" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1057 - unevaluatedItems.json: "unevaluatedItems with null instance elements" - "allows null elements" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1058 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "valid in case if is evaluated" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1059 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "invalid in case if is evaluated" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/0", 281s # "keywordLocation": "/unevaluatedItems" 281s # }, 281s # { 281s # "error": "subschema is not valid against all additional items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 1060 - unevaluatedProperties.json: "unevaluatedProperties true" - "with no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1061 - unevaluatedProperties.json: "unevaluatedProperties true" - "with unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1062 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1063 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with valid unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1064 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with invalid unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "length is less than 3", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties/minLength" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "length is less than 3", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties/minLength" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1065 - unevaluatedProperties.json: "unevaluatedProperties false" - "with no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1066 - unevaluatedProperties.json: "unevaluatedProperties false" - "with unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1067 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1068 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1069 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1070 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1071 - unevaluatedProperties.json: "unevaluatedProperties with adjacent bool additionalProperties" - "with no additional properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1072 - unevaluatedProperties.json: "unevaluatedProperties with adjacent bool additionalProperties" - "with additional properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1073 - unevaluatedProperties.json: "unevaluatedProperties with adjacent non-bool additionalProperties" - "with only valid additional properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1074 - unevaluatedProperties.json: "unevaluatedProperties with adjacent non-bool additionalProperties" - "with invalid additional properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/additionalProperties/type" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/additionalProperties/type" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1075 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with no additional properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1076 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with additional properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1077 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with no additional properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1078 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with additional properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1079 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with no additional properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1080 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with additional properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1081 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with no nested unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1082 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with nested unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1083 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1084 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1085 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1086 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/quux", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/quux", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1087 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1088 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/quux", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/quux", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1089 - unevaluatedProperties.json: "unevaluatedProperties with not" - "with unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1090 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1091 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1092 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1093 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1094 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has no unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1095 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1096 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1097 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1098 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1099 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1100 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has no unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1101 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1102 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1103 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1104 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1105 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1106 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1107 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1108 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1109 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1110 - unevaluatedProperties.json: "unevaluatedProperties with $dynamicRef" - "with no unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1111 - unevaluatedProperties.json: "unevaluatedProperties with $dynamicRef" - "with unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/baz", 281s # "keywordLocation": "/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1112 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins" - "always fails" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1113 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins (reverse order)" - "always fails" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1114 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with no nested unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1115 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with nested unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1116 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with no nested unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1117 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with nested unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1118 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with no nested unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1119 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with nested unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1120 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with no nested unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1121 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with nested unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1122 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with no nested unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1123 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with nested unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1124 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with no nested unevaluated properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1125 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with nested unevaluated properties" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/1/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 1 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1126 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "no extra properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1127 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "uncle keyword evaluation is not significant" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo/faz", 281s # "keywordLocation": "/properties/foo/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo/faz", 281s # "keywordLocation": "/properties/foo/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/properties/foo/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1128 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "base case: both properties present" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1129 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, bar is missing" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1130 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, foo is missing" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "subschema 0 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1131 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "base case: both properties present" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1132 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, bar is missing" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1133 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, foo is missing" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1134 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Empty is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1135 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Single is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1136 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 1st level is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/y", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/y", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1137 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Nested is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1138 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 2nd level is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/x/y", 281s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/x", 281s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/x/y", 281s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/x", 281s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1139 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Deep nested is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1140 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 3rd level is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/x/x/y", 281s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/x/x", 281s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/x", 281s # "keywordLocation": "/properties/x/$ref/properties" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/unevaluatedProperties", 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/x/x/y", 281s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/unevaluatedProperties", 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "/x/x", 281s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/x", 281s # "keywordLocation": "/properties/x/$ref/properties" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1141 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "Empty is invalid (no x or y)" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/required", 281s # "error": "object is missing property: x", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 281s # }, 281s # { 281s # "error": "object is missing property: y", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf" 281s # }, 281s # { 281s # "error": "subschema 2 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/required", 281s # "error": "object is missing property: x", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 281s # }, 281s # { 281s # "error": "object is missing property: y", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf" 281s # }, 281s # { 281s # "error": "subschema 2 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1142 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b are invalid (no x or y)" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/required", 281s # "error": "object is missing property: x", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 281s # }, 281s # { 281s # "error": "object is missing property: y", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf" 281s # }, 281s # { 281s # "error": "subschema 2 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/required", 281s # "error": "object is missing property: x", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 281s # }, 281s # { 281s # "error": "object is missing property: y", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf" 281s # }, 281s # { 281s # "error": "subschema 2 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1143 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "x and y are invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf" 281s # }, 281s # { 281s # "error": "subschema 2 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/x", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/y", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf" 281s # }, 281s # { 281s # "error": "subschema 2 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/x", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/y", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1144 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and x are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1145 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and y are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1146 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1147 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and y are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1148 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x and y are invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf" 281s # }, 281s # { 281s # "error": "subschema 2 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/x", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/y", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf/2/oneOf" 281s # }, 281s # { 281s # "error": "subschema 2 is not valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/allOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/x", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/y", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1149 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "Empty is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 281s # "error": "object is missing property: c", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 281s # "error": "object is missing property: d", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 281s # "error": "object is missing property: b", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 281s # "error": "object is missing property: xx", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 281s # "error": "object is missing property: all", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 281s # "error": "object is missing property: c", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 281s # "error": "object is missing property: d", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 281s # "error": "object is missing property: b", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 281s # "error": "object is missing property: xx", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 281s # "error": "object is missing property: all", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1150 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1151 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1152 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1153 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "d is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1154 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + b is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1155 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + c is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1156 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + d is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1157 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + c is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/b", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/c", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/b", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/c", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1158 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + d is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/b", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/d", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/b", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/d", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1159 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c + d is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 281s # "error": "object is missing property: b", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 281s # "error": "object is missing property: xx", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 281s # "error": "object is missing property: all", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/c", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/d", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 281s # "error": "object is missing property: b", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 281s # "error": "object is missing property: xx", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 281s # "error": "object is missing property: all", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/c", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/d", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1160 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1161 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foox is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1162 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foo is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1163 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + a is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1164 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + b is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "multiple subschemas are valid: 1, 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/b", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/xx", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "multiple subschemas are valid: 1, 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/b", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/xx", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1165 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + c is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "multiple subschemas are valid: 0, 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/c", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/xx", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "multiple subschemas are valid: 0, 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/c", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/xx", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1166 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + d is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "multiple subschemas are valid: 0, 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/d", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/xx", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 281s # "error": "multiple subschemas are valid: 0, 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/0/$ref/oneOf" 281s # }, 281s # { 281s # "error": "object is missing property: a", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf/1/required" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/d", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/xx", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1167 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1168 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + foo is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1169 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + a is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "multiple subschemas are valid: 0, 1", 281s # "instanceLocation": "", 281s # "keywordLocation": "/oneOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1170 - unevaluatedProperties.json: "non-object instances are valid" - "ignores booleans" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1171 - unevaluatedProperties.json: "non-object instances are valid" - "ignores integers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1172 - unevaluatedProperties.json: "non-object instances are valid" - "ignores floats" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1173 - unevaluatedProperties.json: "non-object instances are valid" - "ignores arrays" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1174 - unevaluatedProperties.json: "non-object instances are valid" - "ignores strings" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1175 - unevaluatedProperties.json: "non-object instances are valid" - "ignores null" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1176 - unevaluatedProperties.json: "unevaluatedProperties with null valued instance properties" - "allows null valued properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1177 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "allows only number properties" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1178 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "string property is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/a", 281s # "keywordLocation": "/unevaluatedProperties/type" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "/a", 281s # "keywordLocation": "/unevaluatedProperties/type" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1179 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "valid in case if is evaluated" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1180 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "invalid in case if is evaluated" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1181 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't consider dependentSchemas" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/foo", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1182 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't see bar when foo2 is absent" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/unevaluatedProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/unevaluatedProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1183 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties sees bar when foo2 is present" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 1184 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1185 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1186 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 2 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 2 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1187 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1188 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1189 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1190 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1191 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 2 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 2 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1192 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1193 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1194 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1195 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1196 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1197 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1198 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1199 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 2 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 2 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1200 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1201 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1202 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1203 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1204 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1205 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1206 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1207 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 4 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 4 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1208 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1209 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1210 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1211 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1212 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1213 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1214 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1215 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1216 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1217 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1218 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 2 and 3 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 2 and 3 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1219 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 2 and 3 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 2 and 3 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1220 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1221 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1222 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1223 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "items at indices 0 and 1 are not unique", 281s # "instanceLocation": "", 281s # "keywordLocation": "/uniqueItems" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1224 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1225 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1226 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1227 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1228 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1229 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1230 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1231 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1232 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1233 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1234 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1235 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1236 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1237 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1238 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1239 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1240 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1241 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1242 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1243 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1244 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1245 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1246 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1247 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1248 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1249 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1250 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1251 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1252 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional item not permitted", 281s # "instanceLocation": "/2", 281s # "keywordLocation": "/items" 281s # }, 281s # { 281s # "error": "subschema is not valid against all items", 281s # "instanceLocation": "", 281s # "keywordLocation": "/items" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 1253 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "applicator vocabulary still works" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 281s # "error": "property not permitted", 281s # "instanceLocation": "/badProperty", 281s # "keywordLocation": "/properties/badProperty" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 281s # "error": "property not permitted", 281s # "instanceLocation": "/badProperty", 281s # "keywordLocation": "/properties/badProperty" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1254 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: valid number" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1255 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: invalid number, but it still validates" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1256 - vocabulary.json: "ignore unrecognized optional vocabulary" - "string value" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not number", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1257 - vocabulary.json: "ignore unrecognized optional vocabulary" - "number value" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 1258 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "exact match to enum, and type matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1259 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "in implementations that strip $anchor, this may match either $def" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/$ref/enum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 281s # "error": "got object, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/$ref/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/$ref/enum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 281s # "error": "got object, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/$ref/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1260 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "match $ref to $anchor" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1261 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "no match on enum or $ref to $anchor" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/$ref/enum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/$ref/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/$ref/enum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/$ref/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 1262 - optional/bignum.json: "integer" - "a bignum is an integer" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1263 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1264 - optional/bignum.json: "number" - "a bignum is a number" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1265 - optional/bignum.json: "number" - "a negative bignum is a number" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1266 - optional/bignum.json: "string" - "a bignum is not a string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/type" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1267 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1268 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMaximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMaximum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1269 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1270 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMinimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 281s # "instanceLocation": "", 281s # "keywordLocation": "/exclusiveMinimum" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 1271 - optional/cross-draft.json: "refs to historic drafts are processed as historic drafts" - "first item not a string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 1272 - optional/dependencies-compatibility.json: "single dependency" - "neither" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1273 - optional/dependencies-compatibility.json: "single dependency" - "nondependant" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1274 - optional/dependencies-compatibility.json: "single dependency" - "with dependency" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1275 - optional/dependencies-compatibility.json: "single dependency" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "bar": [ 281s # "foo" 281s # ] 281s # } 281s # } 281s # data: { 281s # "bar": 2 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1276 - optional/dependencies-compatibility.json: "single dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1277 - optional/dependencies-compatibility.json: "single dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1278 - optional/dependencies-compatibility.json: "single dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1279 - optional/dependencies-compatibility.json: "empty dependents" - "empty object" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1280 - optional/dependencies-compatibility.json: "empty dependents" - "object with one property" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1281 - optional/dependencies-compatibility.json: "empty dependents" - "non-object is valid" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1282 - optional/dependencies-compatibility.json: "multiple dependents required" - "neither" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1283 - optional/dependencies-compatibility.json: "multiple dependents required" - "nondependants" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1284 - optional/dependencies-compatibility.json: "multiple dependents required" - "with dependencies" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1285 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "quux": [ 281s # "foo", 281s # "bar" 281s # ] 281s # } 281s # } 281s # data: { 281s # "foo": 1, 281s # "quux": 2 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1286 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing other dependency" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "quux": [ 281s # "foo", 281s # "bar" 281s # ] 281s # } 281s # } 281s # data: { 281s # "bar": 1, 281s # "quux": 2 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1287 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing both dependencies" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "quux": [ 281s # "foo", 281s # "bar" 281s # ] 281s # } 281s # } 281s # data: { 281s # "quux": 1 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1288 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1289 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1290 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF missing dependent" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "foo\nbar": [ 281s # "foo\rbar" 281s # ], 281s # "foo\"bar": [ 281s # "foo'bar" 281s # ] 281s # } 281s # } 281s # data: { 281s # "foo": 2, 281s # "foo\nbar": 1 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1291 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "foo\nbar": [ 281s # "foo\rbar" 281s # ], 281s # "foo\"bar": [ 281s # "foo'bar" 281s # ] 281s # } 281s # } 281s # data: { 281s # "foo\"bar": 2 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1292 - optional/dependencies-compatibility.json: "single schema dependency" - "valid" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1293 - optional/dependencies-compatibility.json: "single schema dependency" - "no dependency" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1294 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "bar": { 281s # "properties": { 281s # "bar": { 281s # "type": "integer" 281s # }, 281s # "foo": { 281s # "type": "integer" 281s # } 281s # } 281s # } 281s # } 281s # } 281s # data: { 281s # "bar": 2, 281s # "foo": "quux" 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1295 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type other" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "bar": { 281s # "properties": { 281s # "bar": { 281s # "type": "integer" 281s # }, 281s # "foo": { 281s # "type": "integer" 281s # } 281s # } 281s # } 281s # } 281s # } 281s # data: { 281s # "bar": "quux", 281s # "foo": 2 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1296 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type both" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "bar": { 281s # "properties": { 281s # "bar": { 281s # "type": "integer" 281s # }, 281s # "foo": { 281s # "type": "integer" 281s # } 281s # } 281s # } 281s # } 281s # } 281s # data: { 281s # "bar": "quux", 281s # "foo": "quux" 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1297 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1298 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1299 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1300 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema true is valid" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1301 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema false is invalid" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "bar": false, 281s # "foo": true 281s # } 281s # } 281s # data: { 281s # "bar": 2 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1302 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with both properties is invalid" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "bar": false, 281s # "foo": true 281s # } 281s # } 281s # data: { 281s # "bar": 2, 281s # "foo": 1 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1303 - optional/dependencies-compatibility.json: "boolean subschemas" - "empty object is valid" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1304 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1305 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "foo\tbar": { 281s # "minProperties": 4 281s # }, 281s # "foo'bar": { 281s # "required": [ 281s # "foo\"bar" 281s # ] 281s # } 281s # } 281s # } 281s # data: { 281s # "foo'bar": { 281s # "foo\"bar": 1 281s # } 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1306 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "foo\tbar": { 281s # "minProperties": 4 281s # }, 281s # "foo'bar": { 281s # "required": [ 281s # "foo\"bar" 281s # ] 281s # } 281s # } 281s # } 281s # data: { 281s # "a": 2, 281s # "foo\tbar": 1 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1307 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "dependencies": { 281s # "foo\tbar": { 281s # "minProperties": 4 281s # }, 281s # "foo'bar": { 281s # "required": [ 281s # "foo\"bar" 281s # ] 281s # } 281s # } 281s # } 281s # data: { 281s # "foo'bar": 1 281s # } 281s # result: 1 281s 1..1 281s } 281s # 281s ok 1308 - optional/dynamicRef.json: "$dynamicRef skips over intermediate resources - pointer reference across resource boundary" - "integer property passes" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1309 - optional/dynamicRef.json: "$dynamicRef skips over intermediate resources - pointer reference across resource boundary" - "string property fails" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/$defs/defaultContent/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar-item/content", 281s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/bar-item", 281s # "keywordLocation": "/properties/bar-item/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/$defs/defaultContent/type", 281s # "error": "got string, not integer", 281s # "instanceLocation": "/bar-item/content", 281s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "/bar-item", 281s # "keywordLocation": "/properties/bar-item/$ref/properties" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main#/properties", 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/properties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 1310 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1311 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1312 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1313 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1314 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1315 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1316 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1317 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1318 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1319 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "pattern": "^\\d$", 281s # "type": "string" 281s # } 281s # data: "߀" 281s # result: 1 281s 1..1 281s } 281s ok 1320 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO (as \u escape) does not match" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "pattern": "^\\d$", 281s # "type": "string" 281s # } 281s # data: "߀" 281s # result: 1 281s 1..1 281s } 281s ok 1321 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false # 281s 1..1 281s } 281s ok 1322 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected true; got false 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "pattern": "^\\D$", 281s # "type": "string" 281s # } 281s # data: "߀" 281s # result: 0 281s 1..1 281s } 281s ok 1323 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO (as \u escape) matches" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected true; got false 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "pattern": "^\\D$", 281s # "type": "string" 281s # } 281s # data: "߀" 281s # result: 0 281s 1..1 281s } 281s ok 1324 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true # 281s 1..1 281s } 281s ok 1325 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "latin-1 e-acute does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "pattern": "^\\w$", 281s # "type": "string" 281s # } 281s # data: "é" 281s # result: 1 281s 1..1 281s } 281s ok 1326 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false # 281s 1..1 281s } 281s ok 1327 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "latin-1 e-acute matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected true; got false 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "pattern": "^\\W$", 281s # "type": "string" 281s # } 281s # data: "é" 281s # result: 0 281s 1..1 281s } 281s ok 1328 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1329 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1330 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1331 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1332 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1333 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected true; got false 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "pattern": "^\\s$", 281s # "type": "string" 281s # } 281s # data: "" 281s # result: 0 281s 1..1 281s } 281s ok 1334 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1335 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1336 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1337 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1338 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1339 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1340 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1341 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1342 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1343 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1344 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "pattern": "^\\S$", 281s # "type": "string" 281s # } 281s # data: "" 281s # result: 1 281s 1..1 281s } 281s ok 1345 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1346 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1347 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1348 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1349 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1350 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1351 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1352 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1353 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1354 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1355 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "pattern": "\\wcole" 281s # } 281s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 281s # result: 1 281s 1..1 281s } 281s ok 1356 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "pattern": "\\wcole" 281s # } 281s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 281s # result: 1 281s 1..1 281s } 281s ok 1357 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1358 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1359 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1360 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1361 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1362 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1363 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "pattern": "^\\d+$" 281s # } 281s # data: "৪২" 281s # result: 1 281s 1..1 281s } 281s ok 1364 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1365 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1366 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1367 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1368 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1369 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1370 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/L'ÉCOLE", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/L'ÉCOLE", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1371 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1372 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "additionalProperties": false, 281s # "patternProperties": { 281s # "\\wcole": true 281s # }, 281s # "type": "object" 281s # } 281s # data: { 281s # "l'école": "pas de vraie vie" 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1373 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "additionalProperties": false, 281s # "patternProperties": { 281s # "\\wcole": true 281s # }, 281s # "type": "object" 281s # } 281s # data: { 281s # "l'école": "pas de vraie vie" 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1374 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/L'ÉCOLE", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/L'ÉCOLE", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1375 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/l'école", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/l'école", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1376 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/l'école", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/l'école", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1377 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1378 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1379 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/-%#", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/-%#", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1380 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected false; got true 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "additionalProperties": false, 281s # "patternProperties": { 281s # "^\\d+$": true 281s # }, 281s # "type": "object" 281s # } 281s # data: { 281s # "৪২": "khajit has wares if you have coin" 281s # } 281s # result: 1 281s 1..1 281s } 281s ok 1381 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1382 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/-%#", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "additional property not permitted", 281s # "instanceLocation": "/-%#", 281s # "keywordLocation": "/additionalProperties" 281s # }, 281s # { 281s # "error": "not all additional properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/additionalProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1383 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 1384 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 1385 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: valid string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1386 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: invalid string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 281s # "error": "not a valid ipv4", 281s # "instanceLocation": "", 281s # "keywordLocation": "/format" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 281s # "error": "not a valid ipv4", 281s # "instanceLocation": "", 281s # "keywordLocation": "/format" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1387 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: valid string" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1388 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: invalid string" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 281s # "error": "not a valid ipv4", 281s # "instanceLocation": "", 281s # "keywordLocation": "/format" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 281s # "error": "not a valid ipv4", 281s # "instanceLocation": "", 281s # "keywordLocation": "/format" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 1389 - optional/id.json: "$id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1390 - optional/id.json: "$id inside an enum is not a real identifier" - "match $ref to $id" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1391 - optional/id.json: "$id inside an enum is not a real identifier" - "no match on enum or $ref to $id" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/$ref/enum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/id/my_identifier.json#/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/$ref/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 281s # "error": "value does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/$ref/enum" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/id/my_identifier.json#/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/$ref/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 1392 - optional/no-schema.json: "validation without $schema" - "a 3-character string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1393 - optional/no-schema.json: "validation without $schema" - "a 1-character string is not valid" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "length is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "length is less than 2", 281s # "instanceLocation": "", 281s # "keywordLocation": "/minLength" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1394 - optional/no-schema.json: "validation without $schema" - "a non-string is valid" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s # 281s ok 1395 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1396 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1397 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1398 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1399 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1400 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1401 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "pattern does not match", 281s # "instanceLocation": "", 281s # "keywordLocation": "/pattern" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1402 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1403 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1404 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1405 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/🐲", 281s # "keywordLocation": "/patternProperties/^🐲*$/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/🐲", 281s # "keywordLocation": "/patternProperties/^🐲*$/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1406 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/🐲🐲", 281s # "keywordLocation": "/patternProperties/^🐲*$/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "got string, not integer", 281s # "instanceLocation": "/🐲🐲", 281s # "keywordLocation": "/patternProperties/^🐲*$/type" 281s # }, 281s # { 281s # "error": "not all properties are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/patternProperties" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s ok 1407 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "match" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected true; got false 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "properties": { 281s # "bar": { 281s # "$ref": "#/unknown-keyword" 281s # } 281s # }, 281s # "unknown-keyword": { 281s # "type": "integer" 281s # } 281s # } 281s # data: { 281s # "bar": 3 281s # } 281s # result: null 281s 1..1 281s } 281s ok 1408 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "mismatch" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false # 281s 1..1 281s } 281s ok 1409 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "match" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected true; got false 281s # schema: { 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "properties": { 281s # "bar": { 281s # "$ref": "#/properties/foo/unknown-keyword" 281s # }, 281s # "foo": { 281s # "unknown-keyword": { 281s # "type": "integer" 281s # } 281s # } 281s # } 281s # } 281s # data: { 281s # "bar": 3 281s # } 281s # result: null 281s 1..1 281s } 281s ok 1410 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "mismatch" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 281s # "instanceLocation": "/bar", 281s # "keywordLocation": "/properties/bar/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false # 281s 1..1 281s } 281s ok 1411 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "match" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "/base#/$ref", 281s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "/base#/$ref", 281s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s not ok 1 - evaluation result is incorrect # 281s # Failed test (with amnesty) 'evaluation result is incorrect' 281s # at t/zzz-acceptance-draft2020-12.t line 53. 281s # expected true; got false 281s # schema: { 281s # "$id": "/base", 281s # "$ref": "#/examples/0", 281s # "$schema": "https://json-schema.org/draft/2020-12/schema", 281s # "examples": [ 281s # { 281s # "type": "string" 281s # } 281s # ] 281s # } 281s # data: "a string" 281s # result: null 281s 1..1 281s } 281s ok 1412 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "mismatch" { # TODO Test marked TODO via "todo_tests" 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "/base#/$ref", 281s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "/base#/$ref", 281s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 281s # "instanceLocation": "", 281s # "keywordLocation": "/$ref" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false # 281s 1..1 281s } 281s # 281s ok 1413 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 281s # result: { 281s # "valid": true 281s # } 281s # short-circuited result: { 281s # "valid": true 281s # } 281s ok 1 - test passes: data is valid: true 281s 1..1 281s } 281s ok 1414 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/$ref/not" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/$ref/not" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 281s # "error": "got null, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/2/$ref/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/$ref/not" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/$ref/not" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 281s # "error": "got null, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/2/$ref/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s ok 1415 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 281s # result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/$ref/not" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/$ref/not" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/2/$ref/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s # short-circuited result: { 281s # "errors": [ 281s # { 281s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/0/$ref/not" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 281s # "error": "subschema is valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/1/$ref/not" 281s # }, 281s # { 281s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 281s # "error": "got integer, not string", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf/2/$ref/type" 281s # }, 281s # { 281s # "error": "no subschemas are valid", 281s # "instanceLocation": "", 281s # "keywordLocation": "/anyOf" 281s # } 281s # ], 281s # "valid": false 281s # } 281s ok 1 - test passes: data is valid: false 281s 1..1 281s } 281s # 281s # generated with: Test::JSON::Schema::Acceptance 1.029 281s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 281s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 281s # specification version: draft2020-12 281s # optional tests included: yes 281s # skipping directory: optional/format 281s # 281s # filename pass todo-fail fail 281s # --------------------------------------------------------------- 281s # additionalProperties.json 21 0 0 281s # allOf.json 30 0 0 281s # anchor.json 8 0 0 281s # anyOf.json 18 0 0 281s # boolean_schema.json 18 0 0 281s # const.json 50 0 0 281s # contains.json 21 0 0 281s # content.json 18 0 0 281s # default.json 7 0 0 281s # defs.json 2 0 0 281s # dependentRequired.json 20 0 0 281s # dependentSchemas.json 20 0 0 281s # dynamicRef.json 42 0 0 281s # enum.json 45 0 0 281s # exclusiveMaximum.json 4 0 0 281s # exclusiveMinimum.json 4 0 0 281s # format.json 133 0 0 281s # if-then-else.json 26 0 0 281s # infinite-loop-detection.json 2 0 0 281s # items.json 29 0 0 281s # maxContains.json 12 0 0 281s # maxItems.json 6 0 0 281s # maxLength.json 7 0 0 281s # maxProperties.json 10 0 0 281s # maximum.json 8 0 0 281s # minContains.json 28 0 0 281s # minItems.json 6 0 0 281s # minLength.json 7 0 0 281s # minProperties.json 8 0 0 281s # minimum.json 11 0 0 281s # multipleOf.json 10 0 0 281s # not.json 40 0 0 281s # oneOf.json 27 0 0 281s # pattern.json 9 0 0 281s # patternProperties.json 23 0 0 281s # prefixItems.json 11 0 0 281s # properties.json 28 0 0 281s # propertyNames.json 20 0 0 281s # ref.json 77 0 0 281s # refRemote.json 31 0 0 281s # required.json 16 0 0 281s # type.json 80 0 0 281s # unevaluatedItems.json 66 0 0 281s # unevaluatedProperties.json 124 0 0 281s # uniqueItems.json 69 0 0 281s # vocabulary.json 5 0 0 281s # optional/anchor.json 4 0 0 281s # optional/bignum.json 9 0 0 281s # optional/cross-draft.json 1 0 0 281s # optional/dependencies-compatibility.json 22 14 0 281s # optional/dynamicRef.json 2 0 0 281s # optional/ecmascript-regex.json 60 14 0 281s # optional/float-overflow.json 1 0 0 281s # optional/format-assertion.json 4 0 0 281s # optional/id.json 3 0 0 281s # optional/no-schema.json 3 0 0 281s # optional/non-bmp-regex.json 12 0 0 281s # optional/refOfUnknownKeyword.json 3 3 0 281s # optional/unknownKeyword.json 3 0 0 281s # --------------------------------------------------------------- 281s # TOTAL 1384 31 0 281s # 281s # Congratulations, all non-optional tests are passing! 281s # 281s ok 1416 - no leaks in the main evaluator object 281s ok 1417 - no leaks in the short-circuiting evaluator object 281s 1..1417 281s ok 282s t/zzz-acceptance-draft4-format.t ........ 282s # 282s # AUTHOR_TESTING: 282s # AUTOMATED_TESTING: 1 282s # EXTENDED_TESTING: 282s # NO_TODO: 282s # TEST_DIR: 282s # NO_SHORT_CIRCUIT: 282s # 282s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft4/optional/format against draft4... 282s # 282s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid date-time string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s # 282s ok 26 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 27 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 28 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 29 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 30 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 31 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 32 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 33 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid email string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid email string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 34 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 35 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 36 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 37 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid email string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid email string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 38 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid email string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid email string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 39 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 40 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid email string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid email string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s # 282s ok 41 - hostname.json: "validation of host names" - "all string formats ignore integers" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 42 - hostname.json: "validation of host names" - "all string formats ignore floats" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 43 - hostname.json: "validation of host names" - "all string formats ignore objects" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 44 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 45 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 46 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 47 - hostname.json: "validation of host names" - "a valid host name" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 48 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 49 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 50 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 51 - hostname.json: "validation of host names" - "a host name with a component too long" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 52 - hostname.json: "validation of host names" - "starts with hyphen" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 53 - hostname.json: "validation of host names" - "ends with hyphen" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 54 - hostname.json: "validation of host names" - "starts with underscore" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 55 - hostname.json: "validation of host names" - "ends with underscore" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 56 - hostname.json: "validation of host names" - "contains underscore" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 57 - hostname.json: "validation of host names" - "maximum label length" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 58 - hostname.json: "validation of host names" - "exceeds maximum label length" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 59 - hostname.json: "validation of host names" - "single label" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 60 - hostname.json: "validation of host names" - "single label with hyphen" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 61 - hostname.json: "validation of host names" - "single label with digits" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 62 - hostname.json: "validation of host names" - "single label ending with digit" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 63 - hostname.json: "validation of host names" - "empty string" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 64 - hostname.json: "validation of host names" - "single dot" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid hostname string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s # 282s ok 65 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 66 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 67 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 68 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 69 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 70 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 71 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 72 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 73 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 74 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 75 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 76 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 77 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 78 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 79 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 80 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv4 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s # 282s ok 81 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 82 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 83 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 84 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 85 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 86 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 87 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 88 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 89 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 90 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 91 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 92 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 93 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 94 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 95 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 96 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 97 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 98 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 99 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 100 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 101 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 102 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 103 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 104 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 105 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 106 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 107 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 108 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 109 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 110 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 111 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 112 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 113 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 114 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 115 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 116 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 117 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 118 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 119 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 120 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid ipv6 string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s # 282s ok 121 - unknown.json: "unknown format" - "unknown formats ignore integers" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 122 - unknown.json: "unknown format" - "unknown formats ignore floats" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 123 - unknown.json: "unknown format" - "unknown formats ignore objects" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 124 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 125 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 126 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 127 - unknown.json: "unknown format" - "unknown formats ignore strings" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s # 282s ok 128 - uri.json: "validation of URIs" - "all string formats ignore integers" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 129 - uri.json: "validation of URIs" - "all string formats ignore floats" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 130 - uri.json: "validation of URIs" - "all string formats ignore objects" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 131 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 132 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 133 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 134 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 135 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 136 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 137 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 138 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 139 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 140 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 141 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 142 - uri.json: "validation of URIs" - "a valid URL " { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 143 - uri.json: "validation of URIs" - "a valid mailto URI" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 144 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 145 - uri.json: "validation of URIs" - "a valid tel URI" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 146 - uri.json: "validation of URIs" - "a valid URN" { 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s ok 1 - test passes: data is valid: true 282s 1..1 282s } 282s ok 147 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 148 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 149 - uri.json: "validation of URIs" - "an invalid URI" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 150 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 151 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 152 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 282s # result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s # short-circuited result: { 282s # "errors": [ 282s # { 282s # "error": "not a valid uri string", 282s # "instanceLocation": "", 282s # "keywordLocation": "/format" 282s # } 282s # ], 282s # "valid": false 282s # } 282s ok 1 - test passes: data is valid: false 282s 1..1 282s } 282s ok 153 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 282s # result: { 282s # "valid": true 282s # } 282s # short-circuited result: { 282s # "valid": true 282s # } 282s not ok 1 - evaluation result is incorrect # 282s # Failed test (with amnesty) 'evaluation result is incorrect' 282s # at t/zzz-acceptance-draft4-format.t line 65. 282s # expected false; got true 282s # schema: { 282s # "format": "uri" 282s # } 282s # data: "bar,baz:foo" 282s # result: 1 282s 1..1 282s } 282s # 282s # generated with: Test::JSON::Schema::Acceptance 1.029 282s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 282s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 282s # specification version: draft4 282s # using custom test directory: /optional/format 282s # optional tests included: yes 282s # 282s # filename pass todo-fail fail 282s # --------------------------------------------------------------- 282s # date-time.json 25 0 0 282s # email.json 15 0 0 282s # hostname.json 24 0 0 282s # ipv4.json 16 0 0 282s # ipv6.json 40 0 0 282s # unknown.json 7 0 0 282s # uri.json 25 1 0 282s # --------------------------------------------------------------- 282s # TOTAL 152 1 0 282s # 282s # Congratulations, all non-optional tests are passing! 282s # 282s ok 154 - no leaks in the main evaluator object 282s ok 155 - no leaks in the short-circuiting evaluator object 282s 1..155 282s ok 288s t/zzz-acceptance-draft4.t ............... 288s # 288s # AUTHOR_TESTING: 288s # AUTOMATED_TESTING: 1 288s # EXTENDED_TESTING: 288s # NO_TODO: 288s # TEST_DIR: 288s # NO_SHORT_CIRCUIT: 288s # 288s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 288s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft4 against draft4... 288s # 288s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/3", 288s # "keywordLocation": "/additionalItems/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/3", 288s # "keywordLocation": "/additionalItems/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "all items match schema" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 4 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 5 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/3", 288s # "keywordLocation": "/additionalItems" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/3", 288s # "keywordLocation": "/additionalItems" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 9 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 10 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 11 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 12 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 13 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not boolean", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/additionalItems/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not boolean", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/additionalItems/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 14 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 15 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/additionalItems/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/additionalItems/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 16 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/additionalItems" 288s # }, 288s # { 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/2", 288s # "keywordLocation": "/additionalItems" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/additionalItems" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 17 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 18 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 19 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 20 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/quux", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/quux", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 25 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 26 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/élmény", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/élmény", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 27 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 28 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 29 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not boolean", 288s # "instanceLocation": "/quux", 288s # "keywordLocation": "/additionalProperties/type" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not boolean", 288s # "instanceLocation": "/quux", 288s # "keywordLocation": "/additionalProperties/type" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 30 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 31 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not boolean", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/additionalProperties/type" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not boolean", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/additionalProperties/type" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 32 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 33 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not boolean", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/additionalProperties/type" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not boolean", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/additionalProperties/type" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 34 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 35 - allOf.json: "allOf" - "allOf" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 36 - allOf.json: "allOf" - "mismatch second" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/required" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/required" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 37 - allOf.json: "allOf" - "mismatch first" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/1/required" 288s # }, 288s # { 288s # "error": "subschema 1 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/1/required" 288s # }, 288s # { 288s # "error": "subschema 1 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 38 - allOf.json: "allOf" - "wrong type" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/allOf/0/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/properties" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/allOf/0/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/properties" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 39 - allOf.json: "allOf with base schema" - "valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 40 - allOf.json: "allOf with base schema" - "mismatch base schema" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 41 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/required" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/required" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 42 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: baz", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/1/required" 288s # }, 288s # { 288s # "error": "subschema 1 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: baz", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/1/required" 288s # }, 288s # { 288s # "error": "subschema 1 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 43 - allOf.json: "allOf with base schema" - "mismatch both" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/required" 288s # }, 288s # { 288s # "error": "object is missing property: baz", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/1/required" 288s # }, 288s # { 288s # "error": "subschemas 0, 1 are not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/required" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 44 - allOf.json: "allOf simple types" - "valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 45 - allOf.json: "allOf simple types" - "mismatch one" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 30", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/maximum" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 30", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/maximum" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 46 - allOf.json: "allOf with one empty schema" - "any data is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 47 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 48 - allOf.json: "allOf with the first empty schema" - "number is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 49 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/1/type" 288s # }, 288s # { 288s # "error": "subschema 1 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/1/type" 288s # }, 288s # { 288s # "error": "subschema 1 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 50 - allOf.json: "allOf with the last empty schema" - "number is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 51 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/type" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/type" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 52 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 53 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/allOf/0/type" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/allOf" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/allOf/0/type" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/allOf" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 54 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # }, 288s # { 288s # "error": "value is not a multiple of 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # }, 288s # { 288s # "error": "value is not a multiple of 5", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 55 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # }, 288s # { 288s # "error": "value is not a multiple of 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 56 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # }, 288s # { 288s # "error": "value is not a multiple of 5", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 57 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 58 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # }, 288s # { 288s # "error": "value is not a multiple of 5", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 5", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 5", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/multipleOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 62 - anyOf.json: "anyOf" - "first anyOf valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 63 - anyOf.json: "anyOf" - "second anyOf valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 64 - anyOf.json: "anyOf" - "both anyOf valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 65 - anyOf.json: "anyOf" - "neither anyOf valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/type" 288s # }, 288s # { 288s # "error": "value is less than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/1/minimum" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/type" 288s # }, 288s # { 288s # "error": "value is less than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/1/minimum" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 66 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 67 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 68 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "length is greater than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/maxLength" 288s # }, 288s # { 288s # "error": "length is less than 4", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/1/minLength" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "length is greater than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/maxLength" 288s # }, 288s # { 288s # "error": "length is less than 4", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/1/minLength" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 69 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 70 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 71 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 72 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/anyOf/0/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/properties" 288s # }, 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/anyOf/1/properties/foo/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/1/properties" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/anyOf/0/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/properties" 288s # }, 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/anyOf/1/properties/foo/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/1/properties" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 73 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 74 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 75 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 76 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/anyOf/0/type" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/anyOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/anyOf/0/type" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/anyOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 77 - default.json: "invalid type for default" - "valid when property is specified" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 78 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 79 - default.json: "invalid string value for default" - "valid when property is specified" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 80 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 81 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (passing)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 82 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (failing)" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 3", 288s # "instanceLocation": "/alpha", 288s # "keywordLocation": "/properties/alpha/maximum" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 3", 288s # "instanceLocation": "/alpha", 288s # "keywordLocation": "/properties/alpha/maximum" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 83 - default.json: "the default keyword does not do anything if the property is missing" - "missing properties are not filled in with the default" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 84 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 85 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/simpleTypes/enum", 288s # "error": "value does not match", 288s # "instanceLocation": "/definitions/foo/type", 288s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf/1/type", 288s # "error": "got integer, not array", 288s # "instanceLocation": "/definitions/foo/type", 288s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf", 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "/definitions/foo/type", 288s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "/definitions/foo", 288s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/definitions/additionalProperties", 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "/definitions", 288s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/simpleTypes/enum", 288s # "error": "value does not match", 288s # "instanceLocation": "/definitions/foo/type", 288s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf/1/type", 288s # "error": "got integer, not array", 288s # "instanceLocation": "/definitions/foo/type", 288s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf", 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "/definitions/foo/type", 288s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "/definitions/foo", 288s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/definitions/additionalProperties", 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "/definitions", 288s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 86 - dependencies.json: "dependencies" - "neither" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 87 - dependencies.json: "dependencies" - "nondependant" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 88 - dependencies.json: "dependencies" - "with dependency" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 89 - dependencies.json: "dependencies" - "missing dependency" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/bar" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/bar" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 90 - dependencies.json: "dependencies" - "ignores arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 91 - dependencies.json: "dependencies" - "ignores strings" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 92 - dependencies.json: "dependencies" - "ignores other non-objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 93 - dependencies.json: "multiple dependencies" - "neither" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 94 - dependencies.json: "multiple dependencies" - "nondependants" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 95 - dependencies.json: "multiple dependencies" - "with dependencies" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 96 - dependencies.json: "multiple dependencies" - "missing dependency" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/quux" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/quux" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 97 - dependencies.json: "multiple dependencies" - "missing other dependency" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/quux" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/quux" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 98 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: foo, bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/quux" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: foo, bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/quux" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 99 - dependencies.json: "multiple dependencies subschema" - "valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 100 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 101 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/dependencies/bar/properties/foo/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/bar/properties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/dependencies/bar/properties/foo/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/bar/properties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 102 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/dependencies/bar/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/bar/properties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/dependencies/bar/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/bar/properties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 103 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/dependencies/bar/properties/bar/type" 288s # }, 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/dependencies/bar/properties/foo/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/bar/properties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/dependencies/bar/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/bar/properties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 104 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 105 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 106 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 107 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo\rbar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo\nbar" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo\rbar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo\nbar" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 108 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object has fewer than 4 properties", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object has fewer than 4 properties", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 109 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo\"bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo'bar/required" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo\"bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo'bar/required" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 110 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo'bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo\"bar" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo'bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo\"bar" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 111 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/dependencies/foo/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo/additionalProperties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/dependencies/foo/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo/additionalProperties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 112 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 113 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/dependencies/foo/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo/additionalProperties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/dependencies/foo/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies/foo/additionalProperties" 288s # }, 288s # { 288s # "error": "not all dependencies are satisfied", 288s # "instanceLocation": "", 288s # "keywordLocation": "/dependencies" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 114 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 115 - enum.json: "simple enum validation" - "one of the enum is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 116 - enum.json: "simple enum validation" - "something else is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 117 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 118 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 119 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 120 - enum.json: "heterogeneous enum validation" - "valid object matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 121 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 122 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 123 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 124 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 125 - enum.json: "enums in properties" - "both properties are valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 126 - enum.json: "enums in properties" - "wrong foo value" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/properties/foo/enum" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/properties/foo/enum" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 127 - enum.json: "enums in properties" - "wrong bar value" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/properties/bar/enum" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/properties/bar/enum" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 128 - enum.json: "enums in properties" - "missing optional property is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 129 - enum.json: "enums in properties" - "missing required property is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 130 - enum.json: "enums in properties" - "missing all properties is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 131 - enum.json: "enum with escaped characters" - "member 1 is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 132 - enum.json: "enum with escaped characters" - "member 2 is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 133 - enum.json: "enum with escaped characters" - "another string is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 134 - enum.json: "enum with false does not match 0" - "false is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 135 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 136 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 137 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 138 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 139 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 140 - enum.json: "enum with true does not match 1" - "true is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 141 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 142 - enum.json: "enum with true does not match 1" - "float one is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 143 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 144 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 145 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 146 - enum.json: "enum with 0 does not match false" - "false is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 147 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 148 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 149 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 150 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 151 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 152 - enum.json: "enum with 1 does not match true" - "true is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 153 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 154 - enum.json: "enum with 1 does not match true" - "float one is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 155 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 156 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 157 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 158 - enum.json: "nul characters in strings" - "match string with nul" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 159 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 160 - format.json: "email format" - "all string formats ignore integers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 161 - format.json: "email format" - "all string formats ignore floats" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 162 - format.json: "email format" - "all string formats ignore objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 163 - format.json: "email format" - "all string formats ignore arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 164 - format.json: "email format" - "all string formats ignore booleans" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 165 - format.json: "email format" - "all string formats ignore nulls" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 166 - format.json: "ipv4 format" - "all string formats ignore integers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 167 - format.json: "ipv4 format" - "all string formats ignore floats" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 168 - format.json: "ipv4 format" - "all string formats ignore objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 169 - format.json: "ipv4 format" - "all string formats ignore arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 170 - format.json: "ipv4 format" - "all string formats ignore booleans" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 171 - format.json: "ipv4 format" - "all string formats ignore nulls" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 172 - format.json: "ipv6 format" - "all string formats ignore integers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 173 - format.json: "ipv6 format" - "all string formats ignore floats" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 174 - format.json: "ipv6 format" - "all string formats ignore objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 175 - format.json: "ipv6 format" - "all string formats ignore arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 176 - format.json: "ipv6 format" - "all string formats ignore booleans" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 177 - format.json: "ipv6 format" - "all string formats ignore nulls" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 178 - format.json: "hostname format" - "all string formats ignore integers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 179 - format.json: "hostname format" - "all string formats ignore floats" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 180 - format.json: "hostname format" - "all string formats ignore objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 181 - format.json: "hostname format" - "all string formats ignore arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 182 - format.json: "hostname format" - "all string formats ignore booleans" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 183 - format.json: "hostname format" - "all string formats ignore nulls" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 184 - format.json: "date-time format" - "all string formats ignore integers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 185 - format.json: "date-time format" - "all string formats ignore floats" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 186 - format.json: "date-time format" - "all string formats ignore objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 187 - format.json: "date-time format" - "all string formats ignore arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 188 - format.json: "date-time format" - "all string formats ignore booleans" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 189 - format.json: "date-time format" - "all string formats ignore nulls" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 190 - format.json: "uri format" - "all string formats ignore integers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 191 - format.json: "uri format" - "all string formats ignore floats" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 192 - format.json: "uri format" - "all string formats ignore objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 193 - format.json: "uri format" - "all string formats ignore arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 194 - format.json: "uri format" - "all string formats ignore booleans" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 195 - format.json: "uri format" - "all string formats ignore nulls" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 196 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "passing case" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 197 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "failing case" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/int/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/properties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "#/definitions/int/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/1/additionalProperties" 288s # }, 288s # { 288s # "error": "subschemas 0, 1 are not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/int/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/properties" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 198 - items.json: "a schema given for items" - "valid items" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 199 - items.json: "a schema given for items" - "wrong type of items" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/items/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/items/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 200 - items.json: "a schema given for items" - "ignores non-arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 201 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 202 - items.json: "an array of schemas for items" - "correct types" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 203 - items.json: "an array of schemas for items" - "wrong types" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/0/type" 288s # }, 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/items/1/type" 288s # }, 288s # { 288s # "error": "not all items are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/0/type" 288s # }, 288s # { 288s # "error": "not all items are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 204 - items.json: "an array of schemas for items" - "incomplete array of items" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 205 - items.json: "an array of schemas for items" - "array with additional items" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 206 - items.json: "an array of schemas for items" - "empty array" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 207 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 208 - items.json: "items and subitems" - "valid items" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 209 - items.json: "items and subitems" - "too many items" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/3", 288s # "keywordLocation": "/additionalItems" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/3", 288s # "keywordLocation": "/additionalItems" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 210 - items.json: "items and subitems" - "too many sub-items" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/0/2", 288s # "keywordLocation": "/items/0/$ref/additionalItems" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/0/$ref/additionalItems" 288s # }, 288s # { 288s # "error": "not all items are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/0/2", 288s # "keywordLocation": "/items/0/$ref/additionalItems" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/0/$ref/additionalItems" 288s # }, 288s # { 288s # "error": "not all items are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 211 - items.json: "items and subitems" - "wrong item" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/item/type", 288s # "error": "got object, not array", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/0/$ref/type" 288s # }, 288s # { 288s # "error": "not all items are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/item/type", 288s # "error": "got object, not array", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/0/$ref/type" 288s # }, 288s # { 288s # "error": "not all items are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 212 - items.json: "items and subitems" - "wrong sub-item" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "/0/0", 288s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "#/definitions/item/items", 288s # "error": "not all items are valid", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/0/$ref/items" 288s # }, 288s # { 288s # "error": "not all items are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "/0/0", 288s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "#/definitions/item/items", 288s # "error": "not all items are valid", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/0/$ref/items" 288s # }, 288s # { 288s # "error": "not all items are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 213 - items.json: "items and subitems" - "fewer items is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 214 - items.json: "nested items" - "valid nested array" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 215 - items.json: "nested items" - "nested array with invalid type" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "/0/0/0/0", 288s # "keywordLocation": "/items/items/items/items/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0/0/0", 288s # "keywordLocation": "/items/items/items/items" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0/0", 288s # "keywordLocation": "/items/items/items" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/items" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "/0/0/0/0", 288s # "keywordLocation": "/items/items/items/items/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0/0/0", 288s # "keywordLocation": "/items/items/items/items" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0/0", 288s # "keywordLocation": "/items/items/items" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/items" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 216 - items.json: "nested items" - "not deep enough" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not array", 288s # "instanceLocation": "/0/0/0", 288s # "keywordLocation": "/items/items/items/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0/0", 288s # "keywordLocation": "/items/items/items" 288s # }, 288s # { 288s # "error": "got integer, not array", 288s # "instanceLocation": "/0/1/0", 288s # "keywordLocation": "/items/items/items/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0/1", 288s # "keywordLocation": "/items/items/items" 288s # }, 288s # { 288s # "error": "got integer, not array", 288s # "instanceLocation": "/0/2/0", 288s # "keywordLocation": "/items/items/items/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0/2", 288s # "keywordLocation": "/items/items/items" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/items" 288s # }, 288s # { 288s # "error": "got integer, not array", 288s # "instanceLocation": "/1/0/0", 288s # "keywordLocation": "/items/items/items/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/1/0", 288s # "keywordLocation": "/items/items/items" 288s # }, 288s # { 288s # "error": "got integer, not array", 288s # "instanceLocation": "/1/1/0", 288s # "keywordLocation": "/items/items/items/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/1/1", 288s # "keywordLocation": "/items/items/items" 288s # }, 288s # { 288s # "error": "got integer, not array", 288s # "instanceLocation": "/1/2/0", 288s # "keywordLocation": "/items/items/items/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/1/2", 288s # "keywordLocation": "/items/items/items" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/items/items" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not array", 288s # "instanceLocation": "/0/0/0", 288s # "keywordLocation": "/items/items/items/type" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0/0", 288s # "keywordLocation": "/items/items/items" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/items" 288s # }, 288s # { 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 217 - items.json: "items with null instance elements" - "allows null elements" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 218 - items.json: "array-form items with null instance elements" - "allows null elements" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 219 - maxItems.json: "maxItems validation" - "shorter is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 220 - maxItems.json: "maxItems validation" - "exact length is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 221 - maxItems.json: "maxItems validation" - "too long is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "array has more than 2 items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maxItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "array has more than 2 items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maxItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 222 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 223 - maxLength.json: "maxLength validation" - "shorter is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 224 - maxLength.json: "maxLength validation" - "exact length is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 225 - maxLength.json: "maxLength validation" - "too long is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "length is greater than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maxLength" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "length is greater than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maxLength" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 226 - maxLength.json: "maxLength validation" - "ignores non-strings" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 227 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 228 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 229 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 230 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object has more than 2 properties", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maxProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object has more than 2 properties", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maxProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 231 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 232 - maxProperties.json: "maxProperties validation" - "ignores strings" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 233 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 234 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 235 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object has more than 0 property", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maxProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object has more than 0 property", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maxProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 236 - maximum.json: "maximum validation" - "below the maximum is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 237 - maximum.json: "maximum validation" - "boundary point is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 238 - maximum.json: "maximum validation" - "above the maximum is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maximum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maximum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 239 - maximum.json: "maximum validation" - "ignores non-numbers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 240 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 241 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 242 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 243 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 300", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maximum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 300", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maximum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 244 - maximum.json: "maximum validation (explicit false exclusivity)" - "below the maximum is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 245 - maximum.json: "maximum validation (explicit false exclusivity)" - "boundary point is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 246 - maximum.json: "maximum validation (explicit false exclusivity)" - "above the maximum is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maximum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maximum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 247 - maximum.json: "maximum validation (explicit false exclusivity)" - "ignores non-numbers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 248 - maximum.json: "exclusiveMaximum validation" - "below the maximum is still valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 249 - maximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than or equal to 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maximum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than or equal to 3", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maximum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 250 - minItems.json: "minItems validation" - "longer is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 251 - minItems.json: "minItems validation" - "exact length is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 252 - minItems.json: "minItems validation" - "too short is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "array has fewer than 1 item", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "array has fewer than 1 item", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 253 - minItems.json: "minItems validation" - "ignores non-arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 254 - minLength.json: "minLength validation" - "longer is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 255 - minLength.json: "minLength validation" - "exact length is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 256 - minLength.json: "minLength validation" - "too short is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "length is less than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minLength" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "length is less than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minLength" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 257 - minLength.json: "minLength validation" - "ignores non-strings" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 258 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "length is less than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minLength" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "length is less than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minLength" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 259 - minProperties.json: "minProperties validation" - "longer is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 260 - minProperties.json: "minProperties validation" - "exact length is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 261 - minProperties.json: "minProperties validation" - "too short is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object has fewer than 1 property", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object has fewer than 1 property", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 262 - minProperties.json: "minProperties validation" - "ignores arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 263 - minProperties.json: "minProperties validation" - "ignores strings" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 264 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 265 - minimum.json: "minimum validation" - "above the minimum is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 266 - minimum.json: "minimum validation" - "boundary point is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 267 - minimum.json: "minimum validation" - "below the minimum is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than 1.1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than 1.1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 268 - minimum.json: "minimum validation" - "ignores non-numbers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 269 - minimum.json: "minimum validation (explicit false exclusivity)" - "above the minimum is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 270 - minimum.json: "minimum validation (explicit false exclusivity)" - "boundary point is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 271 - minimum.json: "minimum validation (explicit false exclusivity)" - "below the minimum is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than 1.1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than 1.1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 272 - minimum.json: "minimum validation (explicit false exclusivity)" - "ignores non-numbers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 273 - minimum.json: "exclusiveMinimum validation" - "above the minimum is still valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 274 - minimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than or equal to 1.1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than or equal to 1.1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 275 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 276 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 277 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 278 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 279 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than -2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than -2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 280 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than -2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than -2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 281 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 282 - multipleOf.json: "by int" - "int by int" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 283 - multipleOf.json: "by int" - "int by int fail" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/multipleOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/multipleOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 284 - multipleOf.json: "by int" - "ignores non-numbers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 285 - multipleOf.json: "by number" - "zero is multiple of anything" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 286 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 287 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 1.5", 288s # "instanceLocation": "", 288s # "keywordLocation": "/multipleOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 1.5", 288s # "instanceLocation": "", 288s # "keywordLocation": "/multipleOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 288 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 289 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 0.0001", 288s # "instanceLocation": "", 288s # "keywordLocation": "/multipleOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is not a multiple of 0.0001", 288s # "instanceLocation": "", 288s # "keywordLocation": "/multipleOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 290 - multipleOf.json: "float division = inf" - "invalid, but naive implementations may raise an overflow error" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # }, 288s # { 288s # "error": "value is not a multiple of 0.123456789", 288s # "instanceLocation": "", 288s # "keywordLocation": "/multipleOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 291 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 292 - not.json: "not" - "allowed" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 293 - not.json: "not" - "disallowed" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 294 - not.json: "not multiple types" - "valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 295 - not.json: "not multiple types" - "mismatch" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 296 - not.json: "not multiple types" - "other mismatch" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 297 - not.json: "not more complex schema" - "match" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 298 - not.json: "not more complex schema" - "other match" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 299 - not.json: "not more complex schema" - "mismatch" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 300 - not.json: "forbidden property" - "property present" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/properties/foo/not" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/properties/foo/not" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 301 - not.json: "forbidden property" - "property absent" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 302 - not.json: "forbid everything with empty schema" - "number is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 303 - not.json: "forbid everything with empty schema" - "string is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 304 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 305 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 306 - not.json: "forbid everything with empty schema" - "null is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 307 - not.json: "forbid everything with empty schema" - "object is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 308 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 309 - not.json: "forbid everything with empty schema" - "array is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 310 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "subschema is valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/not" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 311 - not.json: "double negation" - "any value is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 312 - oneOf.json: "oneOf" - "first oneOf valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 313 - oneOf.json: "oneOf" - "second oneOf valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 314 - oneOf.json: "oneOf" - "both oneOf valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 315 - oneOf.json: "oneOf" - "neither oneOf valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/type" 288s # }, 288s # { 288s # "error": "value is less than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/1/minimum" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/type" 288s # }, 288s # { 288s # "error": "value is less than 2", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/1/minimum" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 316 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # }, 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 317 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 318 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 319 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 320 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 321 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 322 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/oneOf/0/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/properties" 288s # }, 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/oneOf/1/properties/foo/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/1/properties" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/oneOf/0/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/properties" 288s # }, 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/oneOf/1/properties/foo/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/1/properties" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 323 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 324 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 325 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/required" 288s # }, 288s # { 288s # "error": "object is missing properties: foo, baz", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/1/required" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/required" 288s # }, 288s # { 288s # "error": "object is missing properties: foo, baz", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/1/required" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 326 - oneOf.json: "oneOf with required" - "first valid - valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 327 - oneOf.json: "oneOf with required" - "second valid - valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 328 - oneOf.json: "oneOf with required" - "both valid - invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 329 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 330 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 331 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "multiple subschemas are valid: 0, 1", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 332 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/required" 288s # }, 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/1/required" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: bar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/required" 288s # }, 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/1/required" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 333 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 334 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/oneOf/0/type" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/oneOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/oneOf/0/type" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf/0/oneOf" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/oneOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 335 - pattern.json: "pattern validation" - "a matching pattern is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 336 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 337 - pattern.json: "pattern validation" - "ignores booleans" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 338 - pattern.json: "pattern validation" - "ignores integers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 339 - pattern.json: "pattern validation" - "ignores floats" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 340 - pattern.json: "pattern validation" - "ignores objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 341 - pattern.json: "pattern validation" - "ignores arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 342 - pattern.json: "pattern validation" - "ignores null" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 343 - pattern.json: "pattern is not anchored" - "matches a substring" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 344 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 345 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 346 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/patternProperties/f.*o/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/patternProperties/f.*o/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 347 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/patternProperties/f.*o/type" 288s # }, 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/foooooo", 288s # "keywordLocation": "/patternProperties/f.*o/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/patternProperties/f.*o/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 348 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 349 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 350 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 351 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 352 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 353 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 354 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/a", 288s # "keywordLocation": "/patternProperties/a*/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/a", 288s # "keywordLocation": "/patternProperties/a*/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 355 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 20", 288s # "instanceLocation": "/aaaa", 288s # "keywordLocation": "/patternProperties/aaa*/maximum" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than 20", 288s # "instanceLocation": "/aaaa", 288s # "keywordLocation": "/patternProperties/aaa*/maximum" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 356 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/aaa", 288s # "keywordLocation": "/patternProperties/a*/type" 288s # }, 288s # { 288s # "error": "value is greater than 20", 288s # "instanceLocation": "/aaaa", 288s # "keywordLocation": "/patternProperties/aaa*/maximum" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/aaa", 288s # "keywordLocation": "/patternProperties/a*/type" 288s # }, 288s # { 288s # "error": "value is greater than 20", 288s # "instanceLocation": "/aaaa", 288s # "keywordLocation": "/patternProperties/aaa*/maximum" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 357 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 358 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not boolean", 288s # "instanceLocation": "/a31b", 288s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not boolean", 288s # "instanceLocation": "/a31b", 288s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 359 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 360 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "/a_X_3", 288s # "keywordLocation": "/patternProperties/X_/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "/a_X_3", 288s # "keywordLocation": "/patternProperties/X_/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 361 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 362 - properties.json: "object properties validation" - "both properties present and valid is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 363 - properties.json: "object properties validation" - "one property invalid is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not string", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not string", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 364 - properties.json: "object properties validation" - "both properties invalid is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not string", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/properties/bar/type" 288s # }, 288s # { 288s # "error": "got array, not integer", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/properties/foo/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not string", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/properties/bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 365 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 366 - properties.json: "object properties validation" - "ignores arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 367 - properties.json: "object properties validation" - "ignores other non-objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 368 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 369 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "array has more than 3 items", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/properties/foo/maxItems" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "array has more than 3 items", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/properties/foo/maxItems" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 370 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "array has fewer than 2 items", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/patternProperties/f.o/minItems" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "array has fewer than 2 items", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/patternProperties/f.o/minItems" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 371 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 372 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "array has fewer than 2 items", 288s # "instanceLocation": "/fxo", 288s # "keywordLocation": "/patternProperties/f.o/minItems" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "array has fewer than 2 items", 288s # "instanceLocation": "/fxo", 288s # "keywordLocation": "/patternProperties/f.o/minItems" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 373 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 374 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 375 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/quux", 288s # "keywordLocation": "/additionalProperties/type" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/quux", 288s # "keywordLocation": "/additionalProperties/type" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 376 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 377 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "/foo\tbar", 288s # "keywordLocation": "/properties/foo\tbar/type" 288s # }, 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "/foo\nbar", 288s # "keywordLocation": "/properties/foo\nbar/type" 288s # }, 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "/foo\fbar", 288s # "keywordLocation": "/properties/foo\fbar/type" 288s # }, 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "/foo\rbar", 288s # "keywordLocation": "/properties/foo\rbar/type" 288s # }, 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "/foo\"bar", 288s # "keywordLocation": "/properties/foo\"bar/type" 288s # }, 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "/foo\\bar", 288s # "keywordLocation": "/properties/foo\\bar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "/foo\tbar", 288s # "keywordLocation": "/properties/foo\tbar/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 378 - properties.json: "properties with null valued instance properties" - "allows null values" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 379 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 380 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 381 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 382 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "/__proto__", 288s # "keywordLocation": "/properties/__proto__/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "/__proto__", 288s # "keywordLocation": "/properties/__proto__/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 383 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "/toString/length", 288s # "keywordLocation": "/properties/toString/properties/length/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "/toString", 288s # "keywordLocation": "/properties/toString/properties" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "/toString/length", 288s # "keywordLocation": "/properties/toString/properties/length/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "/toString", 288s # "keywordLocation": "/properties/toString/properties" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 384 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not number", 288s # "instanceLocation": "/constructor", 288s # "keywordLocation": "/properties/constructor/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not number", 288s # "instanceLocation": "/constructor", 288s # "keywordLocation": "/properties/constructor/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 385 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 386 - ref.json: "root pointer ref" - "match" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 387 - ref.json: "root pointer ref" - "recursive match" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 388 - ref.json: "root pointer ref" - "mismatch" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 389 - ref.json: "root pointer ref" - "recursive mismatch" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/additionalProperties", 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/foo/bar", 288s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "#/additionalProperties", 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/additionalProperties", 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/foo/bar", 288s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "#/additionalProperties", 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 390 - ref.json: "relative pointer ref to object" - "match" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 391 - ref.json: "relative pointer ref to object" - "mismatch" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/properties/foo/type", 288s # "error": "got boolean, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/properties/bar/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/properties/foo/type", 288s # "error": "got boolean, not integer", 288s # "instanceLocation": "/bar", 288s # "keywordLocation": "/properties/bar/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 392 - ref.json: "relative pointer ref to array" - "match array" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 393 - ref.json: "relative pointer ref to array" - "mismatch array" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/items/0/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/items/1/$ref/type" 288s # }, 288s # { 288s # "error": "not all items are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/items/0/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/1", 288s # "keywordLocation": "/items/1/$ref/type" 288s # }, 288s # { 288s # "error": "not all items are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 394 - ref.json: "escaped pointer ref" - "slash invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/slash", 288s # "keywordLocation": "/properties/slash/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/slash", 288s # "keywordLocation": "/properties/slash/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 395 - ref.json: "escaped pointer ref" - "tilde invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/tilde", 288s # "keywordLocation": "/properties/tilde/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/tilde", 288s # "keywordLocation": "/properties/tilde/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 396 - ref.json: "escaped pointer ref" - "percent invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/percent", 288s # "keywordLocation": "/properties/percent/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/percent", 288s # "keywordLocation": "/properties/percent/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 397 - ref.json: "escaped pointer ref" - "slash valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 398 - ref.json: "escaped pointer ref" - "tilde valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 399 - ref.json: "escaped pointer ref" - "percent valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 400 - ref.json: "nested refs" - "nested ref valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 401 - ref.json: "nested refs" - "nested ref invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/a/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/a/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 402 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 403 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 404 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/reffed/type", 288s # "error": "got string, not array", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/properties/foo/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/reffed/type", 288s # "error": "got string, not array", 288s # "instanceLocation": "/foo", 288s # "keywordLocation": "/properties/foo/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 405 - ref.json: "$ref prevents a sibling id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 406 - ref.json: "$ref prevents a sibling id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 407 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 408 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger/minimum", 288s # "error": "value is less than 0", 288s # "instanceLocation": "/minLength", 288s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "/minLength", 288s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger/minimum", 288s # "error": "value is less than 0", 288s # "instanceLocation": "/minLength", 288s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "/minLength", 288s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 409 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 410 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "/$ref", 288s # "keywordLocation": "/properties/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "/$ref", 288s # "keywordLocation": "/properties/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 411 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 412 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/is-string/type", 288s # "error": "got integer, not string", 288s # "instanceLocation": "/$ref", 288s # "keywordLocation": "/properties/$ref/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/is-string/type", 288s # "error": "got integer, not string", 288s # "instanceLocation": "/$ref", 288s # "keywordLocation": "/properties/$ref/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 413 - ref.json: "Recursive references between schemas" - "valid tree" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 414 - ref.json: "Recursive references between schemas" - "invalid tree" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 288s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "/nodes/0/subtree/nodes/0", 288s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/nodes/0/subtree/nodes", 288s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "/nodes/0/subtree", 288s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "/nodes/0", 288s # "keywordLocation": "/properties/nodes/items/$ref/properties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/nodes", 288s # "keywordLocation": "/properties/nodes/items" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 288s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "/nodes/0/subtree/nodes/0", 288s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/nodes/0/subtree/nodes", 288s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "/nodes/0/subtree", 288s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "/nodes/0", 288s # "keywordLocation": "/properties/nodes/items/$ref/properties" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/nodes", 288s # "keywordLocation": "/properties/nodes/items" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 415 - ref.json: "refs with quote" - "object with numbers is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 416 - ref.json: "refs with quote" - "object with strings is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "/foo\"bar", 288s # "keywordLocation": "/properties/foo\"bar/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "/foo\"bar", 288s # "keywordLocation": "/properties/foo\"bar/$ref/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 417 - ref.json: "Location-independent identifier" - "match" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 418 - ref.json: "Location-independent identifier" - "mismatch" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/A/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/A/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 419 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 420 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 421 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/enum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 422 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 423 - ref.json: "id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 424 - ref.json: "id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 425 - ref.json: "id with file URI still resolves pointers - *nix" - "number is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 426 - ref.json: "id with file URI still resolves pointers - *nix" - "non-number is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 427 - ref.json: "id with file URI still resolves pointers - windows" - "number is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 428 - ref.json: "id with file URI still resolves pointers - windows" - "non-number is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 429 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 430 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions//definitions//type", 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions//definitions//type", 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf/0/$ref/type" 288s # }, 288s # { 288s # "error": "subschema 0 is not valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/allOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 431 - refRemote.json: "remote ref" - "remote ref valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 432 - refRemote.json: "remote ref" - "remote ref invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 433 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 434 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 435 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 436 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/$ref/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/$ref/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 437 - refRemote.json: "base URI change" - "base URI change ref valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 438 - refRemote.json: "base URI change" - "base URI change ref invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/0/0", 288s # "keywordLocation": "/items/items/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/items" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/0/0", 288s # "keywordLocation": "/items/items/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/0", 288s # "keywordLocation": "/items/items" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/items" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 439 - refRemote.json: "base URI change - change folder" - "number is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 440 - refRemote.json: "base URI change - change folder" - "string is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/list/0", 288s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/list", 288s # "keywordLocation": "/properties/list/$ref/items" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/list/0", 288s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/list", 288s # "keywordLocation": "/properties/list/$ref/items" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 441 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 442 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/list/0", 288s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/list", 288s # "keywordLocation": "/properties/list/$ref/items" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "/list/0", 288s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 288s # "error": "subschema is not valid against all items", 288s # "instanceLocation": "/list", 288s # "keywordLocation": "/properties/list/$ref/items" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 443 - refRemote.json: "root ref in remote ref" - "string is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 444 - refRemote.json: "root ref in remote ref" - "null is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 445 - refRemote.json: "root ref in remote ref" - "object is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf/0/type", 288s # "error": "got object, not null", 288s # "instanceLocation": "/name", 288s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/type", 288s # "error": "got object, not string", 288s # "instanceLocation": "/name", 288s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf", 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "/name", 288s # "keywordLocation": "/properties/name/$ref/anyOf" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf/0/type", 288s # "error": "got object, not null", 288s # "instanceLocation": "/name", 288s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/type", 288s # "error": "got object, not string", 288s # "instanceLocation": "/name", 288s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf", 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "/name", 288s # "keywordLocation": "/properties/name/$ref/anyOf" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/properties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 446 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 447 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/locationIndependentIdentifier.json#/definitions/A/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/$ref/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "http://localhost:1234/draft4/locationIndependentIdentifier.json#/definitions/A/type", 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/$ref/$ref/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 448 - required.json: "required validation" - "present required property is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 449 - required.json: "required validation" - "non-present required property is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing property: foo", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 450 - required.json: "required validation" - "ignores arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 451 - required.json: "required validation" - "ignores strings" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 452 - required.json: "required validation" - "ignores other non-objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 453 - required.json: "required default validation" - "not required by default" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 454 - required.json: "required with escaped characters" - "object with all properties present is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 455 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 456 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 457 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 458 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: __proto__, toString, constructor", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: __proto__, toString, constructor", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 459 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: toString, constructor", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: toString, constructor", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 460 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: __proto__, constructor", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: __proto__, constructor", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 461 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: __proto__, toString", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "object is missing properties: __proto__, toString", 288s # "instanceLocation": "", 288s # "keywordLocation": "/required" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 462 - required.json: "required properties whose names are Javascript object property names" - "all present" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 463 - type.json: "integer type matches integers" - "an integer is an integer" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 464 - type.json: "integer type matches integers" - "a float is not an integer" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 465 - type.json: "integer type matches integers" - "a string is not an integer" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 466 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 467 - type.json: "integer type matches integers" - "an object is not an integer" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 468 - type.json: "integer type matches integers" - "an array is not an integer" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 469 - type.json: "integer type matches integers" - "a boolean is not an integer" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 470 - type.json: "integer type matches integers" - "null is not an integer" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 471 - type.json: "number type matches numbers" - "an integer is a number" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 472 - type.json: "number type matches numbers" - "a float with zero fractional part is a number" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 473 - type.json: "number type matches numbers" - "a float is a number" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 474 - type.json: "number type matches numbers" - "a string is not a number" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 475 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 476 - type.json: "number type matches numbers" - "an object is not a number" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 477 - type.json: "number type matches numbers" - "an array is not a number" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 478 - type.json: "number type matches numbers" - "a boolean is not a number" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 479 - type.json: "number type matches numbers" - "null is not a number" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not number", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 480 - type.json: "string type matches strings" - "1 is not a string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 481 - type.json: "string type matches strings" - "a float is not a string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 482 - type.json: "string type matches strings" - "a string is a string" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 483 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 484 - type.json: "string type matches strings" - "an empty string is still a string" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 485 - type.json: "string type matches strings" - "an object is not a string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 486 - type.json: "string type matches strings" - "an array is not a string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 487 - type.json: "string type matches strings" - "a boolean is not a string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 488 - type.json: "string type matches strings" - "null is not a string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 489 - type.json: "object type matches objects" - "an integer is not an object" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 490 - type.json: "object type matches objects" - "a float is not an object" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 491 - type.json: "object type matches objects" - "a string is not an object" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 492 - type.json: "object type matches objects" - "an object is an object" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 493 - type.json: "object type matches objects" - "an array is not an object" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 494 - type.json: "object type matches objects" - "a boolean is not an object" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 495 - type.json: "object type matches objects" - "null is not an object" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 496 - type.json: "array type matches arrays" - "an integer is not an array" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 497 - type.json: "array type matches arrays" - "a float is not an array" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 498 - type.json: "array type matches arrays" - "a string is not an array" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 499 - type.json: "array type matches arrays" - "an object is not an array" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 500 - type.json: "array type matches arrays" - "an array is an array" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 501 - type.json: "array type matches arrays" - "a boolean is not an array" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 502 - type.json: "array type matches arrays" - "null is not an array" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not array", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 503 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 504 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 505 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 506 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 507 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 508 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 509 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 510 - type.json: "boolean type matches booleans" - "true is a boolean" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 511 - type.json: "boolean type matches booleans" - "false is a boolean" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 512 - type.json: "boolean type matches booleans" - "null is not a boolean" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not boolean", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 513 - type.json: "null type matches only the null object" - "an integer is not null" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 514 - type.json: "null type matches only the null object" - "a float is not null" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 515 - type.json: "null type matches only the null object" - "zero is not null" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 516 - type.json: "null type matches only the null object" - "a string is not null" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 517 - type.json: "null type matches only the null object" - "an empty string is not null" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 518 - type.json: "null type matches only the null object" - "an object is not null" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 519 - type.json: "null type matches only the null object" - "an array is not null" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 520 - type.json: "null type matches only the null object" - "true is not null" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 521 - type.json: "null type matches only the null object" - "false is not null" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 522 - type.json: "null type matches only the null object" - "null is null" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 523 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 524 - type.json: "multiple types can be specified in an array" - "a string is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 525 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not one of integer, string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not one of integer, string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 526 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not one of integer, string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got object, not one of integer, string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 527 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not one of integer, string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got array, not one of integer, string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 528 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not one of integer, string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got boolean, not one of integer, string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 529 - type.json: "multiple types can be specified in an array" - "null is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not one of integer, string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not one of integer, string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 530 - type.json: "type as array with one item" - "string is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 531 - type.json: "type as array with one item" - "number is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not one of string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not one of string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 532 - type.json: "type: array or object" - "array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 533 - type.json: "type: array or object" - "object is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 534 - type.json: "type: array or object" - "number is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not one of array, object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not one of array, object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 535 - type.json: "type: array or object" - "string is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not one of array, object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not one of array, object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 536 - type.json: "type: array or object" - "null is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not one of array, object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got null, not one of array, object", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 537 - type.json: "type: array, object or null" - "array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 538 - type.json: "type: array, object or null" - "object is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 539 - type.json: "type: array, object or null" - "null is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 540 - type.json: "type: array, object or null" - "number is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not one of array, object, null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not one of array, object, null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 541 - type.json: "type: array, object or null" - "string is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not one of array, object, null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not one of array, object, null", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 542 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 543 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 544 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 2 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 2 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 545 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 546 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 547 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 548 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 549 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 2 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 2 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 550 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 551 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 552 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 553 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 554 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 555 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 556 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 557 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 2 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 2 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 558 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 559 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 560 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 561 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 562 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 563 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 564 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 565 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 4 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 4 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 566 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 567 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 568 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 569 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 570 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 571 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 572 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 573 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 574 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 575 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 576 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 2 and 3 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 2 and 3 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 577 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 2 and 3 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 2 and 3 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 578 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 579 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 580 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 581 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "items at indices 0 and 1 are not unique", 288s # "instanceLocation": "", 288s # "keywordLocation": "/uniqueItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 582 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/2", 288s # "keywordLocation": "/additionalItems" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/2", 288s # "keywordLocation": "/additionalItems" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 583 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 584 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 585 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 586 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 587 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 588 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 589 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 590 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 591 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 592 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 593 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 594 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 595 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 596 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 597 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 598 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 599 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 600 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 601 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 602 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 603 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 604 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 605 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 606 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 607 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 608 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 609 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 610 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/2", 288s # "keywordLocation": "/additionalItems" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional item not permitted", 288s # "instanceLocation": "/2", 288s # "keywordLocation": "/additionalItems" 288s # }, 288s # { 288s # "error": "subschema is not valid against all additional items", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalItems" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 611 - optional/bignum.json: "integer" - "a bignum is an integer" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 612 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 613 - optional/bignum.json: "number" - "a bignum is a number" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 614 - optional/bignum.json: "number" - "a negative bignum is a number" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 615 - optional/bignum.json: "string" - "a bignum is not a string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got integer, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 616 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 617 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maximum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 288s # "instanceLocation": "", 288s # "keywordLocation": "/maximum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 618 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 619 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 288s # "instanceLocation": "", 288s # "keywordLocation": "/minimum" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 620 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 621 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 622 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 623 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 624 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 625 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 626 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 627 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 628 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true # 288s 1..1 288s } 288s ok 629 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected false; got true 288s # schema: { 288s # "pattern": "^\\d$", 288s # "type": "string" 288s # } 288s # data: "߀" 288s # result: 1 288s 1..1 288s } 288s ok 630 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO (as \u escape) does not match" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected false; got true 288s # schema: { 288s # "pattern": "^\\d$", 288s # "type": "string" 288s # } 288s # data: "߀" 288s # result: 1 288s 1..1 288s } 288s ok 631 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false # 288s 1..1 288s } 288s ok 632 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected true; got false 288s # schema: { 288s # "pattern": "^\\D$", 288s # "type": "string" 288s # } 288s # data: "߀" 288s # result: 0 288s 1..1 288s } 288s ok 633 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO (as \u escape) matches" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected true; got false 288s # schema: { 288s # "pattern": "^\\D$", 288s # "type": "string" 288s # } 288s # data: "߀" 288s # result: 0 288s 1..1 288s } 288s ok 634 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true # 288s 1..1 288s } 288s ok 635 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "latin-1 e-acute does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected false; got true 288s # schema: { 288s # "pattern": "^\\w$", 288s # "type": "string" 288s # } 288s # data: "é" 288s # result: 1 288s 1..1 288s } 288s ok 636 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false # 288s 1..1 288s } 288s ok 637 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "latin-1 e-acute matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected true; got false 288s # schema: { 288s # "pattern": "^\\W$", 288s # "type": "string" 288s # } 288s # data: "é" 288s # result: 0 288s 1..1 288s } 288s ok 638 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 639 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 640 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 641 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 642 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 643 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected true; got false 288s # schema: { 288s # "pattern": "^\\s$", 288s # "type": "string" 288s # } 288s # data: "" 288s # result: 0 288s 1..1 288s } 288s ok 644 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 645 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 646 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 647 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 648 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 649 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 650 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 651 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 652 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 653 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 654 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected false; got true 288s # schema: { 288s # "pattern": "^\\S$", 288s # "type": "string" 288s # } 288s # data: "" 288s # result: 1 288s 1..1 288s } 288s ok 655 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 656 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 657 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 658 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 659 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 660 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 661 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 662 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 663 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 664 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 665 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected false; got true 288s # schema: { 288s # "pattern": "\\wcole" 288s # } 288s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 288s # result: 1 288s 1..1 288s } 288s ok 666 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected false; got true 288s # schema: { 288s # "pattern": "\\wcole" 288s # } 288s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 288s # result: 1 288s 1..1 288s } 288s ok 667 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 668 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 669 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 670 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 671 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 672 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 673 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected false; got true 288s # schema: { 288s # "pattern": "^\\d+$" 288s # } 288s # data: "৪২" 288s # result: 1 288s 1..1 288s } 288s ok 674 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 675 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 676 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 677 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 678 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 679 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 680 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/L'ÉCOLE", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/L'ÉCOLE", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 681 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 682 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected false; got true 288s # schema: { 288s # "additionalProperties": false, 288s # "patternProperties": { 288s # "\\wcole": {} 288s # }, 288s # "type": "object" 288s # } 288s # data: { 288s # "l'école": "pas de vraie vie" 288s # } 288s # result: 1 288s 1..1 288s } 288s ok 683 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected false; got true 288s # schema: { 288s # "additionalProperties": false, 288s # "patternProperties": { 288s # "\\wcole": {} 288s # }, 288s # "type": "object" 288s # } 288s # data: { 288s # "l'école": "pas de vraie vie" 288s # } 288s # result: 1 288s 1..1 288s } 288s ok 684 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/L'ÉCOLE", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/L'ÉCOLE", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 685 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/l'école", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/l'école", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 686 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/l'école", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/l'école", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 687 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 688 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 689 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/-%#", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/-%#", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 690 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s not ok 1 - evaluation result is incorrect # 288s # Failed test (with amnesty) 'evaluation result is incorrect' 288s # at t/zzz-acceptance-draft4.t line 51. 288s # expected false; got true 288s # schema: { 288s # "additionalProperties": false, 288s # "patternProperties": { 288s # "^\\d+$": {} 288s # }, 288s # "type": "object" 288s # } 288s # data: { 288s # "৪২": "khajit has wares if you have coin" 288s # } 288s # result: 1 288s 1..1 288s } 288s ok 691 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 692 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/-%#", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "additional property not permitted", 288s # "instanceLocation": "/-%#", 288s # "keywordLocation": "/additionalProperties" 288s # }, 288s # { 288s # "error": "not all additional properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/additionalProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 693 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 694 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s # 288s ok 695 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 696 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 697 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 288s # result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/$ref/enum" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "https://localhost:1234/my_identifier.json#/type", 288s # "error": "got integer, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/1/$ref/type" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 288s # "error": "value does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/0/$ref/enum" 288s # }, 288s # { 288s # "absoluteKeywordLocation": "https://localhost:1234/my_identifier.json#/type", 288s # "error": "got integer, not string", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf/1/$ref/type" 288s # }, 288s # { 288s # "error": "no subschemas are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/anyOf" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 698 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 699 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 700 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 701 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 702 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 703 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 704 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "pattern does not match", 288s # "instanceLocation": "", 288s # "keywordLocation": "/pattern" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 705 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 706 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 707 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 288s # result: { 288s # "valid": true 288s # } 288s # short-circuited result: { 288s # "valid": true 288s # } 288s ok 1 - test passes: data is valid: true 288s 1..1 288s } 288s ok 708 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/🐲", 288s # "keywordLocation": "/patternProperties/^🐲*$/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/🐲", 288s # "keywordLocation": "/patternProperties/^🐲*$/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s ok 709 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/🐲🐲", 288s # "keywordLocation": "/patternProperties/^🐲*$/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got string, not integer", 288s # "instanceLocation": "/🐲🐲", 288s # "keywordLocation": "/patternProperties/^🐲*$/type" 288s # }, 288s # { 288s # "error": "not all properties are valid", 288s # "instanceLocation": "", 288s # "keywordLocation": "/patternProperties" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s ok 710 - optional/zeroTerminatedFloats.json: "some languages do not distinguish between different types of numeric value" - "a float is not an integer even without fractional part" { 288s # result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s # short-circuited result: { 288s # "errors": [ 288s # { 288s # "error": "got number, not integer", 288s # "instanceLocation": "", 288s # "keywordLocation": "/type" 288s # } 288s # ], 288s # "valid": false 288s # } 288s ok 1 - test passes: data is valid: false 288s 1..1 288s } 288s # 288s # generated with: Test::JSON::Schema::Acceptance 1.029 288s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 288s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 288s # specification version: draft4 288s # optional tests included: yes 288s # skipping directory: optional/format 288s # 288s # filename pass todo-fail fail 288s # --------------------------------------------------------------- 288s # additionalItems.json 18 0 0 288s # additionalProperties.json 16 0 0 288s # allOf.json 27 0 0 288s # anyOf.json 15 0 0 288s # default.json 7 0 0 288s # definitions.json 2 0 0 288s # dependencies.json 29 0 0 288s # enum.json 45 0 0 288s # format.json 36 0 0 288s # infinite-loop-detection.json 2 0 0 288s # items.json 21 0 0 288s # maxItems.json 4 0 0 288s # maxLength.json 5 0 0 288s # maxProperties.json 8 0 0 288s # maximum.json 14 0 0 288s # minItems.json 4 0 0 288s # minLength.json 5 0 0 288s # minProperties.json 6 0 0 288s # minimum.json 17 0 0 288s # multipleOf.json 10 0 0 288s # not.json 20 0 0 288s # oneOf.json 23 0 0 288s # pattern.json 9 0 0 288s # patternProperties.json 18 0 0 288s # properties.json 24 0 0 288s # ref.json 45 0 0 288s # refRemote.json 17 0 0 288s # required.json 15 0 0 288s # type.json 79 0 0 288s # uniqueItems.json 69 0 0 288s # optional/bignum.json 9 0 0 288s # optional/ecmascript-regex.json 60 14 0 288s # optional/float-overflow.json 1 0 0 288s # optional/id.json 3 0 0 288s # optional/non-bmp-regex.json 12 0 0 288s # optional/zeroTerminatedFloats.json 1 0 0 288s # --------------------------------------------------------------- 288s # TOTAL 696 14 0 288s # 288s # Congratulations, all non-optional tests are passing! 288s # 288s ok 711 - no leaks in the main evaluator object 288s ok 712 - no leaks in the short-circuiting evaluator object 288s 1..712 288s ok 290s t/zzz-acceptance-draft6-format.t ........ 290s # 290s # AUTHOR_TESTING: 290s # AUTOMATED_TESTING: 1 290s # EXTENDED_TESTING: 290s # NO_TODO: 290s # TEST_DIR: 290s # NO_SHORT_CIRCUIT: 290s # 290s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft6/optional/format against draft6... 290s # 290s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid date-time string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s # 290s ok 26 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 27 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 28 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 29 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 30 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 31 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 32 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 33 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid email string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid email string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 34 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 35 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 36 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 37 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid email string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid email string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 38 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid email string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid email string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 39 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 40 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid email string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid email string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s # 290s ok 41 - hostname.json: "validation of host names" - "all string formats ignore integers" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 42 - hostname.json: "validation of host names" - "all string formats ignore floats" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 43 - hostname.json: "validation of host names" - "all string formats ignore objects" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 44 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 45 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 46 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 47 - hostname.json: "validation of host names" - "a valid host name" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 48 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 49 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 50 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 51 - hostname.json: "validation of host names" - "a host name with a component too long" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 52 - hostname.json: "validation of host names" - "starts with hyphen" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 53 - hostname.json: "validation of host names" - "ends with hyphen" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 54 - hostname.json: "validation of host names" - "starts with underscore" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 55 - hostname.json: "validation of host names" - "ends with underscore" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 56 - hostname.json: "validation of host names" - "contains underscore" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 57 - hostname.json: "validation of host names" - "maximum label length" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 58 - hostname.json: "validation of host names" - "exceeds maximum label length" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 59 - hostname.json: "validation of host names" - "single label" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 60 - hostname.json: "validation of host names" - "single label with hyphen" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 61 - hostname.json: "validation of host names" - "single label with digits" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 62 - hostname.json: "validation of host names" - "single label ending with digit" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 63 - hostname.json: "validation of host names" - "empty string" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 64 - hostname.json: "validation of host names" - "single dot" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid hostname string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s # 290s ok 65 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 66 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 67 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 68 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 69 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 70 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 71 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 72 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 73 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 74 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 75 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 76 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 77 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 78 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 79 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 80 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv4 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s # 290s ok 81 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 82 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 83 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 84 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 85 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 86 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 87 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 88 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 89 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 90 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 91 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 92 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 93 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 94 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 95 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 96 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 97 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 98 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 99 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 100 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 101 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 102 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 103 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 104 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 105 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 106 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 107 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 108 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 109 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 110 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 111 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 112 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 113 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 114 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 115 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 116 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 117 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 118 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 119 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 120 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid ipv6 string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s # 290s ok 121 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 122 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 123 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 124 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 125 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 126 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 127 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 128 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 129 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 130 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 131 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 132 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 133 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 134 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 135 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 136 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 137 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 138 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 139 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 140 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 141 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 142 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 143 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 144 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 145 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 146 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 147 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 148 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 149 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 150 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 151 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 152 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 153 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 154 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 155 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 156 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 157 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 158 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid json-pointer string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s # 290s ok 159 - unknown.json: "unknown format" - "unknown formats ignore integers" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 160 - unknown.json: "unknown format" - "unknown formats ignore floats" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 161 - unknown.json: "unknown format" - "unknown formats ignore objects" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 162 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 163 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 164 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 165 - unknown.json: "unknown format" - "unknown formats ignore strings" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s # 290s ok 166 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 167 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 168 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 169 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 170 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 171 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 172 - uri-reference.json: "validation of URI References" - "a valid URI" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 173 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 174 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 175 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri-reference string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri-reference string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 176 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 177 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 178 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri-reference string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri-reference string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s # 290s ok 179 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true # 290s 1..1 290s } 290s ok 180 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true # 290s 1..1 290s } 290s ok 181 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true # 290s 1..1 290s } 290s ok 182 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true # 290s 1..1 290s } 290s ok 183 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true # 290s 1..1 290s } 290s ok 184 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true # 290s 1..1 290s } 290s ok 185 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true # 290s 1..1 290s } 290s ok 186 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s not ok 1 - evaluation result is incorrect # 290s # Failed test (with amnesty) 'evaluation result is incorrect' 290s # at t/zzz-acceptance-draft6-format.t line 66. 290s # expected false; got true 290s # schema: { 290s # "format": "uri-template" 290s # } 290s # data: "http://example.com/dictionary/{term:1}/{term" 290s # result: 1 290s 1..1 290s } 290s ok 187 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true # 290s 1..1 290s } 290s ok 188 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true # 290s 1..1 290s } 290s # 290s ok 189 - uri.json: "validation of URIs" - "all string formats ignore integers" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 190 - uri.json: "validation of URIs" - "all string formats ignore floats" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 191 - uri.json: "validation of URIs" - "all string formats ignore objects" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 192 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 193 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 194 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 195 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 196 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 197 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 198 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 199 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 200 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 201 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 202 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 203 - uri.json: "validation of URIs" - "a valid URL " { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 204 - uri.json: "validation of URIs" - "a valid mailto URI" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 205 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 206 - uri.json: "validation of URIs" - "a valid tel URI" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 207 - uri.json: "validation of URIs" - "a valid URN" { 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s ok 1 - test passes: data is valid: true 290s 1..1 290s } 290s ok 208 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 209 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 210 - uri.json: "validation of URIs" - "an invalid URI" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 211 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 212 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 213 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 290s # result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s # short-circuited result: { 290s # "errors": [ 290s # { 290s # "error": "not a valid uri string", 290s # "instanceLocation": "", 290s # "keywordLocation": "/format" 290s # } 290s # ], 290s # "valid": false 290s # } 290s ok 1 - test passes: data is valid: false 290s 1..1 290s } 290s ok 214 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 290s # result: { 290s # "valid": true 290s # } 290s # short-circuited result: { 290s # "valid": true 290s # } 290s not ok 1 - evaluation result is incorrect # 290s # Failed test (with amnesty) 'evaluation result is incorrect' 290s # at t/zzz-acceptance-draft6-format.t line 66. 290s # expected false; got true 290s # schema: { 290s # "format": "uri" 290s # } 290s # data: "bar,baz:foo" 290s # result: 1 290s 1..1 290s } 290s # 290s # generated with: Test::JSON::Schema::Acceptance 1.029 290s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 290s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 290s # specification version: draft6 290s # using custom test directory: /optional/format 290s # optional tests included: yes 290s # 290s # filename pass todo-fail fail 290s # --------------------------------------------------------------- 290s # date-time.json 25 0 0 290s # email.json 15 0 0 290s # hostname.json 24 0 0 290s # ipv4.json 16 0 0 290s # ipv6.json 40 0 0 290s # json-pointer.json 38 0 0 290s # unknown.json 7 0 0 290s # uri-reference.json 13 0 0 290s # uri-template.json 9 1 0 290s # uri.json 25 1 0 290s # --------------------------------------------------------------- 290s # TOTAL 212 2 0 290s # 290s # Congratulations, all non-optional tests are passing! 290s # 290s ok 215 - no leaks in the main evaluator object 290s ok 216 - no leaks in the short-circuiting evaluator object 290s 1..216 290s ok 296s t/zzz-acceptance-draft6.t ............... 296s # 296s # AUTHOR_TESTING: 296s # AUTOMATED_TESTING: 1 296s # EXTENDED_TESTING: 296s # NO_TODO: 296s # TEST_DIR: 296s # NO_SHORT_CIRCUIT: 296s # 296s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 296s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft6 against draft6... 296s # 296s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not integer", 296s # "instanceLocation": "/3", 296s # "keywordLocation": "/additionalItems/type" 296s # }, 296s # { 296s # "error": "subschema is not valid against all additional items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalItems" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not integer", 296s # "instanceLocation": "/3", 296s # "keywordLocation": "/additionalItems/type" 296s # }, 296s # { 296s # "error": "subschema is not valid against all additional items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalItems" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not integer", 296s # "instanceLocation": "/1", 296s # "keywordLocation": "/items/type" 296s # }, 296s # { 296s # "error": "got string, not integer", 296s # "instanceLocation": "/2", 296s # "keywordLocation": "/items/type" 296s # }, 296s # { 296s # "error": "subschema is not valid against all items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/items" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not integer", 296s # "instanceLocation": "/1", 296s # "keywordLocation": "/items/type" 296s # }, 296s # { 296s # "error": "subschema is not valid against all items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/items" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "additional item not permitted", 296s # "instanceLocation": "/3", 296s # "keywordLocation": "/additionalItems" 296s # }, 296s # { 296s # "error": "subschema is not valid against all additional items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalItems" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "additional item not permitted", 296s # "instanceLocation": "/3", 296s # "keywordLocation": "/additionalItems" 296s # }, 296s # { 296s # "error": "subschema is not valid against all additional items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalItems" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not boolean", 296s # "instanceLocation": "/1", 296s # "keywordLocation": "/additionalItems/type" 296s # }, 296s # { 296s # "error": "subschema is not valid against all additional items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalItems" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not boolean", 296s # "instanceLocation": "/1", 296s # "keywordLocation": "/additionalItems/type" 296s # }, 296s # { 296s # "error": "subschema is not valid against all additional items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalItems" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not integer", 296s # "instanceLocation": "/1", 296s # "keywordLocation": "/additionalItems/type" 296s # }, 296s # { 296s # "error": "subschema is not valid against all additional items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalItems" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not integer", 296s # "instanceLocation": "/1", 296s # "keywordLocation": "/additionalItems/type" 296s # }, 296s # { 296s # "error": "subschema is not valid against all additional items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalItems" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "additional item not permitted", 296s # "instanceLocation": "/1", 296s # "keywordLocation": "/additionalItems" 296s # }, 296s # { 296s # "error": "additional item not permitted", 296s # "instanceLocation": "/2", 296s # "keywordLocation": "/additionalItems" 296s # }, 296s # { 296s # "error": "subschema is not valid against all additional items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalItems" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "additional item not permitted", 296s # "instanceLocation": "/1", 296s # "keywordLocation": "/additionalItems" 296s # }, 296s # { 296s # "error": "subschema is not valid against all additional items", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalItems" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s # 296s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "additional property not permitted", 296s # "instanceLocation": "/quux", 296s # "keywordLocation": "/additionalProperties" 296s # }, 296s # { 296s # "error": "not all additional properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalProperties" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "additional property not permitted", 296s # "instanceLocation": "/quux", 296s # "keywordLocation": "/additionalProperties" 296s # }, 296s # { 296s # "error": "not all additional properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalProperties" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "additional property not permitted", 296s # "instanceLocation": "/élmény", 296s # "keywordLocation": "/additionalProperties" 296s # }, 296s # { 296s # "error": "not all additional properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalProperties" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "additional property not permitted", 296s # "instanceLocation": "/élmény", 296s # "keywordLocation": "/additionalProperties" 296s # }, 296s # { 296s # "error": "not all additional properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalProperties" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not boolean", 296s # "instanceLocation": "/quux", 296s # "keywordLocation": "/additionalProperties/type" 296s # }, 296s # { 296s # "error": "not all additional properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalProperties" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not boolean", 296s # "instanceLocation": "/quux", 296s # "keywordLocation": "/additionalProperties/type" 296s # }, 296s # { 296s # "error": "not all additional properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalProperties" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not boolean", 296s # "instanceLocation": "/foo", 296s # "keywordLocation": "/additionalProperties/type" 296s # }, 296s # { 296s # "error": "not all additional properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalProperties" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not boolean", 296s # "instanceLocation": "/foo", 296s # "keywordLocation": "/additionalProperties/type" 296s # }, 296s # { 296s # "error": "not all additional properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalProperties" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not boolean", 296s # "instanceLocation": "/foo", 296s # "keywordLocation": "/additionalProperties/type" 296s # }, 296s # { 296s # "error": "not all additional properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalProperties" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not boolean", 296s # "instanceLocation": "/foo", 296s # "keywordLocation": "/additionalProperties/type" 296s # }, 296s # { 296s # "error": "not all additional properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/additionalProperties" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s # 296s ok 37 - allOf.json: "allOf" - "allOf" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 38 - allOf.json: "allOf" - "mismatch second" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: bar", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/required" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: bar", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/required" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 39 - allOf.json: "allOf" - "mismatch first" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: foo", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/1/required" 296s # }, 296s # { 296s # "error": "subschema 1 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: foo", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/1/required" 296s # }, 296s # { 296s # "error": "subschema 1 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 40 - allOf.json: "allOf" - "wrong type" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not integer", 296s # "instanceLocation": "/bar", 296s # "keywordLocation": "/allOf/0/properties/bar/type" 296s # }, 296s # { 296s # "error": "not all properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/properties" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not integer", 296s # "instanceLocation": "/bar", 296s # "keywordLocation": "/allOf/0/properties/bar/type" 296s # }, 296s # { 296s # "error": "not all properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/properties" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 41 - allOf.json: "allOf with base schema" - "valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 42 - allOf.json: "allOf with base schema" - "mismatch base schema" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: bar", 296s # "instanceLocation": "", 296s # "keywordLocation": "/required" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: bar", 296s # "instanceLocation": "", 296s # "keywordLocation": "/required" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 43 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: foo", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/required" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: foo", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/required" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 44 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: baz", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/1/required" 296s # }, 296s # { 296s # "error": "subschema 1 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: baz", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/1/required" 296s # }, 296s # { 296s # "error": "subschema 1 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 45 - allOf.json: "allOf with base schema" - "mismatch both" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: foo", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/required" 296s # }, 296s # { 296s # "error": "object is missing property: baz", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/1/required" 296s # }, 296s # { 296s # "error": "subschemas 0, 1 are not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "object is missing property: foo", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/required" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 46 - allOf.json: "allOf simple types" - "valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 47 - allOf.json: "allOf simple types" - "mismatch one" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value is greater than 30", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/maximum" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value is greater than 30", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/maximum" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 48 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 49 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/1" 296s # }, 296s # { 296s # "error": "subschema 1 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/1" 296s # }, 296s # { 296s # "error": "subschema 1 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 50 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0" 296s # }, 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/1" 296s # }, 296s # { 296s # "error": "subschemas 0, 1 are not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 51 - allOf.json: "allOf with one empty schema" - "any data is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 52 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 53 - allOf.json: "allOf with the first empty schema" - "number is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 54 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not number", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/1/type" 296s # }, 296s # { 296s # "error": "subschema 1 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not number", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/1/type" 296s # }, 296s # { 296s # "error": "subschema 1 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 55 - allOf.json: "allOf with the last empty schema" - "number is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 56 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not number", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/type" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not number", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/type" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 57 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 58 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not null", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/allOf/0/type" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/allOf" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not null", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/allOf/0/type" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/allOf" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # }, 296s # { 296s # "error": "value is not a multiple of 3", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # }, 296s # { 296s # "error": "value is not a multiple of 5", 296s # "instanceLocation": "", 296s # "keywordLocation": "/oneOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/oneOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # }, 296s # { 296s # "error": "value is not a multiple of 3", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # }, 296s # { 296s # "error": "value is not a multiple of 5", 296s # "instanceLocation": "", 296s # "keywordLocation": "/oneOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/oneOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 62 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "subschema 0 is not valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/allOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 63 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 3", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # }, 296s # { 296s # "error": "value is not a multiple of 5", 296s # "instanceLocation": "", 296s # "keywordLocation": "/oneOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/oneOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 3", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 3", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 3", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 5", 296s # "instanceLocation": "", 296s # "keywordLocation": "/oneOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/oneOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value is not a multiple of 5", 296s # "instanceLocation": "", 296s # "keywordLocation": "/oneOf/0/multipleOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/oneOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s # 296s ok 67 - anyOf.json: "anyOf" - "first anyOf valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 68 - anyOf.json: "anyOf" - "second anyOf valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 69 - anyOf.json: "anyOf" - "both anyOf valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 70 - anyOf.json: "anyOf" - "neither anyOf valid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got number, not integer", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/type" 296s # }, 296s # { 296s # "error": "value is less than 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/1/minimum" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got number, not integer", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/type" 296s # }, 296s # { 296s # "error": "value is less than 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/1/minimum" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 71 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not string", 296s # "instanceLocation": "", 296s # "keywordLocation": "/type" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not string", 296s # "instanceLocation": "", 296s # "keywordLocation": "/type" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 72 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 73 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "length is greater than 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/maxLength" 296s # }, 296s # { 296s # "error": "length is less than 4", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/1/minLength" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "length is greater than 2", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/maxLength" 296s # }, 296s # { 296s # "error": "length is less than 4", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/1/minLength" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 74 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 75 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 76 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0" 296s # }, 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/1" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0" 296s # }, 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/1" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 77 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 78 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 79 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 80 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not integer", 296s # "instanceLocation": "/bar", 296s # "keywordLocation": "/anyOf/0/properties/bar/type" 296s # }, 296s # { 296s # "error": "not all properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/properties" 296s # }, 296s # { 296s # "error": "got integer, not string", 296s # "instanceLocation": "/foo", 296s # "keywordLocation": "/anyOf/1/properties/foo/type" 296s # }, 296s # { 296s # "error": "not all properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/1/properties" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got string, not integer", 296s # "instanceLocation": "/bar", 296s # "keywordLocation": "/anyOf/0/properties/bar/type" 296s # }, 296s # { 296s # "error": "not all properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/properties" 296s # }, 296s # { 296s # "error": "got integer, not string", 296s # "instanceLocation": "/foo", 296s # "keywordLocation": "/anyOf/1/properties/foo/type" 296s # }, 296s # { 296s # "error": "not all properties are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/1/properties" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 81 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 82 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 83 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 84 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not null", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/anyOf/0/type" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/anyOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "got integer, not null", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/anyOf/0/type" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf/0/anyOf" 296s # }, 296s # { 296s # "error": "no subschemas are valid", 296s # "instanceLocation": "", 296s # "keywordLocation": "/anyOf" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s # 296s ok 85 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 86 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 87 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 88 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 89 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 90 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 91 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 92 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 93 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 94 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 95 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 96 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 97 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 98 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 99 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 100 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 101 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 102 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "subschema is false", 296s # "instanceLocation": "", 296s # "keywordLocation": "" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s # 296s ok 103 - const.json: "const validation" - "same value is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 104 - const.json: "const validation" - "another value is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 105 - const.json: "const validation" - "another type is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 106 - const.json: "const with object" - "same object is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 107 - const.json: "const with object" - "same object with different property order is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 108 - const.json: "const with object" - "another object is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 109 - const.json: "const with object" - "another type is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 110 - const.json: "const with array" - "same array is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 111 - const.json: "const with array" - "another array item is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match (at '/0': wrong type: integer vs object)", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match (at '/0': wrong type: integer vs object)", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 112 - const.json: "const with array" - "array with additional items is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 113 - const.json: "const with null" - "null is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 114 - const.json: "const with null" - "not null is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 115 - const.json: "const with false does not match 0" - "false is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 116 - const.json: "const with false does not match 0" - "integer zero is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 117 - const.json: "const with false does not match 0" - "float zero is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 118 - const.json: "const with true does not match 1" - "true is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 119 - const.json: "const with true does not match 1" - "integer one is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 120 - const.json: "const with true does not match 1" - "float one is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 121 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 296s # result: { 296s # "valid": true 296s # } 296s # short-circuited result: { 296s # "valid": true 296s # } 296s ok 1 - test passes: data is valid: true 296s 1..1 296s } 296s ok 122 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s # short-circuited result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 296s # ], 296s # "valid": false 296s # } 296s ok 1 - test passes: data is valid: false 296s 1..1 296s } 296s ok 123 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 296s # result: { 296s # "errors": [ 296s # { 296s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 296s # "instanceLocation": "", 296s # "keywordLocation": "/const" 296s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 124 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 125 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 126 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 127 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 128 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 129 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 130 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 131 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 132 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 133 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 134 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 135 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 136 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 137 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 138 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 139 - const.json: "const with 1 does not match true" - "true is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 140 - const.json: "const with 1 does not match true" - "integer one is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 141 - const.json: "const with 1 does not match true" - "float one is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 142 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 143 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 144 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 145 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 146 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 147 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 148 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 149 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 150 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 151 - const.json: "nul characters in strings" - "match string with nul" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 152 - const.json: "nul characters in strings" - "do not match string lacking nul" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/const" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 153 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 154 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 155 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 156 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than 5", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/contains/minimum" 297s # }, 297s # { 297s # "error": "value is less than 5", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/contains/minimum" 297s # }, 297s # { 297s # "error": "value is less than 5", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/contains/minimum" 297s # }, 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than 5", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/contains/minimum" 297s # }, 297s # { 297s # "error": "value is less than 5", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/contains/minimum" 297s # }, 297s # { 297s # "error": "value is less than 5", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/contains/minimum" 297s # }, 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 157 - contains.json: "contains keyword validation" - "empty array is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 158 - contains.json: "contains keyword validation" - "not array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 159 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 160 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 161 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/contains/const" 297s # }, 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/contains/const" 297s # }, 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/contains/const" 297s # }, 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/3", 297s # "keywordLocation": "/contains/const" 297s # }, 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/contains/const" 297s # }, 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/contains/const" 297s # }, 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/contains/const" 297s # }, 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/3", 297s # "keywordLocation": "/contains/const" 297s # }, 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 162 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 163 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 164 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/contains" 297s # }, 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/contains" 297s # }, 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 165 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 166 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 167 - contains.json: "items + contains" - "matches items, does not match contains" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 3", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/contains/multipleOf" 297s # }, 297s # { 297s # "error": "value is not a multiple of 3", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/contains/multipleOf" 297s # }, 297s # { 297s # "error": "value is not a multiple of 3", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/contains/multipleOf" 297s # }, 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 3", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/contains/multipleOf" 297s # }, 297s # { 297s # "error": "value is not a multiple of 3", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/contains/multipleOf" 297s # }, 297s # { 297s # "error": "value is not a multiple of 3", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/contains/multipleOf" 297s # }, 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 168 - contains.json: "items + contains" - "does not match items, matches contains" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 2", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/multipleOf" 297s # }, 297s # { 297s # "error": "value is not a multiple of 2", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/items/multipleOf" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 2", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/multipleOf" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 169 - contains.json: "items + contains" - "matches both items and contains" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 170 - contains.json: "items + contains" - "matches neither items nor contains" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 2", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/multipleOf" 297s # }, 297s # { 297s # "error": "value is not a multiple of 2", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/items/multipleOf" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # }, 297s # { 297s # "error": "value is not a multiple of 3", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/contains/multipleOf" 297s # }, 297s # { 297s # "error": "value is not a multiple of 3", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/contains/multipleOf" 297s # }, 297s # { 297s # "error": "subschema is not valid against any item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/contains" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 2", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/multipleOf" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 171 - contains.json: "contains with null instance elements" - "allows null items" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 172 - default.json: "invalid type for default" - "valid when property is specified" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 173 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 174 - default.json: "invalid string value for default" - "valid when property is specified" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 175 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 176 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (passing)" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 177 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (failing)" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than 3", 297s # "instanceLocation": "/alpha", 297s # "keywordLocation": "/properties/alpha/maximum" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than 3", 297s # "instanceLocation": "/alpha", 297s # "keywordLocation": "/properties/alpha/maximum" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 178 - default.json: "the default keyword does not do anything if the property is missing" - "missing properties are not filled in with the default" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 179 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 180 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/simpleTypes/enum", 297s # "error": "value does not match", 297s # "instanceLocation": "/definitions/foo/type", 297s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf/1/type", 297s # "error": "got integer, not array", 297s # "instanceLocation": "/definitions/foo/type", 297s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf", 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "/definitions/foo/type", 297s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/definitions/foo", 297s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/definitions/additionalProperties", 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "/definitions", 297s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/simpleTypes/enum", 297s # "error": "value does not match", 297s # "instanceLocation": "/definitions/foo/type", 297s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf/1/type", 297s # "error": "got integer, not array", 297s # "instanceLocation": "/definitions/foo/type", 297s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf", 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "/definitions/foo/type", 297s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/definitions/foo", 297s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/definitions/additionalProperties", 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "/definitions", 297s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 181 - dependencies.json: "dependencies" - "neither" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 182 - dependencies.json: "dependencies" - "nondependant" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 183 - dependencies.json: "dependencies" - "with dependency" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 184 - dependencies.json: "dependencies" - "missing dependency" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 185 - dependencies.json: "dependencies" - "ignores arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 186 - dependencies.json: "dependencies" - "ignores strings" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 187 - dependencies.json: "dependencies" - "ignores other non-objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 188 - dependencies.json: "dependencies with empty array" - "empty object" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 189 - dependencies.json: "dependencies with empty array" - "object with one property" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 190 - dependencies.json: "dependencies with empty array" - "non-object is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 191 - dependencies.json: "multiple dependencies" - "neither" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 192 - dependencies.json: "multiple dependencies" - "nondependants" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 193 - dependencies.json: "multiple dependencies" - "with dependencies" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 194 - dependencies.json: "multiple dependencies" - "missing dependency" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/quux" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/quux" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 195 - dependencies.json: "multiple dependencies" - "missing other dependency" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/quux" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/quux" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 196 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: foo, bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/quux" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: foo, bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/quux" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 197 - dependencies.json: "multiple dependencies subschema" - "valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 198 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 199 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/dependencies/bar/properties/foo/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar/properties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/dependencies/bar/properties/foo/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar/properties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 200 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/dependencies/bar/properties/bar/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar/properties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/dependencies/bar/properties/bar/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar/properties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 201 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/dependencies/bar/properties/bar/type" 297s # }, 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/dependencies/bar/properties/foo/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar/properties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/dependencies/bar/properties/bar/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar/properties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 202 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema true is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 203 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema false is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 204 - dependencies.json: "dependencies with boolean subschemas" - "object with both properties is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/bar" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 205 - dependencies.json: "dependencies with boolean subschemas" - "empty object is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 206 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 207 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 208 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 209 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo\rbar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo\nbar" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo\rbar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo\nbar" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 210 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object has fewer than 4 properties", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object has fewer than 4 properties", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 211 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo\"bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo'bar/required" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo\"bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo'bar/required" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 212 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo'bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo\"bar" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo'bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo\"bar" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 213 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/dependencies/foo/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo/additionalProperties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/dependencies/foo/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo/additionalProperties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 214 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 215 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/dependencies/foo/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo/additionalProperties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/dependencies/foo/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies/foo/additionalProperties" 297s # }, 297s # { 297s # "error": "not all dependencies are satisfied", 297s # "instanceLocation": "", 297s # "keywordLocation": "/dependencies" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 216 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 217 - enum.json: "simple enum validation" - "one of the enum is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 218 - enum.json: "simple enum validation" - "something else is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 219 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 220 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 221 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 222 - enum.json: "heterogeneous enum validation" - "valid object matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 223 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 224 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 225 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 226 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 227 - enum.json: "enums in properties" - "both properties are valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 228 - enum.json: "enums in properties" - "wrong foo value" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/enum" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/enum" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 229 - enum.json: "enums in properties" - "wrong bar value" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar/enum" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar/enum" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 230 - enum.json: "enums in properties" - "missing optional property is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 231 - enum.json: "enums in properties" - "missing required property is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 232 - enum.json: "enums in properties" - "missing all properties is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 233 - enum.json: "enum with escaped characters" - "member 1 is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 234 - enum.json: "enum with escaped characters" - "member 2 is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 235 - enum.json: "enum with escaped characters" - "another string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 236 - enum.json: "enum with false does not match 0" - "false is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 237 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 238 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 239 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 240 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 241 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 242 - enum.json: "enum with true does not match 1" - "true is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 243 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 244 - enum.json: "enum with true does not match 1" - "float one is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 245 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 246 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 247 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 248 - enum.json: "enum with 0 does not match false" - "false is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 249 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 250 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 251 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 252 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 253 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 254 - enum.json: "enum with 1 does not match true" - "true is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 255 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 256 - enum.json: "enum with 1 does not match true" - "float one is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 257 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 258 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 259 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 260 - enum.json: "nul characters in strings" - "match string with nul" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 261 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 262 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 263 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than or equal to 3", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMaximum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than or equal to 3", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMaximum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 264 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than or equal to 3", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMaximum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than or equal to 3", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMaximum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 265 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 266 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 267 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than or equal to 1.1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMinimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than or equal to 1.1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMinimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 268 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than or equal to 1.1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMinimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than or equal to 1.1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMinimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 269 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 270 - format.json: "email format" - "all string formats ignore integers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 271 - format.json: "email format" - "all string formats ignore floats" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 272 - format.json: "email format" - "all string formats ignore objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 273 - format.json: "email format" - "all string formats ignore arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 274 - format.json: "email format" - "all string formats ignore booleans" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 275 - format.json: "email format" - "all string formats ignore nulls" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 276 - format.json: "ipv4 format" - "all string formats ignore integers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 277 - format.json: "ipv4 format" - "all string formats ignore floats" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 278 - format.json: "ipv4 format" - "all string formats ignore objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 279 - format.json: "ipv4 format" - "all string formats ignore arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 280 - format.json: "ipv4 format" - "all string formats ignore booleans" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 281 - format.json: "ipv4 format" - "all string formats ignore nulls" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 282 - format.json: "ipv6 format" - "all string formats ignore integers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 283 - format.json: "ipv6 format" - "all string formats ignore floats" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 284 - format.json: "ipv6 format" - "all string formats ignore objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 285 - format.json: "ipv6 format" - "all string formats ignore arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 286 - format.json: "ipv6 format" - "all string formats ignore booleans" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 287 - format.json: "ipv6 format" - "all string formats ignore nulls" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 288 - format.json: "hostname format" - "all string formats ignore integers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 289 - format.json: "hostname format" - "all string formats ignore floats" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 290 - format.json: "hostname format" - "all string formats ignore objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 291 - format.json: "hostname format" - "all string formats ignore arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 292 - format.json: "hostname format" - "all string formats ignore booleans" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 293 - format.json: "hostname format" - "all string formats ignore nulls" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 294 - format.json: "date-time format" - "all string formats ignore integers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 295 - format.json: "date-time format" - "all string formats ignore floats" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 296 - format.json: "date-time format" - "all string formats ignore objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 297 - format.json: "date-time format" - "all string formats ignore arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 298 - format.json: "date-time format" - "all string formats ignore booleans" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 299 - format.json: "date-time format" - "all string formats ignore nulls" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 300 - format.json: "json-pointer format" - "all string formats ignore integers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 301 - format.json: "json-pointer format" - "all string formats ignore floats" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 302 - format.json: "json-pointer format" - "all string formats ignore objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 303 - format.json: "json-pointer format" - "all string formats ignore arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 304 - format.json: "json-pointer format" - "all string formats ignore booleans" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 305 - format.json: "json-pointer format" - "all string formats ignore nulls" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 306 - format.json: "uri format" - "all string formats ignore integers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 307 - format.json: "uri format" - "all string formats ignore floats" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 308 - format.json: "uri format" - "all string formats ignore objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 309 - format.json: "uri format" - "all string formats ignore arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 310 - format.json: "uri format" - "all string formats ignore booleans" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 311 - format.json: "uri format" - "all string formats ignore nulls" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 312 - format.json: "uri-reference format" - "all string formats ignore integers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 313 - format.json: "uri-reference format" - "all string formats ignore floats" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 314 - format.json: "uri-reference format" - "all string formats ignore objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 315 - format.json: "uri-reference format" - "all string formats ignore arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 316 - format.json: "uri-reference format" - "all string formats ignore booleans" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 317 - format.json: "uri-reference format" - "all string formats ignore nulls" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 318 - format.json: "uri-template format" - "all string formats ignore integers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 319 - format.json: "uri-template format" - "all string formats ignore floats" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 320 - format.json: "uri-template format" - "all string formats ignore objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 321 - format.json: "uri-template format" - "all string formats ignore arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 322 - format.json: "uri-template format" - "all string formats ignore booleans" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 323 - format.json: "uri-template format" - "all string formats ignore nulls" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 324 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "passing case" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 325 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "failing case" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/int/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/int/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/1/additionalProperties" 297s # }, 297s # { 297s # "error": "subschemas 0, 1 are not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/int/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/properties" 297s # }, 297s # { 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 326 - items.json: "a schema given for items" - "valid items" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 327 - items.json: "a schema given for items" - "wrong type of items" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/items/type" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/items/type" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 328 - items.json: "a schema given for items" - "ignores non-arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 329 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 330 - items.json: "an array of schemas for items" - "correct types" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 331 - items.json: "an array of schemas for items" - "wrong types" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/0/type" 297s # }, 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/items/1/type" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/0/type" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 332 - items.json: "an array of schemas for items" - "incomplete array of items" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 333 - items.json: "an array of schemas for items" - "array with additional items" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 334 - items.json: "an array of schemas for items" - "empty array" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 335 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 336 - items.json: "items with boolean schema (true)" - "any array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 337 - items.json: "items with boolean schema (true)" - "empty array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 338 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "item not permitted", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items" 297s # }, 297s # { 297s # "error": "item not permitted", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/items" 297s # }, 297s # { 297s # "error": "item not permitted", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "item not permitted", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 339 - items.json: "items with boolean schema (false)" - "empty array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 340 - items.json: "items with boolean schemas" - "array with one item is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 341 - items.json: "items with boolean schemas" - "array with two items is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "item not permitted", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/items/1" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "item not permitted", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/items/1" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 342 - items.json: "items with boolean schemas" - "empty array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 343 - items.json: "items and subitems" - "valid items" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 344 - items.json: "items and subitems" - "too many items" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional item not permitted", 297s # "instanceLocation": "/3", 297s # "keywordLocation": "/additionalItems" 297s # }, 297s # { 297s # "error": "subschema is not valid against all additional items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional item not permitted", 297s # "instanceLocation": "/3", 297s # "keywordLocation": "/additionalItems" 297s # }, 297s # { 297s # "error": "subschema is not valid against all additional items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 345 - items.json: "items and subitems" - "too many sub-items" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 297s # "error": "additional item not permitted", 297s # "instanceLocation": "/0/2", 297s # "keywordLocation": "/items/0/$ref/additionalItems" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 297s # "error": "subschema is not valid against all additional items", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/0/$ref/additionalItems" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 297s # "error": "additional item not permitted", 297s # "instanceLocation": "/0/2", 297s # "keywordLocation": "/items/0/$ref/additionalItems" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 297s # "error": "subschema is not valid against all additional items", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/0/$ref/additionalItems" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 346 - items.json: "items and subitems" - "wrong item" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/item/type", 297s # "error": "got object, not array", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/0/$ref/type" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/item/type", 297s # "error": "got object, not array", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/0/$ref/type" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 347 - items.json: "items and subitems" - "wrong sub-item" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "/0/0", 297s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/item/items", 297s # "error": "not all items are valid", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/0/$ref/items" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "/0/0", 297s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/item/items", 297s # "error": "not all items are valid", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/0/$ref/items" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 348 - items.json: "items and subitems" - "fewer items is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 349 - items.json: "nested items" - "valid nested array" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 350 - items.json: "nested items" - "nested array with invalid type" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "/0/0/0/0", 297s # "keywordLocation": "/items/items/items/items/type" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0/0/0", 297s # "keywordLocation": "/items/items/items/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0/0", 297s # "keywordLocation": "/items/items/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "/0/0/0/0", 297s # "keywordLocation": "/items/items/items/items/type" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0/0/0", 297s # "keywordLocation": "/items/items/items/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0/0", 297s # "keywordLocation": "/items/items/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 351 - items.json: "nested items" - "not deep enough" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not array", 297s # "instanceLocation": "/0/0/0", 297s # "keywordLocation": "/items/items/items/type" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0/0", 297s # "keywordLocation": "/items/items/items" 297s # }, 297s # { 297s # "error": "got integer, not array", 297s # "instanceLocation": "/0/1/0", 297s # "keywordLocation": "/items/items/items/type" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0/1", 297s # "keywordLocation": "/items/items/items" 297s # }, 297s # { 297s # "error": "got integer, not array", 297s # "instanceLocation": "/0/2/0", 297s # "keywordLocation": "/items/items/items/type" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0/2", 297s # "keywordLocation": "/items/items/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/items" 297s # }, 297s # { 297s # "error": "got integer, not array", 297s # "instanceLocation": "/1/0/0", 297s # "keywordLocation": "/items/items/items/type" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/1/0", 297s # "keywordLocation": "/items/items/items" 297s # }, 297s # { 297s # "error": "got integer, not array", 297s # "instanceLocation": "/1/1/0", 297s # "keywordLocation": "/items/items/items/type" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/1/1", 297s # "keywordLocation": "/items/items/items" 297s # }, 297s # { 297s # "error": "got integer, not array", 297s # "instanceLocation": "/1/2/0", 297s # "keywordLocation": "/items/items/items/type" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/1/2", 297s # "keywordLocation": "/items/items/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/items/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not array", 297s # "instanceLocation": "/0/0/0", 297s # "keywordLocation": "/items/items/items/type" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0/0", 297s # "keywordLocation": "/items/items/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/items" 297s # }, 297s # { 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 352 - items.json: "single-form items with null instance elements" - "allows null elements" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 353 - items.json: "array-form items with null instance elements" - "allows null elements" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 354 - maxItems.json: "maxItems validation" - "shorter is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 355 - maxItems.json: "maxItems validation" - "exact length is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 356 - maxItems.json: "maxItems validation" - "too long is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "array has more than 2 items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "array has more than 2 items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 357 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 358 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 359 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "array has more than 2 items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "array has more than 2 items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 360 - maxLength.json: "maxLength validation" - "shorter is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 361 - maxLength.json: "maxLength validation" - "exact length is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 362 - maxLength.json: "maxLength validation" - "too long is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "length is greater than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxLength" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "length is greater than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxLength" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 363 - maxLength.json: "maxLength validation" - "ignores non-strings" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 364 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 365 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 366 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "length is greater than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxLength" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "length is greater than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxLength" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 367 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 368 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 369 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object has more than 2 properties", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object has more than 2 properties", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 370 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 371 - maxProperties.json: "maxProperties validation" - "ignores strings" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 372 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 373 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 374 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object has more than 2 properties", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object has more than 2 properties", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 375 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 376 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object has more than 0 property", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object has more than 0 property", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maxProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 377 - maximum.json: "maximum validation" - "below the maximum is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 378 - maximum.json: "maximum validation" - "boundary point is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 379 - maximum.json: "maximum validation" - "above the maximum is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than 3", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maximum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than 3", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maximum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 380 - maximum.json: "maximum validation" - "ignores non-numbers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 381 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 382 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 383 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 384 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than 300", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maximum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than 300", 297s # "instanceLocation": "", 297s # "keywordLocation": "/maximum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 385 - minItems.json: "minItems validation" - "longer is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 386 - minItems.json: "minItems validation" - "exact length is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 387 - minItems.json: "minItems validation" - "too short is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "array has fewer than 1 item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "array has fewer than 1 item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 388 - minItems.json: "minItems validation" - "ignores non-arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 389 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 390 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "array has fewer than 1 item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "array has fewer than 1 item", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 391 - minLength.json: "minLength validation" - "longer is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 392 - minLength.json: "minLength validation" - "exact length is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 393 - minLength.json: "minLength validation" - "too short is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "length is less than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minLength" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "length is less than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minLength" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 394 - minLength.json: "minLength validation" - "ignores non-strings" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 395 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "length is less than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minLength" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "length is less than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minLength" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 396 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 397 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "length is less than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minLength" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "length is less than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minLength" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 398 - minProperties.json: "minProperties validation" - "longer is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 399 - minProperties.json: "minProperties validation" - "exact length is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 400 - minProperties.json: "minProperties validation" - "too short is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object has fewer than 1 property", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object has fewer than 1 property", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 401 - minProperties.json: "minProperties validation" - "ignores arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 402 - minProperties.json: "minProperties validation" - "ignores strings" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 403 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 404 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 405 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object has fewer than 1 property", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object has fewer than 1 property", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 406 - minimum.json: "minimum validation" - "above the minimum is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 407 - minimum.json: "minimum validation" - "boundary point is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 408 - minimum.json: "minimum validation" - "below the minimum is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than 1.1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than 1.1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 409 - minimum.json: "minimum validation" - "ignores non-numbers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 410 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 411 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 412 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 413 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 414 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than -2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than -2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 415 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than -2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than -2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/minimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 416 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 417 - multipleOf.json: "by int" - "int by int" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 418 - multipleOf.json: "by int" - "int by int fail" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/multipleOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/multipleOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 419 - multipleOf.json: "by int" - "ignores non-numbers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 420 - multipleOf.json: "by number" - "zero is multiple of anything" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 421 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 422 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 1.5", 297s # "instanceLocation": "", 297s # "keywordLocation": "/multipleOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 1.5", 297s # "instanceLocation": "", 297s # "keywordLocation": "/multipleOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 423 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 424 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 0.0001", 297s # "instanceLocation": "", 297s # "keywordLocation": "/multipleOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 0.0001", 297s # "instanceLocation": "", 297s # "keywordLocation": "/multipleOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 425 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 0.123456789", 297s # "instanceLocation": "", 297s # "keywordLocation": "/multipleOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is not a multiple of 0.123456789", 297s # "instanceLocation": "", 297s # "keywordLocation": "/multipleOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 426 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 427 - not.json: "not" - "allowed" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 428 - not.json: "not" - "disallowed" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 429 - not.json: "not multiple types" - "valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 430 - not.json: "not multiple types" - "mismatch" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 431 - not.json: "not multiple types" - "other mismatch" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 432 - not.json: "not more complex schema" - "match" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 433 - not.json: "not more complex schema" - "other match" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 434 - not.json: "not more complex schema" - "mismatch" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 435 - not.json: "forbidden property" - "property present" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/not" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/not" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 436 - not.json: "forbidden property" - "property absent" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 437 - not.json: "forbid everything with empty schema" - "number is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 438 - not.json: "forbid everything with empty schema" - "string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 439 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 440 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 441 - not.json: "forbid everything with empty schema" - "null is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 442 - not.json: "forbid everything with empty schema" - "object is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 443 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 444 - not.json: "forbid everything with empty schema" - "array is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 445 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 446 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 447 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 448 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 449 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 450 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 451 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 452 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 453 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 454 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is true", 297s # "instanceLocation": "", 297s # "keywordLocation": "/not" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 455 - not.json: "allow everything with boolean schema false" - "number is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 456 - not.json: "allow everything with boolean schema false" - "string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 457 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 458 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 459 - not.json: "allow everything with boolean schema false" - "null is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 460 - not.json: "allow everything with boolean schema false" - "object is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 461 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 462 - not.json: "allow everything with boolean schema false" - "array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 463 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 464 - not.json: "double negation" - "any value is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 465 - oneOf.json: "oneOf" - "first oneOf valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 466 - oneOf.json: "oneOf" - "second oneOf valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 467 - oneOf.json: "oneOf" - "both oneOf valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 468 - oneOf.json: "oneOf" - "neither oneOf valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/type" 297s # }, 297s # { 297s # "error": "value is less than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/minimum" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/type" 297s # }, 297s # { 297s # "error": "value is less than 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/minimum" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 469 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # }, 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 470 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 471 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 472 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1, 2", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 473 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 474 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 475 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0" 297s # }, 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1" 297s # }, 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/2" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0" 297s # }, 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1" 297s # }, 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/2" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 476 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 477 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 478 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 479 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/oneOf/0/properties/bar/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/properties" 297s # }, 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/oneOf/1/properties/foo/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/properties" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/oneOf/0/properties/bar/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/properties" 297s # }, 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/oneOf/1/properties/foo/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/properties" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 480 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 481 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 482 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/required" 297s # }, 297s # { 297s # "error": "object is missing properties: foo, baz", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/required" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/required" 297s # }, 297s # { 297s # "error": "object is missing properties: foo, baz", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/required" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 483 - oneOf.json: "oneOf with required" - "first valid - valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 484 - oneOf.json: "oneOf with required" - "second valid - valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 485 - oneOf.json: "oneOf with required" - "both valid - invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 486 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 487 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 488 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "multiple subschemas are valid: 0, 1", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 489 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/required" 297s # }, 297s # { 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/required" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: bar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/required" 297s # }, 297s # { 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/required" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 490 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 491 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/oneOf/0/type" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/oneOf" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/oneOf/0/type" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/oneOf" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 492 - pattern.json: "pattern validation" - "a matching pattern is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 493 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 494 - pattern.json: "pattern validation" - "ignores booleans" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 495 - pattern.json: "pattern validation" - "ignores integers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 496 - pattern.json: "pattern validation" - "ignores floats" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 497 - pattern.json: "pattern validation" - "ignores objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 498 - pattern.json: "pattern validation" - "ignores arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 499 - pattern.json: "pattern validation" - "ignores null" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 500 - pattern.json: "pattern is not anchored" - "matches a substring" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 501 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 502 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 503 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/patternProperties/f.*o/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/patternProperties/f.*o/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 504 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/patternProperties/f.*o/type" 297s # }, 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/foooooo", 297s # "keywordLocation": "/patternProperties/f.*o/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/patternProperties/f.*o/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 505 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 506 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 507 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 508 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 509 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 510 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 511 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/a", 297s # "keywordLocation": "/patternProperties/a*/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/a", 297s # "keywordLocation": "/patternProperties/a*/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 512 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than 20", 297s # "instanceLocation": "/aaaa", 297s # "keywordLocation": "/patternProperties/aaa*/maximum" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than 20", 297s # "instanceLocation": "/aaaa", 297s # "keywordLocation": "/patternProperties/aaa*/maximum" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 513 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/aaa", 297s # "keywordLocation": "/patternProperties/a*/type" 297s # }, 297s # { 297s # "error": "value is greater than 20", 297s # "instanceLocation": "/aaaa", 297s # "keywordLocation": "/patternProperties/aaa*/maximum" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/aaa", 297s # "keywordLocation": "/patternProperties/a*/type" 297s # }, 297s # { 297s # "error": "value is greater than 20", 297s # "instanceLocation": "/aaaa", 297s # "keywordLocation": "/patternProperties/aaa*/maximum" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 514 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 515 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not boolean", 297s # "instanceLocation": "/a31b", 297s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not boolean", 297s # "instanceLocation": "/a31b", 297s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 516 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 517 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "/a_X_3", 297s # "keywordLocation": "/patternProperties/X_/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "/a_X_3", 297s # "keywordLocation": "/patternProperties/X_/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 518 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 519 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "property not permitted", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/patternProperties/b.*" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "property not permitted", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/patternProperties/b.*" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 520 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "property not permitted", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/patternProperties/b.*" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "property not permitted", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/patternProperties/b.*" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 521 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "property not permitted", 297s # "instanceLocation": "/foobar", 297s # "keywordLocation": "/patternProperties/b.*" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "property not permitted", 297s # "instanceLocation": "/foobar", 297s # "keywordLocation": "/patternProperties/b.*" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 522 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 523 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 524 - properties.json: "object properties validation" - "both properties present and valid is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 525 - properties.json: "object properties validation" - "one property invalid is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not string", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not string", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 526 - properties.json: "object properties validation" - "both properties invalid is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not string", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar/type" 297s # }, 297s # { 297s # "error": "got array, not integer", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not string", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 527 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 528 - properties.json: "object properties validation" - "ignores arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 529 - properties.json: "object properties validation" - "ignores other non-objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 530 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 531 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "array has more than 3 items", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/maxItems" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "array has more than 3 items", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/maxItems" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 532 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "array has fewer than 2 items", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/patternProperties/f.o/minItems" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "array has fewer than 2 items", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/patternProperties/f.o/minItems" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 533 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 534 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "array has fewer than 2 items", 297s # "instanceLocation": "/fxo", 297s # "keywordLocation": "/patternProperties/f.o/minItems" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "array has fewer than 2 items", 297s # "instanceLocation": "/fxo", 297s # "keywordLocation": "/patternProperties/f.o/minItems" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 535 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 536 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 537 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/quux", 297s # "keywordLocation": "/additionalProperties/type" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/quux", 297s # "keywordLocation": "/additionalProperties/type" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 538 - properties.json: "properties with boolean schema" - "no property present is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 539 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 540 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "property not permitted", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "property not permitted", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 541 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "property not permitted", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "property not permitted", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 542 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 543 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "/foo\tbar", 297s # "keywordLocation": "/properties/foo\tbar/type" 297s # }, 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "/foo\nbar", 297s # "keywordLocation": "/properties/foo\nbar/type" 297s # }, 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "/foo\fbar", 297s # "keywordLocation": "/properties/foo\fbar/type" 297s # }, 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "/foo\rbar", 297s # "keywordLocation": "/properties/foo\rbar/type" 297s # }, 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "/foo\"bar", 297s # "keywordLocation": "/properties/foo\"bar/type" 297s # }, 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "/foo\\bar", 297s # "keywordLocation": "/properties/foo\\bar/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "/foo\tbar", 297s # "keywordLocation": "/properties/foo\tbar/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 544 - properties.json: "properties with null valued instance properties" - "allows null values" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 545 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 546 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 547 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 548 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "/__proto__", 297s # "keywordLocation": "/properties/__proto__/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "/__proto__", 297s # "keywordLocation": "/properties/__proto__/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 549 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "/toString/length", 297s # "keywordLocation": "/properties/toString/properties/length/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/toString", 297s # "keywordLocation": "/properties/toString/properties" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "/toString/length", 297s # "keywordLocation": "/properties/toString/properties/length/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/toString", 297s # "keywordLocation": "/properties/toString/properties" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 550 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not number", 297s # "instanceLocation": "/constructor", 297s # "keywordLocation": "/properties/constructor/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not number", 297s # "instanceLocation": "/constructor", 297s # "keywordLocation": "/properties/constructor/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 551 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 552 - propertyNames.json: "propertyNames validation" - "all property names valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 553 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "length is greater than 3", 297s # "instanceLocation": "/foobar", 297s # "keywordLocation": "/propertyNames/maxLength" 297s # }, 297s # { 297s # "error": "not all property names are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/propertyNames" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "length is greater than 3", 297s # "instanceLocation": "/foobar", 297s # "keywordLocation": "/propertyNames/maxLength" 297s # }, 297s # { 297s # "error": "not all property names are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/propertyNames" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 554 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 555 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 556 - propertyNames.json: "propertyNames validation" - "ignores strings" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 557 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 558 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 559 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "/aaA", 297s # "keywordLocation": "/propertyNames/pattern" 297s # }, 297s # { 297s # "error": "not all property names are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/propertyNames" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "/aaA", 297s # "keywordLocation": "/propertyNames/pattern" 297s # }, 297s # { 297s # "error": "not all property names are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/propertyNames" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 560 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 561 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 562 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 563 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/propertyNames" 297s # }, 297s # { 297s # "error": "not all property names are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/propertyNames" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "subschema is false", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/propertyNames" 297s # }, 297s # { 297s # "error": "not all property names are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/propertyNames" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 564 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 565 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 566 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/propertyNames/const" 297s # }, 297s # { 297s # "error": "not all property names are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/propertyNames" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/propertyNames/const" 297s # }, 297s # { 297s # "error": "not all property names are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/propertyNames" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 567 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 568 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 569 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 570 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/baz", 297s # "keywordLocation": "/propertyNames/enum" 297s # }, 297s # { 297s # "error": "not all property names are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/propertyNames" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "/baz", 297s # "keywordLocation": "/propertyNames/enum" 297s # }, 297s # { 297s # "error": "not all property names are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/propertyNames" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 571 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 572 - ref.json: "root pointer ref" - "match" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 573 - ref.json: "root pointer ref" - "recursive match" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 574 - ref.json: "root pointer ref" - "mismatch" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 575 - ref.json: "root pointer ref" - "recursive mismatch" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/additionalProperties", 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/foo/bar", 297s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/additionalProperties", 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/additionalProperties", 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/foo/bar", 297s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/additionalProperties", 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 576 - ref.json: "relative pointer ref to object" - "match" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 577 - ref.json: "relative pointer ref to object" - "mismatch" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/properties/foo/type", 297s # "error": "got boolean, not integer", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/properties/foo/type", 297s # "error": "got boolean, not integer", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/properties/bar/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 578 - ref.json: "relative pointer ref to array" - "match array" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 579 - ref.json: "relative pointer ref to array" - "mismatch array" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/items/0/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/items/1/$ref/type" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/items/0/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/1", 297s # "keywordLocation": "/items/1/$ref/type" 297s # }, 297s # { 297s # "error": "not all items are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 580 - ref.json: "escaped pointer ref" - "slash invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/slash", 297s # "keywordLocation": "/properties/slash/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/slash", 297s # "keywordLocation": "/properties/slash/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 581 - ref.json: "escaped pointer ref" - "tilde invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/tilde", 297s # "keywordLocation": "/properties/tilde/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/tilde", 297s # "keywordLocation": "/properties/tilde/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 582 - ref.json: "escaped pointer ref" - "percent invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/percent", 297s # "keywordLocation": "/properties/percent/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/percent", 297s # "keywordLocation": "/properties/percent/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 583 - ref.json: "escaped pointer ref" - "slash valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 584 - ref.json: "escaped pointer ref" - "tilde valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 585 - ref.json: "escaped pointer ref" - "percent valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 586 - ref.json: "nested refs" - "nested ref valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 587 - ref.json: "nested refs" - "nested ref invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/a/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 297s # }, 297s # { 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/a/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 297s # }, 297s # { 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 588 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 589 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 590 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/reffed/type", 297s # "error": "got string, not array", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/reffed/type", 297s # "error": "got string, not array", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 591 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 592 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 593 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 594 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeInteger/minimum", 297s # "error": "value is less than 0", 297s # "instanceLocation": "/minLength", 297s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeIntegerDefault0/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "/minLength", 297s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeInteger/minimum", 297s # "error": "value is less than 0", 297s # "instanceLocation": "/minLength", 297s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeIntegerDefault0/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "/minLength", 297s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 595 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 596 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "/$ref", 297s # "keywordLocation": "/properties/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "/$ref", 297s # "keywordLocation": "/properties/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 597 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 598 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/is-string/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/$ref", 297s # "keywordLocation": "/properties/$ref/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/is-string/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/$ref", 297s # "keywordLocation": "/properties/$ref/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 599 - ref.json: "$ref to boolean schema true" - "any value is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 600 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/bool", 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref" 297s # }, 297s # { 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/bool", 297s # "error": "subschema is false", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref" 297s # }, 297s # { 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 601 - ref.json: "Recursive references between schemas" - "valid tree" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 602 - ref.json: "Recursive references between schemas" - "invalid tree" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 297s # "error": "got string, not number", 297s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 297s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/nodes/0/subtree/nodes/0", 297s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/nodes/0/subtree/nodes", 297s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/nodes/0/subtree", 297s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/nodes/0", 297s # "keywordLocation": "/properties/nodes/items/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/nodes", 297s # "keywordLocation": "/properties/nodes/items" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 297s # "error": "got string, not number", 297s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 297s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/nodes/0/subtree/nodes/0", 297s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/nodes/0/subtree/nodes", 297s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/nodes/0/subtree", 297s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/nodes/0", 297s # "keywordLocation": "/properties/nodes/items/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/nodes", 297s # "keywordLocation": "/properties/nodes/items" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 603 - ref.json: "refs with quote" - "object with numbers is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 604 - ref.json: "refs with quote" - "object with strings is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 297s # "error": "got string, not number", 297s # "instanceLocation": "/foo\"bar", 297s # "keywordLocation": "/properties/foo\"bar/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 297s # "error": "got string, not number", 297s # "instanceLocation": "/foo\"bar", 297s # "keywordLocation": "/properties/foo\"bar/$ref/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 605 - ref.json: "Location-independent identifier" - "match" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 606 - ref.json: "Location-independent identifier" - "mismatch" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/A/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/A/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 607 - ref.json: "Reference an anchor with a non-relative URI" - "match" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 608 - ref.json: "Reference an anchor with a non-relative URI" - "mismatch" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 609 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 610 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 611 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 612 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/enum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 613 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 614 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo/bar", 297s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo/bar", 297s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 615 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 616 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 617 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo/bar", 297s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo/bar", 297s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 618 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 619 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 620 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 621 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 297s # "error": "value is less than 30", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/minimum" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 297s # "error": "value is less than 30", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/minimum" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 622 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 623 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 624 - ref.json: "URN base URI with NSS" - "a string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 625 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 626 - ref.json: "URN base URI with r-component" - "a string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 627 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 628 - ref.json: "URN base URI with q-component" - "a string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 629 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 630 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 631 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 632 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 633 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/foo", 297s # "keywordLocation": "/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 634 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 635 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 636 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 637 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 638 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 639 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 640 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 641 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions//definitions//type", 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions//definitions//type", 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/type" 297s # }, 297s # { 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 642 - refRemote.json: "remote ref" - "remote ref valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 643 - refRemote.json: "remote ref" - "remote ref invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 644 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 645 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 646 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 647 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/$ref/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/$ref/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 648 - refRemote.json: "base URI change" - "base URI change ref valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 649 - refRemote.json: "base URI change" - "base URI change ref invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/0/0", 297s # "keywordLocation": "/items/items/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/items" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/0/0", 297s # "keywordLocation": "/items/items/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/0", 297s # "keywordLocation": "/items/items" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/items" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 650 - refRemote.json: "base URI change - change folder" - "number is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 651 - refRemote.json: "base URI change - change folder" - "string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/list/0", 297s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/list", 297s # "keywordLocation": "/properties/list/$ref/items" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/list/0", 297s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/list", 297s # "keywordLocation": "/properties/list/$ref/items" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 652 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 653 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/list/0", 297s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/list", 297s # "keywordLocation": "/properties/list/$ref/items" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "/list/0", 297s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 297s # "error": "subschema is not valid against all items", 297s # "instanceLocation": "/list", 297s # "keywordLocation": "/properties/list/$ref/items" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 654 - refRemote.json: "root ref in remote ref" - "string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 655 - refRemote.json: "root ref in remote ref" - "null is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 656 - refRemote.json: "root ref in remote ref" - "object is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf/0/type", 297s # "error": "got object, not null", 297s # "instanceLocation": "/name", 297s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/type", 297s # "error": "got object, not string", 297s # "instanceLocation": "/name", 297s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf", 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "/name", 297s # "keywordLocation": "/properties/name/$ref/anyOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf/0/type", 297s # "error": "got object, not null", 297s # "instanceLocation": "/name", 297s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/type", 297s # "error": "got object, not string", 297s # "instanceLocation": "/name", 297s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf", 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "/name", 297s # "keywordLocation": "/properties/name/$ref/anyOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 657 - refRemote.json: "remote ref with ref to definitions" - "invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties/bar/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/bar", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf/0/$ref/allOf" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 297s # "error": "subschema 0 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/allOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 658 - refRemote.json: "remote ref with ref to definitions" - "valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 659 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 660 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/locationIndependentIdentifier.json#/definitions/A/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/$ref/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/locationIndependentIdentifier.json#/definitions/A/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/$ref/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 661 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/name/foo", 297s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/name", 297s # "keywordLocation": "/properties/name/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "/name/foo", 297s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "/name", 297s # "keywordLocation": "/properties/name/$ref/properties" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/properties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 662 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 663 - refRemote.json: "$ref to $ref finds location-independent $id" - "number is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 664 - refRemote.json: "$ref to $ref finds location-independent $id" - "non-number is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/detached-ref.json#/definitions/detached/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/$ref/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "http://localhost:1234/draft6/detached-ref.json#/definitions/detached/type", 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/$ref/$ref/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 665 - required.json: "required validation" - "present required property is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 666 - required.json: "required validation" - "non-present required property is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing property: foo", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 667 - required.json: "required validation" - "ignores arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 668 - required.json: "required validation" - "ignores strings" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 669 - required.json: "required validation" - "ignores other non-objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 670 - required.json: "required default validation" - "not required by default" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 671 - required.json: "required with empty array" - "property not required" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 672 - required.json: "required with escaped characters" - "object with all properties present is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 673 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 674 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 675 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 676 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: __proto__, toString, constructor", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: __proto__, toString, constructor", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 677 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: toString, constructor", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: toString, constructor", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 678 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: __proto__, constructor", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: __proto__, constructor", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 679 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: __proto__, toString", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "object is missing properties: __proto__, toString", 297s # "instanceLocation": "", 297s # "keywordLocation": "/required" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 680 - required.json: "required properties whose names are Javascript object property names" - "all present" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 681 - type.json: "integer type matches integers" - "an integer is an integer" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 682 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 683 - type.json: "integer type matches integers" - "a float is not an integer" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 684 - type.json: "integer type matches integers" - "a string is not an integer" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 685 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 686 - type.json: "integer type matches integers" - "an object is not an integer" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 687 - type.json: "integer type matches integers" - "an array is not an integer" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 688 - type.json: "integer type matches integers" - "a boolean is not an integer" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 689 - type.json: "integer type matches integers" - "null is not an integer" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not integer", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 690 - type.json: "number type matches numbers" - "an integer is a number" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 691 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 692 - type.json: "number type matches numbers" - "a float is a number" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 693 - type.json: "number type matches numbers" - "a string is not a number" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 694 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 695 - type.json: "number type matches numbers" - "an object is not a number" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 696 - type.json: "number type matches numbers" - "an array is not a number" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 697 - type.json: "number type matches numbers" - "a boolean is not a number" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 698 - type.json: "number type matches numbers" - "null is not a number" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not number", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 699 - type.json: "string type matches strings" - "1 is not a string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 700 - type.json: "string type matches strings" - "a float is not a string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 701 - type.json: "string type matches strings" - "a string is a string" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 702 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 703 - type.json: "string type matches strings" - "an empty string is still a string" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 704 - type.json: "string type matches strings" - "an object is not a string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 705 - type.json: "string type matches strings" - "an array is not a string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 706 - type.json: "string type matches strings" - "a boolean is not a string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 707 - type.json: "string type matches strings" - "null is not a string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 708 - type.json: "object type matches objects" - "an integer is not an object" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 709 - type.json: "object type matches objects" - "a float is not an object" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 710 - type.json: "object type matches objects" - "a string is not an object" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 711 - type.json: "object type matches objects" - "an object is an object" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 712 - type.json: "object type matches objects" - "an array is not an object" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 713 - type.json: "object type matches objects" - "a boolean is not an object" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 714 - type.json: "object type matches objects" - "null is not an object" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 715 - type.json: "array type matches arrays" - "an integer is not an array" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 716 - type.json: "array type matches arrays" - "a float is not an array" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 717 - type.json: "array type matches arrays" - "a string is not an array" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 718 - type.json: "array type matches arrays" - "an object is not an array" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 719 - type.json: "array type matches arrays" - "an array is an array" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 720 - type.json: "array type matches arrays" - "a boolean is not an array" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 721 - type.json: "array type matches arrays" - "null is not an array" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not array", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 722 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 723 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 724 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 725 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 726 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 727 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 728 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 729 - type.json: "boolean type matches booleans" - "true is a boolean" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 730 - type.json: "boolean type matches booleans" - "false is a boolean" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 731 - type.json: "boolean type matches booleans" - "null is not a boolean" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not boolean", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 732 - type.json: "null type matches only the null object" - "an integer is not null" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 733 - type.json: "null type matches only the null object" - "a float is not null" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 734 - type.json: "null type matches only the null object" - "zero is not null" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 735 - type.json: "null type matches only the null object" - "a string is not null" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 736 - type.json: "null type matches only the null object" - "an empty string is not null" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 737 - type.json: "null type matches only the null object" - "an object is not null" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 738 - type.json: "null type matches only the null object" - "an array is not null" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 739 - type.json: "null type matches only the null object" - "true is not null" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 740 - type.json: "null type matches only the null object" - "false is not null" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 741 - type.json: "null type matches only the null object" - "null is null" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 742 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 743 - type.json: "multiple types can be specified in an array" - "a string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 744 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not one of integer, string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got number, not one of integer, string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 745 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not one of integer, string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got object, not one of integer, string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 746 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not one of integer, string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got array, not one of integer, string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 747 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not one of integer, string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got boolean, not one of integer, string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 748 - type.json: "multiple types can be specified in an array" - "null is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not one of integer, string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not one of integer, string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 749 - type.json: "type as array with one item" - "string is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 750 - type.json: "type as array with one item" - "number is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not one of string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not one of string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 751 - type.json: "type: array or object" - "array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 752 - type.json: "type: array or object" - "object is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 753 - type.json: "type: array or object" - "number is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not one of array, object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not one of array, object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 754 - type.json: "type: array or object" - "string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not one of array, object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not one of array, object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 755 - type.json: "type: array or object" - "null is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not one of array, object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got null, not one of array, object", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 756 - type.json: "type: array, object or null" - "array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 757 - type.json: "type: array, object or null" - "object is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 758 - type.json: "type: array, object or null" - "null is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 759 - type.json: "type: array, object or null" - "number is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not one of array, object, null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not one of array, object, null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 760 - type.json: "type: array, object or null" - "string is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not one of array, object, null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not one of array, object, null", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 761 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 762 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 763 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 2 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 2 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 764 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 765 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 766 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 767 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 768 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 2 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 2 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 769 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 770 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 771 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 772 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 773 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 774 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 775 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 776 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 2 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 2 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 777 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 778 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 779 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 780 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 781 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 782 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 783 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 784 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 4 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 4 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 785 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 786 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 787 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 788 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 789 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 790 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 791 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 792 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 793 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 794 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 795 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 2 and 3 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 2 and 3 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 796 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 2 and 3 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 2 and 3 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 797 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 798 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 799 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 800 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "items at indices 0 and 1 are not unique", 297s # "instanceLocation": "", 297s # "keywordLocation": "/uniqueItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 801 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional item not permitted", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/additionalItems" 297s # }, 297s # { 297s # "error": "subschema is not valid against all additional items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional item not permitted", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/additionalItems" 297s # }, 297s # { 297s # "error": "subschema is not valid against all additional items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 802 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 803 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 804 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 805 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 806 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 807 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 808 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 809 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 810 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 811 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 812 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 813 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 814 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 815 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 816 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 817 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 818 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 819 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 820 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 821 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 822 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 823 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 824 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 825 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 826 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 827 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 828 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 829 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional item not permitted", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/additionalItems" 297s # }, 297s # { 297s # "error": "subschema is not valid against all additional items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional item not permitted", 297s # "instanceLocation": "/2", 297s # "keywordLocation": "/additionalItems" 297s # }, 297s # { 297s # "error": "subschema is not valid against all additional items", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalItems" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 830 - optional/bignum.json: "integer" - "a bignum is an integer" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 831 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 832 - optional/bignum.json: "number" - "a bignum is a number" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 833 - optional/bignum.json: "number" - "a negative bignum is a number" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 834 - optional/bignum.json: "string" - "a bignum is not a string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/type" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 835 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 836 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMaximum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMaximum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 837 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 838 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMinimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 297s # "instanceLocation": "", 297s # "keywordLocation": "/exclusiveMinimum" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 839 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 840 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 841 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 842 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 843 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 844 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 845 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 846 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 847 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true # 297s 1..1 297s } 297s ok 848 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected false; got true 297s # schema: { 297s # "pattern": "^\\d$", 297s # "type": "string" 297s # } 297s # data: "߀" 297s # result: 1 297s 1..1 297s } 297s ok 849 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO (as \u escape) does not match" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected false; got true 297s # schema: { 297s # "pattern": "^\\d$", 297s # "type": "string" 297s # } 297s # data: "߀" 297s # result: 1 297s 1..1 297s } 297s ok 850 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false # 297s 1..1 297s } 297s ok 851 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected true; got false 297s # schema: { 297s # "pattern": "^\\D$", 297s # "type": "string" 297s # } 297s # data: "߀" 297s # result: 0 297s 1..1 297s } 297s ok 852 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO (as \u escape) matches" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected true; got false 297s # schema: { 297s # "pattern": "^\\D$", 297s # "type": "string" 297s # } 297s # data: "߀" 297s # result: 0 297s 1..1 297s } 297s ok 853 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true # 297s 1..1 297s } 297s ok 854 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "latin-1 e-acute does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected false; got true 297s # schema: { 297s # "pattern": "^\\w$", 297s # "type": "string" 297s # } 297s # data: "é" 297s # result: 1 297s 1..1 297s } 297s ok 855 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false # 297s 1..1 297s } 297s ok 856 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "latin-1 e-acute matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected true; got false 297s # schema: { 297s # "pattern": "^\\W$", 297s # "type": "string" 297s # } 297s # data: "é" 297s # result: 0 297s 1..1 297s } 297s ok 857 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 858 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 859 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 860 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 861 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 862 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected true; got false 297s # schema: { 297s # "pattern": "^\\s$", 297s # "type": "string" 297s # } 297s # data: "" 297s # result: 0 297s 1..1 297s } 297s ok 863 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 864 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 865 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 866 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 867 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 868 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 869 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 870 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 871 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 872 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 873 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected false; got true 297s # schema: { 297s # "pattern": "^\\S$", 297s # "type": "string" 297s # } 297s # data: "" 297s # result: 1 297s 1..1 297s } 297s ok 874 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 875 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 876 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 877 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 878 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 879 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 880 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 881 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 882 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 883 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 884 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected false; got true 297s # schema: { 297s # "pattern": "\\wcole" 297s # } 297s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 297s # result: 1 297s 1..1 297s } 297s ok 885 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected false; got true 297s # schema: { 297s # "pattern": "\\wcole" 297s # } 297s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 297s # result: 1 297s 1..1 297s } 297s ok 886 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 887 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 888 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 889 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 890 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 891 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 892 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected false; got true 297s # schema: { 297s # "pattern": "^\\d+$" 297s # } 297s # data: "৪২" 297s # result: 1 297s 1..1 297s } 297s ok 893 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 894 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 895 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 896 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 897 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 898 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 899 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/L'ÉCOLE", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/L'ÉCOLE", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 900 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 901 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected false; got true 297s # schema: { 297s # "additionalProperties": false, 297s # "patternProperties": { 297s # "\\wcole": true 297s # }, 297s # "type": "object" 297s # } 297s # data: { 297s # "l'école": "pas de vraie vie" 297s # } 297s # result: 1 297s 1..1 297s } 297s ok 902 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected false; got true 297s # schema: { 297s # "additionalProperties": false, 297s # "patternProperties": { 297s # "\\wcole": true 297s # }, 297s # "type": "object" 297s # } 297s # data: { 297s # "l'école": "pas de vraie vie" 297s # } 297s # result: 1 297s 1..1 297s } 297s ok 903 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/L'ÉCOLE", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/L'ÉCOLE", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 904 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/l'école", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/l'école", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 905 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/l'école", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/l'école", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 906 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 907 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 908 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/-%#", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/-%#", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 909 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s not ok 1 - evaluation result is incorrect # 297s # Failed test (with amnesty) 'evaluation result is incorrect' 297s # at t/zzz-acceptance-draft6.t line 51. 297s # expected false; got true 297s # schema: { 297s # "additionalProperties": false, 297s # "patternProperties": { 297s # "^\\d+$": true 297s # }, 297s # "type": "object" 297s # } 297s # data: { 297s # "৪২": "khajit has wares if you have coin" 297s # } 297s # result: 1 297s 1..1 297s } 297s ok 910 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 911 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/-%#", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "additional property not permitted", 297s # "instanceLocation": "/-%#", 297s # "keywordLocation": "/additionalProperties" 297s # }, 297s # { 297s # "error": "not all additional properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/additionalProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 912 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 913 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s # 297s ok 914 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 915 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 916 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/0/$ref/enum" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/1/$ref/type" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/0/$ref/enum" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/1/$ref/type" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 917 - optional/id.json: "non-schema object containing a plain-name $id property" - "skip traversing definition for a valid result" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 918 - optional/id.json: "non-schema object containing a plain-name $id property" - "const at const_not_anchor does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/const" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 297s # }, 297s # { 297s # "error": "subschema 1 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/allOf" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/const" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 297s # }, 297s # { 297s # "error": "subschema 1 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/allOf" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 919 - optional/id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 920 - optional/id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/const" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 297s # }, 297s # { 297s # "error": "subschema 1 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/allOf" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/0/const" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 297s # "error": "value does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 297s # }, 297s # { 297s # "error": "subschema 1 is not valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf/1/allOf" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/oneOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 921 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 922 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 923 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 924 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 925 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 926 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 927 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "pattern does not match", 297s # "instanceLocation": "", 297s # "keywordLocation": "/pattern" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 928 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 929 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 930 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 931 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/🐲", 297s # "keywordLocation": "/patternProperties/^🐲*$/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/🐲", 297s # "keywordLocation": "/patternProperties/^🐲*$/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 932 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 297s # result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/🐲🐲", 297s # "keywordLocation": "/patternProperties/^🐲*$/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "error": "got string, not integer", 297s # "instanceLocation": "/🐲🐲", 297s # "keywordLocation": "/patternProperties/^🐲*$/type" 297s # }, 297s # { 297s # "error": "not all properties are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/patternProperties" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s ok 933 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 297s # result: { 297s # "valid": true 297s # } 297s # short-circuited result: { 297s # "valid": true 297s # } 297s ok 1 - test passes: data is valid: true 297s 1..1 297s } 297s ok 934 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/0/$ref/not" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/1/$ref/not" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 297s # "error": "got null, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/2/$ref/type" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/0/$ref/not" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/1/$ref/not" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 297s # "error": "got null, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/2/$ref/type" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s ok 935 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 297s # result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/0/$ref/not" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/1/$ref/not" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/2/$ref/type" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s # short-circuited result: { 297s # "errors": [ 297s # { 297s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/0/$ref/not" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 297s # "error": "subschema is valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/1/$ref/not" 297s # }, 297s # { 297s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 297s # "error": "got integer, not string", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf/2/$ref/type" 297s # }, 297s # { 297s # "error": "no subschemas are valid", 297s # "instanceLocation": "", 297s # "keywordLocation": "/anyOf" 297s # } 297s # ], 297s # "valid": false 297s # } 297s ok 1 - test passes: data is valid: false 297s 1..1 297s } 297s # 297s # generated with: Test::JSON::Schema::Acceptance 1.029 297s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 297s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 297s # specification version: draft6 297s # optional tests included: yes 297s # skipping directory: optional/format 297s # 297s # filename pass todo-fail fail 297s # --------------------------------------------------------------- 297s # additionalItems.json 20 0 0 297s # additionalProperties.json 16 0 0 297s # allOf.json 30 0 0 297s # anyOf.json 18 0 0 297s # boolean_schema.json 18 0 0 297s # const.json 50 0 0 297s # contains.json 19 0 0 297s # default.json 7 0 0 297s # definitions.json 2 0 0 297s # dependencies.json 36 0 0 297s # enum.json 45 0 0 297s # exclusiveMaximum.json 4 0 0 297s # exclusiveMinimum.json 4 0 0 297s # format.json 54 0 0 297s # infinite-loop-detection.json 2 0 0 297s # items.json 28 0 0 297s # maxItems.json 6 0 0 297s # maxLength.json 7 0 0 297s # maxProperties.json 10 0 0 297s # maximum.json 8 0 0 297s # minItems.json 6 0 0 297s # minLength.json 7 0 0 297s # minProperties.json 8 0 0 297s # minimum.json 11 0 0 297s # multipleOf.json 10 0 0 297s # not.json 38 0 0 297s # oneOf.json 27 0 0 297s # pattern.json 9 0 0 297s # patternProperties.json 23 0 0 297s # properties.json 28 0 0 297s # propertyNames.json 20 0 0 297s # ref.json 70 0 0 297s # refRemote.json 23 0 0 297s # required.json 16 0 0 297s # type.json 80 0 0 297s # uniqueItems.json 69 0 0 297s # optional/bignum.json 9 0 0 297s # optional/ecmascript-regex.json 60 14 0 297s # optional/float-overflow.json 1 0 0 297s # optional/id.json 7 0 0 297s # optional/non-bmp-regex.json 12 0 0 297s # optional/unknownKeyword.json 3 0 0 297s # --------------------------------------------------------------- 297s # TOTAL 921 14 0 297s # 297s # Congratulations, all non-optional tests are passing! 297s # 297s ok 936 - no leaks in the main evaluator object 297s ok 937 - no leaks in the short-circuiting evaluator object 297s 1..937 297s ok 299s t/zzz-acceptance-draft7-format.t ........ 299s # 299s # AUTHOR_TESTING: 299s # AUTOMATED_TESTING: 1 299s # EXTENDED_TESTING: 299s # NO_TODO: 299s # TEST_DIR: 299s # NO_SHORT_CIRCUIT: 299s # 299s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft7/optional/format against draft7... 299s # 299s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date-time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 32 - date.json: "validation of date strings" - "a valid date string" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 64 - date.json: "validation of date strings" - "invalid month" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid date string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 73 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 74 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 75 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 76 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 77 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 78 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 79 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 80 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 81 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 82 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 83 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 84 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 85 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 86 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 87 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 88 - hostname.json: "validation of host names" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 89 - hostname.json: "validation of host names" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 90 - hostname.json: "validation of host names" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 91 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 92 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 93 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 94 - hostname.json: "validation of host names" - "a valid host name" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 95 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 96 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 97 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 98 - hostname.json: "validation of host names" - "a host name with a component too long" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 99 - hostname.json: "validation of host names" - "starts with hyphen" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 100 - hostname.json: "validation of host names" - "ends with hyphen" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 101 - hostname.json: "validation of host names" - "starts with underscore" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 102 - hostname.json: "validation of host names" - "ends with underscore" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 103 - hostname.json: "validation of host names" - "contains underscore" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 104 - hostname.json: "validation of host names" - "maximum label length" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 105 - hostname.json: "validation of host names" - "exceeds maximum label length" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 106 - hostname.json: "validation of host names" - "single label" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 107 - hostname.json: "validation of host names" - "single label with hyphen" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 108 - hostname.json: "validation of host names" - "single label with digits" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 109 - hostname.json: "validation of host names" - "single label ending with digit" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 110 - hostname.json: "validation of host names" - "empty string" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 111 - hostname.json: "validation of host names" - "single dot" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 112 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 113 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 114 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 115 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 116 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 117 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 118 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 119 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 120 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 121 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-email string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 122 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 123 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 124 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 125 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 126 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 127 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 128 - idn-hostname.json: "validation of internationalized host names" - "a valid host name (example.test in Hangul)" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 129 - idn-hostname.json: "validation of internationalized host names" - "illegal first char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 130 - idn-hostname.json: "validation of internationalized host names" - "contains illegal char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "실〮례.테스트" 299s # result: 1 299s 1..1 299s } 299s ok 131 - idn-hostname.json: "validation of internationalized host names" - "a host name with a component too long" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 132 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 133 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 134 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "xn--X" 299s # result: 1 299s 1..1 299s } 299s ok 135 - idn-hostname.json: "validation of internationalized host names" - "U-label contains "--" in the 3rd and 4th position" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "XN--aa---o47jg78q" 299s # result: 1 299s 1..1 299s } 299s ok 136 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 137 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 138 - idn-hostname.json: "validation of internationalized host names" - "U-label starts and ends with a dash" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 139 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 140 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 141 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 142 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 143 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 144 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "ـߺ" 299s # result: 1 299s 1..1 299s } 299s ok 145 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "〱〲〳〴〵〮〯〻" 299s # result: 1 299s 1..1 299s } 299s ok 146 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "a·l" 299s # result: 1 299s 1..1 299s } 299s ok 147 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "·l" 299s # result: 1 299s 1..1 299s } 299s ok 148 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "l·a" 299s # result: 1 299s 1..1 299s } 299s ok 149 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "l·" 299s # result: 1 299s 1..1 299s } 299s ok 150 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 151 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "α͵S" 299s # result: 1 299s 1..1 299s } 299s ok 152 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "α͵" 299s # result: 1 299s 1..1 299s } 299s ok 153 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 154 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 155 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "׳ב" 299s # result: 1 299s 1..1 299s } 299s ok 156 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 157 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 158 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "״ב" 299s # result: 1 299s 1..1 299s } 299s ok 159 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 160 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "def・abc" 299s # result: 1 299s 1..1 299s } 299s ok 161 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "idn-hostname" 299s # } 299s # data: "・" 299s # result: 1 299s 1..1 299s } 299s ok 162 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 163 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 164 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 165 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 166 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits not mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 167 - idn-hostname.json: "validation of internationalized host names" - "Extended Arabic-Indic digits not mixed with Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 168 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 169 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 170 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 171 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 172 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER not preceded by Virama but matches regexp" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 173 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 174 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 175 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 176 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 177 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false # 299s 1..1 299s } 299s ok 178 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 179 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 180 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 181 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid idn-hostname string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 182 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 183 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 184 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 185 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s # 299s ok 186 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 187 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 188 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 189 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 190 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 191 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 192 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 193 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 194 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 195 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 196 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 197 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 198 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 199 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 200 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 201 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv4 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 202 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 203 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 204 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 205 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 206 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 207 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 208 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 209 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 210 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 211 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 212 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 213 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 214 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 215 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 216 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 217 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 218 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 219 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 220 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 221 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 222 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 223 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 224 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 225 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 226 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 227 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 228 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 229 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 230 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 231 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 232 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 233 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 234 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 235 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 236 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 237 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 238 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 239 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 240 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 241 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid ipv6 string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 242 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 243 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 244 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 245 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 246 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 247 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 248 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 249 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 250 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 251 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "iri-reference" 299s # } 299s # data: "\\\\WINDOWS\\filëßåré" 299s # result: 1 299s 1..1 299s } 299s ok 252 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 253 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 254 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "iri-reference" 299s # } 299s # data: "#ƒräg\\mênt" 299s # result: 1 299s 1..1 299s } 299s # 299s ok 255 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 256 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 257 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 258 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 259 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 260 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 261 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 262 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 263 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 264 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 265 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 266 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "iri" 299s # } 299s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 299s # result: 1 299s 1..1 299s } 299s ok 267 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid iri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid iri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 268 - iri.json: "validation of IRIs" - "an invalid IRI" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid iri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid iri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 269 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid iri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid iri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 270 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 271 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 272 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 273 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 274 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 275 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 276 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 277 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 278 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 279 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 280 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 281 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 282 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 283 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 284 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 285 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 286 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 287 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 288 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 289 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 290 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 291 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 292 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 293 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 294 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 295 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 296 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 297 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 298 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 299 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 300 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 301 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 302 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 303 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 304 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 305 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 308 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 309 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 310 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 311 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 312 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 313 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 314 - regex.json: "validation of regular expressions" - "a valid regular expression" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 315 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid regex string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid regex string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 316 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 317 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 318 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 319 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 320 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 321 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 322 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 323 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 324 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 325 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 326 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 327 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 328 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 329 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 330 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 331 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 332 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid relative-json-pointer string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 333 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s # 299s ok 334 - time.json: "validation of time strings" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 335 - time.json: "validation of time strings" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 336 - time.json: "validation of time strings" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 337 - time.json: "validation of time strings" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 338 - time.json: "validation of time strings" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 339 - time.json: "validation of time strings" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 340 - time.json: "validation of time strings" - "a valid time string" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 341 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 342 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 343 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 344 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 345 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 346 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 347 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 348 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 349 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 350 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 351 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 352 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 353 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 354 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 355 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 356 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 357 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 358 - time.json: "validation of time strings" - "a valid time string with second fraction" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 359 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 360 - time.json: "validation of time strings" - "a valid time string with plus offset" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 361 - time.json: "validation of time strings" - "a valid time string with minus offset" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 362 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 363 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 364 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 365 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 366 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 367 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 368 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 369 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 370 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 371 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 372 - time.json: "validation of time strings" - "an invalid offset indicator" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 373 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 374 - time.json: "validation of time strings" - "no time offset" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 375 - time.json: "validation of time strings" - "no time offset with second fraction" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 376 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 377 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 378 - time.json: "validation of time strings" - "contains letters" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid time string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 379 - unknown.json: "unknown format" - "unknown formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 380 - unknown.json: "unknown format" - "unknown formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 381 - unknown.json: "unknown format" - "unknown formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 382 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 383 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 384 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 385 - unknown.json: "unknown format" - "unknown formats ignore strings" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s # 299s ok 386 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 387 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 388 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 389 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 390 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 391 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 392 - uri-reference.json: "validation of URI References" - "a valid URI" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 393 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 394 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 395 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri-reference string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri-reference string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 396 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 397 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 398 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri-reference string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri-reference string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s # 299s ok 399 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 400 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 401 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 402 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 403 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 404 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 405 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 406 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "uri-template" 299s # } 299s # data: "http://example.com/dictionary/{term:1}/{term" 299s # result: 1 299s 1..1 299s } 299s ok 407 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s ok 408 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true # 299s 1..1 299s } 299s # 299s ok 409 - uri.json: "validation of URIs" - "all string formats ignore integers" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 410 - uri.json: "validation of URIs" - "all string formats ignore floats" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 411 - uri.json: "validation of URIs" - "all string formats ignore objects" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 412 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 413 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 414 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 415 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 416 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 417 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 418 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 419 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 420 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 421 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 422 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 423 - uri.json: "validation of URIs" - "a valid URL " { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 424 - uri.json: "validation of URIs" - "a valid mailto URI" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 425 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 426 - uri.json: "validation of URIs" - "a valid tel URI" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 427 - uri.json: "validation of URIs" - "a valid URN" { 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s ok 1 - test passes: data is valid: true 299s 1..1 299s } 299s ok 428 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 429 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 430 - uri.json: "validation of URIs" - "an invalid URI" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 431 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 432 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 433 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 299s # result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s # short-circuited result: { 299s # "errors": [ 299s # { 299s # "error": "not a valid uri string", 299s # "instanceLocation": "", 299s # "keywordLocation": "/format" 299s # } 299s # ], 299s # "valid": false 299s # } 299s ok 1 - test passes: data is valid: false 299s 1..1 299s } 299s ok 434 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 299s # result: { 299s # "valid": true 299s # } 299s # short-circuited result: { 299s # "valid": true 299s # } 299s not ok 1 - evaluation result is incorrect # 299s # Failed test (with amnesty) 'evaluation result is incorrect' 299s # at t/zzz-acceptance-draft7-format.t line 70. 299s # expected false; got true 299s # schema: { 299s # "format": "uri" 299s # } 299s # data: "bar,baz:foo" 299s # result: 1 299s 1..1 299s } 299s # 299s # generated with: Test::JSON::Schema::Acceptance 1.029 299s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 299s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 299s # specification version: draft7 299s # using custom test directory: /optional/format 299s # optional tests included: yes 299s # 299s # filename pass todo-fail fail 299s # --------------------------------------------------------------- 299s # date-time.json 25 0 0 299s # date.json 47 0 0 299s # email.json 15 0 0 299s # hostname.json 24 0 0 299s # idn-email.json 10 0 0 299s # idn-hostname.json 49 15 0 299s # ipv4.json 16 0 0 299s # ipv6.json 40 0 0 299s # iri-reference.json 11 2 0 299s # iri.json 14 1 0 299s # json-pointer.json 38 0 0 299s # regex.json 8 0 0 299s # relative-json-pointer.json 18 0 0 299s # time.json 45 0 0 299s # unknown.json 7 0 0 299s # uri-reference.json 13 0 0 299s # uri-template.json 9 1 0 299s # uri.json 25 1 0 299s # --------------------------------------------------------------- 299s # TOTAL 414 20 0 299s # 299s # Congratulations, all non-optional tests are passing! 299s # 299s ok 435 - no leaks in the main evaluator object 299s ok 436 - no leaks in the short-circuiting evaluator object 299s 1..436 299s ok 307s t/zzz-acceptance-draft7.t ............... 307s # 307s # AUTHOR_TESTING: 307s # AUTOMATED_TESTING: 1 307s # EXTENDED_TESTING: 307s # NO_TODO: 307s # TEST_DIR: 307s # NO_SHORT_CIRCUIT: 307s # 307s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 307s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft7 against draft7... 307s # 307s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/3", 307s # "keywordLocation": "/additionalItems/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/3", 307s # "keywordLocation": "/additionalItems/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items/type" 307s # }, 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/3", 307s # "keywordLocation": "/additionalItems" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/3", 307s # "keywordLocation": "/additionalItems" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not boolean", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/additionalItems/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not boolean", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/additionalItems/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/additionalItems/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/additionalItems/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/additionalItems" 307s # }, 307s # { 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/additionalItems" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/additionalItems" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/quux", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/quux", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/élmény", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/élmény", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not boolean", 307s # "instanceLocation": "/quux", 307s # "keywordLocation": "/additionalProperties/type" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not boolean", 307s # "instanceLocation": "/quux", 307s # "keywordLocation": "/additionalProperties/type" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not boolean", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/additionalProperties/type" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not boolean", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/additionalProperties/type" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not boolean", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/additionalProperties/type" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not boolean", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/additionalProperties/type" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 37 - allOf.json: "allOf" - "allOf" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 38 - allOf.json: "allOf" - "mismatch second" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/required" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/required" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 39 - allOf.json: "allOf" - "mismatch first" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/required" 307s # }, 307s # { 307s # "error": "subschema 1 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/required" 307s # }, 307s # { 307s # "error": "subschema 1 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 40 - allOf.json: "allOf" - "wrong type" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/allOf/0/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/properties" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/allOf/0/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/properties" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 41 - allOf.json: "allOf with base schema" - "valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 42 - allOf.json: "allOf with base schema" - "mismatch base schema" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 43 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/required" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/required" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 44 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: baz", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/required" 307s # }, 307s # { 307s # "error": "subschema 1 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: baz", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/required" 307s # }, 307s # { 307s # "error": "subschema 1 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 45 - allOf.json: "allOf with base schema" - "mismatch both" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/required" 307s # }, 307s # { 307s # "error": "object is missing property: baz", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/required" 307s # }, 307s # { 307s # "error": "subschemas 0, 1 are not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/required" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 46 - allOf.json: "allOf simple types" - "valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 47 - allOf.json: "allOf simple types" - "mismatch one" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than 30", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/maximum" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than 30", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/maximum" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 48 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 49 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1" 307s # }, 307s # { 307s # "error": "subschema 1 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1" 307s # }, 307s # { 307s # "error": "subschema 1 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 50 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0" 307s # }, 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1" 307s # }, 307s # { 307s # "error": "subschemas 0, 1 are not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 51 - allOf.json: "allOf with one empty schema" - "any data is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 52 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 53 - allOf.json: "allOf with the first empty schema" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 54 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/type" 307s # }, 307s # { 307s # "error": "subschema 1 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/type" 307s # }, 307s # { 307s # "error": "subschema 1 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 55 - allOf.json: "allOf with the last empty schema" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 56 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 57 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 58 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/allOf/0/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/allOf" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/allOf/0/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/allOf" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 5", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 5", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 62 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 63 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 5", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 5", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 5", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/multipleOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 67 - anyOf.json: "anyOf" - "first anyOf valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 68 - anyOf.json: "anyOf" - "second anyOf valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 69 - anyOf.json: "anyOf" - "both anyOf valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 70 - anyOf.json: "anyOf" - "neither anyOf valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/type" 307s # }, 307s # { 307s # "error": "value is less than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/minimum" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/type" 307s # }, 307s # { 307s # "error": "value is less than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/minimum" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 71 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 72 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 73 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "length is greater than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/maxLength" 307s # }, 307s # { 307s # "error": "length is less than 4", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/minLength" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "length is greater than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/maxLength" 307s # }, 307s # { 307s # "error": "length is less than 4", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/minLength" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 74 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 75 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 76 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0" 307s # }, 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0" 307s # }, 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 77 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 78 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 79 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 80 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/anyOf/0/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/properties" 307s # }, 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/anyOf/1/properties/foo/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/properties" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/anyOf/0/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/properties" 307s # }, 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/anyOf/1/properties/foo/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/properties" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 81 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 82 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 83 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 84 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/anyOf/0/type" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/anyOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/anyOf/0/type" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/anyOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 85 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 86 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 87 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 88 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 89 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 90 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 91 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 92 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 93 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 94 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 95 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 96 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 97 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 98 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 99 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 100 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 101 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 102 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 103 - const.json: "const validation" - "same value is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 104 - const.json: "const validation" - "another value is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 105 - const.json: "const validation" - "another type is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 106 - const.json: "const with object" - "same object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 107 - const.json: "const with object" - "same object with different property order is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 108 - const.json: "const with object" - "another object is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 109 - const.json: "const with object" - "another type is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 110 - const.json: "const with array" - "same array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 111 - const.json: "const with array" - "another array item is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/0': wrong type: integer vs object)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/0': wrong type: integer vs object)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 112 - const.json: "const with array" - "array with additional items is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 113 - const.json: "const with null" - "null is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 114 - const.json: "const with null" - "not null is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 115 - const.json: "const with false does not match 0" - "false is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 116 - const.json: "const with false does not match 0" - "integer zero is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 117 - const.json: "const with false does not match 0" - "float zero is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 118 - const.json: "const with true does not match 1" - "true is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 119 - const.json: "const with true does not match 1" - "integer one is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 120 - const.json: "const with true does not match 1" - "float one is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 121 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 122 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 123 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 124 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 125 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 126 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 127 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 128 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 129 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 130 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 131 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 132 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 133 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 134 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 135 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 136 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 137 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 138 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 139 - const.json: "const with 1 does not match true" - "true is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 140 - const.json: "const with 1 does not match true" - "integer one is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 141 - const.json: "const with 1 does not match true" - "float one is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 142 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 143 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 144 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 145 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 146 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 147 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 148 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 149 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 150 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 151 - const.json: "nul characters in strings" - "match string with nul" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 152 - const.json: "nul characters in strings" - "do not match string lacking nul" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/const" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 153 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 154 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 155 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 156 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than 5", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/contains/minimum" 307s # }, 307s # { 307s # "error": "value is less than 5", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/contains/minimum" 307s # }, 307s # { 307s # "error": "value is less than 5", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/contains/minimum" 307s # }, 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than 5", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/contains/minimum" 307s # }, 307s # { 307s # "error": "value is less than 5", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/contains/minimum" 307s # }, 307s # { 307s # "error": "value is less than 5", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/contains/minimum" 307s # }, 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 157 - contains.json: "contains keyword validation" - "empty array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 158 - contains.json: "contains keyword validation" - "not array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 159 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 160 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 161 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/contains/const" 307s # }, 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/contains/const" 307s # }, 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/contains/const" 307s # }, 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/3", 307s # "keywordLocation": "/contains/const" 307s # }, 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/contains/const" 307s # }, 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/contains/const" 307s # }, 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/contains/const" 307s # }, 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/3", 307s # "keywordLocation": "/contains/const" 307s # }, 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 162 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 163 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 164 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/contains" 307s # }, 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/contains" 307s # }, 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 165 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 166 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 167 - contains.json: "items + contains" - "matches items, does not match contains" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/contains/multipleOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/contains/multipleOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/contains/multipleOf" 307s # }, 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/contains/multipleOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/contains/multipleOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/contains/multipleOf" 307s # }, 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 168 - contains.json: "items + contains" - "does not match items, matches contains" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/multipleOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/items/multipleOf" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/multipleOf" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 169 - contains.json: "items + contains" - "matches both items and contains" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 170 - contains.json: "items + contains" - "matches neither items nor contains" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/multipleOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items/multipleOf" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # }, 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/contains/multipleOf" 307s # }, 307s # { 307s # "error": "value is not a multiple of 3", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/contains/multipleOf" 307s # }, 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/multipleOf" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 171 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 172 - contains.json: "contains with false if subschema" - "empty array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is not valid against any item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contains" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 173 - contains.json: "contains with null instance elements" - "allows null items" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 174 - default.json: "invalid type for default" - "valid when property is specified" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 175 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 176 - default.json: "invalid string value for default" - "valid when property is specified" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 177 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 178 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (passing)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 179 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (failing)" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than 3", 307s # "instanceLocation": "/alpha", 307s # "keywordLocation": "/properties/alpha/maximum" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than 3", 307s # "instanceLocation": "/alpha", 307s # "keywordLocation": "/properties/alpha/maximum" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 180 - default.json: "the default keyword does not do anything if the property is missing" - "missing properties are not filled in with the default" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 181 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 182 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/simpleTypes/enum", 307s # "error": "value does not match", 307s # "instanceLocation": "/definitions/foo/type", 307s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf/1/type", 307s # "error": "got integer, not array", 307s # "instanceLocation": "/definitions/foo/type", 307s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf", 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "/definitions/foo/type", 307s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/definitions/foo", 307s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/definitions/additionalProperties", 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "/definitions", 307s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/simpleTypes/enum", 307s # "error": "value does not match", 307s # "instanceLocation": "/definitions/foo/type", 307s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf/1/type", 307s # "error": "got integer, not array", 307s # "instanceLocation": "/definitions/foo/type", 307s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf", 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "/definitions/foo/type", 307s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/definitions/foo", 307s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/definitions/additionalProperties", 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "/definitions", 307s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 183 - dependencies.json: "dependencies" - "neither" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 184 - dependencies.json: "dependencies" - "nondependant" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 185 - dependencies.json: "dependencies" - "with dependency" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 186 - dependencies.json: "dependencies" - "missing dependency" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 187 - dependencies.json: "dependencies" - "ignores arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 188 - dependencies.json: "dependencies" - "ignores strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 189 - dependencies.json: "dependencies" - "ignores other non-objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 190 - dependencies.json: "dependencies with empty array" - "empty object" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 191 - dependencies.json: "dependencies with empty array" - "object with one property" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 192 - dependencies.json: "dependencies with empty array" - "non-object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 193 - dependencies.json: "multiple dependencies" - "neither" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 194 - dependencies.json: "multiple dependencies" - "nondependants" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 195 - dependencies.json: "multiple dependencies" - "with dependencies" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 196 - dependencies.json: "multiple dependencies" - "missing dependency" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/quux" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/quux" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 197 - dependencies.json: "multiple dependencies" - "missing other dependency" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/quux" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/quux" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 198 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: foo, bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/quux" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: foo, bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/quux" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 199 - dependencies.json: "multiple dependencies subschema" - "valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 200 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 201 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/dependencies/bar/properties/foo/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar/properties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/dependencies/bar/properties/foo/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar/properties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 202 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/dependencies/bar/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar/properties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/dependencies/bar/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar/properties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 203 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/dependencies/bar/properties/bar/type" 307s # }, 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/dependencies/bar/properties/foo/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar/properties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/dependencies/bar/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar/properties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 204 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema true is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 205 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema false is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 206 - dependencies.json: "dependencies with boolean subschemas" - "object with both properties is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/bar" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 207 - dependencies.json: "dependencies with boolean subschemas" - "empty object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 208 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 209 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 210 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 211 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo\rbar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo\nbar" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo\rbar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo\nbar" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 212 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object has fewer than 4 properties", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object has fewer than 4 properties", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 213 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo\"bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo'bar/required" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo\"bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo'bar/required" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 214 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo'bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo\"bar" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo'bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo\"bar" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 215 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/dependencies/foo/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo/additionalProperties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/dependencies/foo/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo/additionalProperties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 216 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 217 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/dependencies/foo/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo/additionalProperties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/dependencies/foo/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies/foo/additionalProperties" 307s # }, 307s # { 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/dependencies" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 218 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 219 - enum.json: "simple enum validation" - "one of the enum is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 220 - enum.json: "simple enum validation" - "something else is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 221 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 222 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 223 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 224 - enum.json: "heterogeneous enum validation" - "valid object matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 225 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 226 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 227 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 228 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 229 - enum.json: "enums in properties" - "both properties are valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 230 - enum.json: "enums in properties" - "wrong foo value" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/enum" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/enum" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 231 - enum.json: "enums in properties" - "wrong bar value" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar/enum" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar/enum" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 232 - enum.json: "enums in properties" - "missing optional property is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 233 - enum.json: "enums in properties" - "missing required property is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 234 - enum.json: "enums in properties" - "missing all properties is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 235 - enum.json: "enum with escaped characters" - "member 1 is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 236 - enum.json: "enum with escaped characters" - "member 2 is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 237 - enum.json: "enum with escaped characters" - "another string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 238 - enum.json: "enum with false does not match 0" - "false is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 239 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 240 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 241 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 242 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 243 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 244 - enum.json: "enum with true does not match 1" - "true is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 245 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 246 - enum.json: "enum with true does not match 1" - "float one is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 247 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 248 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 249 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 250 - enum.json: "enum with 0 does not match false" - "false is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 251 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 252 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 253 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 254 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 255 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 256 - enum.json: "enum with 1 does not match true" - "true is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 257 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 258 - enum.json: "enum with 1 does not match true" - "float one is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 259 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 260 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 261 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 262 - enum.json: "nul characters in strings" - "match string with nul" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 263 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 264 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 265 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than or equal to 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMaximum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than or equal to 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMaximum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 266 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than or equal to 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMaximum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than or equal to 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMaximum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 267 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 268 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 269 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than or equal to 1.1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMinimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than or equal to 1.1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMinimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 270 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than or equal to 1.1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMinimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than or equal to 1.1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMinimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 271 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 272 - format.json: "email format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 273 - format.json: "email format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 274 - format.json: "email format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 275 - format.json: "email format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 276 - format.json: "email format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 277 - format.json: "email format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 278 - format.json: "idn-email format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 279 - format.json: "idn-email format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 280 - format.json: "idn-email format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 281 - format.json: "idn-email format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 282 - format.json: "idn-email format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 283 - format.json: "idn-email format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 284 - format.json: "regex format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 285 - format.json: "regex format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 286 - format.json: "regex format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 287 - format.json: "regex format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 288 - format.json: "regex format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 289 - format.json: "regex format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 290 - format.json: "ipv4 format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 291 - format.json: "ipv4 format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 292 - format.json: "ipv4 format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 293 - format.json: "ipv4 format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 294 - format.json: "ipv4 format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 295 - format.json: "ipv4 format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 296 - format.json: "ipv6 format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 297 - format.json: "ipv6 format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 298 - format.json: "ipv6 format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 299 - format.json: "ipv6 format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 300 - format.json: "ipv6 format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 301 - format.json: "ipv6 format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 302 - format.json: "idn-hostname format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 303 - format.json: "idn-hostname format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 304 - format.json: "idn-hostname format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 305 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 306 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 307 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 308 - format.json: "hostname format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 309 - format.json: "hostname format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 310 - format.json: "hostname format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 311 - format.json: "hostname format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 312 - format.json: "hostname format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 313 - format.json: "hostname format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 314 - format.json: "date format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 315 - format.json: "date format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 316 - format.json: "date format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 317 - format.json: "date format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 318 - format.json: "date format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 319 - format.json: "date format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 320 - format.json: "date-time format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 321 - format.json: "date-time format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 322 - format.json: "date-time format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 323 - format.json: "date-time format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 324 - format.json: "date-time format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 325 - format.json: "date-time format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 326 - format.json: "time format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 327 - format.json: "time format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 328 - format.json: "time format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 329 - format.json: "time format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 330 - format.json: "time format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 331 - format.json: "time format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 332 - format.json: "json-pointer format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 333 - format.json: "json-pointer format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 334 - format.json: "json-pointer format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 335 - format.json: "json-pointer format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 336 - format.json: "json-pointer format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 337 - format.json: "json-pointer format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 338 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 339 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 340 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 341 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 342 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 343 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 344 - format.json: "iri format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 345 - format.json: "iri format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 346 - format.json: "iri format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 347 - format.json: "iri format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 348 - format.json: "iri format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 349 - format.json: "iri format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 350 - format.json: "iri-reference format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 351 - format.json: "iri-reference format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 352 - format.json: "iri-reference format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 353 - format.json: "iri-reference format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 354 - format.json: "iri-reference format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 355 - format.json: "iri-reference format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 356 - format.json: "uri format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 357 - format.json: "uri format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 358 - format.json: "uri format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 359 - format.json: "uri format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 360 - format.json: "uri format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 361 - format.json: "uri format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 362 - format.json: "uri-reference format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 363 - format.json: "uri-reference format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 364 - format.json: "uri-reference format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 365 - format.json: "uri-reference format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 366 - format.json: "uri-reference format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 367 - format.json: "uri-reference format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 368 - format.json: "uri-template format" - "all string formats ignore integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 369 - format.json: "uri-template format" - "all string formats ignore floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 370 - format.json: "uri-template format" - "all string formats ignore objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 371 - format.json: "uri-template format" - "all string formats ignore arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 372 - format.json: "uri-template format" - "all string formats ignore booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 373 - format.json: "uri-template format" - "all string formats ignore nulls" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 374 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 375 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 376 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 377 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 378 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 379 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 380 - if-then-else.json: "if and then without else" - "valid through then" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 381 - if-then-else.json: "if and then without else" - "invalid through then" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than -10", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then/minimum" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than -10", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then/minimum" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 382 - if-then-else.json: "if and then without else" - "valid when if test fails" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 383 - if-then-else.json: "if and else without then" - "valid when if test passes" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 384 - if-then-else.json: "if and else without then" - "valid through else" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 385 - if-then-else.json: "if and else without then" - "invalid through else" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/multipleOf" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/multipleOf" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 386 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 387 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than -10", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then/minimum" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than -10", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then/minimum" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 388 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 389 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/multipleOf" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/multipleOf" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 390 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 391 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 392 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 393 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 394 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 395 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 396 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 397 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 398 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/then" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 399 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 400 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "passing case" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 401 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "failing case" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/int/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "#/definitions/int/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/additionalProperties" 307s # }, 307s # { 307s # "error": "subschemas 0, 1 are not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/int/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/properties" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 402 - items.json: "a schema given for items" - "valid items" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 403 - items.json: "a schema given for items" - "wrong type of items" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 404 - items.json: "a schema given for items" - "ignores non-arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 405 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 406 - items.json: "an array of schemas for items" - "correct types" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 407 - items.json: "an array of schemas for items" - "wrong types" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/0/type" 307s # }, 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items/1/type" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/0/type" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 408 - items.json: "an array of schemas for items" - "incomplete array of items" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 409 - items.json: "an array of schemas for items" - "array with additional items" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 410 - items.json: "an array of schemas for items" - "empty array" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 411 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 412 - items.json: "items with boolean schema (true)" - "any array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 413 - items.json: "items with boolean schema (true)" - "empty array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 414 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "item not permitted", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items" 307s # }, 307s # { 307s # "error": "item not permitted", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items" 307s # }, 307s # { 307s # "error": "item not permitted", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "item not permitted", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 415 - items.json: "items with boolean schema (false)" - "empty array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 416 - items.json: "items with boolean schemas" - "array with one item is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 417 - items.json: "items with boolean schemas" - "array with two items is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "item not permitted", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items/1" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "item not permitted", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items/1" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 418 - items.json: "items with boolean schemas" - "empty array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 419 - items.json: "items and subitems" - "valid items" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 420 - items.json: "items and subitems" - "too many items" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/3", 307s # "keywordLocation": "/additionalItems" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/3", 307s # "keywordLocation": "/additionalItems" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 421 - items.json: "items and subitems" - "too many sub-items" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/0/2", 307s # "keywordLocation": "/items/0/$ref/additionalItems" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/0/$ref/additionalItems" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/0/2", 307s # "keywordLocation": "/items/0/$ref/additionalItems" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/0/$ref/additionalItems" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 422 - items.json: "items and subitems" - "wrong item" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/item/type", 307s # "error": "got object, not array", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/0/$ref/type" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/item/type", 307s # "error": "got object, not array", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/0/$ref/type" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 423 - items.json: "items and subitems" - "wrong sub-item" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "/0/0", 307s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "#/definitions/item/items", 307s # "error": "not all items are valid", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/0/$ref/items" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "/0/0", 307s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "#/definitions/item/items", 307s # "error": "not all items are valid", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/0/$ref/items" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 424 - items.json: "items and subitems" - "fewer items is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 425 - items.json: "nested items" - "valid nested array" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 426 - items.json: "nested items" - "nested array with invalid type" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "/0/0/0/0", 307s # "keywordLocation": "/items/items/items/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0/0/0", 307s # "keywordLocation": "/items/items/items/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0/0", 307s # "keywordLocation": "/items/items/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "/0/0/0/0", 307s # "keywordLocation": "/items/items/items/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0/0/0", 307s # "keywordLocation": "/items/items/items/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0/0", 307s # "keywordLocation": "/items/items/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 427 - items.json: "nested items" - "not deep enough" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not array", 307s # "instanceLocation": "/0/0/0", 307s # "keywordLocation": "/items/items/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0/0", 307s # "keywordLocation": "/items/items/items" 307s # }, 307s # { 307s # "error": "got integer, not array", 307s # "instanceLocation": "/0/1/0", 307s # "keywordLocation": "/items/items/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0/1", 307s # "keywordLocation": "/items/items/items" 307s # }, 307s # { 307s # "error": "got integer, not array", 307s # "instanceLocation": "/0/2/0", 307s # "keywordLocation": "/items/items/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0/2", 307s # "keywordLocation": "/items/items/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/items" 307s # }, 307s # { 307s # "error": "got integer, not array", 307s # "instanceLocation": "/1/0/0", 307s # "keywordLocation": "/items/items/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/1/0", 307s # "keywordLocation": "/items/items/items" 307s # }, 307s # { 307s # "error": "got integer, not array", 307s # "instanceLocation": "/1/1/0", 307s # "keywordLocation": "/items/items/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/1/1", 307s # "keywordLocation": "/items/items/items" 307s # }, 307s # { 307s # "error": "got integer, not array", 307s # "instanceLocation": "/1/2/0", 307s # "keywordLocation": "/items/items/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/1/2", 307s # "keywordLocation": "/items/items/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not array", 307s # "instanceLocation": "/0/0/0", 307s # "keywordLocation": "/items/items/items/type" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0/0", 307s # "keywordLocation": "/items/items/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/items" 307s # }, 307s # { 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 428 - items.json: "single-form items with null instance elements" - "allows null elements" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 429 - items.json: "array-form items with null instance elements" - "allows null elements" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 430 - maxItems.json: "maxItems validation" - "shorter is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 431 - maxItems.json: "maxItems validation" - "exact length is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 432 - maxItems.json: "maxItems validation" - "too long is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "array has more than 2 items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "array has more than 2 items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 433 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 434 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 435 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "array has more than 2 items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "array has more than 2 items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 436 - maxLength.json: "maxLength validation" - "shorter is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 437 - maxLength.json: "maxLength validation" - "exact length is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 438 - maxLength.json: "maxLength validation" - "too long is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "length is greater than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxLength" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "length is greater than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxLength" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 439 - maxLength.json: "maxLength validation" - "ignores non-strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 440 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 441 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 442 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "length is greater than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxLength" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "length is greater than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxLength" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 443 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 444 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 445 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object has more than 2 properties", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object has more than 2 properties", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 446 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 447 - maxProperties.json: "maxProperties validation" - "ignores strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 448 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 449 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 450 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object has more than 2 properties", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object has more than 2 properties", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 451 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 452 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object has more than 0 property", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object has more than 0 property", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maxProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 453 - maximum.json: "maximum validation" - "below the maximum is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 454 - maximum.json: "maximum validation" - "boundary point is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 455 - maximum.json: "maximum validation" - "above the maximum is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maximum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than 3", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maximum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 456 - maximum.json: "maximum validation" - "ignores non-numbers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 457 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 458 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 459 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 460 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than 300", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maximum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than 300", 307s # "instanceLocation": "", 307s # "keywordLocation": "/maximum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 461 - minItems.json: "minItems validation" - "longer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 462 - minItems.json: "minItems validation" - "exact length is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 463 - minItems.json: "minItems validation" - "too short is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "array has fewer than 1 item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "array has fewer than 1 item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 464 - minItems.json: "minItems validation" - "ignores non-arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 465 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 466 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "array has fewer than 1 item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "array has fewer than 1 item", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 467 - minLength.json: "minLength validation" - "longer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 468 - minLength.json: "minLength validation" - "exact length is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 469 - minLength.json: "minLength validation" - "too short is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "length is less than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minLength" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "length is less than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minLength" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 470 - minLength.json: "minLength validation" - "ignores non-strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 471 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "length is less than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minLength" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "length is less than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minLength" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 472 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 473 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "length is less than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minLength" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "length is less than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minLength" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 474 - minProperties.json: "minProperties validation" - "longer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 475 - minProperties.json: "minProperties validation" - "exact length is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 476 - minProperties.json: "minProperties validation" - "too short is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object has fewer than 1 property", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object has fewer than 1 property", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 477 - minProperties.json: "minProperties validation" - "ignores arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 478 - minProperties.json: "minProperties validation" - "ignores strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 479 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 480 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 481 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object has fewer than 1 property", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object has fewer than 1 property", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 482 - minimum.json: "minimum validation" - "above the minimum is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 483 - minimum.json: "minimum validation" - "boundary point is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 484 - minimum.json: "minimum validation" - "below the minimum is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than 1.1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than 1.1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 485 - minimum.json: "minimum validation" - "ignores non-numbers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 486 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 487 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 488 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 489 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 490 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than -2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than -2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 491 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than -2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than -2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/minimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 492 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 493 - multipleOf.json: "by int" - "int by int" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 494 - multipleOf.json: "by int" - "int by int fail" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/multipleOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/multipleOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 495 - multipleOf.json: "by int" - "ignores non-numbers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 496 - multipleOf.json: "by number" - "zero is multiple of anything" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 497 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 498 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 1.5", 307s # "instanceLocation": "", 307s # "keywordLocation": "/multipleOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 1.5", 307s # "instanceLocation": "", 307s # "keywordLocation": "/multipleOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 499 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 500 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 0.0001", 307s # "instanceLocation": "", 307s # "keywordLocation": "/multipleOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 0.0001", 307s # "instanceLocation": "", 307s # "keywordLocation": "/multipleOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 501 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 0.123456789", 307s # "instanceLocation": "", 307s # "keywordLocation": "/multipleOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is not a multiple of 0.123456789", 307s # "instanceLocation": "", 307s # "keywordLocation": "/multipleOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 502 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 503 - not.json: "not" - "allowed" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 504 - not.json: "not" - "disallowed" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 505 - not.json: "not multiple types" - "valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 506 - not.json: "not multiple types" - "mismatch" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 507 - not.json: "not multiple types" - "other mismatch" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 508 - not.json: "not more complex schema" - "match" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 509 - not.json: "not more complex schema" - "other match" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 510 - not.json: "not more complex schema" - "mismatch" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 511 - not.json: "forbidden property" - "property present" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/not" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/not" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 512 - not.json: "forbidden property" - "property absent" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 513 - not.json: "forbid everything with empty schema" - "number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 514 - not.json: "forbid everything with empty schema" - "string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 515 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 516 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 517 - not.json: "forbid everything with empty schema" - "null is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 518 - not.json: "forbid everything with empty schema" - "object is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 519 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 520 - not.json: "forbid everything with empty schema" - "array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 521 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 522 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 523 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 524 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 525 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 526 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 527 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 528 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 529 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 530 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is true", 307s # "instanceLocation": "", 307s # "keywordLocation": "/not" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 531 - not.json: "allow everything with boolean schema false" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 532 - not.json: "allow everything with boolean schema false" - "string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 533 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 534 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 535 - not.json: "allow everything with boolean schema false" - "null is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 536 - not.json: "allow everything with boolean schema false" - "object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 537 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 538 - not.json: "allow everything with boolean schema false" - "array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 539 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 540 - not.json: "double negation" - "any value is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 541 - oneOf.json: "oneOf" - "first oneOf valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 542 - oneOf.json: "oneOf" - "second oneOf valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 543 - oneOf.json: "oneOf" - "both oneOf valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 544 - oneOf.json: "oneOf" - "neither oneOf valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/type" 307s # }, 307s # { 307s # "error": "value is less than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/1/minimum" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/type" 307s # }, 307s # { 307s # "error": "value is less than 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/1/minimum" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 545 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # }, 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 546 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 547 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 548 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1, 2", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 549 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 550 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 551 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0" 307s # }, 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/1" 307s # }, 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/2" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0" 307s # }, 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/1" 307s # }, 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/2" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 552 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 553 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 554 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 555 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/oneOf/0/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/properties" 307s # }, 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/oneOf/1/properties/foo/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/1/properties" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/oneOf/0/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/properties" 307s # }, 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/oneOf/1/properties/foo/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/1/properties" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 556 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 557 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 558 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/required" 307s # }, 307s # { 307s # "error": "object is missing properties: foo, baz", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/1/required" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/required" 307s # }, 307s # { 307s # "error": "object is missing properties: foo, baz", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/1/required" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 559 - oneOf.json: "oneOf with required" - "first valid - valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 560 - oneOf.json: "oneOf with required" - "second valid - valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 561 - oneOf.json: "oneOf with required" - "both valid - invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 562 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 563 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 564 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "multiple subschemas are valid: 0, 1", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 565 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/required" 307s # }, 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/1/required" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/required" 307s # }, 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/1/required" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 566 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 567 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/oneOf/0/type" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/oneOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/oneOf/0/type" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf/0/oneOf" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/oneOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 568 - pattern.json: "pattern validation" - "a matching pattern is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 569 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 570 - pattern.json: "pattern validation" - "ignores booleans" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 571 - pattern.json: "pattern validation" - "ignores integers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 572 - pattern.json: "pattern validation" - "ignores floats" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 573 - pattern.json: "pattern validation" - "ignores objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 574 - pattern.json: "pattern validation" - "ignores arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 575 - pattern.json: "pattern validation" - "ignores null" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 576 - pattern.json: "pattern is not anchored" - "matches a substring" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 577 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 578 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 579 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/patternProperties/f.*o/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/patternProperties/f.*o/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 580 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/patternProperties/f.*o/type" 307s # }, 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/foooooo", 307s # "keywordLocation": "/patternProperties/f.*o/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/patternProperties/f.*o/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 581 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 582 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 583 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 584 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 585 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 586 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 587 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/a", 307s # "keywordLocation": "/patternProperties/a*/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/a", 307s # "keywordLocation": "/patternProperties/a*/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 588 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than 20", 307s # "instanceLocation": "/aaaa", 307s # "keywordLocation": "/patternProperties/aaa*/maximum" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than 20", 307s # "instanceLocation": "/aaaa", 307s # "keywordLocation": "/patternProperties/aaa*/maximum" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 589 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/aaa", 307s # "keywordLocation": "/patternProperties/a*/type" 307s # }, 307s # { 307s # "error": "value is greater than 20", 307s # "instanceLocation": "/aaaa", 307s # "keywordLocation": "/patternProperties/aaa*/maximum" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/aaa", 307s # "keywordLocation": "/patternProperties/a*/type" 307s # }, 307s # { 307s # "error": "value is greater than 20", 307s # "instanceLocation": "/aaaa", 307s # "keywordLocation": "/patternProperties/aaa*/maximum" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 590 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 591 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not boolean", 307s # "instanceLocation": "/a31b", 307s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not boolean", 307s # "instanceLocation": "/a31b", 307s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 592 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 593 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "/a_X_3", 307s # "keywordLocation": "/patternProperties/X_/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "/a_X_3", 307s # "keywordLocation": "/patternProperties/X_/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 594 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 595 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "property not permitted", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/patternProperties/b.*" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "property not permitted", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/patternProperties/b.*" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 596 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "property not permitted", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/patternProperties/b.*" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "property not permitted", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/patternProperties/b.*" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 597 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "property not permitted", 307s # "instanceLocation": "/foobar", 307s # "keywordLocation": "/patternProperties/b.*" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "property not permitted", 307s # "instanceLocation": "/foobar", 307s # "keywordLocation": "/patternProperties/b.*" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 598 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 599 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 600 - properties.json: "object properties validation" - "both properties present and valid is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 601 - properties.json: "object properties validation" - "one property invalid is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not string", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not string", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 602 - properties.json: "object properties validation" - "both properties invalid is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not string", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar/type" 307s # }, 307s # { 307s # "error": "got array, not integer", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not string", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 603 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 604 - properties.json: "object properties validation" - "ignores arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 605 - properties.json: "object properties validation" - "ignores other non-objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 606 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 607 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "array has more than 3 items", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/maxItems" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "array has more than 3 items", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/maxItems" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 608 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "array has fewer than 2 items", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/patternProperties/f.o/minItems" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "array has fewer than 2 items", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/patternProperties/f.o/minItems" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 609 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 610 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "array has fewer than 2 items", 307s # "instanceLocation": "/fxo", 307s # "keywordLocation": "/patternProperties/f.o/minItems" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "array has fewer than 2 items", 307s # "instanceLocation": "/fxo", 307s # "keywordLocation": "/patternProperties/f.o/minItems" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 611 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 612 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 613 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/quux", 307s # "keywordLocation": "/additionalProperties/type" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/quux", 307s # "keywordLocation": "/additionalProperties/type" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 614 - properties.json: "properties with boolean schema" - "no property present is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 615 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 616 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "property not permitted", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "property not permitted", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 617 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "property not permitted", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "property not permitted", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 618 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 619 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "/foo\tbar", 307s # "keywordLocation": "/properties/foo\tbar/type" 307s # }, 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "/foo\nbar", 307s # "keywordLocation": "/properties/foo\nbar/type" 307s # }, 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "/foo\fbar", 307s # "keywordLocation": "/properties/foo\fbar/type" 307s # }, 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "/foo\rbar", 307s # "keywordLocation": "/properties/foo\rbar/type" 307s # }, 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "/foo\"bar", 307s # "keywordLocation": "/properties/foo\"bar/type" 307s # }, 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "/foo\\bar", 307s # "keywordLocation": "/properties/foo\\bar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "/foo\tbar", 307s # "keywordLocation": "/properties/foo\tbar/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 620 - properties.json: "properties with null valued instance properties" - "allows null values" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 621 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 622 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 623 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 624 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "/__proto__", 307s # "keywordLocation": "/properties/__proto__/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "/__proto__", 307s # "keywordLocation": "/properties/__proto__/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 625 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "/toString/length", 307s # "keywordLocation": "/properties/toString/properties/length/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/toString", 307s # "keywordLocation": "/properties/toString/properties" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "/toString/length", 307s # "keywordLocation": "/properties/toString/properties/length/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/toString", 307s # "keywordLocation": "/properties/toString/properties" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 626 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not number", 307s # "instanceLocation": "/constructor", 307s # "keywordLocation": "/properties/constructor/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not number", 307s # "instanceLocation": "/constructor", 307s # "keywordLocation": "/properties/constructor/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 627 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 628 - propertyNames.json: "propertyNames validation" - "all property names valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 629 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "length is greater than 3", 307s # "instanceLocation": "/foobar", 307s # "keywordLocation": "/propertyNames/maxLength" 307s # }, 307s # { 307s # "error": "not all property names are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/propertyNames" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "length is greater than 3", 307s # "instanceLocation": "/foobar", 307s # "keywordLocation": "/propertyNames/maxLength" 307s # }, 307s # { 307s # "error": "not all property names are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/propertyNames" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 630 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 631 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 632 - propertyNames.json: "propertyNames validation" - "ignores strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 633 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 634 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 635 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "/aaA", 307s # "keywordLocation": "/propertyNames/pattern" 307s # }, 307s # { 307s # "error": "not all property names are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/propertyNames" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "/aaA", 307s # "keywordLocation": "/propertyNames/pattern" 307s # }, 307s # { 307s # "error": "not all property names are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/propertyNames" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 636 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 637 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 638 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 639 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/propertyNames" 307s # }, 307s # { 307s # "error": "not all property names are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/propertyNames" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "subschema is false", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/propertyNames" 307s # }, 307s # { 307s # "error": "not all property names are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/propertyNames" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 640 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 641 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 642 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/propertyNames/const" 307s # }, 307s # { 307s # "error": "not all property names are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/propertyNames" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/propertyNames/const" 307s # }, 307s # { 307s # "error": "not all property names are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/propertyNames" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 643 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 644 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 645 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 646 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/baz", 307s # "keywordLocation": "/propertyNames/enum" 307s # }, 307s # { 307s # "error": "not all property names are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/propertyNames" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "/baz", 307s # "keywordLocation": "/propertyNames/enum" 307s # }, 307s # { 307s # "error": "not all property names are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/propertyNames" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 647 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 648 - ref.json: "root pointer ref" - "match" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 649 - ref.json: "root pointer ref" - "recursive match" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 650 - ref.json: "root pointer ref" - "mismatch" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 651 - ref.json: "root pointer ref" - "recursive mismatch" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/additionalProperties", 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/foo/bar", 307s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "#/additionalProperties", 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/additionalProperties", 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/foo/bar", 307s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "#/additionalProperties", 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 652 - ref.json: "relative pointer ref to object" - "match" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 653 - ref.json: "relative pointer ref to object" - "mismatch" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/properties/foo/type", 307s # "error": "got boolean, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/properties/foo/type", 307s # "error": "got boolean, not integer", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/properties/bar/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 654 - ref.json: "relative pointer ref to array" - "match array" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 655 - ref.json: "relative pointer ref to array" - "mismatch array" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/items/0/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items/1/$ref/type" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/items/0/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/1", 307s # "keywordLocation": "/items/1/$ref/type" 307s # }, 307s # { 307s # "error": "not all items are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 656 - ref.json: "escaped pointer ref" - "slash invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/slash", 307s # "keywordLocation": "/properties/slash/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/slash", 307s # "keywordLocation": "/properties/slash/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 657 - ref.json: "escaped pointer ref" - "tilde invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/tilde", 307s # "keywordLocation": "/properties/tilde/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/tilde", 307s # "keywordLocation": "/properties/tilde/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 658 - ref.json: "escaped pointer ref" - "percent invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/percent", 307s # "keywordLocation": "/properties/percent/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/percent", 307s # "keywordLocation": "/properties/percent/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 659 - ref.json: "escaped pointer ref" - "slash valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 660 - ref.json: "escaped pointer ref" - "tilde valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 661 - ref.json: "escaped pointer ref" - "percent valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 662 - ref.json: "nested refs" - "nested ref valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 663 - ref.json: "nested refs" - "nested ref invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/a/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/a/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 664 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 665 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 666 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/reffed/type", 307s # "error": "got string, not array", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/reffed/type", 307s # "error": "got string, not array", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 667 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 668 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 669 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 670 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeInteger/minimum", 307s # "error": "value is less than 0", 307s # "instanceLocation": "/minLength", 307s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeIntegerDefault0/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "/minLength", 307s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeInteger/minimum", 307s # "error": "value is less than 0", 307s # "instanceLocation": "/minLength", 307s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeIntegerDefault0/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "/minLength", 307s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 671 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 672 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "/$ref", 307s # "keywordLocation": "/properties/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "/$ref", 307s # "keywordLocation": "/properties/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 673 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 674 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/is-string/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/$ref", 307s # "keywordLocation": "/properties/$ref/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/is-string/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/$ref", 307s # "keywordLocation": "/properties/$ref/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 675 - ref.json: "$ref to boolean schema true" - "any value is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 676 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/bool", 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/bool", 307s # "error": "subschema is false", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 677 - ref.json: "Recursive references between schemas" - "valid tree" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 678 - ref.json: "Recursive references between schemas" - "invalid tree" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 307s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/nodes/0/subtree/nodes/0", 307s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/nodes/0/subtree/nodes", 307s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/nodes/0/subtree", 307s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/nodes/0", 307s # "keywordLocation": "/properties/nodes/items/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/nodes", 307s # "keywordLocation": "/properties/nodes/items" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 307s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/nodes/0/subtree/nodes/0", 307s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/nodes/0/subtree/nodes", 307s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/nodes/0/subtree", 307s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/nodes/0", 307s # "keywordLocation": "/properties/nodes/items/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/nodes", 307s # "keywordLocation": "/properties/nodes/items" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 679 - ref.json: "refs with quote" - "object with numbers is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 680 - ref.json: "refs with quote" - "object with strings is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "/foo\"bar", 307s # "keywordLocation": "/properties/foo\"bar/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "/foo\"bar", 307s # "keywordLocation": "/properties/foo\"bar/$ref/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 681 - ref.json: "Location-independent identifier" - "match" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 682 - ref.json: "Location-independent identifier" - "mismatch" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/A/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/A/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 683 - ref.json: "Reference an anchor with a non-relative URI" - "match" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 684 - ref.json: "Reference an anchor with a non-relative URI" - "mismatch" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 685 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 686 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 687 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 688 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/enum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 689 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 690 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo/bar", 307s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo/bar", 307s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 691 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 692 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 693 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo/bar", 307s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo/bar", 307s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 694 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 695 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 696 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 697 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 698 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 699 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 307s # "error": "value is less than 30", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/minimum" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 307s # "error": "value is less than 30", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/minimum" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 700 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 701 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 702 - ref.json: "URN base URI with NSS" - "a string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 703 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 704 - ref.json: "URN base URI with r-component" - "a string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 705 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 706 - ref.json: "URN base URI with q-component" - "a string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 707 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 708 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 709 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 710 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 711 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/foo", 307s # "keywordLocation": "/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 712 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 713 - ref.json: "ref to if" - "an integer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 714 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 715 - ref.json: "ref to then" - "an integer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 716 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 717 - ref.json: "ref to else" - "an integer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 718 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 719 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 720 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 721 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 722 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 723 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 724 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 725 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions//definitions//type", 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions//definitions//type", 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/type" 307s # }, 307s # { 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 726 - refRemote.json: "remote ref" - "remote ref valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 727 - refRemote.json: "remote ref" - "remote ref invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 728 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 729 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 730 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 731 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/$ref/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/$ref/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 732 - refRemote.json: "base URI change" - "base URI change ref valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 733 - refRemote.json: "base URI change" - "base URI change ref invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/0/0", 307s # "keywordLocation": "/items/items/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/items" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/0/0", 307s # "keywordLocation": "/items/items/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/0", 307s # "keywordLocation": "/items/items" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/items" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 734 - refRemote.json: "base URI change - change folder" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 735 - refRemote.json: "base URI change - change folder" - "string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/list/0", 307s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/list", 307s # "keywordLocation": "/properties/list/$ref/items" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/list/0", 307s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/list", 307s # "keywordLocation": "/properties/list/$ref/items" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 736 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 737 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/list/0", 307s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/list", 307s # "keywordLocation": "/properties/list/$ref/items" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "/list/0", 307s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 307s # "error": "subschema is not valid against all items", 307s # "instanceLocation": "/list", 307s # "keywordLocation": "/properties/list/$ref/items" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 738 - refRemote.json: "root ref in remote ref" - "string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 739 - refRemote.json: "root ref in remote ref" - "null is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 740 - refRemote.json: "root ref in remote ref" - "object is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf/0/type", 307s # "error": "got object, not null", 307s # "instanceLocation": "/name", 307s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/type", 307s # "error": "got object, not string", 307s # "instanceLocation": "/name", 307s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf", 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "/name", 307s # "keywordLocation": "/properties/name/$ref/anyOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf/0/type", 307s # "error": "got object, not null", 307s # "instanceLocation": "/name", 307s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/type", 307s # "error": "got object, not string", 307s # "instanceLocation": "/name", 307s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf", 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "/name", 307s # "keywordLocation": "/properties/name/$ref/anyOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 741 - refRemote.json: "remote ref with ref to definitions" - "invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties/bar/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/bar", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/0/$ref/allOf" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 307s # "error": "subschema 0 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 742 - refRemote.json: "remote ref with ref to definitions" - "valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 743 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 744 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/locationIndependentIdentifier.json#/definitions/A/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/$ref/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/locationIndependentIdentifier.json#/definitions/A/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/$ref/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 745 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/name/foo", 307s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/name", 307s # "keywordLocation": "/properties/name/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "/name/foo", 307s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "/name", 307s # "keywordLocation": "/properties/name/$ref/properties" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/properties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 746 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 747 - refRemote.json: "$ref to $ref finds location-independent $id" - "number is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 748 - refRemote.json: "$ref to $ref finds location-independent $id" - "non-number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/detached-ref.json#/definitions/detached/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/$ref/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft7/detached-ref.json#/definitions/detached/type", 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/$ref/$ref/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 749 - required.json: "required validation" - "present required property is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 750 - required.json: "required validation" - "non-present required property is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing property: foo", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 751 - required.json: "required validation" - "ignores arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 752 - required.json: "required validation" - "ignores strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 753 - required.json: "required validation" - "ignores other non-objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 754 - required.json: "required default validation" - "not required by default" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 755 - required.json: "required with empty array" - "property not required" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 756 - required.json: "required with escaped characters" - "object with all properties present is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 757 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 758 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 759 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 760 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: __proto__, toString, constructor", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: __proto__, toString, constructor", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 761 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: toString, constructor", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: toString, constructor", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 762 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: __proto__, constructor", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: __proto__, constructor", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 763 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: __proto__, toString", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "object is missing properties: __proto__, toString", 307s # "instanceLocation": "", 307s # "keywordLocation": "/required" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 764 - required.json: "required properties whose names are Javascript object property names" - "all present" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 765 - type.json: "integer type matches integers" - "an integer is an integer" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 766 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 767 - type.json: "integer type matches integers" - "a float is not an integer" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 768 - type.json: "integer type matches integers" - "a string is not an integer" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 769 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 770 - type.json: "integer type matches integers" - "an object is not an integer" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 771 - type.json: "integer type matches integers" - "an array is not an integer" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 772 - type.json: "integer type matches integers" - "a boolean is not an integer" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 773 - type.json: "integer type matches integers" - "null is not an integer" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not integer", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 774 - type.json: "number type matches numbers" - "an integer is a number" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 775 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 776 - type.json: "number type matches numbers" - "a float is a number" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 777 - type.json: "number type matches numbers" - "a string is not a number" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 778 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 779 - type.json: "number type matches numbers" - "an object is not a number" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 780 - type.json: "number type matches numbers" - "an array is not a number" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 781 - type.json: "number type matches numbers" - "a boolean is not a number" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 782 - type.json: "number type matches numbers" - "null is not a number" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not number", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 783 - type.json: "string type matches strings" - "1 is not a string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 784 - type.json: "string type matches strings" - "a float is not a string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 785 - type.json: "string type matches strings" - "a string is a string" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 786 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 787 - type.json: "string type matches strings" - "an empty string is still a string" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 788 - type.json: "string type matches strings" - "an object is not a string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 789 - type.json: "string type matches strings" - "an array is not a string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 790 - type.json: "string type matches strings" - "a boolean is not a string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 791 - type.json: "string type matches strings" - "null is not a string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 792 - type.json: "object type matches objects" - "an integer is not an object" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 793 - type.json: "object type matches objects" - "a float is not an object" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 794 - type.json: "object type matches objects" - "a string is not an object" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 795 - type.json: "object type matches objects" - "an object is an object" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 796 - type.json: "object type matches objects" - "an array is not an object" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 797 - type.json: "object type matches objects" - "a boolean is not an object" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 798 - type.json: "object type matches objects" - "null is not an object" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 799 - type.json: "array type matches arrays" - "an integer is not an array" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 800 - type.json: "array type matches arrays" - "a float is not an array" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 801 - type.json: "array type matches arrays" - "a string is not an array" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 802 - type.json: "array type matches arrays" - "an object is not an array" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 803 - type.json: "array type matches arrays" - "an array is an array" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 804 - type.json: "array type matches arrays" - "a boolean is not an array" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 805 - type.json: "array type matches arrays" - "null is not an array" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not array", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 806 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 807 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 808 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 809 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 810 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 811 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 812 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 813 - type.json: "boolean type matches booleans" - "true is a boolean" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 814 - type.json: "boolean type matches booleans" - "false is a boolean" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 815 - type.json: "boolean type matches booleans" - "null is not a boolean" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not boolean", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 816 - type.json: "null type matches only the null object" - "an integer is not null" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 817 - type.json: "null type matches only the null object" - "a float is not null" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 818 - type.json: "null type matches only the null object" - "zero is not null" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 819 - type.json: "null type matches only the null object" - "a string is not null" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 820 - type.json: "null type matches only the null object" - "an empty string is not null" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 821 - type.json: "null type matches only the null object" - "an object is not null" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 822 - type.json: "null type matches only the null object" - "an array is not null" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 823 - type.json: "null type matches only the null object" - "true is not null" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 824 - type.json: "null type matches only the null object" - "false is not null" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 825 - type.json: "null type matches only the null object" - "null is null" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 826 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 827 - type.json: "multiple types can be specified in an array" - "a string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 828 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not one of integer, string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got number, not one of integer, string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 829 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not one of integer, string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got object, not one of integer, string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 830 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not one of integer, string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got array, not one of integer, string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 831 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not one of integer, string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got boolean, not one of integer, string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 832 - type.json: "multiple types can be specified in an array" - "null is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not one of integer, string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not one of integer, string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 833 - type.json: "type as array with one item" - "string is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 834 - type.json: "type as array with one item" - "number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not one of string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not one of string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 835 - type.json: "type: array or object" - "array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 836 - type.json: "type: array or object" - "object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 837 - type.json: "type: array or object" - "number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not one of array, object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not one of array, object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 838 - type.json: "type: array or object" - "string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not one of array, object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not one of array, object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 839 - type.json: "type: array or object" - "null is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not one of array, object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got null, not one of array, object", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 840 - type.json: "type: array, object or null" - "array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 841 - type.json: "type: array, object or null" - "object is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 842 - type.json: "type: array, object or null" - "null is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 843 - type.json: "type: array, object or null" - "number is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not one of array, object, null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not one of array, object, null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 844 - type.json: "type: array, object or null" - "string is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not one of array, object, null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not one of array, object, null", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 845 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 846 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 847 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 2 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 2 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 848 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 849 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 850 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 851 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 852 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 2 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 2 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 853 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 854 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 855 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 856 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 857 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 858 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 859 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 860 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 2 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 2 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 861 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 862 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 863 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 864 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 865 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 866 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 867 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 868 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 4 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 4 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 869 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 870 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 871 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 872 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 873 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 874 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 875 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 876 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 877 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 878 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 879 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 2 and 3 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 2 and 3 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 880 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 2 and 3 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 2 and 3 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 881 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 882 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 883 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 884 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "items at indices 0 and 1 are not unique", 307s # "instanceLocation": "", 307s # "keywordLocation": "/uniqueItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 885 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/additionalItems" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/additionalItems" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 886 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 887 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 888 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 889 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 890 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 891 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 892 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 893 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 894 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 895 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 896 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 897 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 898 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 899 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 900 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 901 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 902 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 903 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 904 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 905 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 906 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 907 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 908 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 909 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 910 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 911 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 912 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 913 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/additionalItems" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional item not permitted", 307s # "instanceLocation": "/2", 307s # "keywordLocation": "/additionalItems" 307s # }, 307s # { 307s # "error": "subschema is not valid against all additional items", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalItems" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 914 - optional/bignum.json: "integer" - "a bignum is an integer" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 915 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 916 - optional/bignum.json: "number" - "a bignum is a number" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 917 - optional/bignum.json: "number" - "a negative bignum is a number" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 918 - optional/bignum.json: "string" - "a bignum is not a string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/type" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 919 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 920 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMaximum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMaximum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 921 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 922 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMinimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 307s # "instanceLocation": "", 307s # "keywordLocation": "/exclusiveMinimum" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 923 - optional/content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 924 - optional/content.json: "validation of string-encoded content based on media type" - "an invalid JSON document" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contentMediaType" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contentMediaType" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 925 - optional/content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 926 - optional/content.json: "validation of binary string-encoding" - "a valid base64 string" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 927 - optional/content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character)" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "could not decode base64 string: invalid characters", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contentEncoding" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "could not decode base64 string: invalid characters", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contentEncoding" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 928 - optional/content.json: "validation of binary string-encoding" - "ignores non-strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 929 - optional/content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 930 - optional/content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\\n\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contentMediaType" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\\n\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contentMediaType" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 931 - optional/content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "could not decode base64 string: invalid characters", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contentEncoding" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "could not decode base64 string: invalid characters", 307s # "instanceLocation": "", 307s # "keywordLocation": "/contentEncoding" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 932 - optional/content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 933 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "missing bar is invalid" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired/foo", 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/$ref/dependentRequired/foo" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired", 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/$ref/dependentRequired" 307s # }, 307s # { 307s # "error": "subschema 1 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired/foo", 307s # "error": "object is missing property: bar", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/$ref/dependentRequired/foo" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired", 307s # "error": "not all dependencies are satisfied", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf/1/$ref/dependentRequired" 307s # }, 307s # { 307s # "error": "subschema 1 is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/allOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 934 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "present bar is valid" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 935 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 936 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 937 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 938 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 939 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 940 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 941 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 942 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 943 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true # 307s 1..1 307s } 307s ok 944 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected false; got true 307s # schema: { 307s # "pattern": "^\\d$", 307s # "type": "string" 307s # } 307s # data: "߀" 307s # result: 1 307s 1..1 307s } 307s ok 945 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO (as \u escape) does not match" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected false; got true 307s # schema: { 307s # "pattern": "^\\d$", 307s # "type": "string" 307s # } 307s # data: "߀" 307s # result: 1 307s 1..1 307s } 307s ok 946 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false # 307s 1..1 307s } 307s ok 947 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected true; got false 307s # schema: { 307s # "pattern": "^\\D$", 307s # "type": "string" 307s # } 307s # data: "߀" 307s # result: 0 307s 1..1 307s } 307s ok 948 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO (as \u escape) matches" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected true; got false 307s # schema: { 307s # "pattern": "^\\D$", 307s # "type": "string" 307s # } 307s # data: "߀" 307s # result: 0 307s 1..1 307s } 307s ok 949 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true # 307s 1..1 307s } 307s ok 950 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "latin-1 e-acute does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected false; got true 307s # schema: { 307s # "pattern": "^\\w$", 307s # "type": "string" 307s # } 307s # data: "é" 307s # result: 1 307s 1..1 307s } 307s ok 951 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false # 307s 1..1 307s } 307s ok 952 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "latin-1 e-acute matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected true; got false 307s # schema: { 307s # "pattern": "^\\W$", 307s # "type": "string" 307s # } 307s # data: "é" 307s # result: 0 307s 1..1 307s } 307s ok 953 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 954 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 955 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 956 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 957 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 958 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected true; got false 307s # schema: { 307s # "pattern": "^\\s$", 307s # "type": "string" 307s # } 307s # data: "" 307s # result: 0 307s 1..1 307s } 307s ok 959 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 960 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 961 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 962 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 963 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 964 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 965 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 966 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 967 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 968 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 969 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected false; got true 307s # schema: { 307s # "pattern": "^\\S$", 307s # "type": "string" 307s # } 307s # data: "" 307s # result: 1 307s 1..1 307s } 307s ok 970 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 971 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 972 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 973 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 974 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 975 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 976 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 977 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 978 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 979 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 980 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected false; got true 307s # schema: { 307s # "pattern": "\\wcole" 307s # } 307s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 307s # result: 1 307s 1..1 307s } 307s ok 981 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected false; got true 307s # schema: { 307s # "pattern": "\\wcole" 307s # } 307s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 307s # result: 1 307s 1..1 307s } 307s ok 982 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 983 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 984 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 985 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 986 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 987 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 988 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected false; got true 307s # schema: { 307s # "pattern": "^\\d+$" 307s # } 307s # data: "৪২" 307s # result: 1 307s 1..1 307s } 307s ok 989 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 990 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 991 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 992 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 993 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 994 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 995 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/L'ÉCOLE", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/L'ÉCOLE", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 996 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 997 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected false; got true 307s # schema: { 307s # "additionalProperties": false, 307s # "patternProperties": { 307s # "\\wcole": true 307s # }, 307s # "type": "object" 307s # } 307s # data: { 307s # "l'école": "pas de vraie vie" 307s # } 307s # result: 1 307s 1..1 307s } 307s ok 998 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected false; got true 307s # schema: { 307s # "additionalProperties": false, 307s # "patternProperties": { 307s # "\\wcole": true 307s # }, 307s # "type": "object" 307s # } 307s # data: { 307s # "l'école": "pas de vraie vie" 307s # } 307s # result: 1 307s 1..1 307s } 307s ok 999 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/L'ÉCOLE", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/L'ÉCOLE", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1000 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/l'école", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/l'école", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1001 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/l'école", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/l'école", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1002 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1003 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1004 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/-%#", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/-%#", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1005 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s not ok 1 - evaluation result is incorrect # 307s # Failed test (with amnesty) 'evaluation result is incorrect' 307s # at t/zzz-acceptance-draft7.t line 51. 307s # expected false; got true 307s # schema: { 307s # "additionalProperties": false, 307s # "patternProperties": { 307s # "^\\d+$": true 307s # }, 307s # "type": "object" 307s # } 307s # data: { 307s # "৪২": "khajit has wares if you have coin" 307s # } 307s # result: 1 307s 1..1 307s } 307s ok 1006 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1007 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/-%#", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "additional property not permitted", 307s # "instanceLocation": "/-%#", 307s # "keywordLocation": "/additionalProperties" 307s # }, 307s # { 307s # "error": "not all additional properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/additionalProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1008 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 1009 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s # 307s ok 1010 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1011 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1012 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/$ref/enum" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/$ref/type" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/$ref/enum" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/$ref/type" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1013 - optional/id.json: "non-schema object containing a plain-name $id property" - "skip traversing definition for a valid result" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1014 - optional/id.json: "non-schema object containing a plain-name $id property" - "const at const_not_anchor does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/$ref/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/$ref/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1015 - optional/id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1016 - optional/id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/$ref/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 307s # "error": "value does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else/$ref/const" 307s # }, 307s # { 307s # "error": "subschema is not valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/else" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 1017 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1018 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1019 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1020 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1021 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1022 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1023 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "pattern does not match", 307s # "instanceLocation": "", 307s # "keywordLocation": "/pattern" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1024 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1025 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1026 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1027 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/🐲", 307s # "keywordLocation": "/patternProperties/^🐲*$/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/🐲", 307s # "keywordLocation": "/patternProperties/^🐲*$/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1028 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 307s # result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/🐲🐲", 307s # "keywordLocation": "/patternProperties/^🐲*$/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "error": "got string, not integer", 307s # "instanceLocation": "/🐲🐲", 307s # "keywordLocation": "/patternProperties/^🐲*$/type" 307s # }, 307s # { 307s # "error": "not all properties are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/patternProperties" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s ok 1029 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 307s # result: { 307s # "valid": true 307s # } 307s # short-circuited result: { 307s # "valid": true 307s # } 307s ok 1 - test passes: data is valid: true 307s 1..1 307s } 307s ok 1030 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/$ref/not" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/$ref/not" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 307s # "error": "got null, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/2/$ref/type" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/$ref/not" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/$ref/not" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 307s # "error": "got null, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/2/$ref/type" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s ok 1031 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 307s # result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/$ref/not" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/$ref/not" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/2/$ref/type" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s # short-circuited result: { 307s # "errors": [ 307s # { 307s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/0/$ref/not" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 307s # "error": "subschema is valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/1/$ref/not" 307s # }, 307s # { 307s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 307s # "error": "got integer, not string", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf/2/$ref/type" 307s # }, 307s # { 307s # "error": "no subschemas are valid", 307s # "instanceLocation": "", 307s # "keywordLocation": "/anyOf" 307s # } 307s # ], 307s # "valid": false 307s # } 307s ok 1 - test passes: data is valid: false 307s 1..1 307s } 307s # 307s # generated with: Test::JSON::Schema::Acceptance 1.029 307s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 307s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 307s # specification version: draft7 307s # optional tests included: yes 307s # skipping directory: optional/format 307s # 307s # filename pass todo-fail fail 307s # --------------------------------------------------------------- 307s # additionalItems.json 20 0 0 307s # additionalProperties.json 16 0 0 307s # allOf.json 30 0 0 307s # anyOf.json 18 0 0 307s # boolean_schema.json 18 0 0 307s # const.json 50 0 0 307s # contains.json 21 0 0 307s # default.json 7 0 0 307s # definitions.json 2 0 0 307s # dependencies.json 36 0 0 307s # enum.json 45 0 0 307s # exclusiveMaximum.json 4 0 0 307s # exclusiveMinimum.json 4 0 0 307s # format.json 102 0 0 307s # if-then-else.json 26 0 0 307s # infinite-loop-detection.json 2 0 0 307s # items.json 28 0 0 307s # maxItems.json 6 0 0 307s # maxLength.json 7 0 0 307s # maxProperties.json 10 0 0 307s # maximum.json 8 0 0 307s # minItems.json 6 0 0 307s # minLength.json 7 0 0 307s # minProperties.json 8 0 0 307s # minimum.json 11 0 0 307s # multipleOf.json 10 0 0 307s # not.json 38 0 0 307s # oneOf.json 27 0 0 307s # pattern.json 9 0 0 307s # patternProperties.json 23 0 0 307s # properties.json 28 0 0 307s # propertyNames.json 20 0 0 307s # ref.json 78 0 0 307s # refRemote.json 23 0 0 307s # required.json 16 0 0 307s # type.json 80 0 0 307s # uniqueItems.json 69 0 0 307s # optional/bignum.json 9 0 0 307s # optional/content.json 10 0 0 307s # optional/cross-draft.json 2 0 0 307s # optional/ecmascript-regex.json 60 14 0 307s # optional/float-overflow.json 1 0 0 307s # optional/id.json 7 0 0 307s # optional/non-bmp-regex.json 12 0 0 307s # optional/unknownKeyword.json 3 0 0 307s # --------------------------------------------------------------- 307s # TOTAL 1017 14 0 307s # 307s # Congratulations, all non-optional tests are passing! 307s # 307s ok 1032 - no leaks in the main evaluator object 307s ok 1033 - no leaks in the short-circuiting evaluator object 307s 1..1033 307s ok 307s t/zzz-check-breaks.t .................... 307s 1..2 307s ok 1 # skip no conflicts module found to check against 307s ok 2 - checked x_breaks data 307s ok 307s All tests successful. 307s 307s Test Summary Report 307s ------------------- 307s t/zzz-acceptance-draft2019-09-format.t (Wstat: 0 Tests: 485 Failed: 0) 307s TODO passed: 149-205, 270-282, 294, 427-436, 462 307s t/zzz-acceptance-draft2019-09.t (Wstat: 0 Tests: 1383 Failed: 0) 307s TODO passed: 1244-1279, 1288-1297, 1303, 1314, 1325-1326 307s 1333, 1342-1343, 1350, 1373-1378 307s t/zzz-acceptance-draft2020-12-format.t (Wstat: 0 Tests: 493 Failed: 0) 307s TODO passed: 99, 120-121, 157-213, 278-290, 302, 435-444 307s 470 307s t/zzz-acceptance-draft2020-12.t (Wstat: 0 Tests: 1417 Failed: 0) 307s TODO passed: 1272-1307, 1318-1327, 1333, 1344, 1355-1356 307s 1363, 1372-1373, 1380, 1407-1412 307s t/zzz-acceptance-draft4-format.t (Wstat: 0 Tests: 155 Failed: 0) 307s TODO passed: 153 307s t/zzz-acceptance-draft4.t (Wstat: 0 Tests: 712 Failed: 0) 307s TODO passed: 628-637, 643, 654, 665-666, 673, 682-683 307s 690 307s t/zzz-acceptance-draft6-format.t (Wstat: 0 Tests: 216 Failed: 0) 307s TODO passed: 179-188, 214 307s t/zzz-acceptance-draft6.t (Wstat: 0 Tests: 937 Failed: 0) 307s TODO passed: 847-856, 862, 873, 884-885, 892, 901-902 307s 909 307s t/zzz-acceptance-draft7-format.t (Wstat: 0 Tests: 436 Failed: 0) 307s TODO passed: 122-177, 242-254, 266, 399-408, 434 307s t/zzz-acceptance-draft7.t (Wstat: 0 Tests: 1033 Failed: 0) 307s TODO passed: 943-952, 958, 969, 980-981, 988, 997-998 307s 1005 307s Files=45, Tests=10461, 97 wallclock secs ( 4.02 usr 0.29 sys + 91.50 cusr 4.31 csys = 100.12 CPU) 307s Result: PASS 308s autopkgtest [14:09:09]: test autodep8-perl-build-deps: -----------------------] 312s autodep8-perl-build-deps PASS 312s autopkgtest [14:09:13]: test autodep8-perl-build-deps: - - - - - - - - - - results - - - - - - - - - - 316s autopkgtest [14:09:17]: test autodep8-perl: preparing testbed 339s autopkgtest [14:09:40]: testbed dpkg architecture: armhf 341s autopkgtest [14:09:42]: testbed apt version: 3.1.6ubuntu2 345s autopkgtest [14:09:46]: @@@@@@@@@@@@@@@@@@@@ test bed setup 346s autopkgtest [14:09:47]: testbed release detected to be: resolute 354s autopkgtest [14:09:55]: updating testbed package index (apt update) 356s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 356s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [87.8 kB] 357s Get:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease [87.8 kB] 357s Get:4 http://ftpmaster.internal/ubuntu resolute-security InRelease [87.8 kB] 357s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 357s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [153 kB] 357s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [51.8 kB] 357s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [2956 kB] 357s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [211 kB] 357s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted armhf Packages [940 B] 357s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [2039 kB] 357s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [29.0 kB] 357s Get:13 http://ftpmaster.internal/ubuntu resolute/main Sources [1414 kB] 358s Get:14 http://ftpmaster.internal/ubuntu resolute/multiverse Sources [311 kB] 358s Get:15 http://ftpmaster.internal/ubuntu resolute/restricted Sources [12.5 kB] 358s Get:16 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.1 MB] 359s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1373 kB] 359s Get:18 http://ftpmaster.internal/ubuntu resolute/restricted armhf Packages [1232 B] 359s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.0 MB] 360s Get:20 http://ftpmaster.internal/ubuntu resolute/multiverse armhf Packages [183 kB] 362s Fetched 45.2 MB in 6s (7067 kB/s) 364s Reading package lists... 369s autopkgtest [14:10:10]: upgrading testbed (apt dist-upgrade and autopurge) 371s Reading package lists... 371s Building dependency tree... 371s Reading state information... 372s Calculating upgrade... 372s The following NEW packages will be installed: 372s python3.14-gdbm 372s The following packages will be upgraded: 372s apparmor apt base-files bind9-dnsutils bind9-host bind9-libs binutils 372s binutils-arm-linux-gnueabihf binutils-common bsdextrautils bsdutils 372s cloud-init cloud-init-base distro-info-data dpkg dpkg-dev eject fdisk 372s gcc-15-base gir1.2-girepository-2.0 gir1.2-glib-2.0 gnu-coreutils grep 372s libapparmor1 libapt-pkg7.0 libatomic1 libaudit-common libaudit1 libbinutils 372s libblkid1 libbrotli1 libcap-ng0 libctf-nobfd0 libctf0 libdpkg-perl 372s libdrm-common libdrm2 libelf1t64 libfdisk1 libgcc-s1 libgirepository-1.0-1 372s libglib2.0-0t64 libglib2.0-data libgpg-error-l10n libgpg-error0 372s libhogweed6t64 libjson-c5 liblastlog2-2 libmount1 libnettle8t64 libnewt0.52 372s libnftables1 libnl-3-200 libnl-route-3-200 libp11-kit0 libpython3.13-minimal 372s libpython3.13-stdlib librtmp1 libseccomp2 libselinux1 libsemanage-common 372s libsemanage2 libsepol2 libsframe2 libsmartcols1 libstdc++6 libuchardet0 372s libuuid1 libxml2-16 login lto-disabled-list mount nano nftables 372s python-apt-common python3-apt python3-bcrypt python3-blinker 372s python3-cffi-backend python3-dbus python3-gdbm python3-inflect python3-jwt 372s python3-lazr.uri python3-markupsafe python3-more-itertools python3-oauthlib 372s python3-openssl python3-pyparsing python3-yaml python3-zipp python3.13 372s python3.13-gdbm python3.13-minimal sensible-utils sudo-rs tzdata 372s ubuntu-pro-client ubuntu-pro-client-l10n usb.ids util-linux uuid-runtime 372s whiptail 372s 103 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 372s Need to get 28.3 MB of archives. 372s After this operation, 1098 kB of additional disk space will be used. 372s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf base-files armhf 14ubuntu4 [75.4 kB] 373s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libatomic1 armhf 15.2.0-5ubuntu1 [7942 B] 373s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15-base armhf 15.2.0-5ubuntu1 [58.1 kB] 373s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf libgcc-s1 armhf 15.2.0-5ubuntu1 [40.6 kB] 373s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libstdc++6 armhf 15.2.0-5ubuntu1 [731 kB] 373s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libapt-pkg7.0 armhf 3.1.11 [1157 kB] 373s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg armhf 1.22.21ubuntu4 [1245 kB] 373s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf grep armhf 3.12-1 [165 kB] 373s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf eject armhf 2.41.2-4ubuntu1 [65.9 kB] 373s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf fdisk armhf 2.41.2-4ubuntu1 [164 kB] 373s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libblkid1 armhf 2.41.2-4ubuntu1 [174 kB] 373s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libmount1 armhf 2.41.2-4ubuntu1 [206 kB] 373s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf libsmartcols1 armhf 2.41.2-4ubuntu1 [143 kB] 373s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf mount armhf 2.41.2-4ubuntu1 [166 kB] 373s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf uuid-runtime armhf 2.41.2-4ubuntu1 [67.6 kB] 373s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf libuuid1 armhf 2.41.2-4ubuntu1 [43.8 kB] 373s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf libfdisk1 armhf 2.41.2-4ubuntu1 [222 kB] 373s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf bsdutils armhf 1:2.41.2-4ubuntu1 [98.2 kB] 373s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf util-linux armhf 2.41.2-4ubuntu1 [1146 kB] 373s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf bsdextrautils armhf 2.41.2-4ubuntu1 [101 kB] 373s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf libselinux1 armhf 3.8.1-1build2 [81.3 kB] 373s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf libseccomp2 armhf 2.6.0-2ubuntu3 [53.5 kB] 373s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf apt armhf 3.1.11 [1434 kB] 373s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf gnu-coreutils armhf 9.7-3ubuntu1 [1209 kB] 373s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit-common all 1:4.0.5-1build2 [6596 B] 373s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf libcap-ng0 armhf 0.8.5-4build3 [14.0 kB] 373s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit1 armhf 1:4.0.5-1build2 [51.7 kB] 373s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf login armhf 1:4.16.0-2+really2.41.2-4ubuntu1 [109 kB] 373s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13 armhf 3.13.9-1 [753 kB] 374s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13-minimal armhf 3.13.9-1 [2058 kB] 374s Get:31 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.13-stdlib armhf 3.13.9-1 [1957 kB] 374s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.13-minimal armhf 3.13.9-1 [873 kB] 374s Get:33 http://ftpmaster.internal/ubuntu resolute/main armhf tzdata all 2025b-5ubuntu1 [198 kB] 374s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf liblastlog2-2 armhf 2.41.2-4ubuntu1 [34.6 kB] 374s Get:35 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage-common all 3.8.1-1build1 [7916 B] 374s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf libsepol2 armhf 3.9-2 [286 kB] 374s Get:37 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage2 armhf 3.8.1-1build1 [89.2 kB] 374s Get:38 http://ftpmaster.internal/ubuntu resolute/main armhf libgpg-error-l10n all 1.56-2 [9066 B] 374s Get:39 http://ftpmaster.internal/ubuntu resolute/main armhf libgpg-error0 armhf 1.56-2 [69.2 kB] 374s Get:40 http://ftpmaster.internal/ubuntu resolute/main armhf sensible-utils all 0.0.26 [27.0 kB] 374s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf distro-info-data all 0.68 [7378 B] 374s Get:42 http://ftpmaster.internal/ubuntu resolute/main armhf gir1.2-girepository-2.0 armhf 1.86.0-6 [25.3 kB] 374s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf gir1.2-glib-2.0 armhf 2.86.1-1 [182 kB] 374s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf libglib2.0-0t64 armhf 2.86.1-1 [1482 kB] 374s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf libgirepository-1.0-1 armhf 1.86.0-6 [111 kB] 374s Get:46 http://ftpmaster.internal/ubuntu resolute/main armhf libapparmor1 armhf 5.0.0~alpha1-0ubuntu8.1 [52.9 kB] 374s Get:47 http://ftpmaster.internal/ubuntu resolute/main armhf libelf1t64 armhf 0.193-3 [50.9 kB] 374s Get:48 http://ftpmaster.internal/ubuntu resolute/main armhf libglib2.0-data all 2.86.1-1 [56.7 kB] 374s Get:49 http://ftpmaster.internal/ubuntu resolute/main armhf libnettle8t64 armhf 3.10.2-1 [189 kB] 374s Get:50 http://ftpmaster.internal/ubuntu resolute/main armhf libhogweed6t64 armhf 3.10.2-1 [188 kB] 374s Get:51 http://ftpmaster.internal/ubuntu resolute/main armhf libjson-c5 armhf 0.18+ds-1.1 [33.3 kB] 374s Get:52 http://ftpmaster.internal/ubuntu resolute/main armhf libnewt0.52 armhf 0.52.25-1ubuntu2 [39.9 kB] 374s Get:53 http://ftpmaster.internal/ubuntu resolute/main armhf libp11-kit0 armhf 0.25.9-2 [265 kB] 374s Get:54 http://ftpmaster.internal/ubuntu resolute/main armhf libxml2-16 armhf 2.14.5+dfsg-0.2build1 [527 kB] 374s Get:55 http://ftpmaster.internal/ubuntu resolute/main armhf python-apt-common all 3.0.0ubuntu2 [21.7 kB] 374s Get:56 http://ftpmaster.internal/ubuntu resolute/main armhf python3-apt armhf 3.0.0ubuntu2 [189 kB] 374s Get:57 http://ftpmaster.internal/ubuntu resolute/main armhf python3-cffi-backend armhf 2.0.0-2 [99.1 kB] 374s Get:58 http://ftpmaster.internal/ubuntu resolute/main armhf python3-dbus armhf 1.4.0-1build1 [113 kB] 374s Get:59 http://ftpmaster.internal/ubuntu resolute/main armhf python3-yaml armhf 6.0.2-2 [181 kB] 374s Get:60 http://ftpmaster.internal/ubuntu resolute/main armhf sudo-rs armhf 0.2.8-1ubuntu5.1 [548 kB] 374s Get:61 http://ftpmaster.internal/ubuntu resolute/main armhf ubuntu-pro-client-l10n armhf 37.1ubuntu0 [19.8 kB] 374s Get:62 http://ftpmaster.internal/ubuntu resolute/main armhf ubuntu-pro-client armhf 37.1ubuntu0 [260 kB] 374s Get:63 http://ftpmaster.internal/ubuntu resolute/main armhf whiptail armhf 0.52.25-1ubuntu2 [17.1 kB] 374s Get:64 http://ftpmaster.internal/ubuntu resolute/main armhf apparmor armhf 5.0.0~alpha1-0ubuntu8.1 [631 kB] 374s Get:65 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-dnsutils armhf 1:9.20.11-1ubuntu3 [156 kB] 374s Get:66 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-host armhf 1:9.20.11-1ubuntu3 [46.5 kB] 374s Get:67 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-libs armhf 1:9.20.11-1ubuntu3 [1202 kB] 374s Get:68 http://ftpmaster.internal/ubuntu resolute/main armhf libdrm-common all 2.4.127-1ubuntu1 [9716 B] 374s Get:69 http://ftpmaster.internal/ubuntu resolute/main armhf libdrm2 armhf 2.4.127-1ubuntu1 [37.8 kB] 374s Get:70 http://ftpmaster.internal/ubuntu resolute/main armhf nftables armhf 1.1.5-2 [73.2 kB] 374s Get:71 http://ftpmaster.internal/ubuntu resolute/main armhf libnftables1 armhf 1.1.5-2 [329 kB] 374s Get:72 http://ftpmaster.internal/ubuntu resolute/main armhf libnl-route-3-200 armhf 3.11.0-2 [173 kB] 374s Get:73 http://ftpmaster.internal/ubuntu resolute/main armhf libnl-3-200 armhf 3.11.0-2 [51.2 kB] 374s Get:74 http://ftpmaster.internal/ubuntu resolute/main armhf libuchardet0 armhf 0.0.8-2 [74.1 kB] 374s Get:75 http://ftpmaster.internal/ubuntu resolute/main armhf nano armhf 8.6-1 [279 kB] 374s Get:76 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13-gdbm armhf 3.13.9-1 [30.9 kB] 374s Get:77 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14-gdbm armhf 3.14.0-4 [31.3 kB] 374s Get:78 http://ftpmaster.internal/ubuntu resolute/main armhf python3-gdbm armhf 3.13.9-1 [8884 B] 374s Get:79 http://ftpmaster.internal/ubuntu resolute/main armhf usb.ids all 2025.09.15-1 [224 kB] 374s Get:80 http://ftpmaster.internal/ubuntu resolute/main armhf libctf0 armhf 2.45-8ubuntu1 [75.7 kB] 374s Get:81 http://ftpmaster.internal/ubuntu resolute/main armhf libctf-nobfd0 armhf 2.45-8ubuntu1 [78.9 kB] 374s Get:82 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-arm-linux-gnueabihf armhf 2.45-8ubuntu1 [1022 kB] 375s Get:83 http://ftpmaster.internal/ubuntu resolute/main armhf libbinutils armhf 2.45-8ubuntu1 [411 kB] 375s Get:84 http://ftpmaster.internal/ubuntu resolute/main armhf binutils armhf 2.45-8ubuntu1 [3234 B] 375s Get:85 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-common armhf 2.45-8ubuntu1 [221 kB] 375s Get:86 http://ftpmaster.internal/ubuntu resolute/main armhf libsframe2 armhf 2.45-8ubuntu1 [13.3 kB] 375s Get:87 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init-base all 25.4~1gcb12e00e-0ubuntu1 [625 kB] 375s Get:88 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init all 25.4~1gcb12e00e-0ubuntu1 [2114 B] 375s Get:89 http://ftpmaster.internal/ubuntu resolute/main armhf python3-blinker all 1.9.0-2 [10.8 kB] 375s Get:90 http://ftpmaster.internal/ubuntu resolute/main armhf python3-jwt all 2.10.1-3 [21.1 kB] 375s Get:91 http://ftpmaster.internal/ubuntu resolute/main armhf python3-oauthlib all 3.3.1-1 [93.5 kB] 375s Get:92 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg-dev all 1.22.21ubuntu4 [1088 kB] 375s Get:93 http://ftpmaster.internal/ubuntu resolute/main armhf libdpkg-perl all 1.22.21ubuntu4 [280 kB] 375s Get:94 http://ftpmaster.internal/ubuntu resolute/main armhf lto-disabled-list all 71 [12.5 kB] 375s Get:95 http://ftpmaster.internal/ubuntu resolute/main armhf libbrotli1 armhf 1.1.0-2build6 [320 kB] 375s Get:96 http://ftpmaster.internal/ubuntu resolute/main armhf librtmp1 armhf 2.4+20151223.gitfa8646d.1-3 [52.1 kB] 375s Get:97 http://ftpmaster.internal/ubuntu resolute/main armhf python3-more-itertools all 10.8.0-1 [63.5 kB] 375s Get:98 http://ftpmaster.internal/ubuntu resolute/main armhf python3-inflect all 7.5.0-1 [33.9 kB] 375s Get:99 http://ftpmaster.internal/ubuntu resolute/main armhf python3-lazr.uri all 1.0.6-7 [13.8 kB] 375s Get:100 http://ftpmaster.internal/ubuntu resolute/main armhf python3-markupsafe armhf 3.0.3-1 [12.1 kB] 375s Get:101 http://ftpmaster.internal/ubuntu resolute/main armhf python3-openssl all 25.1.0-1 [46.4 kB] 375s Get:102 http://ftpmaster.internal/ubuntu resolute/main armhf python3-pyparsing all 3.1.3-1 [87.0 kB] 375s Get:103 http://ftpmaster.internal/ubuntu resolute/main armhf python3-zipp all 3.23.0-1 [10.4 kB] 375s Get:104 http://ftpmaster.internal/ubuntu resolute/main armhf python3-bcrypt armhf 4.3.0-2 [251 kB] 376s Preconfiguring packages ... 376s Fetched 28.3 MB in 3s (9225 kB/s) 376s (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 ... 61081 files and directories currently installed.) 376s Preparing to unpack .../base-files_14ubuntu4_armhf.deb ... 376s Unpacking base-files (14ubuntu4) over (14ubuntu3) ... 376s Setting up base-files (14ubuntu4) ... 376s Installing new version of config file /etc/issue ... 376s Installing new version of config file /etc/issue.net ... 376s Installing new version of config file /etc/lsb-release ... 377s motd-news.service is a disabled or a static unit not running, not starting it. 377s (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 ... 61081 files and directories currently installed.) 377s Preparing to unpack .../libatomic1_15.2.0-5ubuntu1_armhf.deb ... 377s Unpacking libatomic1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 377s Preparing to unpack .../gcc-15-base_15.2.0-5ubuntu1_armhf.deb ... 377s Unpacking gcc-15-base:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 377s Setting up gcc-15-base:armhf (15.2.0-5ubuntu1) ... 377s (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 ... 61081 files and directories currently installed.) 377s Preparing to unpack .../libgcc-s1_15.2.0-5ubuntu1_armhf.deb ... 377s Unpacking libgcc-s1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 377s Setting up libgcc-s1:armhf (15.2.0-5ubuntu1) ... 377s (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 ... 61081 files and directories currently installed.) 377s Preparing to unpack .../libstdc++6_15.2.0-5ubuntu1_armhf.deb ... 377s Unpacking libstdc++6:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 377s Setting up libstdc++6:armhf (15.2.0-5ubuntu1) ... 377s (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 ... 61081 files and directories currently installed.) 377s Preparing to unpack .../libapt-pkg7.0_3.1.11_armhf.deb ... 377s Unpacking libapt-pkg7.0:armhf (3.1.11) over (3.1.6ubuntu2) ... 377s Setting up libapt-pkg7.0:armhf (3.1.11) ... 377s (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 ... 61082 files and directories currently installed.) 377s Preparing to unpack .../dpkg_1.22.21ubuntu4_armhf.deb ... 377s Unpacking dpkg (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 378s Setting up dpkg (1.22.21ubuntu4) ... 378s (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 ... 61082 files and directories currently installed.) 378s Preparing to unpack .../archives/grep_3.12-1_armhf.deb ... 378s Unpacking grep (3.12-1) over (3.11-4build1) ... 378s Setting up grep (3.12-1) ... 378s (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 ... 61082 files and directories currently installed.) 378s Preparing to unpack .../eject_2.41.2-4ubuntu1_armhf.deb ... 378s Unpacking eject (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 378s Preparing to unpack .../fdisk_2.41.2-4ubuntu1_armhf.deb ... 378s Unpacking fdisk (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 378s Preparing to unpack .../libblkid1_2.41.2-4ubuntu1_armhf.deb ... 378s Unpacking libblkid1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 378s Setting up libblkid1:armhf (2.41.2-4ubuntu1) ... 378s (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 ... 61082 files and directories currently installed.) 378s Preparing to unpack .../libmount1_2.41.2-4ubuntu1_armhf.deb ... 378s Unpacking libmount1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 378s Setting up libmount1:armhf (2.41.2-4ubuntu1) ... 378s (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 ... 61082 files and directories currently installed.) 378s Preparing to unpack .../libsmartcols1_2.41.2-4ubuntu1_armhf.deb ... 378s Unpacking libsmartcols1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 378s Setting up libsmartcols1:armhf (2.41.2-4ubuntu1) ... 378s (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 ... 61082 files and directories currently installed.) 378s Preparing to unpack .../mount_2.41.2-4ubuntu1_armhf.deb ... 378s Unpacking mount (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 378s Preparing to unpack .../uuid-runtime_2.41.2-4ubuntu1_armhf.deb ... 378s Unpacking uuid-runtime (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 378s Preparing to unpack .../libuuid1_2.41.2-4ubuntu1_armhf.deb ... 378s Unpacking libuuid1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 378s Setting up libuuid1:armhf (2.41.2-4ubuntu1) ... 379s (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 ... 61082 files and directories currently installed.) 379s Preparing to unpack .../libfdisk1_2.41.2-4ubuntu1_armhf.deb ... 379s Unpacking libfdisk1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 379s Preparing to unpack .../bsdutils_1%3a2.41.2-4ubuntu1_armhf.deb ... 379s Unpacking bsdutils (1:2.41.2-4ubuntu1) over (1:2.41-4ubuntu4) ... 379s Setting up bsdutils (1:2.41.2-4ubuntu1) ... 379s (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 ... 61079 files and directories currently installed.) 379s Preparing to unpack .../util-linux_2.41.2-4ubuntu1_armhf.deb ... 379s Unpacking util-linux (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 379s Setting up util-linux (2.41.2-4ubuntu1) ... 379s fstrim.service is a disabled or a static unit not running, not starting it. 379s (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 ... 61050 files and directories currently installed.) 379s Preparing to unpack .../bsdextrautils_2.41.2-4ubuntu1_armhf.deb ... 379s Unpacking bsdextrautils (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 379s Preparing to unpack .../libselinux1_3.8.1-1build2_armhf.deb ... 379s Unpacking libselinux1:armhf (3.8.1-1build2) over (3.8.1-1build1) ... 379s Setting up libselinux1:armhf (3.8.1-1build2) ... 380s (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 ... 61053 files and directories currently installed.) 380s Preparing to unpack .../libseccomp2_2.6.0-2ubuntu3_armhf.deb ... 380s Unpacking libseccomp2:armhf (2.6.0-2ubuntu3) over (2.6.0-2ubuntu2) ... 380s Setting up libseccomp2:armhf (2.6.0-2ubuntu3) ... 380s (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 ... 61053 files and directories currently installed.) 380s Preparing to unpack .../archives/apt_3.1.11_armhf.deb ... 380s Unpacking apt (3.1.11) over (3.1.6ubuntu2) ... 380s Setting up apt (3.1.11) ... 380s Installing new version of config file /etc/apt/apt.conf.d/01-vendor-ubuntu ... 380s (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 ... 61054 files and directories currently installed.) 380s Preparing to unpack .../gnu-coreutils_9.7-3ubuntu1_armhf.deb ... 380s Unpacking gnu-coreutils (9.7-3ubuntu1) over (9.5-1ubuntu4) ... 381s Setting up gnu-coreutils (9.7-3ubuntu1) ... 381s (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 ... 61049 files and directories currently installed.) 381s Preparing to unpack .../libaudit-common_1%3a4.0.5-1build2_all.deb ... 381s Unpacking libaudit-common (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 381s Setting up libaudit-common (1:4.0.5-1build2) ... 381s (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 ... 61049 files and directories currently installed.) 381s Preparing to unpack .../libcap-ng0_0.8.5-4build3_armhf.deb ... 381s Unpacking libcap-ng0:armhf (0.8.5-4build3) over (0.8.5-4build2) ... 381s Setting up libcap-ng0:armhf (0.8.5-4build3) ... 381s (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 ... 61049 files and directories currently installed.) 381s Preparing to unpack .../libaudit1_1%3a4.0.5-1build2_armhf.deb ... 381s Unpacking libaudit1:armhf (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 381s Setting up libaudit1:armhf (1:4.0.5-1build2) ... 381s (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 ... 61049 files and directories currently installed.) 381s Preparing to unpack .../0-login_1%3a4.16.0-2+really2.41.2-4ubuntu1_armhf.deb ... 381s Unpacking login (1:4.16.0-2+really2.41.2-4ubuntu1) over (1:4.16.0-2+really2.41-4ubuntu4) ... 381s Preparing to unpack .../1-python3.13_3.13.9-1_armhf.deb ... 381s Unpacking python3.13 (3.13.9-1) over (3.13.7-1) ... 381s Preparing to unpack .../2-python3.13-minimal_3.13.9-1_armhf.deb ... 381s Unpacking python3.13-minimal (3.13.9-1) over (3.13.7-1) ... 381s Preparing to unpack .../3-libpython3.13-stdlib_3.13.9-1_armhf.deb ... 381s Unpacking libpython3.13-stdlib:armhf (3.13.9-1) over (3.13.7-1) ... 381s Preparing to unpack .../4-libpython3.13-minimal_3.13.9-1_armhf.deb ... 381s Unpacking libpython3.13-minimal:armhf (3.13.9-1) over (3.13.7-1) ... 382s Preparing to unpack .../5-tzdata_2025b-5ubuntu1_all.deb ... 382s Unpacking tzdata (2025b-5ubuntu1) over (2025b-3ubuntu1) ... 382s Preparing to unpack .../6-liblastlog2-2_2.41.2-4ubuntu1_armhf.deb ... 382s Unpacking liblastlog2-2:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 382s Setting up liblastlog2-2:armhf (2.41.2-4ubuntu1) ... 382s (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 ... 61041 files and directories currently installed.) 382s Preparing to unpack .../libsemanage-common_3.8.1-1build1_all.deb ... 382s Unpacking libsemanage-common (3.8.1-1build1) over (3.8.1-1) ... 382s Setting up libsemanage-common (3.8.1-1build1) ... 382s (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 ... 61041 files and directories currently installed.) 382s Preparing to unpack .../libsepol2_3.9-2_armhf.deb ... 382s Unpacking libsepol2:armhf (3.9-2) over (3.8.1-1) ... 382s Setting up libsepol2:armhf (3.9-2) ... 382s (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 ... 61041 files and directories currently installed.) 382s Preparing to unpack .../libsemanage2_3.8.1-1build1_armhf.deb ... 382s Unpacking libsemanage2:armhf (3.8.1-1build1) over (3.8.1-1) ... 382s Setting up libsemanage2:armhf (3.8.1-1build1) ... 382s (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 ... 61041 files and directories currently installed.) 382s Preparing to unpack .../libgpg-error-l10n_1.56-2_all.deb ... 382s Unpacking libgpg-error-l10n (1.56-2) over (1.51-4) ... 382s Preparing to unpack .../libgpg-error0_1.56-2_armhf.deb ... 382s Unpacking libgpg-error0:armhf (1.56-2) over (1.51-4) ... 382s Setting up libgpg-error0:armhf (1.56-2) ... 382s (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 ... 61041 files and directories currently installed.) 382s Preparing to unpack .../00-sensible-utils_0.0.26_all.deb ... 382s Unpacking sensible-utils (0.0.26) over (0.0.25) ... 382s Preparing to unpack .../01-distro-info-data_0.68_all.deb ... 382s Unpacking distro-info-data (0.68) over (0.66) ... 382s Preparing to unpack .../02-gir1.2-girepository-2.0_1.86.0-6_armhf.deb ... 382s Unpacking gir1.2-girepository-2.0:armhf (1.86.0-6) over (1.84.0-1) ... 382s Preparing to unpack .../03-gir1.2-glib-2.0_2.86.1-1_armhf.deb ... 382s Unpacking gir1.2-glib-2.0:armhf (2.86.1-1) over (2.86.0-2) ... 382s Preparing to unpack .../04-libglib2.0-0t64_2.86.1-1_armhf.deb ... 382s Unpacking libglib2.0-0t64:armhf (2.86.1-1) over (2.86.0-2) ... 382s Preparing to unpack .../05-libgirepository-1.0-1_1.86.0-6_armhf.deb ... 382s Unpacking libgirepository-1.0-1:armhf (1.86.0-6) over (1.84.0-1) ... 382s Preparing to unpack .../06-libapparmor1_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 382s Unpacking libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 382s Preparing to unpack .../07-libelf1t64_0.193-3_armhf.deb ... 382s Unpacking libelf1t64:armhf (0.193-3) over (0.193-1) ... 382s Preparing to unpack .../08-libglib2.0-data_2.86.1-1_all.deb ... 382s Unpacking libglib2.0-data (2.86.1-1) over (2.86.0-2) ... 382s Preparing to unpack .../09-libnettle8t64_3.10.2-1_armhf.deb ... 382s Unpacking libnettle8t64:armhf (3.10.2-1) over (3.10.1-1) ... 383s Preparing to unpack .../10-libhogweed6t64_3.10.2-1_armhf.deb ... 383s Unpacking libhogweed6t64:armhf (3.10.2-1) over (3.10.1-1) ... 383s Preparing to unpack .../11-libjson-c5_0.18+ds-1.1_armhf.deb ... 383s Unpacking libjson-c5:armhf (0.18+ds-1.1) over (0.18+ds-1) ... 383s Preparing to unpack .../12-libnewt0.52_0.52.25-1ubuntu2_armhf.deb ... 383s Unpacking libnewt0.52:armhf (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 383s Preparing to unpack .../13-libp11-kit0_0.25.9-2_armhf.deb ... 383s Unpacking libp11-kit0:armhf (0.25.9-2) over (0.25.5-3ubuntu1) ... 383s Preparing to unpack .../14-libxml2-16_2.14.5+dfsg-0.2build1_armhf.deb ... 383s Unpacking libxml2-16:armhf (2.14.5+dfsg-0.2build1) over (2.14.5+dfsg-0.2) ... 383s Preparing to unpack .../15-python-apt-common_3.0.0ubuntu2_all.deb ... 383s Unpacking python-apt-common (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 383s Preparing to unpack .../16-python3-apt_3.0.0ubuntu2_armhf.deb ... 383s Unpacking python3-apt (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 383s Preparing to unpack .../17-python3-cffi-backend_2.0.0-2_armhf.deb ... 383s Unpacking python3-cffi-backend:armhf (2.0.0-2) over (1.17.1-3) ... 383s Preparing to unpack .../18-python3-dbus_1.4.0-1build1_armhf.deb ... 383s Unpacking python3-dbus (1.4.0-1build1) over (1.4.0-1) ... 383s Preparing to unpack .../19-python3-yaml_6.0.2-2_armhf.deb ... 383s Unpacking python3-yaml (6.0.2-2) over (6.0.2-1build2) ... 383s Preparing to unpack .../20-sudo-rs_0.2.8-1ubuntu5.1_armhf.deb ... 383s Unpacking sudo-rs (0.2.8-1ubuntu5.1) over (0.2.8-1ubuntu5) ... 383s Preparing to unpack .../21-ubuntu-pro-client-l10n_37.1ubuntu0_armhf.deb ... 383s Unpacking ubuntu-pro-client-l10n (37.1ubuntu0) over (37ubuntu0) ... 383s Preparing to unpack .../22-ubuntu-pro-client_37.1ubuntu0_armhf.deb ... 384s Unpacking ubuntu-pro-client (37.1ubuntu0) over (37ubuntu0) ... 384s Preparing to unpack .../23-whiptail_0.52.25-1ubuntu2_armhf.deb ... 384s Unpacking whiptail (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 384s Preparing to unpack .../24-apparmor_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 385s Unpacking apparmor (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 386s Preparing to unpack .../25-bind9-dnsutils_1%3a9.20.11-1ubuntu3_armhf.deb ... 386s Unpacking bind9-dnsutils (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 386s Preparing to unpack .../26-bind9-host_1%3a9.20.11-1ubuntu3_armhf.deb ... 386s Unpacking bind9-host (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 386s Preparing to unpack .../27-bind9-libs_1%3a9.20.11-1ubuntu3_armhf.deb ... 386s Unpacking bind9-libs:armhf (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 386s Preparing to unpack .../28-libdrm-common_2.4.127-1ubuntu1_all.deb ... 386s Unpacking libdrm-common (2.4.127-1ubuntu1) over (2.4.125-1) ... 386s Preparing to unpack .../29-libdrm2_2.4.127-1ubuntu1_armhf.deb ... 386s Unpacking libdrm2:armhf (2.4.127-1ubuntu1) over (2.4.125-1) ... 386s Preparing to unpack .../30-nftables_1.1.5-2_armhf.deb ... 386s Unpacking nftables (1.1.5-2) over (1.1.5-1) ... 386s Preparing to unpack .../31-libnftables1_1.1.5-2_armhf.deb ... 386s Unpacking libnftables1:armhf (1.1.5-2) over (1.1.5-1) ... 386s Preparing to unpack .../32-libnl-route-3-200_3.11.0-2_armhf.deb ... 386s Unpacking libnl-route-3-200:armhf (3.11.0-2) over (3.7.0-2build1) ... 386s Preparing to unpack .../33-libnl-3-200_3.11.0-2_armhf.deb ... 386s Unpacking libnl-3-200:armhf (3.11.0-2) over (3.7.0-2build1) ... 386s Preparing to unpack .../34-libuchardet0_0.0.8-2_armhf.deb ... 386s Unpacking libuchardet0:armhf (0.0.8-2) over (0.0.8-1build1) ... 386s Preparing to unpack .../35-nano_8.6-1_armhf.deb ... 386s Unpacking nano (8.6-1) over (8.4-1) ... 386s Preparing to unpack .../36-python3.13-gdbm_3.13.9-1_armhf.deb ... 386s Unpacking python3.13-gdbm (3.13.9-1) over (3.13.7-1) ... 386s Selecting previously unselected package python3.14-gdbm. 386s Preparing to unpack .../37-python3.14-gdbm_3.14.0-4_armhf.deb ... 386s Unpacking python3.14-gdbm (3.14.0-4) ... 386s Preparing to unpack .../38-python3-gdbm_3.13.9-1_armhf.deb ... 386s Unpacking python3-gdbm:armhf (3.13.9-1) over (3.13.5-1) ... 386s Preparing to unpack .../39-usb.ids_2025.09.15-1_all.deb ... 386s Unpacking usb.ids (2025.09.15-1) over (2025.07.26-1) ... 386s Preparing to unpack .../40-libctf0_2.45-8ubuntu1_armhf.deb ... 386s Unpacking libctf0:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 386s Preparing to unpack .../41-libctf-nobfd0_2.45-8ubuntu1_armhf.deb ... 386s Unpacking libctf-nobfd0:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 386s Preparing to unpack .../42-binutils-arm-linux-gnueabihf_2.45-8ubuntu1_armhf.deb ... 386s Unpacking binutils-arm-linux-gnueabihf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 386s Preparing to unpack .../43-libbinutils_2.45-8ubuntu1_armhf.deb ... 386s Unpacking libbinutils:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 386s Preparing to unpack .../44-binutils_2.45-8ubuntu1_armhf.deb ... 386s Unpacking binutils (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 386s Preparing to unpack .../45-binutils-common_2.45-8ubuntu1_armhf.deb ... 386s Unpacking binutils-common:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 387s Preparing to unpack .../46-libsframe2_2.45-8ubuntu1_armhf.deb ... 387s Unpacking libsframe2:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 387s Preparing to unpack .../47-cloud-init-base_25.4~1gcb12e00e-0ubuntu1_all.deb ... 387s Unpacking cloud-init-base (25.4~1gcb12e00e-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 387s Preparing to unpack .../48-cloud-init_25.4~1gcb12e00e-0ubuntu1_all.deb ... 387s Unpacking cloud-init (25.4~1gcb12e00e-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 387s Preparing to unpack .../49-python3-blinker_1.9.0-2_all.deb ... 387s Unpacking python3-blinker (1.9.0-2) over (1.9.0-1) ... 387s Preparing to unpack .../50-python3-jwt_2.10.1-3_all.deb ... 387s Unpacking python3-jwt (2.10.1-3) over (2.10.1-2) ... 387s Preparing to unpack .../51-python3-oauthlib_3.3.1-1_all.deb ... 387s Unpacking python3-oauthlib (3.3.1-1) over (3.2.2-3) ... 387s Preparing to unpack .../52-dpkg-dev_1.22.21ubuntu4_all.deb ... 387s Unpacking dpkg-dev (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 388s Preparing to unpack .../53-libdpkg-perl_1.22.21ubuntu4_all.deb ... 388s Unpacking libdpkg-perl (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 388s Preparing to unpack .../54-lto-disabled-list_71_all.deb ... 388s Unpacking lto-disabled-list (71) over (69) ... 388s Preparing to unpack .../55-libbrotli1_1.1.0-2build6_armhf.deb ... 388s Unpacking libbrotli1:armhf (1.1.0-2build6) over (1.1.0-2build5) ... 388s Preparing to unpack .../56-librtmp1_2.4+20151223.gitfa8646d.1-3_armhf.deb ... 388s Unpacking librtmp1:armhf (2.4+20151223.gitfa8646d.1-3) over (2.4+20151223.gitfa8646d.1-2build8) ... 388s Preparing to unpack .../57-python3-more-itertools_10.8.0-1_all.deb ... 388s Unpacking python3-more-itertools (10.8.0-1) over (10.7.0-1) ... 388s Preparing to unpack .../58-python3-inflect_7.5.0-1_all.deb ... 388s Unpacking python3-inflect (7.5.0-1) over (7.3.1-2) ... 388s Preparing to unpack .../59-python3-lazr.uri_1.0.6-7_all.deb ... 388s Unpacking python3-lazr.uri (1.0.6-7) over (1.0.6-6) ... 388s Preparing to unpack .../60-python3-markupsafe_3.0.3-1_armhf.deb ... 388s Unpacking python3-markupsafe (3.0.3-1) over (2.1.5-1build4) ... 388s Preparing to unpack .../61-python3-openssl_25.1.0-1_all.deb ... 388s Unpacking python3-openssl (25.1.0-1) over (25.0.0-1) ... 388s Preparing to unpack .../62-python3-pyparsing_3.1.3-1_all.deb ... 388s Unpacking python3-pyparsing (3.1.3-1) over (3.1.2-1) ... 388s Preparing to unpack .../63-python3-zipp_3.23.0-1_all.deb ... 389s Unpacking python3-zipp (3.23.0-1) over (3.21.0-1) ... 389s Preparing to unpack .../64-python3-bcrypt_4.3.0-2_armhf.deb ... 389s Unpacking python3-bcrypt (4.3.0-2) over (4.2.0-2.1build1) ... 389s Setting up python3-more-itertools (10.8.0-1) ... 389s Setting up lto-disabled-list (71) ... 389s Setting up libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) ... 389s Setting up libnewt0.52:armhf (0.52.25-1ubuntu2) ... 389s Setting up libnftables1:armhf (1.1.5-2) ... 389s Setting up nftables (1.1.5-2) ... 389s Setting up bsdextrautils (2.41.2-4ubuntu1) ... 389s Setting up python3-jwt (2.10.1-3) ... 389s Setting up distro-info-data (0.68) ... 389s Setting up libxml2-16:armhf (2.14.5+dfsg-0.2build1) ... 389s Setting up libsframe2:armhf (2.45-8ubuntu1) ... 389s Setting up python3-openssl (25.1.0-1) ... 390s Setting up python3-bcrypt (4.3.0-2) ... 390s Setting up libbrotli1:armhf (1.1.0-2build6) ... 390s Setting up binutils-common:armhf (2.45-8ubuntu1) ... 390s Setting up libctf-nobfd0:armhf (2.45-8ubuntu1) ... 390s Setting up python3-yaml (6.0.2-2) ... 390s Setting up python3-lazr.uri (1.0.6-7) ... 390s Setting up python3-zipp (3.23.0-1) ... 390s Setting up python3-markupsafe (3.0.3-1) ... 390s Setting up libelf1t64:armhf (0.193-3) ... 390s Setting up tzdata (2025b-5ubuntu1) ... 390s 390s Current default time zone: 'Etc/UTC' 390s Local time is now: Fri Oct 31 14:10:31 UTC 2025. 390s Universal Time is now: Fri Oct 31 14:10:31 UTC 2025. 390s Run 'dpkg-reconfigure tzdata' if you wish to change it. 390s 390s Setting up eject (2.41.2-4ubuntu1) ... 390s Setting up libpython3.13-minimal:armhf (3.13.9-1) ... 390s Setting up apparmor (5.0.0~alpha1-0ubuntu8.1) ... 390s Installing new version of config file /etc/apparmor.d/fusermount3 ... 391s apparmor_parser: Unable to replace "lsb_release". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 391s 391s apparmor_parser: Unable to replace "kmod". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 391s 391s apparmor_parser: Unable to replace "nvidia_modprobe". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 391s 392s Reloading AppArmor profiles 392s /sbin/apparmor_parser: Unable to replace "1password". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "Discord". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "MongoDB Compass". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "balena-etcher". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "brave". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "buildah". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "cam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "bwrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "ch-checkns". /sbin/apparmor_parser: Unable to replace "ch-run". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "babeld". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "chrome". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "chromium". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "vscode". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "bfdd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "crun". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "devhelp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "bgpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "alsamixer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "element-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "epiphany". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "evolution". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "firefox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "flatpak". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "foliate". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "geary". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "github-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "goldendict". /sbin/apparmor_parser: Unable to replace "dnstracer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "eigrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "fabricd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "dig". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "hostname". /sbin/apparmor_parser: Unable to replace "isisd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "iotop-c". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "kchmviewer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "ipa_verify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "lc-compliance". /sbin/apparmor_parser: Unable to replace "keybase". /sbin/apparmor_parser: Unable to replace "Xorg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "libcamerify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "linux-sandbox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "fusermount3". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "loupe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "irssi". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "john". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "lxc-attach". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "gs". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "lxc-destroy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "lsblk". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "lxc-create". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "ldpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "lxc-unshare". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "lxc-execute". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "lxc-stop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "lxc-usernsexec". /sbin/apparmor_parser: Unable to replace "mmdebstrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "msedge". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "lsb_release". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "linux-boot-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "notepadqq". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "lsusb". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "compressor". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "locale". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "obsidian". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "opam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "mbsync". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "opera". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "nslookup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "nhrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "notify-send". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "mosquitto". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "kmod". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "nvidia_modprobe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "pageedit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "pbrd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "ospfd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "nc.openbsd". /sbin/apparmor_parser: Unable to replace "ospf6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "podman". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "polypane". /sbin/apparmor_parser: Unable to replace "privacybrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "qcam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "plasmashell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "qmapshack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "pim6d". /sbin/apparmor_parser: Unable to replace "pimd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "qutebrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "pathd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "os-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "rootlesskit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "rssguard". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "rpm". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "runc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "sbuild". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "sbuild-abort". /sbin/apparmor_parser: Unable to replace "ripd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "ripngd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "sbuild-adduser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "sbuild-apt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "sbuild-checkpackages". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "qpdf". /sbin/apparmor_parser: Unable to replace "sbuild-clean". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "sbuild-createchroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "sbuild-distupgrade". /sbin/apparmor_parser: Unable to replace "sbuild-hold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "sbuild-destroychroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "proftpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "sbuild-shell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "scide". /sbin/apparmor_parser: Unable to replace "signal-desktop". /sbin/apparmor_parser: Unable to replace "sbuild-unhold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "sbuild-upgrade". /sbin/apparmor_parser: Unable to replace "sbuild-update". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "slack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "slirp4netns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "steam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "surfshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "systemd-coredump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "stress-ng". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "thunderbird". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "openvpn". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "ssh-keyscan". /sbin/apparmor_parser: Unable to replace "trinity". /sbin/apparmor_parser: Unable to replace "staticd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "tup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "tuxedo-control-center". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "systemd-detect-virt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "mx-extract". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "rygel". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "tinyproxy". /sbin/apparmor_parser: Unable to replace "unprivileged_userns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "userbindmount". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_apt_news". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "/usr/bin/man". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "unix-chkpwd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "uwsgi-core". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "vdens". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "virtiofsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "vivaldi-bin". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "vpnns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "/usr/sbin/chronyd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "wg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "cmds". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "tnftp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "vrrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "wike". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "wpcom". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "dumpcap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "tshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "who". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "rsyslogd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "tcpdump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "wg-quick". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "znc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "apt_methods". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s /sbin/apparmor_parser: Unable to replace "transmission-cli". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 392s 392s Error: At least one profile failed to load 392s Setting up python3-inflect (7.5.0-1) ... 392s Setting up libnettle8t64:armhf (3.10.2-1) ... 392s Setting up libglib2.0-data (2.86.1-1) ... 392s Setting up python3-pyparsing (3.1.3-1) ... 393s Setting up python3.14-gdbm (3.14.0-4) ... 393s Setting up libp11-kit0:armhf (0.25.9-2) ... 393s Setting up libatomic1:armhf (15.2.0-5ubuntu1) ... 393s Setting up usb.ids (2025.09.15-1) ... 393s Setting up libdpkg-perl (1.22.21ubuntu4) ... 393s Setting up libfdisk1:armhf (2.41.2-4ubuntu1) ... 393s Setting up nano (8.6-1) ... 393s Installing new version of config file /etc/nanorc ... 393s Setting up whiptail (0.52.25-1ubuntu2) ... 393s Setting up python-apt-common (3.0.0ubuntu2) ... 393s Setting up libhogweed6t64:armhf (3.10.2-1) ... 393s Setting up mount (2.41.2-4ubuntu1) ... 393s Setting up sensible-utils (0.0.26) ... 393s Setting up uuid-runtime (2.41.2-4ubuntu1) ... 394s uuidd.service is a disabled or a static unit not running, not starting it. 394s Setting up libuchardet0:armhf (0.0.8-2) ... 394s Setting up libnl-3-200:armhf (3.11.0-2) ... 394s Setting up python3.13-minimal (3.13.9-1) ... 394s Setting up libbinutils:armhf (2.45-8ubuntu1) ... 394s Setting up libgpg-error-l10n (1.56-2) ... 394s Setting up libdrm-common (2.4.127-1ubuntu1) ... 394s Setting up libpython3.13-stdlib:armhf (3.13.9-1) ... 394s Setting up libjson-c5:armhf (0.18+ds-1.1) ... 394s Setting up sudo-rs (0.2.8-1ubuntu5.1) ... 394s Setting up python3-cffi-backend:armhf (2.0.0-2) ... 394s Setting up python3.13-gdbm (3.13.9-1) ... 394s Setting up login (1:4.16.0-2+really2.41.2-4ubuntu1) ... 394s Setting up python3-blinker (1.9.0-2) ... 395s Setting up libctf0:armhf (2.45-8ubuntu1) ... 395s Setting up bind9-libs:armhf (1:9.20.11-1ubuntu3) ... 395s Setting up python3.13 (3.13.9-1) ... 396s Setting up python3-gdbm:armhf (3.13.9-1) ... 396s Setting up python3-apt (3.0.0ubuntu2) ... 396s Setting up fdisk (2.41.2-4ubuntu1) ... 396s Setting up libnl-route-3-200:armhf (3.11.0-2) ... 396s Setting up libglib2.0-0t64:armhf (2.86.1-1) ... 396s No schema files found: doing nothing. 396s Setting up python3-oauthlib (3.3.1-1) ... 396s Setting up librtmp1:armhf (2.4+20151223.gitfa8646d.1-3) ... 396s Setting up gir1.2-glib-2.0:armhf (2.86.1-1) ... 396s Setting up libdrm2:armhf (2.4.127-1ubuntu1) ... 396s Setting up libgirepository-1.0-1:armhf (1.86.0-6) ... 396s Setting up bind9-host (1:9.20.11-1ubuntu3) ... 396s Setting up binutils-arm-linux-gnueabihf (2.45-8ubuntu1) ... 396s Setting up ubuntu-pro-client (37.1ubuntu0) ... 397s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 397s 397s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 397s 397s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 397s 398s Setting up ubuntu-pro-client-l10n (37.1ubuntu0) ... 398s Setting up python3-dbus (1.4.0-1build1) ... 398s Setting up binutils (2.45-8ubuntu1) ... 398s Setting up cloud-init-base (25.4~1gcb12e00e-0ubuntu1) ... 398s Encountered debconf setting for cloud-init-base/datasources. 400s Setting up dpkg-dev (1.22.21ubuntu4) ... 400s Setting up gir1.2-girepository-2.0:armhf (1.86.0-6) ... 400s Setting up bind9-dnsutils (1:9.20.11-1ubuntu3) ... 400s Setting up cloud-init (25.4~1gcb12e00e-0ubuntu1) ... 400s Processing triggers for rsyslog (8.2504.0-1ubuntu2) ... 400s Processing triggers for systemd (257.9-0ubuntu2) ... 400s Processing triggers for man-db (2.13.1-1) ... 402s Processing triggers for plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu1) ... 402s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 402s Processing triggers for install-info (7.1.1-1ubuntu1) ... 402s Processing triggers for libc-bin (2.42-0ubuntu3) ... 405s Reading package lists... 406s Building dependency tree... 406s Reading state information... 406s Solving dependencies... 406s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 408s autopkgtest [14:10:49]: rebooting testbed after setup commands that affected boot 474s Reading package lists... 474s Building dependency tree... 474s Reading state information... 474s Solving dependencies... 475s The following NEW packages will be installed: 475s autodep8 dctrl-tools javascript-common libautovivification-perl 475s libb-hooks-endofscope-perl libb-hooks-op-check-perl libbuiltin-compat-perl 475s libclass-inspector-perl libclass-method-modifiers-perl 475s libclass-xsaccessor-perl libcpanel-json-xs-perl libdata-optlist-perl 475s libdevel-callchecker-perl libdynaloader-functions-perl libexporter-tiny-perl 475s libfeature-compat-try-perl libfile-sharedir-perl 475s libgetopt-long-descriptive-perl libimport-into-perl libio-stringy-perl 475s libjs-bootstrap5 libjs-highlight.js libjs-popper.js 475s libjson-schema-modern-perl libmodule-implementation-perl 475s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 475s libnamespace-clean-perl libpackage-stash-perl libparams-classify-perl 475s libparams-util-perl libparams-validate-perl libpath-tiny-perl 475s libref-util-perl librole-tiny-perl libsafe-isa-perl libstrictures-perl 475s libsub-exporter-perl libsub-exporter-progressive-perl libsub-identify-perl 475s libsub-install-perl libsub-name-perl libsub-quote-perl 475s libsyntax-keyword-try-perl libtry-tiny-perl libtype-tiny-perl 475s libvariable-magic-perl libxs-parse-keyword-perl node-popper2 475s pkg-perl-autopkgtest 475s 0 upgraded, 52 newly installed, 0 to remove and 0 not upgraded. 475s Need to get 3363 kB of archives. 475s After this operation, 17.5 MB of additional disk space will be used. 475s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf dctrl-tools armhf 2.24-3build3 [94.7 kB] 475s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf autodep8 all 0.30 [13.7 kB] 475s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf javascript-common all 12+nmu1 [4828 B] 475s Get:4 http://ftpmaster.internal/ubuntu resolute/universe armhf libautovivification-perl armhf 0.18-2build5 [20.8 kB] 475s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libb-hooks-op-check-perl armhf 0.22-3build2 [9174 B] 475s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libdynaloader-functions-perl all 0.004-2 [11.5 kB] 475s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf libdevel-callchecker-perl armhf 0.009-2 [13.8 kB] 475s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf libparams-classify-perl armhf 0.015-2build6 [18.8 kB] 475s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf libmodule-runtime-perl all 0.018-1 [15.2 kB] 475s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libtry-tiny-perl all 0.32-1 [21.2 kB] 475s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libmodule-implementation-perl all 0.09-2 [12.0 kB] 475s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-exporter-progressive-perl all 0.001013-3 [6718 B] 475s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf libvariable-magic-perl armhf 0.64-1build1 [33.4 kB] 475s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libb-hooks-endofscope-perl all 0.28-2 [15.8 kB] 475s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf libpackage-stash-perl all 0.40-1 [19.5 kB] 475s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-identify-perl armhf 0.14-3build4 [9396 B] 476s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-name-perl armhf 0.28-1 [10.0 kB] 476s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf libnamespace-clean-perl all 0.27-2 [14.0 kB] 476s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf libbuiltin-compat-perl all 0.003003-2 [6956 B] 476s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-inspector-perl all 1.36-3 [15.4 kB] 476s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-method-modifiers-perl all 2.15-1 [16.1 kB] 476s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-xsaccessor-perl armhf 1.19-4build6 [32.4 kB] 476s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf libcpanel-json-xs-perl armhf 4.39-2 [114 kB] 476s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf libparams-util-perl armhf 1.102-3build1 [20.5 kB] 476s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-install-perl all 0.929-1 [9764 B] 476s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf libdata-optlist-perl all 0.114-1 [9708 B] 476s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf libexporter-tiny-perl all 1.006002-1 [36.8 kB] 476s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf libfile-sharedir-perl all 1.118-3 [14.0 kB] 476s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf libxs-parse-keyword-perl armhf 0.49-1 [59.5 kB] 476s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf libsyntax-keyword-try-perl armhf 0.30-1 [24.0 kB] 476s Get:31 http://ftpmaster.internal/ubuntu resolute/universe armhf libfeature-compat-try-perl all 0.05-1 [9998 B] 476s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf libio-stringy-perl all 2.113-2 [45.3 kB] 476s Get:33 http://ftpmaster.internal/ubuntu resolute/universe armhf libparams-validate-perl armhf 1.31-2build4 [52.9 kB] 476s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-exporter-perl all 0.990-1 [49.0 kB] 476s Get:35 http://ftpmaster.internal/ubuntu resolute/universe armhf libgetopt-long-descriptive-perl all 0.116-2 [25.0 kB] 476s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf libimport-into-perl all 1.002005-2 [10.7 kB] 476s Get:37 http://ftpmaster.internal/ubuntu resolute/universe armhf node-popper2 all 2.11.2-9 [106 kB] 476s Get:38 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-bootstrap5 all 5.3.8+dfsg-1 [480 kB] 476s Get:39 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 476s Get:40 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 476s Get:41 http://ftpmaster.internal/ubuntu resolute/universe armhf libmojolicious-perl all 9.39+dfsg-1 [761 kB] 476s Get:42 http://ftpmaster.internal/ubuntu resolute/main armhf librole-tiny-perl all 2.002004-1 [16.3 kB] 476s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-quote-perl all 2.006008-1ubuntu1 [20.7 kB] 476s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf libmoo-perl all 2.005005-1 [47.4 kB] 476s Get:45 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf libtype-tiny-perl all 2.008004-1 [378 kB] 476s Get:46 http://ftpmaster.internal/ubuntu resolute/universe armhf libmoox-typetiny-perl all 0.002003-4 [5930 B] 476s Get:47 http://ftpmaster.internal/ubuntu resolute/main armhf libpath-tiny-perl all 0.148-1 [47.9 kB] 476s Get:48 http://ftpmaster.internal/ubuntu resolute/universe armhf libref-util-perl all 0.204-2 [15.1 kB] 476s Get:49 http://ftpmaster.internal/ubuntu resolute/universe armhf libsafe-isa-perl all 1.000010-1 [7684 B] 476s Get:50 http://ftpmaster.internal/ubuntu resolute/main armhf libstrictures-perl all 2.000006-1 [16.3 kB] 476s Get:51 http://ftpmaster.internal/ubuntu resolute/universe armhf libjson-schema-modern-perl all 0.611-1 [106 kB] 476s Get:52 http://ftpmaster.internal/ubuntu resolute/universe armhf pkg-perl-autopkgtest all 0.82 [18.8 kB] 476s Fetched 3363 kB in 1s (3245 kB/s) 476s Selecting previously unselected package dctrl-tools. 476s (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 ... 61071 files and directories currently installed.) 476s Preparing to unpack .../00-dctrl-tools_2.24-3build3_armhf.deb ... 476s Unpacking dctrl-tools (2.24-3build3) ... 477s Selecting previously unselected package autodep8. 477s Preparing to unpack .../01-autodep8_0.30_all.deb ... 477s Unpacking autodep8 (0.30) ... 477s Selecting previously unselected package javascript-common. 477s Preparing to unpack .../02-javascript-common_12+nmu1_all.deb ... 477s Unpacking javascript-common (12+nmu1) ... 477s Selecting previously unselected package libautovivification-perl:armhf. 477s Preparing to unpack .../03-libautovivification-perl_0.18-2build5_armhf.deb ... 477s Unpacking libautovivification-perl:armhf (0.18-2build5) ... 477s Selecting previously unselected package libb-hooks-op-check-perl:armhf. 477s Preparing to unpack .../04-libb-hooks-op-check-perl_0.22-3build2_armhf.deb ... 477s Unpacking libb-hooks-op-check-perl:armhf (0.22-3build2) ... 477s Selecting previously unselected package libdynaloader-functions-perl. 477s Preparing to unpack .../05-libdynaloader-functions-perl_0.004-2_all.deb ... 477s Unpacking libdynaloader-functions-perl (0.004-2) ... 477s Selecting previously unselected package libdevel-callchecker-perl:armhf. 477s Preparing to unpack .../06-libdevel-callchecker-perl_0.009-2_armhf.deb ... 477s Unpacking libdevel-callchecker-perl:armhf (0.009-2) ... 477s Selecting previously unselected package libparams-classify-perl:armhf. 477s Preparing to unpack .../07-libparams-classify-perl_0.015-2build6_armhf.deb ... 477s Unpacking libparams-classify-perl:armhf (0.015-2build6) ... 477s Selecting previously unselected package libmodule-runtime-perl. 477s Preparing to unpack .../08-libmodule-runtime-perl_0.018-1_all.deb ... 477s Unpacking libmodule-runtime-perl (0.018-1) ... 477s Selecting previously unselected package libtry-tiny-perl. 477s Preparing to unpack .../09-libtry-tiny-perl_0.32-1_all.deb ... 477s Unpacking libtry-tiny-perl (0.32-1) ... 477s Selecting previously unselected package libmodule-implementation-perl. 477s Preparing to unpack .../10-libmodule-implementation-perl_0.09-2_all.deb ... 477s Unpacking libmodule-implementation-perl (0.09-2) ... 477s Selecting previously unselected package libsub-exporter-progressive-perl. 477s Preparing to unpack .../11-libsub-exporter-progressive-perl_0.001013-3_all.deb ... 477s Unpacking libsub-exporter-progressive-perl (0.001013-3) ... 477s Selecting previously unselected package libvariable-magic-perl. 477s Preparing to unpack .../12-libvariable-magic-perl_0.64-1build1_armhf.deb ... 477s Unpacking libvariable-magic-perl (0.64-1build1) ... 477s Selecting previously unselected package libb-hooks-endofscope-perl. 477s Preparing to unpack .../13-libb-hooks-endofscope-perl_0.28-2_all.deb ... 477s Unpacking libb-hooks-endofscope-perl (0.28-2) ... 477s Selecting previously unselected package libpackage-stash-perl. 477s Preparing to unpack .../14-libpackage-stash-perl_0.40-1_all.deb ... 477s Unpacking libpackage-stash-perl (0.40-1) ... 477s Selecting previously unselected package libsub-identify-perl. 477s Preparing to unpack .../15-libsub-identify-perl_0.14-3build4_armhf.deb ... 477s Unpacking libsub-identify-perl (0.14-3build4) ... 477s Selecting previously unselected package libsub-name-perl:armhf. 477s Preparing to unpack .../16-libsub-name-perl_0.28-1_armhf.deb ... 477s Unpacking libsub-name-perl:armhf (0.28-1) ... 477s Selecting previously unselected package libnamespace-clean-perl. 477s Preparing to unpack .../17-libnamespace-clean-perl_0.27-2_all.deb ... 477s Unpacking libnamespace-clean-perl (0.27-2) ... 477s Selecting previously unselected package libbuiltin-compat-perl. 477s Preparing to unpack .../18-libbuiltin-compat-perl_0.003003-2_all.deb ... 477s Unpacking libbuiltin-compat-perl (0.003003-2) ... 477s Selecting previously unselected package libclass-inspector-perl. 477s Preparing to unpack .../19-libclass-inspector-perl_1.36-3_all.deb ... 477s Unpacking libclass-inspector-perl (1.36-3) ... 477s Selecting previously unselected package libclass-method-modifiers-perl. 477s Preparing to unpack .../20-libclass-method-modifiers-perl_2.15-1_all.deb ... 477s Unpacking libclass-method-modifiers-perl (2.15-1) ... 477s Selecting previously unselected package libclass-xsaccessor-perl. 477s Preparing to unpack .../21-libclass-xsaccessor-perl_1.19-4build6_armhf.deb ... 477s Unpacking libclass-xsaccessor-perl (1.19-4build6) ... 477s Selecting previously unselected package libcpanel-json-xs-perl:armhf. 477s Preparing to unpack .../22-libcpanel-json-xs-perl_4.39-2_armhf.deb ... 477s Unpacking libcpanel-json-xs-perl:armhf (4.39-2) ... 477s Selecting previously unselected package libparams-util-perl. 477s Preparing to unpack .../23-libparams-util-perl_1.102-3build1_armhf.deb ... 477s Unpacking libparams-util-perl (1.102-3build1) ... 477s Selecting previously unselected package libsub-install-perl. 477s Preparing to unpack .../24-libsub-install-perl_0.929-1_all.deb ... 477s Unpacking libsub-install-perl (0.929-1) ... 477s Selecting previously unselected package libdata-optlist-perl. 477s Preparing to unpack .../25-libdata-optlist-perl_0.114-1_all.deb ... 477s Unpacking libdata-optlist-perl (0.114-1) ... 477s Selecting previously unselected package libexporter-tiny-perl. 477s Preparing to unpack .../26-libexporter-tiny-perl_1.006002-1_all.deb ... 477s Unpacking libexporter-tiny-perl (1.006002-1) ... 477s Selecting previously unselected package libfile-sharedir-perl. 477s Preparing to unpack .../27-libfile-sharedir-perl_1.118-3_all.deb ... 477s Unpacking libfile-sharedir-perl (1.118-3) ... 477s Selecting previously unselected package libxs-parse-keyword-perl. 477s Preparing to unpack .../28-libxs-parse-keyword-perl_0.49-1_armhf.deb ... 477s Unpacking libxs-parse-keyword-perl (0.49-1) ... 477s Selecting previously unselected package libsyntax-keyword-try-perl. 477s Preparing to unpack .../29-libsyntax-keyword-try-perl_0.30-1_armhf.deb ... 477s Unpacking libsyntax-keyword-try-perl (0.30-1) ... 477s Selecting previously unselected package libfeature-compat-try-perl. 477s Preparing to unpack .../30-libfeature-compat-try-perl_0.05-1_all.deb ... 477s Unpacking libfeature-compat-try-perl (0.05-1) ... 477s Selecting previously unselected package libio-stringy-perl. 477s Preparing to unpack .../31-libio-stringy-perl_2.113-2_all.deb ... 477s Unpacking libio-stringy-perl (2.113-2) ... 477s Selecting previously unselected package libparams-validate-perl:armhf. 477s Preparing to unpack .../32-libparams-validate-perl_1.31-2build4_armhf.deb ... 477s Unpacking libparams-validate-perl:armhf (1.31-2build4) ... 478s Selecting previously unselected package libsub-exporter-perl. 478s Preparing to unpack .../33-libsub-exporter-perl_0.990-1_all.deb ... 478s Unpacking libsub-exporter-perl (0.990-1) ... 478s Selecting previously unselected package libgetopt-long-descriptive-perl. 478s Preparing to unpack .../34-libgetopt-long-descriptive-perl_0.116-2_all.deb ... 478s Unpacking libgetopt-long-descriptive-perl (0.116-2) ... 478s Selecting previously unselected package libimport-into-perl. 478s Preparing to unpack .../35-libimport-into-perl_1.002005-2_all.deb ... 478s Unpacking libimport-into-perl (1.002005-2) ... 478s Selecting previously unselected package node-popper2. 478s Preparing to unpack .../36-node-popper2_2.11.2-9_all.deb ... 478s Unpacking node-popper2 (2.11.2-9) ... 478s Selecting previously unselected package libjs-bootstrap5. 478s Preparing to unpack .../37-libjs-bootstrap5_5.3.8+dfsg-1_all.deb ... 478s Unpacking libjs-bootstrap5 (5.3.8+dfsg-1) ... 478s Selecting previously unselected package libjs-highlight.js. 478s Preparing to unpack .../38-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 478s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 478s Selecting previously unselected package libjs-popper.js. 478s Preparing to unpack .../39-libjs-popper.js_1.16.1+ds-6_all.deb ... 478s Unpacking libjs-popper.js (1.16.1+ds-6) ... 478s Selecting previously unselected package libmojolicious-perl. 478s Preparing to unpack .../40-libmojolicious-perl_9.39+dfsg-1_all.deb ... 478s Unpacking libmojolicious-perl (9.39+dfsg-1) ... 478s Selecting previously unselected package librole-tiny-perl. 478s Preparing to unpack .../41-librole-tiny-perl_2.002004-1_all.deb ... 478s Unpacking librole-tiny-perl (2.002004-1) ... 478s Selecting previously unselected package libsub-quote-perl. 478s Preparing to unpack .../42-libsub-quote-perl_2.006008-1ubuntu1_all.deb ... 478s Unpacking libsub-quote-perl (2.006008-1ubuntu1) ... 478s Selecting previously unselected package libmoo-perl. 478s Preparing to unpack .../43-libmoo-perl_2.005005-1_all.deb ... 478s Unpacking libmoo-perl (2.005005-1) ... 478s Selecting previously unselected package libtype-tiny-perl. 478s Preparing to unpack .../44-libtype-tiny-perl_2.008004-1_all.deb ... 478s Unpacking libtype-tiny-perl (2.008004-1) ... 478s Selecting previously unselected package libmoox-typetiny-perl. 478s Preparing to unpack .../45-libmoox-typetiny-perl_0.002003-4_all.deb ... 478s Unpacking libmoox-typetiny-perl (0.002003-4) ... 478s Selecting previously unselected package libpath-tiny-perl. 478s Preparing to unpack .../46-libpath-tiny-perl_0.148-1_all.deb ... 478s Unpacking libpath-tiny-perl (0.148-1) ... 478s Selecting previously unselected package libref-util-perl. 478s Preparing to unpack .../47-libref-util-perl_0.204-2_all.deb ... 478s Unpacking libref-util-perl (0.204-2) ... 478s Selecting previously unselected package libsafe-isa-perl. 478s Preparing to unpack .../48-libsafe-isa-perl_1.000010-1_all.deb ... 478s Unpacking libsafe-isa-perl (1.000010-1) ... 478s Selecting previously unselected package libstrictures-perl. 478s Preparing to unpack .../49-libstrictures-perl_2.000006-1_all.deb ... 478s Unpacking libstrictures-perl (2.000006-1) ... 478s Selecting previously unselected package libjson-schema-modern-perl. 478s Preparing to unpack .../50-libjson-schema-modern-perl_0.611-1_all.deb ... 478s Unpacking libjson-schema-modern-perl (0.611-1) ... 478s Selecting previously unselected package pkg-perl-autopkgtest. 478s Preparing to unpack .../51-pkg-perl-autopkgtest_0.82_all.deb ... 478s Unpacking pkg-perl-autopkgtest (0.82) ... 478s Setting up javascript-common (12+nmu1) ... 478s Setting up libsafe-isa-perl (1.000010-1) ... 478s Setting up libclass-inspector-perl (1.36-3) ... 478s Setting up libdynaloader-functions-perl (0.004-2) ... 478s Setting up libclass-method-modifiers-perl (2.15-1) ... 478s Setting up libjs-popper.js (1.16.1+ds-6) ... 478s Setting up libsub-identify-perl (0.14-3build4) ... 478s Setting up libcpanel-json-xs-perl:armhf (4.39-2) ... 478s Setting up libio-stringy-perl (2.113-2) ... 478s Setting up libtry-tiny-perl (0.32-1) ... 478s Setting up libsub-install-perl (0.929-1) ... 478s Setting up libautovivification-perl:armhf (0.18-2build5) ... 478s Setting up libref-util-perl (0.204-2) ... 478s Setting up libvariable-magic-perl (0.64-1build1) ... 478s Setting up libb-hooks-op-check-perl:armhf (0.22-3build2) ... 478s Setting up libparams-util-perl (1.102-3build1) ... 478s Setting up libsub-exporter-progressive-perl (0.001013-3) ... 478s Setting up libsub-name-perl:armhf (0.28-1) ... 478s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 478s Setting up node-popper2 (2.11.2-9) ... 478s Setting up libpath-tiny-perl (0.148-1) ... 478s Setting up librole-tiny-perl (2.002004-1) ... 478s Setting up libfile-sharedir-perl (1.118-3) ... 478s Setting up libstrictures-perl (2.000006-1) ... 478s Setting up libsub-quote-perl (2.006008-1ubuntu1) ... 478s Setting up libclass-xsaccessor-perl (1.19-4build6) ... 478s Setting up libexporter-tiny-perl (1.006002-1) ... 478s Setting up libjs-bootstrap5 (5.3.8+dfsg-1) ... 478s Setting up dctrl-tools (2.24-3build3) ... 478s Setting up autodep8 (0.30) ... 478s Setting up libmojolicious-perl (9.39+dfsg-1) ... 478s Setting up libtype-tiny-perl (2.008004-1) ... 478s Setting up libdevel-callchecker-perl:armhf (0.009-2) ... 478s Setting up libxs-parse-keyword-perl (0.49-1) ... 478s Setting up libdata-optlist-perl (0.114-1) ... 478s Setting up pkg-perl-autopkgtest (0.82) ... 478s Setting up libsyntax-keyword-try-perl (0.30-1) ... 478s Setting up libsub-exporter-perl (0.990-1) ... 478s Setting up libfeature-compat-try-perl (0.05-1) ... 478s Setting up libparams-classify-perl:armhf (0.015-2build6) ... 478s Setting up libmodule-runtime-perl (0.018-1) ... 478s Setting up libmodule-implementation-perl (0.09-2) ... 478s Setting up libpackage-stash-perl (0.40-1) ... 478s Setting up libimport-into-perl (1.002005-2) ... 478s Setting up libmoo-perl (2.005005-1) ... 478s Setting up libmoox-typetiny-perl (0.002003-4) ... 478s Setting up libparams-validate-perl:armhf (1.31-2build4) ... 478s Setting up libb-hooks-endofscope-perl (0.28-2) ... 478s Setting up libnamespace-clean-perl (0.27-2) ... 478s Setting up libbuiltin-compat-perl (0.003003-2) ... 478s Setting up libgetopt-long-descriptive-perl (0.116-2) ... 478s Setting up libjson-schema-modern-perl (0.611-1) ... 478s Processing triggers for man-db (2.13.1-1) ... 495s autopkgtest [14:12:16]: test autodep8-perl: /usr/share/pkg-perl-autopkgtest/runner runtime-deps 495s autopkgtest [14:12:16]: test autodep8-perl: [----------------------- 498s /usr/share/pkg-perl-autopkgtest/runtime-deps.d/use.t .. 498s 1..4 498s ok 1 - /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 exited successfully 498s ok 2 - /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 produced no (non-whitelisted) output 498s ok 3 - env PERL_DL_NONLAZY=1 /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 exited successfully 498s ok 4 - env PERL_DL_NONLAZY=1 /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 produced no (non-whitelisted) output 498s ok 498s All tests successful. 498s Files=1, Tests=4, 1 wallclock secs ( 0.02 usr 0.01 sys + 0.78 cusr 0.11 csys = 0.92 CPU) 498s Result: PASS 499s autopkgtest [14:12:20]: test autodep8-perl: -----------------------] 503s autodep8-perl PASS (superficial) 503s autopkgtest [14:12:24]: test autodep8-perl: - - - - - - - - - - results - - - - - - - - - - 506s autopkgtest [14:12:27]: test autodep8-perl-recommends: preparing testbed 508s Reading package lists... 509s Building dependency tree... 509s Reading state information... 509s Solving dependencies... 509s The following NEW packages will be installed: 509s libalgorithm-c3-perl libclass-c3-perl libclass-data-inheritable-perl 509s libclass-singleton-perl libclone-perl libdata-validate-domain-perl 509s libdatetime-format-rfc3339-perl libdatetime-locale-perl libdatetime-perl 509s libdatetime-timezone-perl libdevel-stacktrace-perl libemail-address-xs-perl 509s libeval-closure-perl libexception-class-perl libmro-compat-perl 509s libnamespace-autoclean-perl libnet-domain-tld-perl libnet-idn-encode-perl 509s libparams-validationcompiler-perl libref-util-xs-perl libsereal-decoder-perl 509s libsereal-encoder-perl libsereal-perl libspecio-perl libtime-moment-perl 509s libtype-tiny-xs-perl libxstring-perl 509s 0 upgraded, 27 newly installed, 0 to remove and 0 not upgraded. 509s Need to get 4318 kB of archives. 509s After this operation, 34.2 MB of additional disk space will be used. 509s Get:1 http://ftpmaster.internal/ubuntu resolute/universe armhf libalgorithm-c3-perl all 0.11-2 [10.2 kB] 509s Get:2 http://ftpmaster.internal/ubuntu resolute/universe armhf libclass-c3-perl all 0.35-2 [18.4 kB] 509s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-data-inheritable-perl all 0.10-1 [8038 B] 509s Get:4 http://ftpmaster.internal/ubuntu resolute/universe armhf libclass-singleton-perl all 1.6-2 [11.5 kB] 509s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libclone-perl armhf 0.47-1 [10.0 kB] 509s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libnet-domain-tld-perl all 1.75-4 [29.0 kB] 510s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf libdata-validate-domain-perl all 0.15-1 [10.4 kB] 510s Get:8 http://ftpmaster.internal/ubuntu resolute/universe armhf libnamespace-autoclean-perl all 0.31-1 [11.9 kB] 510s Get:9 http://ftpmaster.internal/ubuntu resolute/universe armhf libeval-closure-perl all 0.14-3 [10.1 kB] 510s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libdevel-stacktrace-perl all 2.0500-1 [22.1 kB] 510s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libexception-class-perl all 1.45-1 [28.6 kB] 510s Get:12 http://ftpmaster.internal/ubuntu resolute/universe armhf libparams-validationcompiler-perl all 0.31-1 [28.3 kB] 510s Get:13 http://ftpmaster.internal/ubuntu resolute/universe armhf libmro-compat-perl all 0.15-2 [10.1 kB] 510s Get:14 http://ftpmaster.internal/ubuntu resolute/universe armhf libxstring-perl armhf 0.005-2build4 [7650 B] 510s Get:15 http://ftpmaster.internal/ubuntu resolute/universe armhf libspecio-perl all 0.50-1 [127 kB] 510s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-locale-perl all 1:1.41-1 [3193 kB] 510s Get:17 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-timezone-perl all 1:2.65-1+2025b [260 kB] 510s Get:18 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-perl armhf 2:1.65-1build3 [98.3 kB] 510s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-format-rfc3339-perl all 1.10.0-1 [8154 B] 510s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libemail-address-xs-perl armhf 1.05-1build5 [26.5 kB] 510s Get:21 http://ftpmaster.internal/ubuntu resolute/universe armhf libnet-idn-encode-perl armhf 2.500-5build1 [83.7 kB] 510s Get:22 http://ftpmaster.internal/ubuntu resolute/universe armhf libref-util-xs-perl armhf 0.117-2build5 [11.5 kB] 510s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf libsereal-decoder-perl armhf 5.004+ds-1build5 [94.4 kB] 510s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf libsereal-encoder-perl armhf 5.004+ds-1build4 [96.1 kB] 510s Get:25 http://ftpmaster.internal/ubuntu resolute/universe armhf libsereal-perl all 5.004-1 [8770 B] 510s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf libtime-moment-perl armhf 0.44-2build5 [70.6 kB] 510s Get:27 http://ftpmaster.internal/ubuntu resolute/universe armhf libtype-tiny-xs-perl armhf 0.025-2build1 [23.5 kB] 511s Fetched 4318 kB in 1s (4682 kB/s) 511s Selecting previously unselected package libalgorithm-c3-perl. 511s (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 ... 62789 files and directories currently installed.) 511s Preparing to unpack .../00-libalgorithm-c3-perl_0.11-2_all.deb ... 511s Unpacking libalgorithm-c3-perl (0.11-2) ... 511s Selecting previously unselected package libclass-c3-perl. 511s Preparing to unpack .../01-libclass-c3-perl_0.35-2_all.deb ... 511s Unpacking libclass-c3-perl (0.35-2) ... 511s Selecting previously unselected package libclass-data-inheritable-perl. 511s Preparing to unpack .../02-libclass-data-inheritable-perl_0.10-1_all.deb ... 511s Unpacking libclass-data-inheritable-perl (0.10-1) ... 511s Selecting previously unselected package libclass-singleton-perl. 511s Preparing to unpack .../03-libclass-singleton-perl_1.6-2_all.deb ... 511s Unpacking libclass-singleton-perl (1.6-2) ... 511s Selecting previously unselected package libclone-perl:armhf. 511s Preparing to unpack .../04-libclone-perl_0.47-1_armhf.deb ... 511s Unpacking libclone-perl:armhf (0.47-1) ... 511s Selecting previously unselected package libnet-domain-tld-perl. 511s Preparing to unpack .../05-libnet-domain-tld-perl_1.75-4_all.deb ... 511s Unpacking libnet-domain-tld-perl (1.75-4) ... 511s Selecting previously unselected package libdata-validate-domain-perl. 511s Preparing to unpack .../06-libdata-validate-domain-perl_0.15-1_all.deb ... 511s Unpacking libdata-validate-domain-perl (0.15-1) ... 511s Selecting previously unselected package libnamespace-autoclean-perl. 511s Preparing to unpack .../07-libnamespace-autoclean-perl_0.31-1_all.deb ... 511s Unpacking libnamespace-autoclean-perl (0.31-1) ... 511s Selecting previously unselected package libeval-closure-perl. 511s Preparing to unpack .../08-libeval-closure-perl_0.14-3_all.deb ... 511s Unpacking libeval-closure-perl (0.14-3) ... 511s Selecting previously unselected package libdevel-stacktrace-perl. 511s Preparing to unpack .../09-libdevel-stacktrace-perl_2.0500-1_all.deb ... 511s Unpacking libdevel-stacktrace-perl (2.0500-1) ... 511s Selecting previously unselected package libexception-class-perl. 511s Preparing to unpack .../10-libexception-class-perl_1.45-1_all.deb ... 511s Unpacking libexception-class-perl (1.45-1) ... 511s Selecting previously unselected package libparams-validationcompiler-perl. 511s Preparing to unpack .../11-libparams-validationcompiler-perl_0.31-1_all.deb ... 511s Unpacking libparams-validationcompiler-perl (0.31-1) ... 511s Selecting previously unselected package libmro-compat-perl. 511s Preparing to unpack .../12-libmro-compat-perl_0.15-2_all.deb ... 511s Unpacking libmro-compat-perl (0.15-2) ... 511s Selecting previously unselected package libxstring-perl:armhf. 511s Preparing to unpack .../13-libxstring-perl_0.005-2build4_armhf.deb ... 511s Unpacking libxstring-perl:armhf (0.005-2build4) ... 511s Selecting previously unselected package libspecio-perl. 511s Preparing to unpack .../14-libspecio-perl_0.50-1_all.deb ... 511s Unpacking libspecio-perl (0.50-1) ... 511s Selecting previously unselected package libdatetime-locale-perl. 511s Preparing to unpack .../15-libdatetime-locale-perl_1%3a1.41-1_all.deb ... 511s Unpacking libdatetime-locale-perl (1:1.41-1) ... 511s Selecting previously unselected package libdatetime-timezone-perl. 511s Preparing to unpack .../16-libdatetime-timezone-perl_1%3a2.65-1+2025b_all.deb ... 511s Unpacking libdatetime-timezone-perl (1:2.65-1+2025b) ... 511s Selecting previously unselected package libdatetime-perl. 511s Preparing to unpack .../17-libdatetime-perl_2%3a1.65-1build3_armhf.deb ... 511s Unpacking libdatetime-perl (2:1.65-1build3) ... 512s Selecting previously unselected package libdatetime-format-rfc3339-perl. 512s Preparing to unpack .../18-libdatetime-format-rfc3339-perl_1.10.0-1_all.deb ... 512s Unpacking libdatetime-format-rfc3339-perl (1.10.0-1) ... 512s Selecting previously unselected package libemail-address-xs-perl. 512s Preparing to unpack .../19-libemail-address-xs-perl_1.05-1build5_armhf.deb ... 512s Unpacking libemail-address-xs-perl (1.05-1build5) ... 512s Selecting previously unselected package libnet-idn-encode-perl. 512s Preparing to unpack .../20-libnet-idn-encode-perl_2.500-5build1_armhf.deb ... 512s Unpacking libnet-idn-encode-perl (2.500-5build1) ... 512s Selecting previously unselected package libref-util-xs-perl. 512s Preparing to unpack .../21-libref-util-xs-perl_0.117-2build5_armhf.deb ... 512s Unpacking libref-util-xs-perl (0.117-2build5) ... 512s Selecting previously unselected package libsereal-decoder-perl. 512s Preparing to unpack .../22-libsereal-decoder-perl_5.004+ds-1build5_armhf.deb ... 512s Unpacking libsereal-decoder-perl (5.004+ds-1build5) ... 512s Selecting previously unselected package libsereal-encoder-perl. 512s Preparing to unpack .../23-libsereal-encoder-perl_5.004+ds-1build4_armhf.deb ... 512s Unpacking libsereal-encoder-perl (5.004+ds-1build4) ... 512s Selecting previously unselected package libsereal-perl. 512s Preparing to unpack .../24-libsereal-perl_5.004-1_all.deb ... 512s Unpacking libsereal-perl (5.004-1) ... 512s Selecting previously unselected package libtime-moment-perl. 512s Preparing to unpack .../25-libtime-moment-perl_0.44-2build5_armhf.deb ... 512s Unpacking libtime-moment-perl (0.44-2build5) ... 512s Selecting previously unselected package libtype-tiny-xs-perl:armhf. 512s Preparing to unpack .../26-libtype-tiny-xs-perl_0.025-2build1_armhf.deb ... 512s Unpacking libtype-tiny-xs-perl:armhf (0.025-2build1) ... 512s Setting up libref-util-xs-perl (0.117-2build5) ... 512s Setting up libnet-idn-encode-perl (2.500-5build1) ... 512s Setting up libclone-perl:armhf (0.47-1) ... 512s Setting up libclass-singleton-perl (1.6-2) ... 512s Setting up libtime-moment-perl (0.44-2build5) ... 512s Setting up libxstring-perl:armhf (0.005-2build4) ... 512s Setting up libsereal-encoder-perl (5.004+ds-1build4) ... 512s Setting up libclass-data-inheritable-perl (0.10-1) ... 512s Setting up libalgorithm-c3-perl (0.11-2) ... 512s Setting up libnet-domain-tld-perl (1.75-4) ... 512s Setting up libtype-tiny-xs-perl:armhf (0.025-2build1) ... 512s Setting up libdata-validate-domain-perl (0.15-1) ... 512s Setting up libdevel-stacktrace-perl (2.0500-1) ... 512s Setting up libnamespace-autoclean-perl (0.31-1) ... 512s Setting up libsereal-decoder-perl (5.004+ds-1build5) ... 512s Setting up libeval-closure-perl (0.14-3) ... 512s Setting up libemail-address-xs-perl (1.05-1build5) ... 512s Setting up libsereal-perl (5.004-1) ... 512s Setting up libexception-class-perl (1.45-1) ... 512s Setting up libclass-c3-perl (0.35-2) ... 512s Setting up libmro-compat-perl (0.15-2) ... 512s Setting up libparams-validationcompiler-perl (0.31-1) ... 512s Setting up libspecio-perl (0.50-1) ... 512s Setting up libdatetime-locale-perl (1:1.41-1) ... 512s Setting up libdatetime-timezone-perl (1:2.65-1+2025b) ... 512s Setting up libdatetime-perl (2:1.65-1build3) ... 512s Setting up libdatetime-format-rfc3339-perl (1.10.0-1) ... 512s Processing triggers for man-db (2.13.1-1) ... 521s autopkgtest [14:12:42]: test autodep8-perl-recommends: /usr/share/pkg-perl-autopkgtest/runner runtime-deps-and-recommends 521s autopkgtest [14:12:42]: test autodep8-perl-recommends: [----------------------- 525s /usr/share/pkg-perl-autopkgtest/runtime-deps-and-recommends.d/syntax.t .. 525s 1..4 525s ok 1 - Package libjson-schema-modern-perl is known to dpkg 525s ok 2 - Got status information for package libjson-schema-modern-perl 525s ok 3 - Got file list for package libjson-schema-modern-perl 525s # Subtest: all modules in libjson-schema-modern-perl pass the syntax check 525s 1..16 525s ok 1 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Annotation.pm exited successfully 525s ok 2 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Document.pm exited successfully 525s ok 3 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Error.pm exited successfully 525s ok 4 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Result.pm exited successfully 525s ok 5 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/ResultNode.pm exited successfully 525s ok 6 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Utilities.pm exited successfully 525s ok 7 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Applicator.pm exited successfully 525s ok 8 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Content.pm exited successfully 525s ok 9 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Core.pm exited successfully 525s ok 10 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/FormatAnnotation.pm exited successfully 525s ok 11 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/FormatAssertion.pm exited successfully 525s ok 12 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/MetaData.pm exited successfully 525s ok 13 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Unevaluated.pm exited successfully 525s ok 14 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Validation.pm exited successfully 525s ok 15 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary.pm exited successfully 525s ok 16 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern.pm exited successfully 525s ok 4 - all modules in libjson-schema-modern-perl pass the syntax check 525s ok 525s All tests successful. 525s Files=1, Tests=4, 2 wallclock secs ( 0.02 usr 0.01 sys + 1.68 cusr 0.24 csys = 1.95 CPU) 525s Result: PASS 525s autopkgtest [14:12:46]: test autodep8-perl-recommends: -----------------------] 530s autopkgtest [14:12:50]: test autodep8-perl-recommends: - - - - - - - - - - results - - - - - - - - - - 530s autodep8-perl-recommends PASS (superficial) 534s autopkgtest [14:12:55]: @@@@@@@@@@@@@@@@@@@@ summary 534s autodep8-perl-build-deps PASS 534s autodep8-perl PASS (superficial) 534s autodep8-perl-recommends PASS (superficial)